summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node_modules/.yarn-integrity188
-rw-r--r--node_modules/@babel/core/lib/gensync-utils/functional.js57
-rw-r--r--node_modules/@babel/core/lib/gensync-utils/functional.js.map2
-rw-r--r--node_modules/@babel/core/lib/index.js2
-rw-r--r--node_modules/@babel/core/package.json8
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js137
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map1
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js972
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map2
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/features.js2
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map2
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map2
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/index.js31
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map2
-rw-r--r--node_modules/@babel/helper-create-class-features-plugin/package.json8
-rw-r--r--node_modules/@babel/helpers/lib/helpers-generated.js2
-rw-r--r--node_modules/@babel/helpers/lib/helpers-generated.js.map2
-rw-r--r--node_modules/@babel/helpers/lib/helpers/applyDecs2305.js2
-rw-r--r--node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map2
-rw-r--r--node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map2
-rw-r--r--node_modules/@babel/helpers/package.json4
-rw-r--r--node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map2
-rw-r--r--node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json6
-rw-r--r--node_modules/@babel/plugin-transform-async-generator-functions/package.json6
-rw-r--r--node_modules/@babel/preset-env/package.json16
-rw-r--r--node_modules/@babel/runtime/helpers/applyDecs2305.js2
-rw-r--r--node_modules/@babel/runtime/helpers/esm/applyDecs2305.js2
-rw-r--r--node_modules/@babel/runtime/package.json2
-rw-r--r--node_modules/@babel/traverse/lib/path/removal.js6
-rw-r--r--node_modules/@babel/traverse/lib/path/removal.js.map2
-rw-r--r--node_modules/@babel/traverse/package.json4
-rw-r--r--node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts5
-rw-r--r--node_modules/@csstools/cascade-layer-name-parser/package.json6
-rw-r--r--node_modules/@csstools/css-calc/CHANGELOG.md15
-rw-r--r--node_modules/@csstools/css-calc/dist/index.cjs2
-rw-r--r--node_modules/@csstools/css-calc/dist/index.mjs2
-rw-r--r--node_modules/@csstools/css-calc/package.json6
-rw-r--r--node_modules/@csstools/css-color-parser/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/css-color-parser/package.json8
-rw-r--r--node_modules/@csstools/css-parser-algorithms/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/css-parser-algorithms/README.md4
-rw-r--r--node_modules/@csstools/css-parser-algorithms/dist/index.cjs2
-rw-r--r--node_modules/@csstools/css-parser-algorithms/dist/index.d.ts412
-rw-r--r--node_modules/@csstools/css-parser-algorithms/dist/index.mjs2
-rw-r--r--node_modules/@csstools/css-parser-algorithms/package.json4
-rw-r--r--node_modules/@csstools/css-tokenizer/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/css-tokenizer/README.md11
-rw-r--r--node_modules/@csstools/css-tokenizer/dist/index.cjs2
-rw-r--r--node_modules/@csstools/css-tokenizer/dist/index.d.ts457
-rw-r--r--node_modules/@csstools/css-tokenizer/dist/index.mjs2
-rw-r--r--node_modules/@csstools/css-tokenizer/package.json2
-rw-r--r--node_modules/@csstools/media-query-list-parser/CHANGELOG.md13
-rw-r--r--node_modules/@csstools/media-query-list-parser/dist/index.d.ts114
-rw-r--r--node_modules/@csstools/media-query-list-parser/package.json6
-rw-r--r--node_modules/@csstools/postcss-color-function/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-color-function/README.md5
-rw-r--r--node_modules/@csstools/postcss-color-function/dist/index.cjs2
-rw-r--r--node_modules/@csstools/postcss-color-function/dist/index.mjs2
-rw-r--r--node_modules/@csstools/postcss-color-function/package.json8
-rw-r--r--node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-color-mix-function/README.md5
-rw-r--r--node_modules/@csstools/postcss-color-mix-function/dist/index.cjs2
-rw-r--r--node_modules/@csstools/postcss-color-mix-function/dist/index.mjs2
-rw-r--r--node_modules/@csstools/postcss-color-mix-function/package.json8
-rw-r--r--node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md17
-rw-r--r--node_modules/@csstools/postcss-exponential-functions/README.md2
-rw-r--r--node_modules/@csstools/postcss-exponential-functions/package.json8
-rw-r--r--node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md8
-rw-r--r--node_modules/@csstools/postcss-gamut-mapping/README.md2
-rw-r--r--node_modules/@csstools/postcss-gamut-mapping/package.json8
-rw-r--r--node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-gradients-interpolation-method/README.md5
-rw-r--r--node_modules/@csstools/postcss-gradients-interpolation-method/package.json8
-rw-r--r--node_modules/@csstools/postcss-hwb-function/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-hwb-function/README.md5
-rw-r--r--node_modules/@csstools/postcss-hwb-function/dist/index.cjs2
-rw-r--r--node_modules/@csstools/postcss-hwb-function/dist/index.mjs2
-rw-r--r--node_modules/@csstools/postcss-hwb-function/package.json8
-rw-r--r--node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md12
-rw-r--r--node_modules/@csstools/postcss-logical-viewport-units/README.md2
-rw-r--r--node_modules/@csstools/postcss-logical-viewport-units/package.json4
-rw-r--r--node_modules/@csstools/postcss-media-minmax/CHANGELOG.md15
-rw-r--r--node_modules/@csstools/postcss-media-minmax/README.md2
-rw-r--r--node_modules/@csstools/postcss-media-minmax/package.json10
-rw-r--r--node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md2
-rw-r--r--node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json8
-rw-r--r--node_modules/@csstools/postcss-oklab-function/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-oklab-function/README.md7
-rw-r--r--node_modules/@csstools/postcss-oklab-function/dist/index.cjs2
-rw-r--r--node_modules/@csstools/postcss-oklab-function/dist/index.mjs2
-rw-r--r--node_modules/@csstools/postcss-oklab-function/package.json8
-rw-r--r--node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md14
-rw-r--r--node_modules/@csstools/postcss-relative-color-syntax/README.md5
-rw-r--r--node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs2
-rw-r--r--node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs2
-rw-r--r--node_modules/@csstools/postcss-relative-color-syntax/package.json8
-rw-r--r--node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md17
-rw-r--r--node_modules/@csstools/postcss-stepped-value-functions/README.md2
-rw-r--r--node_modules/@csstools/postcss-stepped-value-functions/package.json8
-rw-r--r--node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md17
-rw-r--r--node_modules/@csstools/postcss-trigonometric-functions/README.md2
-rw-r--r--node_modules/@csstools/postcss-trigonometric-functions/package.json8
-rw-r--r--node_modules/cssnano-preset-default/package.json28
-rw-r--r--node_modules/cssnano/package.json8
-rw-r--r--node_modules/electron-to-chromium/full-chromium-versions.js10
-rw-r--r--node_modules/electron-to-chromium/full-chromium-versions.json2
-rw-r--r--node_modules/electron-to-chromium/full-versions.js6
-rw-r--r--node_modules/electron-to-chromium/full-versions.json2
-rw-r--r--node_modules/electron-to-chromium/package.json2
-rw-r--r--node_modules/postcss-color-functional-notation/CHANGELOG.md15
-rw-r--r--node_modules/postcss-color-functional-notation/README.md113
-rw-r--r--node_modules/postcss-color-functional-notation/dist/index.cjs2
-rw-r--r--node_modules/postcss-color-functional-notation/dist/index.mjs2
-rw-r--r--node_modules/postcss-color-functional-notation/package.json8
-rw-r--r--node_modules/postcss-colormin/package.json6
-rw-r--r--node_modules/postcss-convert-values/package.json4
-rw-r--r--node_modules/postcss-custom-properties/CHANGELOG.md14
-rw-r--r--node_modules/postcss-custom-properties/README.md2
-rw-r--r--node_modules/postcss-custom-properties/dist/index.cjs2
-rw-r--r--node_modules/postcss-custom-properties/dist/index.mjs2
-rw-r--r--node_modules/postcss-custom-properties/package.json8
-rw-r--r--node_modules/postcss-lab-function/CHANGELOG.md14
-rw-r--r--node_modules/postcss-lab-function/README.md8
-rw-r--r--node_modules/postcss-lab-function/dist/index.cjs2
-rw-r--r--node_modules/postcss-lab-function/dist/index.mjs2
-rw-r--r--node_modules/postcss-lab-function/package.json8
-rw-r--r--node_modules/postcss-merge-longhand/package.json4
-rw-r--r--node_modules/postcss-merge-rules/package.json8
-rw-r--r--node_modules/postcss-minify-params/package.json4
-rw-r--r--node_modules/postcss-minify-selectors/package.json4
-rw-r--r--node_modules/postcss-normalize-unicode/package.json4
-rw-r--r--node_modules/postcss-reduce-initial/package.json10
-rw-r--r--node_modules/postcss-reduce-initial/src/data/fromInitial.json35
-rw-r--r--node_modules/postcss-reduce-initial/src/data/toInitial.json3
-rw-r--r--node_modules/postcss-selector-parser/CHANGELOG.md4
-rw-r--r--node_modules/postcss-selector-parser/package.json2
-rw-r--r--node_modules/postcss-selector-parser/postcss-selector-parser.d.ts4
-rw-r--r--node_modules/postcss-svgo/package.json4
-rw-r--r--node_modules/postcss-unique-selectors/package.json4
-rw-r--r--node_modules/stylehacks/package.json6
-rw-r--r--node_modules/svgo/README.md71
-rwxr-xr-xnode_modules/svgo/bin/svgo2
-rw-r--r--node_modules/svgo/dist/svgo.browser.js2
-rw-r--r--node_modules/svgo/lib/parser.js6
-rw-r--r--node_modules/svgo/lib/path.js141
-rw-r--r--node_modules/svgo/lib/stringifier.js2
-rw-r--r--node_modules/svgo/lib/style.js59
-rw-r--r--node_modules/svgo/lib/svgo.d.ts4
-rw-r--r--node_modules/svgo/lib/svgo.js4
-rw-r--r--node_modules/svgo/lib/svgo/coa.js68
-rw-r--r--node_modules/svgo/lib/svgo/plugins.js2
-rw-r--r--node_modules/svgo/lib/svgo/tools.js43
-rw-r--r--node_modules/svgo/lib/types.d.ts14
-rw-r--r--node_modules/svgo/lib/xast.js2
-rw-r--r--node_modules/svgo/package.json59
-rw-r--r--node_modules/svgo/plugins/_collections.js1460
-rw-r--r--node_modules/svgo/plugins/_path.js57
-rw-r--r--node_modules/svgo/plugins/_transforms.js241
-rw-r--r--node_modules/svgo/plugins/addClassesToSVGElement.js2
-rw-r--r--node_modules/svgo/plugins/applyTransforms.js18
-rw-r--r--node_modules/svgo/plugins/cleanupAttrs.js6
-rw-r--r--node_modules/svgo/plugins/cleanupEnableBackground.js6
-rw-r--r--node_modules/svgo/plugins/cleanupIds.js16
-rw-r--r--node_modules/svgo/plugins/cleanupListOfValues.js6
-rw-r--r--node_modules/svgo/plugins/cleanupNumericValues.js4
-rw-r--r--node_modules/svgo/plugins/collapseGroups.js6
-rw-r--r--node_modules/svgo/plugins/convertColors.js6
-rw-r--r--node_modules/svgo/plugins/convertOneStopGradients.js6
-rw-r--r--node_modules/svgo/plugins/convertPathData.js323
-rw-r--r--node_modules/svgo/plugins/convertShapeToPath.js12
-rw-r--r--node_modules/svgo/plugins/convertStyleToAttrs.js15
-rw-r--r--node_modules/svgo/plugins/convertTransform.js61
-rw-r--r--node_modules/svgo/plugins/inlineStyles.js42
-rw-r--r--node_modules/svgo/plugins/mergePaths.js108
-rw-r--r--node_modules/svgo/plugins/minifyStyles.js2
-rw-r--r--node_modules/svgo/plugins/moveElemsAttrsToGroup.js4
-rw-r--r--node_modules/svgo/plugins/moveGroupAttrsToElems.js4
-rw-r--r--node_modules/svgo/plugins/plugins-types.d.ts4
-rw-r--r--node_modules/svgo/plugins/prefixIds.js9
-rw-r--r--node_modules/svgo/plugins/removeComments.js2
-rw-r--r--node_modules/svgo/plugins/removeEditorsNSData.js4
-rw-r--r--node_modules/svgo/plugins/removeElementsByAttr.js4
-rw-r--r--node_modules/svgo/plugins/removeEmptyAttrs.js2
-rw-r--r--node_modules/svgo/plugins/removeEmptyContainers.js2
-rw-r--r--node_modules/svgo/plugins/removeHiddenElems.js2
-rw-r--r--node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js6
-rw-r--r--node_modules/svgo/plugins/removeOffCanvasPaths.js4
-rw-r--r--node_modules/svgo/plugins/removeUnknownsAndDefaults.js4
-rw-r--r--node_modules/svgo/plugins/removeUselessDefs.js6
-rw-r--r--node_modules/svgo/plugins/removeUselessStrokeAndFill.js2
-rw-r--r--node_modules/svgo/plugins/removeViewBox.js4
-rw-r--r--node_modules/svgo/plugins/removeXlink.js10
-rw-r--r--node_modules/svgo/plugins/reusePaths.js4
195 files changed, 4183 insertions, 2097 deletions
diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity
index c1ab2eb3..2e249ef6 100644
--- a/node_modules/.yarn-integrity
+++ b/node_modules/.yarn-integrity
@@ -27,7 +27,7 @@
"postcss-pseudoelements@^5.0.0",
"postcss-vmin@^3.0.0",
"postcss-will-change@^4.0.1",
- "postcss@^8.4.31",
+ "postcss@^8.4.32",
"rucksack-css@^1.0.2"
],
"lockfileEntries": {
@@ -39,14 +39,14 @@
"@babel/compat-data@^7.22.6": "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98",
"@babel/compat-data@^7.23.3": "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98",
"@babel/compat-data@^7.23.5": "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98",
- "@babel/core@^7.23.2": "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4",
+ "@babel/core@^7.23.2": "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f",
"@babel/generator@^7.23.6": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e",
"@babel/helper-annotate-as-pure@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882",
"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956",
"@babel/helper-compilation-targets@^7.22.15": "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991",
"@babel/helper-compilation-targets@^7.22.6": "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991",
"@babel/helper-compilation-targets@^7.23.6": "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991",
- "@babel/helper-create-class-features-plugin@^7.22.15": "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953",
+ "@babel/helper-create-class-features-plugin@^7.22.15": "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d",
"@babel/helper-create-regexp-features-plugin@^7.18.6": "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1",
"@babel/helper-create-regexp-features-plugin@^7.22.15": "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1",
"@babel/helper-create-regexp-features-plugin@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1",
@@ -77,13 +77,13 @@
"@babel/helper-validator-identifier@^7.22.20": "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0",
"@babel/helper-validator-option@^7.23.5": "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307",
"@babel/helper-wrap-function@^7.22.20": "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569",
- "@babel/helpers@^7.23.6": "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a",
+ "@babel/helpers@^7.23.7": "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.7.tgz#eb543c36f81da2873e47b76ee032343ac83bba60",
"@babel/highlight@^7.23.4": "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b",
"@babel/parser@^7.22.15": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b",
"@babel/parser@^7.23.6": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b",
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703",
"@babel/plugin-syntax-async-generators@^7.8.4": "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d",
"@babel/plugin-syntax-class-properties@^7.12.13": "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10",
@@ -104,7 +104,7 @@
"@babel/plugin-syntax-top-level-await@^7.14.5": "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c",
"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357",
"@babel/plugin-transform-arrow-functions@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b",
- "@babel/plugin-transform-async-generator-functions@^7.23.4": "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a",
+ "@babel/plugin-transform-async-generator-functions@^7.23.7": "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd",
"@babel/plugin-transform-async-to-generator@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa",
"@babel/plugin-transform-block-scoped-functions@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77",
"@babel/plugin-transform-block-scoping@^7.23.4": "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5",
@@ -152,37 +152,37 @@
"@babel/plugin-transform-unicode-property-regex@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad",
"@babel/plugin-transform-unicode-regex@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc",
"@babel/plugin-transform-unicode-sets-regex@^7.23.3": "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e",
- "@babel/preset-env@^7.23.2": "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a",
+ "@babel/preset-env@^7.23.2": "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241",
"@babel/preset-modules@0.1.6-no-external-plugins": "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a",
"@babel/regjsgen@^0.8.0": "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310",
- "@babel/runtime@^7.8.4": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d",
+ "@babel/runtime@^7.8.4": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193",
"@babel/template@^7.22.15": "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38",
- "@babel/traverse@^7.23.6": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5",
+ "@babel/traverse@^7.23.7": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305",
"@babel/types@^7.22.15": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
"@babel/types@^7.22.19": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
"@babel/types@^7.22.5": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
"@babel/types@^7.23.0": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
"@babel/types@^7.23.6": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
"@babel/types@^7.4.4": "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd",
- "@csstools/cascade-layer-name-parser@^1.0.5": "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.6.tgz#ea6a8fc7805c3384d914e9235d31d77dd0ccb2b8",
- "@csstools/cascade-layer-name-parser@^1.0.6": "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.6.tgz#ea6a8fc7805c3384d914e9235d31d77dd0ccb2b8",
+ "@csstools/cascade-layer-name-parser@^1.0.5": "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz#9cfc36de9716d219492eb0e5ee75348b2213a8fd",
+ "@csstools/cascade-layer-name-parser@^1.0.7": "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.7.tgz#9cfc36de9716d219492eb0e5ee75348b2213a8fd",
"@csstools/color-helpers@^4.0.0": "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-4.0.0.tgz#a1d6ffcefe5c1d389cbcca15f46da3cdaf241443",
- "@csstools/css-calc@^1.1.5": "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.5.tgz#cf5ac0b51a0533bd69be258b15ae243a7a47e3e1",
- "@csstools/css-color-parser@^1.5.0": "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.5.0.tgz#545fe1586d4927cc2614d62278325d37d8539b35",
- "@csstools/css-parser-algorithms@^2.3.2": "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz#88c7b62b8e00c391b24c585f9db5a0b62ed665b0",
- "@csstools/css-parser-algorithms@^2.4.0": "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz#88c7b62b8e00c391b24c585f9db5a0b62ed665b0",
- "@csstools/css-tokenizer@^2.2.1": "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz#bcd85cef4468c356833b21e96d38b940c9760605",
- "@csstools/css-tokenizer@^2.2.2": "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz#bcd85cef4468c356833b21e96d38b940c9760605",
- "@csstools/media-query-list-parser@^2.1.5": "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz#e4e9a8a35be7a066836389b03ec19e584bc61af3",
- "@csstools/media-query-list-parser@^2.1.6": "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz#e4e9a8a35be7a066836389b03ec19e584bc61af3",
+ "@csstools/css-calc@^1.1.6": "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-1.1.6.tgz#2d4e16725c3f981f7c6e469c306bcb1f490e1082",
+ "@csstools/css-color-parser@^1.5.1": "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-1.5.1.tgz#bddf5513a7327c511c9e1ec682419dcad1f91869",
+ "@csstools/css-parser-algorithms@^2.3.2": "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532",
+ "@csstools/css-parser-algorithms@^2.5.0": "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532",
+ "@csstools/css-tokenizer@^2.2.1": "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6",
+ "@csstools/css-tokenizer@^2.2.3": "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6",
+ "@csstools/media-query-list-parser@^2.1.5": "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788",
+ "@csstools/media-query-list-parser@^2.1.7": "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788",
"@csstools/postcss-cascade-layers@^4.0.1": "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-4.0.2.tgz#1a9212b150bc6106bcb1dfd4fc03f6fb42240037",
- "@csstools/postcss-color-function@^3.0.7": "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.8.tgz#3ce66d125c472188758b895ecba1841d7225ff43",
- "@csstools/postcss-color-mix-function@^2.0.7": "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.8.tgz#fab8561226ad40cd50d3aa7bb79c42d800332525",
- "@csstools/postcss-exponential-functions@^1.0.1": "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.2.tgz#fa3c1f549ee3720891a35a7e3905ecff9cf07b2d",
+ "@csstools/postcss-color-function@^3.0.7": "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-3.0.9.tgz#4e13e2b4b1b682a669c92ff676ccc35c99e69f9e",
+ "@csstools/postcss-color-mix-function@^2.0.7": "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.9.tgz#ce1bc1decf307f93e6e6b0ee6ae14dd72295955c",
+ "@csstools/postcss-exponential-functions@^1.0.1": "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.3.tgz#13cf794d2434d1d488f27bce3334359935b8f984",
"@csstools/postcss-font-format-keywords@^3.0.0": "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-3.0.1.tgz#15ca8f8bd54568e4f3336b80ca0d20c903d02049",
- "@csstools/postcss-gamut-mapping@^1.0.0": "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.1.tgz#b5b8429488979a5a48c0249a7aab1836fafc30ec",
- "@csstools/postcss-gradients-interpolation-method@^4.0.7": "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.8.tgz#1fcf2654b413eeadd4307082417508f249a03966",
- "@csstools/postcss-hwb-function@^3.0.6": "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.7.tgz#c45971f6119f060672ebec7f92d71e3ca018c981",
+ "@csstools/postcss-gamut-mapping@^1.0.0": "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.2.tgz#bef05c2bd2ad0b2c60f96e90e36173e0a79514d1",
+ "@csstools/postcss-gradients-interpolation-method@^4.0.7": "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.9.tgz#083bedd34e9e9e60cc4582bc58229cdc2750d8d5",
+ "@csstools/postcss-hwb-function@^3.0.6": "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.8.tgz#4a21b447390998b3201ecc4dd6a8639f5e2a524d",
"@csstools/postcss-ic-unit@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.3.tgz#f1e257be491718d964a5ecebac39f2f469caf8a8",
"@csstools/postcss-initial@^1.0.0": "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-1.0.1.tgz#5aa378de9bfd0e6e377433f8986bdecf579e1268",
"@csstools/postcss-is-pseudo-class@^4.0.3": "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.4.tgz#c95d3f8b355df1744c906d0ec5e69aedce4e9487",
@@ -190,19 +190,19 @@
"@csstools/postcss-logical-overflow@^1.0.0": "https://registry.yarnpkg.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-1.0.1.tgz#d14631369f43ef989c7e32f051ddb6952a8ce35c",
"@csstools/postcss-logical-overscroll-behavior@^1.0.0": "https://registry.yarnpkg.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-1.0.1.tgz#9305a6f0d08bb7b5f1a228272951f72d3bf9d44f",
"@csstools/postcss-logical-resize@^2.0.0": "https://registry.yarnpkg.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-2.0.1.tgz#a46c1b51055db96fb63af3bfe58909c773aea377",
- "@csstools/postcss-logical-viewport-units@^2.0.3": "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.4.tgz#8f7a3cb9d058841b945be61dbebafa14954f1a24",
- "@csstools/postcss-media-minmax@^1.1.0": "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.1.tgz#b98619dfff964e2c4e020f21934162d7c2d4dec5",
- "@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.3": "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.4.tgz#773b83dc0415d6cdfa38e54d3823ae8c54c10280",
+ "@csstools/postcss-logical-viewport-units@^2.0.3": "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.5.tgz#5517b609aeb76e7e94143514d77ff6c8c83f42f3",
+ "@csstools/postcss-media-minmax@^1.1.0": "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.2.tgz#3c7ad7bebde6b329c40c96c3a78073aaa0714bb8",
+ "@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.3": "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.5.tgz#a78989a2c8012235d878e70eac203d9d51419114",
"@csstools/postcss-nested-calc@^3.0.0": "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-3.0.1.tgz#94b462420d22539984bfe659339abba6971ff8f0",
"@csstools/postcss-normalize-display-values@^3.0.1": "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.2.tgz#9013e6ade2fbd4cd725438c9ff0b1000062cf20d",
- "@csstools/postcss-oklab-function@^3.0.7": "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.8.tgz#a82929b36dc591b619108642786f3b0a2c0fe735",
+ "@csstools/postcss-oklab-function@^3.0.7": "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.9.tgz#26e462e0ec18222f08e285afd6d9c9261ab55ee4",
"@csstools/postcss-progressive-custom-properties@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.3.tgz#8e0b61c204e80a3b4f82818f9738accb06894a06",
"@csstools/postcss-progressive-custom-properties@^3.0.3": "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.3.tgz#8e0b61c204e80a3b4f82818f9738accb06894a06",
- "@csstools/postcss-relative-color-syntax@^2.0.7": "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.8.tgz#825f79ddacbfacdb40ebe99fcfb5210ea8dfa509",
+ "@csstools/postcss-relative-color-syntax@^2.0.7": "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.9.tgz#6a6c5361a6ec02459e024fa2b769aa52f392038e",
"@csstools/postcss-scope-pseudo-class@^3.0.0": "https://registry.yarnpkg.com/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-3.0.1.tgz#c5454ea2fb3cf9beaf212d3a631a5c18cd4fbc14",
- "@csstools/postcss-stepped-value-functions@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.3.tgz#99dc53b346574248ccbe6772d736e1a151d5e303",
+ "@csstools/postcss-stepped-value-functions@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.4.tgz#a97ae4d77dea36bb93b611712f872821ed796515",
"@csstools/postcss-text-decoration-shorthand@^3.0.3": "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.4.tgz#b8c5216faa2c9d8a05b3f93da7b403dd5dd53a79",
- "@csstools/postcss-trigonometric-functions@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.3.tgz#5704213191f158ba9828a280c9b75ade9373b920",
+ "@csstools/postcss-trigonometric-functions@^3.0.2": "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.4.tgz#23a5887f3c74c276a84ba66b9a963ea1731b531a",
"@csstools/postcss-unset-value@^3.0.0": "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-3.0.1.tgz#598a25630fd9ab0edf066d235916f7441404942a",
"@csstools/selector-specificity@^3.0.1": "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40",
"@jridgewell/gen-mapping@^0.3.0": "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098",
@@ -234,9 +234,9 @@
"arrify@^2.0.1": "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa",
"autoprefixer@^10.4.16": "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8",
"autoprefixer@^7.1.2": "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc",
- "babel-plugin-polyfill-corejs2@^0.4.6": "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c",
- "babel-plugin-polyfill-corejs3@^0.8.5": "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04",
- "babel-plugin-polyfill-regenerator@^0.5.3": "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4",
+ "babel-plugin-polyfill-corejs2@^0.4.7": "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c",
+ "babel-plugin-polyfill-corejs3@^0.8.7": "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04",
+ "babel-plugin-polyfill-regenerator@^0.5.4": "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4",
"babel-plugin-uglify@^1.0.2": "https://registry.yarnpkg.com/babel-plugin-uglify/-/babel-plugin-uglify-1.0.2.tgz#d7bcdab132afbadb0bf3479a5666eb8de082610f",
"balanced-match@^0.4.2": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838",
"balanced-match@^1.0.0": "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee",
@@ -250,7 +250,6 @@
"browserslist@^2.11.3": "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2",
"browserslist@^4.0.0": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
"browserslist@^4.21.10": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
- "browserslist@^4.21.4": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
"browserslist@^4.21.5": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
"browserslist@^4.22.1": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
"browserslist@^4.22.2": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b",
@@ -288,21 +287,21 @@
"core-util-is@~1.0.0": "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85",
"cosmiconfig@^8.3.5": "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3",
"css-blank-pseudo@^6.0.0": "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-6.0.1.tgz#f79f8b84cc00f891e16aa85f14093c5e1c3499a8",
- "css-declaration-sorter@^7.0.0": "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80",
+ "css-declaration-sorter@^7.1.1": "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80",
"css-has-pseudo@^6.0.0": "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-6.0.1.tgz#05be77f1414315c3880a1fcc96a72471af4a8ecf",
"css-prefers-color-scheme@^9.0.0": "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-9.0.1.tgz#30fcb94cc38b639b66fb99e1882ffd97f741feaa",
"css-select@^5.1.0": "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6",
"css-tokenize@^1.0.1": "https://registry.yarnpkg.com/css-tokenize/-/css-tokenize-1.0.1.tgz#4625cb1eda21c143858b7f81d6803c1d26fc14be",
- "css-tree@^2.2.1": "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20",
+ "css-tree@^2.3.1": "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20",
"css-tree@~2.2.0": "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032",
"css-unit-converter@^1.1.1": "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21",
"css-what@^6.1.0": "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4",
"cssdb@^7.9.0": "https://registry.yarnpkg.com/cssdb/-/cssdb-7.10.0.tgz#08816db7b793f088263e8f61dfe8d7f11a3459f2",
"cssesc@^3.0.0": "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee",
- "cssnano-preset-default@^6.0.2": "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz#0cc13e2da462b0d1632b1ebea4af78e7484592e8",
+ "cssnano-preset-default@^6.0.3": "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz#b4ce755974f4dc8d3d09ac13bb6281cce3ced45e",
"cssnano-utils@^4.0.1": "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.1.tgz#fd18b42f95938bf55ab47967705355d6047bf1da",
- "cssnano@^6.0.1": "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.2.tgz#7b49d60ce51e1dea3d569795f751ee49e97124c9",
- "csso@5.0.5": "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6",
+ "cssnano@^6.0.1": "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.3.tgz#46db972da71aa159437287fb4c6bc9c5d3cc5d93",
+ "csso@^5.0.5": "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6",
"debug@^4.1.0": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
"debug@^4.1.1": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
"debug@^4.3.1": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
@@ -316,9 +315,9 @@
"domhandler@^5.0.3": "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31",
"domutils@^3.0.1": "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e",
"duplexify@^4.1.2": "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0",
- "electron-to-chromium@^1.2.7": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb",
- "electron-to-chromium@^1.3.30": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb",
- "electron-to-chromium@^1.4.601": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb",
+ "electron-to-chromium@^1.2.7": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.619.tgz#81d302a8284c669caca76e611aeb59337510f45f",
+ "electron-to-chromium@^1.3.30": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.619.tgz#81d302a8284c669caca76e611aeb59337510f45f",
+ "electron-to-chromium@^1.4.601": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.619.tgz#81d302a8284c669caca76e611aeb59337510f45f",
"emoji-regex@^8.0.0": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37",
"end-of-stream@^1.4.1": "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0",
"entities@^4.2.0": "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48",
@@ -440,15 +439,15 @@
"postcss-clamp@^4.1.0": "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363",
"postcss-clearfix@^2.0.1": "https://registry.yarnpkg.com/postcss-clearfix/-/postcss-clearfix-2.0.1.tgz#5170a1998f167d3190a0173445b6380c8c5c07f2",
"postcss-cli@^10.1.0": "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-10.1.0.tgz#f6658c4998a1c35bd66cd71009132b2d12e04f80",
- "postcss-color-functional-notation@^6.0.2": "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.3.tgz#02869e61f04705cb9eb5d245136dd59f8f7c4dee",
+ "postcss-color-functional-notation@^6.0.2": "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.4.tgz#2f1f8390d8d508713e43802230bf3ae0173622a7",
"postcss-color-hex-alpha@^9.0.2": "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.3.tgz#b7f0d3829218608c0d219e25aa06b1216393c69e",
"postcss-color-rebeccapurple@^9.0.1": "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.2.tgz#a5c7e605631eff2a7a230535bcf6aba29de4a270",
"postcss-color-rgba-fallback@^3.0.0": "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz#37d5c9353a07a09270912a82606bb42a0d702c04",
"postcss-color-rgba-fallback@^4.0.0": "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-4.0.0.tgz#b836c4a34c747cf9b16f1ebcd7d6016c299e0cf2",
- "postcss-colormin@^6.0.1": "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.1.tgz#3aa61d38a88dbdeeb7252fae67809a7ac547a129",
- "postcss-convert-values@^6.0.1": "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz#a1451cb7e53b67b3db95c37276c5decb997409f2",
+ "postcss-colormin@^6.0.2": "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.2.tgz#2af9ce753937b08e058dbc6879e4aedfab42806b",
+ "postcss-convert-values@^6.0.2": "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz#c4a7509aeb1cc7ac3f6948fcbffc2bf8cac7c56a",
"postcss-custom-media@^10.0.2": "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-10.0.2.tgz#70a244bbc59fc953ab6573e4e2c9624639aef08a",
- "postcss-custom-properties@^13.3.2": "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.3.tgz#c6be6c1746e0415f9e42a3055129aa20a19803e6",
+ "postcss-custom-properties@^13.3.2": "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-13.3.4.tgz#0ad5be700b692e0288ce3b2b406eac964244f197",
"postcss-custom-selectors@^7.1.6": "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-7.1.6.tgz#6d28812998dcd48f61a6a538141fc16cf2c42123",
"postcss-dir-pseudo-class@^8.0.0": "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-8.0.1.tgz#b93755f52fb90215301b1d3ecb7c5e6416930a1e",
"postcss-discard-comments@^6.0.1": "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz#46176212bd9c3e5f48aa4b8b4868786726c41d36",
@@ -468,16 +467,16 @@
"postcss-image-set-function@^6.0.1": "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-6.0.2.tgz#ddf62a4468207ce7de2f99154325adbe6c95c032",
"postcss-import@^15.1.0": "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70",
"postcss-input-style@^1.0.0": "https://registry.yarnpkg.com/postcss-input-style/-/postcss-input-style-1.0.0.tgz#bbfdc82b9f799b3e78c863a02476757e26fbdc61",
- "postcss-lab-function@^6.0.7": "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.8.tgz#e5bacdb7235449168972bc6fbf8eb4a19696ae1f",
+ "postcss-lab-function@^6.0.7": "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-6.0.9.tgz#9ef00afba26703a1a3d83d502401a66a98eabb96",
"postcss-load-config@^4.0.0": "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3",
"postcss-loader@^7.3.3": "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209",
"postcss-logical@^7.0.0": "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-7.0.1.tgz#a3121f6510591b195321b16e65fbe13b1cfd3115",
- "postcss-merge-longhand@^6.0.1": "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz#5a1145868c615e643ca0996d9e9c3f09ad8de854",
- "postcss-merge-rules@^6.0.2": "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz#b0f0063a05d671b7093a86f0faa6d2c6695dc036",
+ "postcss-merge-longhand@^6.0.2": "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz#cd4e83014851da59545e9a906b245615550f4064",
+ "postcss-merge-rules@^6.0.3": "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz#08fcf714faaad75b1980ecd961b080ae2f8ddeb3",
"postcss-minify-font-values@^6.0.1": "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz#788eb930168be90225f3937f0b70aa19d8b532b2",
"postcss-minify-gradients@^6.0.1": "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz#4faf1880b483dc37016658aa186b42194ff9b5bc",
- "postcss-minify-params@^6.0.1": "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz#79b83947bae2aa991df12646c7f463276abb0aef",
- "postcss-minify-selectors@^6.0.1": "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz#7b2f05651a2f734da1fa50dea62cfc47e67d68f9",
+ "postcss-minify-params@^6.0.2": "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz#bd64af642fa5610281b8a9461598bbb91f92ae05",
+ "postcss-minify-selectors@^6.0.2": "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz#62065b38d3453ddc6627ba50e4f4a2154b031aa0",
"postcss-nested@^6.0.1": "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c",
"postcss-nesting@^12.0.1": "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-12.0.2.tgz#cb92061347db3e7c38c174c97cb01feff2eef439",
"postcss-normalize-charset@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz#5f70e1eb8bbdbcfcbed060ef70f179e8fef57d0c",
@@ -486,7 +485,7 @@
"postcss-normalize-repeat-style@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz#55dc54b6f80305b280a379899a6626e0a07b04a8",
"postcss-normalize-string@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz#7605e0fb4ec7bf2709709991d13a949e4419db1d",
"postcss-normalize-timing-functions@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz#ef937b7ca2fd62ed0b46645ea5728b842a3600db",
- "postcss-normalize-unicode@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz#a652faa02fc8ce5d1429ac0782575d8d66a60d9b",
+ "postcss-normalize-unicode@^6.0.2": "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz#361026744ff11baebaec771b60c2a5f36f274fd0",
"postcss-normalize-url@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz#eae58cb4f5f9a4fa5bbbf6d4222dff534ad46186",
"postcss-normalize-whitespace@^6.0.1": "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz#b5933750b938814c028d3d2b2e5c0199e0037b53",
"postcss-nth-child-fix@^2.0.0": "https://registry.yarnpkg.com/postcss-nth-child-fix/-/postcss-nth-child-fix-2.0.0.tgz#d38df7693a373779925f43ee1176e7259c5d9c74",
@@ -502,7 +501,7 @@
"postcss-pseudoelements@^3.0.0": "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz#6c682177c7900ba053b6df17f8c590284c7b8bbc",
"postcss-pseudoelements@^5.0.0": "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-5.0.0.tgz#eef194e8d524645ca520a949e95e518e812402cb",
"postcss-quantity-queries@^0.5.0": "https://registry.yarnpkg.com/postcss-quantity-queries/-/postcss-quantity-queries-0.5.0.tgz#52b6717fcc8d9925ae64cff43340870fe15516ab",
- "postcss-reduce-initial@^6.0.1": "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz#37621ba31a18fd75eb9c76e818cca2a2adb13238",
+ "postcss-reduce-initial@^6.0.2": "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz#763d25902406c872264041df69f182eb15a5d9be",
"postcss-reduce-transforms@^6.0.1": "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz#7bf59d7c6e7066e3b18ef17237d2344bd3da6d75",
"postcss-replace-overflow-wrap@^4.0.0": "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319",
"postcss-reporter@^5.0.0": "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-5.0.0.tgz#a14177fd1342829d291653f2786efd67110332c3",
@@ -511,13 +510,12 @@
"postcss-selector-not@^7.0.1": "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-7.0.1.tgz#8142e90c8eb6c8c5faecb3e9d96d4353d02e94fb",
"postcss-selector-parser@^1.3.0": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281",
"postcss-selector-parser@^2.2.2": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90",
- "postcss-selector-parser@^6.0.10": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3",
- "postcss-selector-parser@^6.0.11": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3",
- "postcss-selector-parser@^6.0.13": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3",
- "postcss-selector-parser@^6.0.4": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3",
- "postcss-selector-parser@^6.0.5": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.14.tgz#9d45f1afbebedae6811a17f49d09754f2ad153b3",
- "postcss-svgo@^6.0.1": "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.1.tgz#6bf63713ef5cb40f1bedd2c2cfca2486b41d5184",
- "postcss-unique-selectors@^6.0.1": "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz#e6d071c2ea64ce265eb55ea9c170ff951183c712",
+ "postcss-selector-parser@^6.0.10": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535",
+ "postcss-selector-parser@^6.0.11": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535",
+ "postcss-selector-parser@^6.0.13": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535",
+ "postcss-selector-parser@^6.0.15": "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535",
+ "postcss-svgo@^6.0.2": "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.2.tgz#dbc9d03e7f346bc0d82443078602a951e0214836",
+ "postcss-unique-selectors@^6.0.2": "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz#09a34a5a31a649d3e9bca5962af0616f39d071d2",
"postcss-unopacity@^1.0.1": "https://registry.yarnpkg.com/postcss-unopacity/-/postcss-unopacity-1.0.1.tgz#3c4b199b98bda274bd308830d4c0f2b1058b00f7",
"postcss-unroot@^1.0.2": "https://registry.yarnpkg.com/postcss-unroot/-/postcss-unroot-1.0.2.tgz#4441bc206c99c4818bcbd014f49dba1cb9e9b47f",
"postcss-value-parser@^3.2.3": "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281",
@@ -543,7 +541,7 @@
"postcss@^7.0.2": "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309",
"postcss@^7.0.7": "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309",
"postcss@^8.4.21": "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9",
- "postcss@^8.4.31": "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9",
+ "postcss@^8.4.32": "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9",
"pretty-hrtime@^1.0.3": "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1",
"queue-microtask@^1.2.2": "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243",
"read-cache@^1.0.0": "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774",
@@ -596,13 +594,13 @@
"strip-ansi@^3.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
"strip-ansi@^6.0.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
"strip-ansi@^6.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
- "stylehacks@^6.0.1": "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.1.tgz#c103f0149e268a290a0dda3fce8fd4c5459a13c3",
+ "stylehacks@^6.0.2": "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.2.tgz#5bf2654561752547d4548765f35c9a49659b3742",
"supports-color@^2.0.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7",
"supports-color@^3.2.3": "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6",
"supports-color@^5.3.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f",
"supports-color@^5.4.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f",
"supports-preserve-symlinks-flag@^1.0.0": "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09",
- "svgo@^3.0.5": "https://registry.yarnpkg.com/svgo/-/svgo-3.1.0.tgz#7e63855c8da73297d5d5765e968f9679a0f8d24a",
+ "svgo@^3.2.0": "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d",
"thenby@^1.3.4": "https://registry.yarnpkg.com/thenby/-/thenby-1.3.4.tgz#81581f6e1bb324c6dedeae9bfc28e59b1a2201cc",
"through2@^0.6.1": "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48",
"through2@~0.6.1": "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48",
@@ -636,5 +634,63 @@
"yargs@~3.10.0": "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
},
"files": [],
- "artifacts": {}
+ "artifacts": {
+ "phantomjs-prebuilt@2.1.16": [
+ "lib",
+ "lib/location.js",
+ "lib/phantom",
+ "lib/phantom/ChangeLog",
+ "lib/phantom/LICENSE.BSD",
+ "lib/phantom/README.md",
+ "lib/phantom/bin",
+ "lib/phantom/bin/phantomjs",
+ "lib/phantom/examples",
+ "lib/phantom/examples/arguments.js",
+ "lib/phantom/examples/child_process-examples.js",
+ "lib/phantom/examples/colorwheel.js",
+ "lib/phantom/examples/countdown.js",
+ "lib/phantom/examples/detectsniff.js",
+ "lib/phantom/examples/echoToFile.js",
+ "lib/phantom/examples/features.js",
+ "lib/phantom/examples/fibo.js",
+ "lib/phantom/examples/hello.js",
+ "lib/phantom/examples/injectme.js",
+ "lib/phantom/examples/loadspeed.js",
+ "lib/phantom/examples/loadurlwithoutcss.js",
+ "lib/phantom/examples/modernizr.js",
+ "lib/phantom/examples/module.js",
+ "lib/phantom/examples/netlog.js",
+ "lib/phantom/examples/netsniff.js",
+ "lib/phantom/examples/openurlwithproxy.js",
+ "lib/phantom/examples/outputEncoding.js",
+ "lib/phantom/examples/page_events.js",
+ "lib/phantom/examples/pagecallback.js",
+ "lib/phantom/examples/phantomwebintro.js",
+ "lib/phantom/examples/post.js",
+ "lib/phantom/examples/postjson.js",
+ "lib/phantom/examples/postserver.js",
+ "lib/phantom/examples/printenv.js",
+ "lib/phantom/examples/printheaderfooter.js",
+ "lib/phantom/examples/printmargins.js",
+ "lib/phantom/examples/rasterize.js",
+ "lib/phantom/examples/render_multi_url.js",
+ "lib/phantom/examples/responsive-screenshot.js",
+ "lib/phantom/examples/run-jasmine.js",
+ "lib/phantom/examples/run-jasmine2.js",
+ "lib/phantom/examples/run-qunit.js",
+ "lib/phantom/examples/scandir.js",
+ "lib/phantom/examples/server.js",
+ "lib/phantom/examples/serverkeepalive.js",
+ "lib/phantom/examples/simpleserver.js",
+ "lib/phantom/examples/sleepsort.js",
+ "lib/phantom/examples/stdin-stdout-stderr.js",
+ "lib/phantom/examples/universe.js",
+ "lib/phantom/examples/unrandomize.js",
+ "lib/phantom/examples/useragent.js",
+ "lib/phantom/examples/version.js",
+ "lib/phantom/examples/waitfor.js",
+ "lib/phantom/examples/walk_through_frames.js",
+ "lib/phantom/third-party.txt"
+ ]
+ }
} \ No newline at end of file
diff --git a/node_modules/@babel/core/lib/gensync-utils/functional.js b/node_modules/@babel/core/lib/gensync-utils/functional.js
index 60d5b940..d7f77554 100644
--- a/node_modules/@babel/core/lib/gensync-utils/functional.js
+++ b/node_modules/@babel/core/lib/gensync-utils/functional.js
@@ -8,24 +8,49 @@ var _async = require("./async.js");
function once(fn) {
let result;
let resultP;
+ let promiseReferenced = false;
return function* () {
- if (result) return result;
- if (!(yield* (0, _async.isAsync)())) return result = yield* fn();
- if (resultP) return yield* (0, _async.waitFor)(resultP);
- let resolve, reject;
- resultP = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- try {
- result = yield* fn();
- resultP = null;
- resolve(result);
- return result;
- } catch (error) {
- reject(error);
- throw error;
+ if (!result) {
+ if (resultP) {
+ promiseReferenced = true;
+ return yield* (0, _async.waitFor)(resultP);
+ }
+ if (!(yield* (0, _async.isAsync)())) {
+ try {
+ result = {
+ ok: true,
+ value: yield* fn()
+ };
+ } catch (error) {
+ result = {
+ ok: false,
+ value: error
+ };
+ }
+ } else {
+ let resolve, reject;
+ resultP = new Promise((res, rej) => {
+ resolve = res;
+ reject = rej;
+ });
+ try {
+ result = {
+ ok: true,
+ value: yield* fn()
+ };
+ resultP = null;
+ if (promiseReferenced) resolve(result.value);
+ } catch (error) {
+ result = {
+ ok: false,
+ value: error
+ };
+ resultP = null;
+ if (promiseReferenced) reject(error);
+ }
+ }
}
+ if (result.ok) return result.value;else throw result.value;
};
}
0 && 0;
diff --git a/node_modules/@babel/core/lib/gensync-utils/functional.js.map b/node_modules/@babel/core/lib/gensync-utils/functional.js.map
index 07eaf547..3841d0a6 100644
--- a/node_modules/@babel/core/lib/gensync-utils/functional.js.map
+++ b/node_modules/@babel/core/lib/gensync-utils/functional.js.map
@@ -1 +1 @@
-{"version":3,"names":["_async","require","once","fn","result","resultP","isAsync","waitFor","resolve","reject","Promise","res","rej","error"],"sources":["../../src/gensync-utils/functional.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async.ts\";\n\nexport function once<R>(fn: () => Handler<R>): () => Handler<R> {\n let result: R;\n let resultP: Promise<R>;\n return function* () {\n if (result) return result;\n if (!(yield* isAsync())) return (result = yield* fn());\n if (resultP) return yield* waitFor(resultP);\n\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = yield* fn();\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n resolve(result);\n return result;\n } catch (error) {\n reject(error);\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,IAAIA,CAAIC,EAAoB,EAAoB;EAC9D,IAAIC,MAAS;EACb,IAAIC,OAAmB;EACvB,OAAO,aAAa;IAClB,IAAID,MAAM,EAAE,OAAOA,MAAM;IACzB,IAAI,EAAE,OAAO,IAAAE,cAAO,EAAC,CAAC,CAAC,EAAE,OAAQF,MAAM,GAAG,OAAOD,EAAE,CAAC,CAAC;IACrD,IAAIE,OAAO,EAAE,OAAO,OAAO,IAAAE,cAAO,EAACF,OAAO,CAAC;IAE3C,IAAIG,OAA4B,EAAEC,MAAgC;IAClEJ,OAAO,GAAG,IAAIK,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;MAClCJ,OAAO,GAAGG,GAAG;MACbF,MAAM,GAAGG,GAAG;IACd,CAAC,CAAC;IAEF,IAAI;MACFR,MAAM,GAAG,OAAOD,EAAE,CAAC,CAAC;MAGpBE,OAAO,GAAG,IAAI;MACdG,OAAO,CAACJ,MAAM,CAAC;MACf,OAAOA,MAAM;IACf,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdJ,MAAM,CAACI,KAAK,CAAC;MACb,MAAMA,KAAK;IACb;EACF,CAAC;AACH;AAAC"} \ No newline at end of file
+{"version":3,"names":["_async","require","once","fn","result","resultP","promiseReferenced","waitFor","isAsync","ok","value","error","resolve","reject","Promise","res","rej"],"sources":["../../src/gensync-utils/functional.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async.ts\";\n\nexport function once<R>(fn: () => Handler<R>): () => Handler<R> {\n let result: { ok: true; value: R } | { ok: false; value: unknown };\n let resultP: Promise<R>;\n let promiseReferenced = false;\n return function* () {\n if (!result) {\n if (resultP) {\n promiseReferenced = true;\n return yield* waitFor(resultP);\n }\n\n if (!(yield* isAsync())) {\n try {\n result = { ok: true, value: yield* fn() };\n } catch (error) {\n result = { ok: false, value: error };\n }\n } else {\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = { ok: true, value: yield* fn() };\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n // We only resolve/reject the promise if it has been actually\n // referenced. If there are no listeners we can forget about it.\n // In the reject case, this avoid uncatchable unhandledRejection\n // events.\n if (promiseReferenced) resolve(result.value);\n } catch (error) {\n result = { ok: false, value: error };\n resultP = null;\n if (promiseReferenced) reject(error);\n }\n }\n }\n\n if (result.ok) return result.value;\n else throw result.value;\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,IAAIA,CAAIC,EAAoB,EAAoB;EAC9D,IAAIC,MAA8D;EAClE,IAAIC,OAAmB;EACvB,IAAIC,iBAAiB,GAAG,KAAK;EAC7B,OAAO,aAAa;IAClB,IAAI,CAACF,MAAM,EAAE;MACX,IAAIC,OAAO,EAAE;QACXC,iBAAiB,GAAG,IAAI;QACxB,OAAO,OAAO,IAAAC,cAAO,EAACF,OAAO,CAAC;MAChC;MAEA,IAAI,EAAE,OAAO,IAAAG,cAAO,EAAC,CAAC,CAAC,EAAE;QACvB,IAAI;UACFJ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;QAC3C,CAAC,CAAC,OAAOQ,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;QACtC;MACF,CAAC,MAAM;QACL,IAAIC,OAA4B,EAAEC,MAAgC;QAClER,OAAO,GAAG,IAAIS,OAAO,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;UAClCJ,OAAO,GAAGG,GAAG;UACbF,MAAM,GAAGG,GAAG;QACd,CAAC,CAAC;QAEF,IAAI;UACFZ,MAAM,GAAG;YAAEK,EAAE,EAAE,IAAI;YAAEC,KAAK,EAAE,OAAOP,EAAE,CAAC;UAAE,CAAC;UAGzCE,OAAO,GAAG,IAAI;UAKd,IAAIC,iBAAiB,EAAEM,OAAO,CAACR,MAAM,CAACM,KAAK,CAAC;QAC9C,CAAC,CAAC,OAAOC,KAAK,EAAE;UACdP,MAAM,GAAG;YAAEK,EAAE,EAAE,KAAK;YAAEC,KAAK,EAAEC;UAAM,CAAC;UACpCN,OAAO,GAAG,IAAI;UACd,IAAIC,iBAAiB,EAAEO,MAAM,CAACF,KAAK,CAAC;QACtC;MACF;IACF;IAEA,IAAIP,MAAM,CAACK,EAAE,EAAE,OAAOL,MAAM,CAACM,KAAK,CAAC,KAC9B,MAAMN,MAAM,CAACM,KAAK;EACzB,CAAC;AACH;AAAC"} \ No newline at end of file
diff --git a/node_modules/@babel/core/lib/index.js b/node_modules/@babel/core/lib/index.js
index 7c3fbe20..73056306 100644
--- a/node_modules/@babel/core/lib/index.js
+++ b/node_modules/@babel/core/lib/index.js
@@ -224,7 +224,7 @@ var _transformAst = require("./transform-ast.js");
var _parse = require("./parse.js");
var thisFile = require("./index.js");
;
-const version = exports.version = "7.23.6";
+const version = exports.version = "7.23.7";
const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]);
;
{
diff --git a/node_modules/@babel/core/package.json b/node_modules/@babel/core/package.json
index 8caea33b..fe62b899 100644
--- a/node_modules/@babel/core/package.json
+++ b/node_modules/@babel/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/core",
- "version": "7.23.6",
+ "version": "7.23.7",
"description": "Babel compiler core.",
"main": "./lib/index.js",
"author": "The Babel Team (https://babel.dev/team)",
@@ -51,10 +51,10 @@
"@babel/generator": "^7.23.6",
"@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.23.6",
+ "@babel/helpers": "^7.23.7",
"@babel/parser": "^7.23.6",
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.6",
+ "@babel/traverse": "^7.23.7",
"@babel/types": "^7.23.6",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -67,7 +67,7 @@
"@babel/plugin-syntax-flow": "^7.23.3",
"@babel/plugin-transform-flow-strip-types": "^7.23.3",
"@babel/plugin-transform-modules-commonjs": "^7.23.3",
- "@babel/preset-env": "^7.23.6",
+ "@babel/preset-env": "^7.23.7",
"@babel/preset-typescript": "^7.23.3",
"@jridgewell/trace-mapping": "^0.3.17",
"@types/convert-source-map": "^2.0.0",
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js
new file mode 100644
index 00000000..ac7c1dbc
--- /dev/null
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js
@@ -0,0 +1,137 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.buildDecoratedClass = buildDecoratedClass;
+exports.hasDecorators = hasDecorators;
+exports.hasOwnDecorators = hasOwnDecorators;
+var _core = require("@babel/core");
+var _helperReplaceSupers = require("@babel/helper-replace-supers");
+var _helperFunctionName = require("@babel/helper-function-name");
+function hasOwnDecorators(node) {
+ var _node$decorators;
+ return !!((_node$decorators = node.decorators) != null && _node$decorators.length);
+}
+function hasDecorators(node) {
+ return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);
+}
+function prop(key, value) {
+ if (!value) return null;
+ return _core.types.objectProperty(_core.types.identifier(key), value);
+}
+function method(key, body) {
+ return _core.types.objectMethod("method", _core.types.identifier(key), [], _core.types.blockStatement(body));
+}
+function takeDecorators(node) {
+ let result;
+ if (node.decorators && node.decorators.length > 0) {
+ result = _core.types.arrayExpression(node.decorators.map(decorator => decorator.expression));
+ }
+ node.decorators = undefined;
+ return result;
+}
+function getKey(node) {
+ if (node.computed) {
+ return node.key;
+ } else if (_core.types.isIdentifier(node.key)) {
+ return _core.types.stringLiteral(node.key.name);
+ } else {
+ return _core.types.stringLiteral(String(node.key.value));
+ }
+}
+function extractElementDescriptor(file, classRef, superRef, path) {
+ const isMethod = path.isClassMethod();
+ if (path.isPrivate()) {
+ throw path.buildCodeFrameError(`Private ${isMethod ? "methods" : "fields"} in decorated classes are not supported yet.`);
+ }
+ if (path.node.type === "ClassAccessorProperty") {
+ throw path.buildCodeFrameError(`Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+ }
+ if (path.node.type === "StaticBlock") {
+ throw path.buildCodeFrameError(`Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+ }
+ const {
+ node,
+ scope
+ } = path;
+ if (!path.isTSDeclareMethod()) {
+ new _helperReplaceSupers.default({
+ methodPath: path,
+ objectRef: classRef,
+ superRef,
+ file,
+ refToPreserve: classRef
+ }).replace();
+ }
+ const properties = [prop("kind", _core.types.stringLiteral(_core.types.isClassMethod(node) ? node.kind : "field")), prop("decorators", takeDecorators(node)), prop("static", node.static && _core.types.booleanLiteral(true)), prop("key", getKey(node))].filter(Boolean);
+ if (_core.types.isClassMethod(node)) {
+ const id = node.computed ? null : node.key;
+ const transformed = _core.types.toExpression(node);
+ properties.push(prop("value", (0, _helperFunctionName.default)({
+ node: transformed,
+ id,
+ scope
+ }) || transformed));
+ } else if (_core.types.isClassProperty(node) && node.value) {
+ properties.push(method("value", _core.template.statements.ast`return ${node.value}`));
+ } else {
+ properties.push(prop("value", scope.buildUndefinedNode()));
+ }
+ path.remove();
+ return _core.types.objectExpression(properties);
+}
+function addDecorateHelper(file) {
+ return file.addHelper("decorate");
+}
+function buildDecoratedClass(ref, path, elements, file) {
+ const {
+ node,
+ scope
+ } = path;
+ const initializeId = scope.generateUidIdentifier("initialize");
+ const isDeclaration = node.id && path.isDeclaration();
+ const isStrict = path.isInStrictMode();
+ const {
+ superClass
+ } = node;
+ node.type = "ClassDeclaration";
+ if (!node.id) node.id = _core.types.cloneNode(ref);
+ let superId;
+ if (superClass) {
+ superId = scope.generateUidIdentifierBasedOnNode(node.superClass, "super");
+ node.superClass = superId;
+ }
+ const classDecorators = takeDecorators(node);
+ const definitions = _core.types.arrayExpression(elements.filter(element => !element.node.abstract && element.node.type !== "TSIndexSignature").map(path => extractElementDescriptor(file, node.id, superId, path)));
+ const wrapperCall = _core.template.expression.ast`
+ ${addDecorateHelper(file)}(
+ ${classDecorators || _core.types.nullLiteral()},
+ function (${initializeId}, ${superClass ? _core.types.cloneNode(superId) : null}) {
+ ${node}
+ return { F: ${_core.types.cloneNode(node.id)}, d: ${definitions} };
+ },
+ ${superClass}
+ )
+ `;
+ if (!isStrict) {
+ wrapperCall.arguments[1].body.directives.push(_core.types.directive(_core.types.directiveLiteral("use strict")));
+ }
+ let replacement = wrapperCall;
+ let classPathDesc = "arguments.1.body.body.0";
+ if (isDeclaration) {
+ replacement = _core.template.statement.ast`let ${ref} = ${wrapperCall}`;
+ classPathDesc = "declarations.0.init." + classPathDesc;
+ }
+ return {
+ instanceNodes: [_core.template.statement.ast`
+ ${_core.types.cloneNode(initializeId)}(this)
+ `],
+ wrapClass(path) {
+ path.replaceWith(replacement);
+ return path.get(classPathDesc);
+ }
+ };
+}
+
+//# sourceMappingURL=decorators-2018-09.js.map
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map
new file mode 100644
index 00000000..051a19b5
--- /dev/null
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map
@@ -0,0 +1 @@
+{"version":3,"names":["_core","require","_helperReplaceSupers","_helperFunctionName","hasOwnDecorators","node","_node$decorators","decorators","length","hasDecorators","body","some","prop","key","value","t","objectProperty","identifier","method","objectMethod","blockStatement","takeDecorators","result","arrayExpression","map","decorator","expression","undefined","getKey","computed","isIdentifier","stringLiteral","name","String","extractElementDescriptor","file","classRef","superRef","path","isMethod","isClassMethod","isPrivate","buildCodeFrameError","type","scope","isTSDeclareMethod","ReplaceSupers","methodPath","objectRef","refToPreserve","replace","properties","kind","static","booleanLiteral","filter","Boolean","id","transformed","toExpression","push","nameFunction","isClassProperty","template","statements","ast","buildUndefinedNode","remove","objectExpression","addDecorateHelper","addHelper","buildDecoratedClass","ref","elements","initializeId","generateUidIdentifier","isDeclaration","isStrict","isInStrictMode","superClass","cloneNode","superId","generateUidIdentifierBasedOnNode","classDecorators","definitions","element","abstract","wrapperCall","nullLiteral","arguments","directives","directive","directiveLiteral","replacement","classPathDesc","statement","instanceNodes","wrapClass","replaceWith","get"],"sources":["../src/decorators-2018-09.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nimport { types as t, template } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport nameFunction from \"@babel/helper-function-name\";\n\ntype Decoratable = Extract<t.Node, { decorators?: t.Decorator[] | null }>;\n\nexport function hasOwnDecorators(node: t.Class | t.ClassBody[\"body\"][number]) {\n // @ts-expect-error: 'decorators' not in TSIndexSignature\n return !!node.decorators?.length;\n}\n\nexport function hasDecorators(node: t.Class) {\n return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);\n}\n\nfunction prop(key: string, value?: t.Expression) {\n if (!value) return null;\n return t.objectProperty(t.identifier(key), value);\n}\n\nfunction method(key: string, body: t.Statement[]) {\n return t.objectMethod(\n \"method\",\n t.identifier(key),\n [],\n t.blockStatement(body),\n );\n}\n\nfunction takeDecorators(node: Decoratable) {\n let result: t.ArrayExpression | undefined;\n if (node.decorators && node.decorators.length > 0) {\n result = t.arrayExpression(\n node.decorators.map(decorator => decorator.expression),\n );\n }\n node.decorators = undefined;\n return result;\n}\n\ntype AcceptedElement = Exclude<ClassElement, t.TSIndexSignature>;\ntype SupportedElement = Exclude<\n AcceptedElement,\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.StaticBlock\n>;\n\nfunction getKey(node: SupportedElement) {\n if (node.computed) {\n return node.key;\n } else if (t.isIdentifier(node.key)) {\n return t.stringLiteral(node.key.name);\n } else {\n return t.stringLiteral(\n String(\n // A non-identifier non-computed key\n (node.key as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value,\n ),\n );\n }\n}\n\nfunction extractElementDescriptor(\n file: File,\n classRef: t.Identifier,\n superRef: t.Identifier,\n path: NodePath<AcceptedElement>,\n) {\n const isMethod = path.isClassMethod();\n if (path.isPrivate()) {\n throw path.buildCodeFrameError(\n `Private ${\n isMethod ? \"methods\" : \"fields\"\n } in decorated classes are not supported yet.`,\n );\n }\n if (path.node.type === \"ClassAccessorProperty\") {\n throw path.buildCodeFrameError(\n `Accessor properties are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n if (path.node.type === \"StaticBlock\") {\n throw path.buildCodeFrameError(\n `Static blocks are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n\n const { node, scope } = path as NodePath<SupportedElement>;\n\n if (!path.isTSDeclareMethod()) {\n new ReplaceSupers({\n methodPath: path as NodePath<\n Exclude<SupportedElement, t.TSDeclareMethod>\n >,\n objectRef: classRef,\n superRef,\n file,\n refToPreserve: classRef,\n }).replace();\n }\n\n const properties: t.ObjectExpression[\"properties\"] = [\n prop(\"kind\", t.stringLiteral(t.isClassMethod(node) ? node.kind : \"field\")),\n prop(\"decorators\", takeDecorators(node as Decoratable)),\n prop(\"static\", node.static && t.booleanLiteral(true)),\n prop(\"key\", getKey(node)),\n ].filter(Boolean);\n\n if (t.isClassMethod(node)) {\n const id = node.computed\n ? null\n : (node.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral);\n const transformed = t.toExpression(node);\n properties.push(\n prop(\n \"value\",\n nameFunction({ node: transformed, id, scope }) || transformed,\n ),\n );\n } else if (t.isClassProperty(node) && node.value) {\n properties.push(\n method(\"value\", template.statements.ast`return ${node.value}`),\n );\n } else {\n properties.push(prop(\"value\", scope.buildUndefinedNode()));\n }\n\n path.remove();\n\n return t.objectExpression(properties);\n}\n\nfunction addDecorateHelper(file: File) {\n return file.addHelper(\"decorate\");\n}\n\ntype ClassElement = t.Class[\"body\"][\"body\"][number];\ntype ClassElementPath = NodePath<ClassElement>;\n\nexport function buildDecoratedClass(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n elements: ClassElementPath[],\n file: File,\n) {\n const { node, scope } = path;\n const initializeId = scope.generateUidIdentifier(\"initialize\");\n const isDeclaration = node.id && path.isDeclaration();\n const isStrict = path.isInStrictMode();\n const { superClass } = node;\n\n node.type = \"ClassDeclaration\";\n if (!node.id) node.id = t.cloneNode(ref);\n\n let superId: t.Identifier;\n if (superClass) {\n superId = scope.generateUidIdentifierBasedOnNode(node.superClass, \"super\");\n node.superClass = superId;\n }\n\n const classDecorators = takeDecorators(node);\n const definitions = t.arrayExpression(\n elements\n .filter(\n element =>\n // @ts-expect-error Ignore TypeScript's abstract methods (see #10514)\n !element.node.abstract && element.node.type !== \"TSIndexSignature\",\n )\n .map(path =>\n extractElementDescriptor(\n file,\n node.id,\n superId,\n // @ts-expect-error TS can not exclude TSIndexSignature\n path,\n ),\n ),\n );\n\n const wrapperCall = template.expression.ast`\n ${addDecorateHelper(file)}(\n ${classDecorators || t.nullLiteral()},\n function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) {\n ${node}\n return { F: ${t.cloneNode(node.id)}, d: ${definitions} };\n },\n ${superClass}\n )\n ` as t.CallExpression & { arguments: [unknown, t.FunctionExpression] };\n\n if (!isStrict) {\n wrapperCall.arguments[1].body.directives.push(\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n\n let replacement: t.Node = wrapperCall;\n let classPathDesc = \"arguments.1.body.body.0\";\n if (isDeclaration) {\n replacement = template.statement.ast`let ${ref} = ${wrapperCall}`;\n classPathDesc = \"declarations.0.init.\" + classPathDesc;\n }\n\n return {\n instanceNodes: [\n template.statement.ast`\n ${t.cloneNode(initializeId)}(this)\n ` as t.ExpressionStatement,\n ],\n wrapClass(path: NodePath<t.Class>) {\n path.replaceWith(replacement);\n return path.get(classPathDesc) as NodePath;\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js
index 33af0cd8..2793f6ab 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js
@@ -3,134 +3,886 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
-exports.buildDecoratedClass = buildDecoratedClass;
-exports.hasDecorators = hasDecorators;
-exports.hasOwnDecorators = hasOwnDecorators;
+exports.default = _default;
var _core = require("@babel/core");
var _helperReplaceSupers = require("@babel/helper-replace-supers");
-var _helperFunctionName = require("@babel/helper-function-name");
-function hasOwnDecorators(node) {
- var _node$decorators;
- return !!((_node$decorators = node.decorators) != null && _node$decorators.length);
-}
-function hasDecorators(node) {
- return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);
-}
-function prop(key, value) {
- if (!value) return null;
- return _core.types.objectProperty(_core.types.identifier(key), value);
-}
-function method(key, body) {
- return _core.types.objectMethod("method", _core.types.identifier(key), [], _core.types.blockStatement(body));
-}
-function takeDecorators(node) {
- let result;
- if (node.decorators && node.decorators.length > 0) {
- result = _core.types.arrayExpression(node.decorators.map(decorator => decorator.expression));
- }
- node.decorators = undefined;
- return result;
-}
-function getKey(node) {
- if (node.computed) {
- return node.key;
- } else if (_core.types.isIdentifier(node.key)) {
- return _core.types.stringLiteral(node.key.name);
+var _helperSplitExportDeclaration = require("@babel/helper-split-export-declaration");
+var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers");
+function incrementId(id, idx = id.length - 1) {
+ if (idx === -1) {
+ id.unshift(65);
+ return;
+ }
+ const current = id[idx];
+ if (current === 90) {
+ id[idx] = 97;
+ } else if (current === 122) {
+ id[idx] = 65;
+ incrementId(id, idx - 1);
} else {
- return _core.types.stringLiteral(String(node.key.value));
+ id[idx] = current + 1;
}
}
-function extractElementDescriptor(file, classRef, superRef, path) {
- const isMethod = path.isClassMethod();
- if (path.isPrivate()) {
- throw path.buildCodeFrameError(`Private ${isMethod ? "methods" : "fields"} in decorated classes are not supported yet.`);
- }
- if (path.node.type === "ClassAccessorProperty") {
- throw path.buildCodeFrameError(`Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+function createPrivateUidGeneratorForClass(classPath) {
+ const currentPrivateId = [];
+ const privateNames = new Set();
+ classPath.traverse({
+ PrivateName(path) {
+ privateNames.add(path.node.id.name);
+ }
+ });
+ return () => {
+ let reifiedId;
+ do {
+ incrementId(currentPrivateId);
+ reifiedId = String.fromCharCode(...currentPrivateId);
+ } while (privateNames.has(reifiedId));
+ return _core.types.privateName(_core.types.identifier(reifiedId));
+ };
+}
+function createLazyPrivateUidGeneratorForClass(classPath) {
+ let generator;
+ return () => {
+ if (!generator) {
+ generator = createPrivateUidGeneratorForClass(classPath);
+ }
+ return generator();
+ };
+}
+function replaceClassWithVar(path, className) {
+ if (path.type === "ClassDeclaration") {
+ const id = path.node.id;
+ const className = id.name;
+ const varId = path.scope.generateUidIdentifierBasedOnNode(id);
+ const classId = _core.types.identifier(className);
+ path.scope.rename(className, varId.name);
+ path.get("id").replaceWith(classId);
+ return {
+ id: _core.types.cloneNode(varId),
+ path
+ };
+ } else {
+ let varId;
+ if (path.node.id) {
+ className = path.node.id.name;
+ varId = path.scope.parent.generateDeclaredUidIdentifier(className);
+ path.scope.rename(className, varId.name);
+ } else {
+ varId = path.scope.parent.generateDeclaredUidIdentifier(typeof className === "string" ? className : "decorated_class");
+ }
+ const newClassExpr = _core.types.classExpression(typeof className === "string" ? _core.types.identifier(className) : null, path.node.superClass, path.node.body);
+ const [newPath] = path.replaceWith(_core.types.sequenceExpression([newClassExpr, varId]));
+ return {
+ id: _core.types.cloneNode(varId),
+ path: newPath.get("expressions.0")
+ };
}
- if (path.node.type === "StaticBlock") {
- throw path.buildCodeFrameError(`Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.`);
+}
+function generateClassProperty(key, value, isStatic) {
+ if (key.type === "PrivateName") {
+ return _core.types.classPrivateProperty(key, value, undefined, isStatic);
+ } else {
+ return _core.types.classProperty(key, value, undefined, undefined, isStatic);
}
+}
+function addProxyAccessorsFor(className, element, originalKey, targetKey, version, isComputed = false) {
const {
- node,
- scope
- } = path;
- if (!path.isTSDeclareMethod()) {
- new _helperReplaceSupers.default({
- methodPath: path,
- objectRef: classRef,
- superRef,
- file,
- refToPreserve: classRef
- }).replace();
- }
- const properties = [prop("kind", _core.types.stringLiteral(_core.types.isClassMethod(node) ? node.kind : "field")), prop("decorators", takeDecorators(node)), prop("static", node.static && _core.types.booleanLiteral(true)), prop("key", getKey(node))].filter(Boolean);
- if (_core.types.isClassMethod(node)) {
- const id = node.computed ? null : node.key;
- const transformed = _core.types.toExpression(node);
- properties.push(prop("value", (0, _helperFunctionName.default)({
- node: transformed,
- id,
- scope
- }) || transformed));
- } else if (_core.types.isClassProperty(node) && node.value) {
- properties.push(method("value", _core.template.statements.ast`return ${node.value}`));
+ static: isStatic
+ } = element.node;
+ const thisArg = version === "2023-05" && isStatic ? className : _core.types.thisExpression();
+ const getterBody = _core.types.blockStatement([_core.types.returnStatement(_core.types.memberExpression(_core.types.cloneNode(thisArg), _core.types.cloneNode(targetKey)))]);
+ const setterBody = _core.types.blockStatement([_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.cloneNode(thisArg), _core.types.cloneNode(targetKey)), _core.types.identifier("v")))]);
+ let getter, setter;
+ if (originalKey.type === "PrivateName") {
+ getter = _core.types.classPrivateMethod("get", _core.types.cloneNode(originalKey), [], getterBody, isStatic);
+ setter = _core.types.classPrivateMethod("set", _core.types.cloneNode(originalKey), [_core.types.identifier("v")], setterBody, isStatic);
} else {
- properties.push(prop("value", scope.buildUndefinedNode()));
+ getter = _core.types.classMethod("get", _core.types.cloneNode(originalKey), [], getterBody, isComputed, isStatic);
+ setter = _core.types.classMethod("set", _core.types.cloneNode(originalKey), [_core.types.identifier("v")], setterBody, isComputed, isStatic);
+ }
+ element.insertAfter(setter);
+ element.insertAfter(getter);
+}
+function extractProxyAccessorsFor(targetKey, version) {
+ if (version !== "2023-05" && version !== "2023-01") {
+ return [_core.template.expression.ast`
+ function () {
+ return this.${_core.types.cloneNode(targetKey)};
+ }
+ `, _core.template.expression.ast`
+ function (value) {
+ this.${_core.types.cloneNode(targetKey)} = value;
+ }
+ `];
+ }
+ return [_core.template.expression.ast`
+ o => o.${_core.types.cloneNode(targetKey)}
+ `, _core.template.expression.ast`
+ (o, v) => o.${_core.types.cloneNode(targetKey)} = v
+ `];
+}
+const FIELD = 0;
+const ACCESSOR = 1;
+const METHOD = 2;
+const GETTER = 3;
+const SETTER = 4;
+const STATIC_OLD_VERSION = 5;
+const STATIC = 8;
+const DECORATORS_HAVE_THIS = 16;
+function getElementKind(element) {
+ switch (element.node.type) {
+ case "ClassProperty":
+ case "ClassPrivateProperty":
+ return FIELD;
+ case "ClassAccessorProperty":
+ return ACCESSOR;
+ case "ClassMethod":
+ case "ClassPrivateMethod":
+ if (element.node.kind === "get") {
+ return GETTER;
+ } else if (element.node.kind === "set") {
+ return SETTER;
+ } else {
+ return METHOD;
+ }
+ }
+}
+function isDecoratorInfo(info) {
+ return "decorators" in info;
+}
+function filteredOrderedDecoratorInfo(info) {
+ const filtered = info.filter(isDecoratorInfo);
+ return [...filtered.filter(el => el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER), ...filtered.filter(el => !el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER), ...filtered.filter(el => el.isStatic && el.kind === FIELD), ...filtered.filter(el => !el.isStatic && el.kind === FIELD)];
+}
+function generateDecorationList(decorators, decoratorsThis, version) {
+ const decsCount = decorators.length;
+ const hasOneThis = decoratorsThis.some(Boolean);
+ const decs = [];
+ for (let i = 0; i < decsCount; i++) {
+ if (version === "2023-05" && hasOneThis) {
+ decs.push(decoratorsThis[i] || _core.types.unaryExpression("void", _core.types.numericLiteral(0)));
+ }
+ decs.push(decorators[i]);
+ }
+ return {
+ hasThis: hasOneThis,
+ decs
+ };
+}
+function generateDecorationExprs(info, version) {
+ return _core.types.arrayExpression(filteredOrderedDecoratorInfo(info).map(el => {
+ const {
+ decs,
+ hasThis
+ } = generateDecorationList(el.decorators, el.decoratorsThis, version);
+ let flag = el.kind;
+ if (el.isStatic) {
+ flag += version === "2023-05" ? STATIC : STATIC_OLD_VERSION;
+ }
+ if (hasThis) flag += DECORATORS_HAVE_THIS;
+ return _core.types.arrayExpression([decs.length === 1 ? decs[0] : _core.types.arrayExpression(decs), _core.types.numericLiteral(flag), el.name, ...(el.privateMethods || [])]);
+ }));
+}
+function extractElementLocalAssignments(decorationInfo) {
+ const localIds = [];
+ for (const el of filteredOrderedDecoratorInfo(decorationInfo)) {
+ const {
+ locals
+ } = el;
+ if (Array.isArray(locals)) {
+ localIds.push(...locals);
+ } else if (locals !== undefined) {
+ localIds.push(locals);
+ }
}
- path.remove();
- return _core.types.objectExpression(properties);
+ return localIds;
}
-function addDecorateHelper(file) {
- return file.addHelper("decorate");
+function addCallAccessorsFor(element, key, getId, setId) {
+ element.insertAfter(_core.types.classPrivateMethod("get", _core.types.cloneNode(key), [], _core.types.blockStatement([_core.types.returnStatement(_core.types.callExpression(_core.types.cloneNode(getId), [_core.types.thisExpression()]))])));
+ element.insertAfter(_core.types.classPrivateMethod("set", _core.types.cloneNode(key), [_core.types.identifier("v")], _core.types.blockStatement([_core.types.expressionStatement(_core.types.callExpression(_core.types.cloneNode(setId), [_core.types.thisExpression(), _core.types.identifier("v")]))])));
}
-function buildDecoratedClass(ref, path, elements, file) {
+function isNotTsParameter(node) {
+ return node.type !== "TSParameterProperty";
+}
+function movePrivateAccessor(element, key, methodLocalVar, isStatic) {
+ let params;
+ let block;
+ if (element.node.kind === "set") {
+ params = [_core.types.identifier("v")];
+ block = [_core.types.expressionStatement(_core.types.callExpression(methodLocalVar, [_core.types.thisExpression(), _core.types.identifier("v")]))];
+ } else {
+ params = [];
+ block = [_core.types.returnStatement(_core.types.callExpression(methodLocalVar, [_core.types.thisExpression()]))];
+ }
+ element.replaceWith(_core.types.classPrivateMethod(element.node.kind, _core.types.cloneNode(key), params, _core.types.blockStatement(block), isStatic));
+}
+function isClassDecoratableElementPath(path) {
const {
- node,
- scope
+ type
} = path;
- const initializeId = scope.generateUidIdentifier("initialize");
- const isDeclaration = node.id && path.isDeclaration();
- const isStrict = path.isInStrictMode();
- const {
+ return type !== "TSDeclareMethod" && type !== "TSIndexSignature" && type !== "StaticBlock";
+}
+function staticBlockToIIFE(block) {
+ return _core.types.callExpression(_core.types.arrowFunctionExpression([], _core.types.blockStatement(block.body)), []);
+}
+function maybeSequenceExpression(exprs) {
+ if (exprs.length === 0) return _core.types.unaryExpression("void", _core.types.numericLiteral(0));
+ if (exprs.length === 1) return exprs[0];
+ return _core.types.sequenceExpression(exprs);
+}
+function createSetFunctionNameCall(state, className) {
+ return _core.types.callExpression(state.addHelper("setFunctionName"), [_core.types.thisExpression(), className]);
+}
+function createToPropertyKeyCall(state, propertyKey) {
+ return _core.types.callExpression(state.addHelper("toPropertyKey"), [propertyKey]);
+}
+function transformClass(path, state, constantSuper, version, className, propertyVisitor) {
+ const body = path.get("body.body");
+ const classDecorators = path.node.decorators;
+ let hasElementDecorators = false;
+ const generateClassPrivateUid = createLazyPrivateUidGeneratorForClass(path);
+ const assignments = [];
+ const scopeParent = path.scope.parent;
+ const memoiseExpression = (expression, hint) => {
+ const localEvaluatedId = scopeParent.generateDeclaredUidIdentifier(hint);
+ assignments.push(_core.types.assignmentExpression("=", localEvaluatedId, expression));
+ return _core.types.cloneNode(localEvaluatedId);
+ };
+ for (const element of body) {
+ if (!isClassDecoratableElementPath(element)) {
+ continue;
+ }
+ if (element.node.decorators && element.node.decorators.length > 0) {
+ switch (element.node.type) {
+ case "ClassProperty":
+ propertyVisitor.ClassProperty(element, state);
+ break;
+ case "ClassPrivateProperty":
+ propertyVisitor.ClassPrivateProperty(element, state);
+ break;
+ case "ClassAccessorProperty":
+ propertyVisitor.ClassAccessorProperty(element, state);
+ break;
+ }
+ hasElementDecorators = true;
+ } else if (element.node.type === "ClassAccessorProperty") {
+ propertyVisitor.ClassAccessorProperty(element, state);
+ const {
+ key,
+ value,
+ static: isStatic,
+ computed
+ } = element.node;
+ const newId = generateClassPrivateUid();
+ const newField = generateClassProperty(newId, value, isStatic);
+ const keyPath = element.get("key");
+ const [newPath] = element.replaceWith(newField);
+ addProxyAccessorsFor(path.node.id, newPath, computed && !keyPath.isConstantExpression() ? memoiseExpression(createToPropertyKeyCall(state, key), "computedKey") : key, newId, version, computed);
+ }
+ }
+ if (!classDecorators && !hasElementDecorators) {
+ if (assignments.length > 0) {
+ path.insertBefore(assignments.map(expr => _core.types.expressionStatement(expr)));
+ path.scope.crawl();
+ }
+ return;
+ }
+ const elementDecoratorInfo = [];
+ let firstFieldPath;
+ let constructorPath;
+ let requiresProtoInit = false;
+ let requiresStaticInit = false;
+ const decoratedPrivateMethods = new Set();
+ let protoInitLocal, staticInitLocal, classInitLocal, classIdLocal;
+ const decoratorsThis = new Map();
+ const maybeExtractDecorator = decorator => {
+ const {
+ expression
+ } = decorator;
+ if (version === "2023-05" && _core.types.isMemberExpression(expression)) {
+ let object;
+ if (_core.types.isSuper(expression.object) || _core.types.isThisExpression(expression.object)) {
+ object = memoiseExpression(_core.types.thisExpression(), "obj");
+ } else if (!scopeParent.isStatic(expression.object)) {
+ object = memoiseExpression(expression.object, "obj");
+ expression.object = object;
+ } else {
+ object = expression.object;
+ }
+ decoratorsThis.set(decorator, _core.types.cloneNode(object));
+ }
+ if (!scopeParent.isStatic(expression)) {
+ decorator.expression = memoiseExpression(expression, "dec");
+ }
+ };
+ let needsDeclaraionForClassBinding = false;
+ if (classDecorators) {
+ classInitLocal = scopeParent.generateDeclaredUidIdentifier("initClass");
+ needsDeclaraionForClassBinding = path.isClassDeclaration();
+ ({
+ id: classIdLocal,
+ path
+ } = replaceClassWithVar(path, className));
+ path.node.decorators = null;
+ for (const classDecorator of classDecorators) {
+ maybeExtractDecorator(classDecorator);
+ }
+ } else {
+ if (!path.node.id) {
+ path.node.id = path.scope.generateUidIdentifier("Class");
+ }
+ classIdLocal = _core.types.cloneNode(path.node.id);
+ }
+ let lastInstancePrivateName;
+ let needsInstancePrivateBrandCheck = false;
+ if (hasElementDecorators) {
+ for (const element of body) {
+ if (!isClassDecoratableElementPath(element)) {
+ continue;
+ }
+ const {
+ node
+ } = element;
+ const decorators = element.get("decorators");
+ const hasDecorators = Array.isArray(decorators) && decorators.length > 0;
+ if (hasDecorators) {
+ for (const decoratorPath of decorators) {
+ maybeExtractDecorator(decoratorPath.node);
+ }
+ }
+ const isComputed = "computed" in element.node && element.node.computed === true;
+ if (isComputed) {
+ if (!element.get("key").isConstantExpression()) {
+ node.key = memoiseExpression(createToPropertyKeyCall(state, node.key), "computedKey");
+ }
+ }
+ const kind = getElementKind(element);
+ const {
+ key
+ } = node;
+ const isPrivate = key.type === "PrivateName";
+ const isStatic = !!element.node.static;
+ let name = "computedKey";
+ if (isPrivate) {
+ name = key.id.name;
+ } else if (!isComputed && key.type === "Identifier") {
+ name = key.name;
+ }
+ if (isPrivate && !isStatic) {
+ if (hasDecorators) {
+ needsInstancePrivateBrandCheck = true;
+ }
+ if (_core.types.isClassPrivateProperty(node) || !lastInstancePrivateName) {
+ lastInstancePrivateName = key;
+ }
+ }
+ if (element.isClassMethod({
+ kind: "constructor"
+ })) {
+ constructorPath = element;
+ }
+ if (hasDecorators) {
+ let locals;
+ let privateMethods;
+ if (kind === ACCESSOR) {
+ const {
+ value
+ } = element.node;
+ const params = [_core.types.thisExpression()];
+ if (value) {
+ params.push(_core.types.cloneNode(value));
+ }
+ const newId = generateClassPrivateUid();
+ const newFieldInitId = element.scope.parent.generateDeclaredUidIdentifier(`init_${name}`);
+ const newValue = _core.types.callExpression(_core.types.cloneNode(newFieldInitId), params);
+ const newField = generateClassProperty(newId, newValue, isStatic);
+ const [newPath] = element.replaceWith(newField);
+ if (isPrivate) {
+ privateMethods = extractProxyAccessorsFor(newId, version);
+ const getId = newPath.scope.parent.generateDeclaredUidIdentifier(`get_${name}`);
+ const setId = newPath.scope.parent.generateDeclaredUidIdentifier(`set_${name}`);
+ addCallAccessorsFor(newPath, key, getId, setId);
+ locals = [newFieldInitId, getId, setId];
+ } else {
+ addProxyAccessorsFor(path.node.id, newPath, key, newId, version, isComputed);
+ locals = newFieldInitId;
+ }
+ } else if (kind === FIELD) {
+ const initId = element.scope.parent.generateDeclaredUidIdentifier(`init_${name}`);
+ const valuePath = element.get("value");
+ valuePath.replaceWith(_core.types.callExpression(_core.types.cloneNode(initId), [_core.types.thisExpression(), valuePath.node].filter(v => v)));
+ locals = initId;
+ if (isPrivate) {
+ privateMethods = extractProxyAccessorsFor(key, version);
+ }
+ } else if (isPrivate) {
+ locals = element.scope.parent.generateDeclaredUidIdentifier(`call_${name}`);
+ const replaceSupers = new _helperReplaceSupers.default({
+ constantSuper,
+ methodPath: element,
+ objectRef: classIdLocal,
+ superRef: path.node.superClass,
+ file: state.file,
+ refToPreserve: classIdLocal
+ });
+ replaceSupers.replace();
+ const {
+ params,
+ body,
+ async: isAsync
+ } = element.node;
+ privateMethods = [_core.types.functionExpression(undefined, params.filter(isNotTsParameter), body, isAsync)];
+ if (kind === GETTER || kind === SETTER) {
+ movePrivateAccessor(element, _core.types.cloneNode(key), _core.types.cloneNode(locals), isStatic);
+ } else {
+ const node = element.node;
+ path.node.body.body.unshift(_core.types.classPrivateProperty(key, _core.types.cloneNode(locals), [], node.static));
+ decoratedPrivateMethods.add(key.id.name);
+ element.remove();
+ }
+ }
+ let nameExpr;
+ if (isComputed) {
+ nameExpr = _core.types.cloneNode(key);
+ } else if (key.type === "PrivateName") {
+ nameExpr = _core.types.stringLiteral(key.id.name);
+ } else if (key.type === "Identifier") {
+ nameExpr = _core.types.stringLiteral(key.name);
+ } else {
+ nameExpr = _core.types.cloneNode(key);
+ }
+ elementDecoratorInfo.push({
+ kind,
+ decorators: decorators.map(d => d.node.expression),
+ decoratorsThis: decorators.map(d => decoratorsThis.get(d.node)),
+ name: nameExpr,
+ isStatic,
+ privateMethods,
+ locals
+ });
+ if (kind !== FIELD) {
+ if (isStatic) {
+ requiresStaticInit = true;
+ } else {
+ requiresProtoInit = true;
+ }
+ }
+ if (element.node) {
+ element.node.decorators = null;
+ }
+ if (!firstFieldPath && !isStatic && (kind === FIELD || kind === ACCESSOR)) {
+ firstFieldPath = element;
+ }
+ }
+ }
+ }
+ const elementDecorations = generateDecorationExprs(elementDecoratorInfo, version);
+ let classDecorationsFlag = 0;
+ let classDecorations = [];
+ if (classDecorators) {
+ const {
+ hasThis,
+ decs
+ } = generateDecorationList(classDecorators.map(el => el.expression), classDecorators.map(dec => decoratorsThis.get(dec)), version);
+ classDecorationsFlag = hasThis ? 1 : 0;
+ classDecorations = decs;
+ }
+ const elementLocals = extractElementLocalAssignments(elementDecoratorInfo);
+ if (requiresProtoInit) {
+ protoInitLocal = scopeParent.generateDeclaredUidIdentifier("initProto");
+ elementLocals.push(protoInitLocal);
+ const protoInitCall = _core.types.callExpression(_core.types.cloneNode(protoInitLocal), [_core.types.thisExpression()]);
+ if (firstFieldPath) {
+ const value = firstFieldPath.get("value");
+ const body = [protoInitCall];
+ if (value.node) {
+ body.push(value.node);
+ }
+ value.replaceWith(_core.types.sequenceExpression(body));
+ } else if (constructorPath) {
+ if (path.node.superClass) {
+ constructorPath.traverse({
+ CallExpression: {
+ exit(path) {
+ if (!path.get("callee").isSuper()) return;
+ path.replaceWith(_core.types.callExpression(_core.types.cloneNode(protoInitLocal), [path.node]));
+ path.skip();
+ }
+ },
+ ClassMethod(path) {
+ if (path.node.kind === "constructor") {
+ path.skip();
+ }
+ }
+ });
+ } else {
+ constructorPath.node.body.body.unshift(_core.types.expressionStatement(protoInitCall));
+ }
+ } else {
+ const body = [_core.types.expressionStatement(protoInitCall)];
+ if (path.node.superClass) {
+ body.unshift(_core.types.expressionStatement(_core.types.callExpression(_core.types.super(), [_core.types.spreadElement(_core.types.identifier("args"))])));
+ }
+ path.node.body.body.unshift(_core.types.classMethod("constructor", _core.types.identifier("constructor"), [_core.types.restElement(_core.types.identifier("args"))], _core.types.blockStatement(body)));
+ }
+ }
+ if (requiresStaticInit) {
+ staticInitLocal = scopeParent.generateDeclaredUidIdentifier("initStatic");
+ elementLocals.push(staticInitLocal);
+ }
+ if (decoratedPrivateMethods.size > 0) {
+ path.traverse({
+ PrivateName(path) {
+ if (!decoratedPrivateMethods.has(path.node.id.name)) return;
+ const parentPath = path.parentPath;
+ const parentParentPath = parentPath.parentPath;
+ if (parentParentPath.node.type === "AssignmentExpression" && parentParentPath.node.left === parentPath.node || parentParentPath.node.type === "UpdateExpression" || parentParentPath.node.type === "RestElement" || parentParentPath.node.type === "ArrayPattern" || parentParentPath.node.type === "ObjectProperty" && parentParentPath.node.value === parentPath.node && parentParentPath.parentPath.type === "ObjectPattern" || parentParentPath.node.type === "ForOfStatement" && parentParentPath.node.left === parentPath.node) {
+ throw path.buildCodeFrameError(`Decorated private methods are not updatable, but "#${path.node.id.name}" is updated via this expression.`);
+ }
+ }
+ });
+ }
+ const classLocals = [];
+ let classInitInjected = false;
+ const classInitCall = classInitLocal && _core.types.callExpression(_core.types.cloneNode(classInitLocal), []);
+ const originalClass = path.node;
+ if (classDecorators) {
+ classLocals.push(classIdLocal, classInitLocal);
+ const statics = [];
+ let staticBlocks = [];
+ path.get("body.body").forEach(element => {
+ if (element.isStaticBlock()) {
+ staticBlocks.push(element.node);
+ element.remove();
+ return;
+ }
+ const isProperty = element.isClassProperty() || element.isClassPrivateProperty();
+ if ((isProperty || element.isClassPrivateMethod()) && element.node.static) {
+ if (isProperty && staticBlocks.length > 0) {
+ const allValues = staticBlocks.map(staticBlockToIIFE);
+ if (element.node.value) allValues.push(element.node.value);
+ element.node.value = maybeSequenceExpression(allValues);
+ staticBlocks = [];
+ }
+ element.node.static = false;
+ statics.push(element.node);
+ element.remove();
+ }
+ });
+ if (statics.length > 0 || staticBlocks.length > 0) {
+ const staticsClass = _core.template.expression.ast`
+ class extends ${state.addHelper("identity")} {}
+ `;
+ staticsClass.body.body = [_core.types.staticBlock([_core.types.toStatement(originalClass, true) || _core.types.expressionStatement(originalClass)]), ...statics];
+ const constructorBody = [];
+ const newExpr = _core.types.newExpression(staticsClass, []);
+ if (staticBlocks.length > 0) {
+ constructorBody.push(...staticBlocks.map(staticBlockToIIFE));
+ }
+ if (classInitCall) {
+ classInitInjected = true;
+ constructorBody.push(classInitCall);
+ }
+ if (constructorBody.length > 0) {
+ constructorBody.unshift(_core.types.callExpression(_core.types.super(), [_core.types.cloneNode(classIdLocal)]));
+ staticsClass.body.body.push(_core.types.classMethod("constructor", _core.types.identifier("constructor"), [], _core.types.blockStatement([_core.types.expressionStatement(_core.types.sequenceExpression(constructorBody))])));
+ } else {
+ newExpr.arguments.push(_core.types.cloneNode(classIdLocal));
+ }
+ path.replaceWith(newExpr);
+ }
+ }
+ if (!classInitInjected && classInitCall) {
+ path.node.body.body.push(_core.types.staticBlock([_core.types.expressionStatement(classInitCall)]));
+ }
+ let {
superClass
- } = node;
- node.type = "ClassDeclaration";
- if (!node.id) node.id = _core.types.cloneNode(ref);
- let superId;
- if (superClass) {
- superId = scope.generateUidIdentifierBasedOnNode(node.superClass, "super");
- node.superClass = superId;
- }
- const classDecorators = takeDecorators(node);
- const definitions = _core.types.arrayExpression(elements.filter(element => !element.node.abstract && element.node.type !== "TSIndexSignature").map(path => extractElementDescriptor(file, node.id, superId, path)));
- const wrapperCall = _core.template.expression.ast`
- ${addDecorateHelper(file)}(
- ${classDecorators || _core.types.nullLiteral()},
- function (${initializeId}, ${superClass ? _core.types.cloneNode(superId) : null}) {
- ${node}
- return { F: ${_core.types.cloneNode(node.id)}, d: ${definitions} };
- },
- ${superClass}
- )
- `;
- if (!isStrict) {
- wrapperCall.arguments[1].body.directives.push(_core.types.directive(_core.types.directiveLiteral("use strict")));
- }
- let replacement = wrapperCall;
- let classPathDesc = "arguments.1.body.body.0";
- if (isDeclaration) {
- replacement = _core.template.statement.ast`let ${ref} = ${wrapperCall}`;
- classPathDesc = "declarations.0.init." + classPathDesc;
+ } = originalClass;
+ if (superClass && version === "2023-05") {
+ const id = path.scope.maybeGenerateMemoised(superClass);
+ if (id) {
+ originalClass.superClass = _core.types.assignmentExpression("=", id, superClass);
+ superClass = id;
+ }
+ }
+ originalClass.body.body.unshift(_core.types.staticBlock([_core.types.expressionStatement(createLocalsAssignment(elementLocals, classLocals, elementDecorations, _core.types.arrayExpression(classDecorations), _core.types.numericLiteral(classDecorationsFlag), needsInstancePrivateBrandCheck ? lastInstancePrivateName : null, typeof className === "object" ? className : undefined, _core.types.cloneNode(superClass), state, version)), requiresStaticInit && _core.types.expressionStatement(_core.types.callExpression(_core.types.cloneNode(staticInitLocal), [_core.types.thisExpression()]))].filter(Boolean)));
+ path.insertBefore(assignments.map(expr => _core.types.expressionStatement(expr)));
+ if (needsDeclaraionForClassBinding) {
+ path.insertBefore(_core.types.variableDeclaration("let", [_core.types.variableDeclarator(_core.types.cloneNode(classIdLocal))]));
+ }
+ path.scope.crawl();
+ return path;
+}
+function createLocalsAssignment(elementLocals, classLocals, elementDecorations, classDecorations, classDecorationsFlag, maybePrivateBranName, setClassName, superClass, state, version) {
+ let lhs, rhs;
+ const args = [setClassName ? createSetFunctionNameCall(state, setClassName) : _core.types.thisExpression(), elementDecorations, classDecorations];
+ {
+ if (version === "2021-12" || version === "2022-03" && !state.availableHelper("applyDecs2203R")) {
+ const lhs = _core.types.arrayPattern([...elementLocals, ...classLocals]);
+ const rhs = _core.types.callExpression(state.addHelper(version === "2021-12" ? "applyDecs" : "applyDecs2203"), args);
+ return _core.types.assignmentExpression("=", lhs, rhs);
+ }
+ }
+ if (version === "2023-05") {
+ if (maybePrivateBranName || superClass || classDecorationsFlag.value !== 0) {
+ args.push(classDecorationsFlag);
+ }
+ if (maybePrivateBranName) {
+ args.push(_core.template.expression.ast`
+ _ => ${_core.types.cloneNode(maybePrivateBranName)} in _
+ `);
+ } else if (superClass) {
+ args.push(_core.types.unaryExpression("void", _core.types.numericLiteral(0)));
+ }
+ if (superClass) args.push(superClass);
+ rhs = _core.types.callExpression(state.addHelper("applyDecs2305"), args);
+ } else if (version === "2023-01") {
+ if (maybePrivateBranName) {
+ args.push(_core.template.expression.ast`
+ _ => ${_core.types.cloneNode(maybePrivateBranName)} in _
+ `);
+ }
+ rhs = _core.types.callExpression(state.addHelper("applyDecs2301"), args);
+ } else {
+ rhs = _core.types.callExpression(state.addHelper("applyDecs2203R"), args);
+ }
+ if (elementLocals.length > 0) {
+ if (classLocals.length > 0) {
+ lhs = _core.types.objectPattern([_core.types.objectProperty(_core.types.identifier("e"), _core.types.arrayPattern(elementLocals)), _core.types.objectProperty(_core.types.identifier("c"), _core.types.arrayPattern(classLocals))]);
+ } else {
+ lhs = _core.types.arrayPattern(elementLocals);
+ rhs = _core.types.memberExpression(rhs, _core.types.identifier("e"), false, false);
+ }
+ } else {
+ lhs = _core.types.arrayPattern(classLocals);
+ rhs = _core.types.memberExpression(rhs, _core.types.identifier("c"), false, false);
+ }
+ return _core.types.assignmentExpression("=", lhs, rhs);
+}
+function isProtoKey(node) {
+ return node.type === "Identifier" ? node.name === "__proto__" : node.value === "__proto__";
+}
+function isDecorated(node) {
+ return node.decorators && node.decorators.length > 0;
+}
+function shouldTransformElement(node) {
+ switch (node.type) {
+ case "ClassAccessorProperty":
+ return true;
+ case "ClassMethod":
+ case "ClassProperty":
+ case "ClassPrivateMethod":
+ case "ClassPrivateProperty":
+ return isDecorated(node);
+ default:
+ return false;
+ }
+}
+function shouldTransformClass(node) {
+ return isDecorated(node) || node.body.body.some(shouldTransformElement);
+}
+function NamedEvaluationVisitoryFactory(isAnonymous, visitor) {
+ function handleComputedProperty(propertyPath, key, state) {
+ switch (key.type) {
+ case "StringLiteral":
+ return _core.types.stringLiteral(key.value);
+ case "NumericLiteral":
+ case "BigIntLiteral":
+ {
+ const keyValue = key.value + "";
+ propertyPath.get("key").replaceWith(_core.types.stringLiteral(keyValue));
+ return _core.types.stringLiteral(keyValue);
+ }
+ default:
+ {
+ const ref = propertyPath.scope.maybeGenerateMemoised(key);
+ propertyPath.get("key").replaceWith(_core.types.assignmentExpression("=", ref, createToPropertyKeyCall(state, key)));
+ return _core.types.cloneNode(ref);
+ }
+ }
}
return {
- instanceNodes: [_core.template.statement.ast`
- ${_core.types.cloneNode(initializeId)}(this)
- `],
- wrapClass(path) {
- path.replaceWith(replacement);
- return path.get(classPathDesc);
+ VariableDeclarator(path, state) {
+ const id = path.node.id;
+ if (id.type === "Identifier") {
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("init"));
+ if (isAnonymous(initializer)) {
+ const name = id.name;
+ visitor(initializer, state, name);
+ }
+ }
+ },
+ AssignmentExpression(path, state) {
+ const id = path.node.left;
+ if (id.type === "Identifier") {
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("right"));
+ if (isAnonymous(initializer)) {
+ switch (path.node.operator) {
+ case "=":
+ case "&&=":
+ case "||=":
+ case "??=":
+ visitor(initializer, state, id.name);
+ }
+ }
+ }
+ },
+ AssignmentPattern(path, state) {
+ const id = path.node.left;
+ if (id.type === "Identifier") {
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("right"));
+ if (isAnonymous(initializer)) {
+ const name = id.name;
+ visitor(initializer, state, name);
+ }
+ }
+ },
+ ObjectExpression(path, state) {
+ for (const propertyPath of path.get("properties")) {
+ const {
+ node
+ } = propertyPath;
+ if (node.type !== "ObjectProperty") continue;
+ const id = node.key;
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(propertyPath.get("value"));
+ if (isAnonymous(initializer)) {
+ if (!node.computed) {
+ if (!isProtoKey(id)) {
+ if (id.type === "Identifier") {
+ visitor(initializer, state, id.name);
+ } else {
+ const className = _core.types.stringLiteral(id.value + "");
+ visitor(initializer, state, className);
+ }
+ }
+ } else {
+ const ref = handleComputedProperty(propertyPath, id, state);
+ visitor(initializer, state, ref);
+ }
+ }
+ }
+ },
+ ClassPrivateProperty(path, state) {
+ const {
+ node
+ } = path;
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+ if (isAnonymous(initializer)) {
+ const className = _core.types.stringLiteral("#" + node.key.id.name);
+ visitor(initializer, state, className);
+ }
+ },
+ ClassAccessorProperty(path, state) {
+ const {
+ node
+ } = path;
+ const id = node.key;
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+ if (isAnonymous(initializer)) {
+ if (!node.computed) {
+ if (id.type === "Identifier") {
+ visitor(initializer, state, id.name);
+ } else if (id.type === "PrivateName") {
+ const className = _core.types.stringLiteral("#" + id.id.name);
+ visitor(initializer, state, className);
+ } else {
+ const className = _core.types.stringLiteral(id.value + "");
+ visitor(initializer, state, className);
+ }
+ } else {
+ const ref = handleComputedProperty(path, id, state);
+ visitor(initializer, state, ref);
+ }
+ }
+ },
+ ClassProperty(path, state) {
+ const {
+ node
+ } = path;
+ const id = node.key;
+ const initializer = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrappers)(path.get("value"));
+ if (isAnonymous(initializer)) {
+ if (!node.computed) {
+ if (id.type === "Identifier") {
+ visitor(initializer, state, id.name);
+ } else {
+ const className = _core.types.stringLiteral(id.value + "");
+ visitor(initializer, state, className);
+ }
+ } else {
+ const ref = handleComputedProperty(path, id, state);
+ visitor(initializer, state, ref);
+ }
+ }
+ }
+ };
+}
+function isDecoratedAnonymousClassExpression(path) {
+ return path.isClassExpression({
+ id: null
+ }) && shouldTransformClass(path.node);
+}
+function _default({
+ assertVersion,
+ assumption
+}, {
+ loose
+}, version, inherits) {
+ var _assumption;
+ {
+ if (version === "2023-05" || version === "2023-01") {
+ assertVersion("^7.21.0");
+ } else if (version === "2021-12") {
+ assertVersion("^7.16.0");
+ } else {
+ assertVersion("^7.19.0");
}
+ }
+ const VISITED = new WeakSet();
+ const constantSuper = (_assumption = assumption("constantSuper")) != null ? _assumption : loose;
+ const namedEvaluationVisitor = NamedEvaluationVisitoryFactory(isDecoratedAnonymousClassExpression, visitClass);
+ function visitClass(path, state, className) {
+ var _className, _node$id;
+ if (VISITED.has(path)) return;
+ const {
+ node
+ } = path;
+ (_className = className) != null ? _className : className = (_node$id = node.id) == null ? void 0 : _node$id.name;
+ const newPath = transformClass(path, state, constantSuper, version, className, namedEvaluationVisitor);
+ if (newPath) {
+ VISITED.add(newPath);
+ return;
+ }
+ VISITED.add(path);
+ }
+ return {
+ name: "proposal-decorators",
+ inherits: inherits,
+ visitor: Object.assign({
+ ExportDefaultDeclaration(path, state) {
+ const {
+ declaration
+ } = path.node;
+ if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && isDecorated(declaration)) {
+ const isAnonymous = !declaration.id;
+ const updatedVarDeclarationPath = (0, _helperSplitExportDeclaration.default)(path);
+ if (isAnonymous) {
+ visitClass(updatedVarDeclarationPath, state, _core.types.stringLiteral("default"));
+ }
+ }
+ },
+ ExportNamedDeclaration(path) {
+ const {
+ declaration
+ } = path.node;
+ if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && isDecorated(declaration)) {
+ (0, _helperSplitExportDeclaration.default)(path);
+ }
+ },
+ Class(path, state) {
+ visitClass(path, state, undefined);
+ }
+ }, namedEvaluationVisitor)
};
}
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map
index fc829aeb..51b546e0 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map
@@ -1 +1 @@
-{"version":3,"names":["_core","require","_helperReplaceSupers","_helperFunctionName","hasOwnDecorators","node","_node$decorators","decorators","length","hasDecorators","body","some","prop","key","value","t","objectProperty","identifier","method","objectMethod","blockStatement","takeDecorators","result","arrayExpression","map","decorator","expression","undefined","getKey","computed","isIdentifier","stringLiteral","name","String","extractElementDescriptor","file","classRef","superRef","path","isMethod","isClassMethod","isPrivate","buildCodeFrameError","type","scope","isTSDeclareMethod","ReplaceSupers","methodPath","objectRef","refToPreserve","replace","properties","kind","static","booleanLiteral","filter","Boolean","id","transformed","toExpression","push","nameFunction","isClassProperty","template","statements","ast","buildUndefinedNode","remove","objectExpression","addDecorateHelper","addHelper","buildDecoratedClass","ref","elements","initializeId","generateUidIdentifier","isDeclaration","isStrict","isInStrictMode","superClass","cloneNode","superId","generateUidIdentifierBasedOnNode","classDecorators","definitions","element","abstract","wrapperCall","nullLiteral","arguments","directives","directive","directiveLiteral","replacement","classPathDesc","statement","instanceNodes","wrapClass","replaceWith","get"],"sources":["../src/decorators.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nimport { types as t, template } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport nameFunction from \"@babel/helper-function-name\";\n\ntype Decoratable = Extract<t.Node, { decorators?: t.Decorator[] | null }>;\n\nexport function hasOwnDecorators(node: t.Class | t.ClassBody[\"body\"][number]) {\n // @ts-expect-error: 'decorators' not in TSIndexSignature\n return !!node.decorators?.length;\n}\n\nexport function hasDecorators(node: t.Class) {\n return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);\n}\n\nfunction prop(key: string, value?: t.Expression) {\n if (!value) return null;\n return t.objectProperty(t.identifier(key), value);\n}\n\nfunction method(key: string, body: t.Statement[]) {\n return t.objectMethod(\n \"method\",\n t.identifier(key),\n [],\n t.blockStatement(body),\n );\n}\n\nfunction takeDecorators(node: Decoratable) {\n let result: t.ArrayExpression | undefined;\n if (node.decorators && node.decorators.length > 0) {\n result = t.arrayExpression(\n node.decorators.map(decorator => decorator.expression),\n );\n }\n node.decorators = undefined;\n return result;\n}\n\ntype AcceptedElement = Exclude<ClassElement, t.TSIndexSignature>;\ntype SupportedElement = Exclude<\n AcceptedElement,\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.StaticBlock\n>;\n\nfunction getKey(node: SupportedElement) {\n if (node.computed) {\n return node.key;\n } else if (t.isIdentifier(node.key)) {\n return t.stringLiteral(node.key.name);\n } else {\n return t.stringLiteral(\n String(\n // A non-identifier non-computed key\n (node.key as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value,\n ),\n );\n }\n}\n\nfunction extractElementDescriptor(\n file: File,\n classRef: t.Identifier,\n superRef: t.Identifier,\n path: NodePath<AcceptedElement>,\n) {\n const isMethod = path.isClassMethod();\n if (path.isPrivate()) {\n throw path.buildCodeFrameError(\n `Private ${\n isMethod ? \"methods\" : \"fields\"\n } in decorated classes are not supported yet.`,\n );\n }\n if (path.node.type === \"ClassAccessorProperty\") {\n throw path.buildCodeFrameError(\n `Accessor properties are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n if (path.node.type === \"StaticBlock\") {\n throw path.buildCodeFrameError(\n `Static blocks are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n\n const { node, scope } = path as NodePath<SupportedElement>;\n\n if (!path.isTSDeclareMethod()) {\n new ReplaceSupers({\n methodPath: path as NodePath<\n Exclude<SupportedElement, t.TSDeclareMethod>\n >,\n objectRef: classRef,\n superRef,\n file,\n refToPreserve: classRef,\n }).replace();\n }\n\n const properties: t.ObjectExpression[\"properties\"] = [\n prop(\"kind\", t.stringLiteral(t.isClassMethod(node) ? node.kind : \"field\")),\n prop(\"decorators\", takeDecorators(node as Decoratable)),\n prop(\"static\", node.static && t.booleanLiteral(true)),\n prop(\"key\", getKey(node)),\n ].filter(Boolean);\n\n if (t.isClassMethod(node)) {\n const id = node.computed\n ? null\n : (node.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral);\n const transformed = t.toExpression(node);\n properties.push(\n prop(\n \"value\",\n nameFunction({ node: transformed, id, scope }) || transformed,\n ),\n );\n } else if (t.isClassProperty(node) && node.value) {\n properties.push(\n method(\"value\", template.statements.ast`return ${node.value}`),\n );\n } else {\n properties.push(prop(\"value\", scope.buildUndefinedNode()));\n }\n\n path.remove();\n\n return t.objectExpression(properties);\n}\n\nfunction addDecorateHelper(file: File) {\n return file.addHelper(\"decorate\");\n}\n\ntype ClassElement = t.Class[\"body\"][\"body\"][number];\ntype ClassElementPath = NodePath<ClassElement>;\n\nexport function buildDecoratedClass(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n elements: ClassElementPath[],\n file: File,\n) {\n const { node, scope } = path;\n const initializeId = scope.generateUidIdentifier(\"initialize\");\n const isDeclaration = node.id && path.isDeclaration();\n const isStrict = path.isInStrictMode();\n const { superClass } = node;\n\n node.type = \"ClassDeclaration\";\n if (!node.id) node.id = t.cloneNode(ref);\n\n let superId: t.Identifier;\n if (superClass) {\n superId = scope.generateUidIdentifierBasedOnNode(node.superClass, \"super\");\n node.superClass = superId;\n }\n\n const classDecorators = takeDecorators(node);\n const definitions = t.arrayExpression(\n elements\n .filter(\n element =>\n // @ts-expect-error Ignore TypeScript's abstract methods (see #10514)\n !element.node.abstract && element.node.type !== \"TSIndexSignature\",\n )\n .map(path =>\n extractElementDescriptor(\n file,\n node.id,\n superId,\n // @ts-expect-error TS can not exclude TSIndexSignature\n path,\n ),\n ),\n );\n\n const wrapperCall = template.expression.ast`\n ${addDecorateHelper(file)}(\n ${classDecorators || t.nullLiteral()},\n function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) {\n ${node}\n return { F: ${t.cloneNode(node.id)}, d: ${definitions} };\n },\n ${superClass}\n )\n ` as t.CallExpression & { arguments: [unknown, t.FunctionExpression] };\n\n if (!isStrict) {\n wrapperCall.arguments[1].body.directives.push(\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n\n let replacement: t.Node = wrapperCall;\n let classPathDesc = \"arguments.1.body.body.0\";\n if (isDeclaration) {\n replacement = template.statement.ast`let ${ref} = ${wrapperCall}`;\n classPathDesc = \"declarations.0.init.\" + classPathDesc;\n }\n\n return {\n instanceNodes: [\n template.statement.ast`\n ${t.cloneNode(initializeId)}(this)\n ` as t.ExpressionStatement,\n ],\n wrapClass(path: NodePath<t.Class>) {\n path.replaceWith(replacement);\n return path.get(classPathDesc) as NodePath;\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
+{"version":3,"names":["_core","require","_helperReplaceSupers","_helperSplitExportDeclaration","_helperSkipTransparentExpressionWrappers","incrementId","id","idx","length","unshift","current","createPrivateUidGeneratorForClass","classPath","currentPrivateId","privateNames","Set","traverse","PrivateName","path","add","node","name","reifiedId","String","fromCharCode","has","t","privateName","identifier","createLazyPrivateUidGeneratorForClass","generator","replaceClassWithVar","className","type","varId","scope","generateUidIdentifierBasedOnNode","classId","rename","get","replaceWith","cloneNode","parent","generateDeclaredUidIdentifier","newClassExpr","classExpression","superClass","body","newPath","sequenceExpression","generateClassProperty","key","value","isStatic","classPrivateProperty","undefined","classProperty","addProxyAccessorsFor","element","originalKey","targetKey","version","isComputed","static","thisArg","thisExpression","getterBody","blockStatement","returnStatement","memberExpression","setterBody","expressionStatement","assignmentExpression","getter","setter","classPrivateMethod","classMethod","insertAfter","extractProxyAccessorsFor","template","expression","ast","FIELD","ACCESSOR","METHOD","GETTER","SETTER","STATIC_OLD_VERSION","STATIC","DECORATORS_HAVE_THIS","getElementKind","kind","isDecoratorInfo","info","filteredOrderedDecoratorInfo","filtered","filter","el","generateDecorationList","decorators","decoratorsThis","decsCount","hasOneThis","some","Boolean","decs","i","push","unaryExpression","numericLiteral","hasThis","generateDecorationExprs","arrayExpression","map","flag","privateMethods","extractElementLocalAssignments","decorationInfo","localIds","locals","Array","isArray","addCallAccessorsFor","getId","setId","callExpression","isNotTsParameter","movePrivateAccessor","methodLocalVar","params","block","isClassDecoratableElementPath","staticBlockToIIFE","arrowFunctionExpression","maybeSequenceExpression","exprs","createSetFunctionNameCall","state","addHelper","createToPropertyKeyCall","propertyKey","transformClass","constantSuper","propertyVisitor","classDecorators","hasElementDecorators","generateClassPrivateUid","assignments","scopeParent","memoiseExpression","hint","localEvaluatedId","ClassProperty","ClassPrivateProperty","ClassAccessorProperty","computed","newId","newField","keyPath","isConstantExpression","insertBefore","expr","crawl","elementDecoratorInfo","firstFieldPath","constructorPath","requiresProtoInit","requiresStaticInit","decoratedPrivateMethods","protoInitLocal","staticInitLocal","classInitLocal","classIdLocal","Map","maybeExtractDecorator","decorator","isMemberExpression","object","isSuper","isThisExpression","set","needsDeclaraionForClassBinding","isClassDeclaration","classDecorator","generateUidIdentifier","lastInstancePrivateName","needsInstancePrivateBrandCheck","hasDecorators","decoratorPath","isPrivate","isClassPrivateProperty","isClassMethod","newFieldInitId","newValue","initId","valuePath","v","replaceSupers","ReplaceSupers","methodPath","objectRef","superRef","file","refToPreserve","replace","async","isAsync","functionExpression","remove","nameExpr","stringLiteral","d","elementDecorations","classDecorationsFlag","classDecorations","dec","elementLocals","protoInitCall","CallExpression","exit","skip","ClassMethod","super","spreadElement","restElement","size","parentPath","parentParentPath","left","buildCodeFrameError","classLocals","classInitInjected","classInitCall","originalClass","statics","staticBlocks","forEach","isStaticBlock","isProperty","isClassProperty","isClassPrivateMethod","allValues","staticsClass","staticBlock","toStatement","constructorBody","newExpr","newExpression","arguments","maybeGenerateMemoised","createLocalsAssignment","variableDeclaration","variableDeclarator","maybePrivateBranName","setClassName","lhs","rhs","args","availableHelper","arrayPattern","objectPattern","objectProperty","isProtoKey","isDecorated","shouldTransformElement","shouldTransformClass","NamedEvaluationVisitoryFactory","isAnonymous","visitor","handleComputedProperty","propertyPath","keyValue","ref","VariableDeclarator","initializer","skipTransparentExprWrappers","AssignmentExpression","operator","AssignmentPattern","ObjectExpression","isDecoratedAnonymousClassExpression","isClassExpression","_default","assertVersion","assumption","loose","inherits","_assumption","VISITED","WeakSet","namedEvaluationVisitor","visitClass","_className","_node$id","Object","assign","ExportDefaultDeclaration","declaration","updatedVarDeclarationPath","splitExportDeclaration","ExportNamedDeclaration","Class"],"sources":["../src/decorators.ts"],"sourcesContent":["import type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { types as t, template } from \"@babel/core\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport * as charCodes from \"charcodes\";\nimport type { PluginAPI, PluginObject, PluginPass } from \"@babel/core\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\ninterface Options {\n /** @deprecated use `constantSuper` assumption instead. Only supported in 2021-12 version. */\n loose?: boolean;\n}\n\ntype ClassDecoratableElement =\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty;\n\ntype ClassElement =\n | ClassDecoratableElement\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock;\n\ntype DecoratorVersionKind = \"2023-05\" | \"2023-01\" | \"2022-03\" | \"2021-12\";\n\nfunction incrementId(id: number[], idx = id.length - 1): void {\n // If index is -1, id needs an additional character, unshift A\n if (idx === -1) {\n id.unshift(charCodes.uppercaseA);\n return;\n }\n\n const current = id[idx];\n\n if (current === charCodes.uppercaseZ) {\n // if current is Z, skip to a\n id[idx] = charCodes.lowercaseA;\n } else if (current === charCodes.lowercaseZ) {\n // if current is z, reset to A and carry the 1\n id[idx] = charCodes.uppercaseA;\n incrementId(id, idx - 1);\n } else {\n // else, increment by one\n id[idx] = current + 1;\n }\n}\n\n/**\n * Generates a new private name that is unique to the given class. This can be\n * used to create extra class fields and methods for the implementation, while\n * keeping the length of those names as small as possible. This is important for\n * minification purposes (though private names can generally be minified,\n * transpilations and polyfills cannot yet).\n */\nfunction createPrivateUidGeneratorForClass(\n classPath: NodePath<t.ClassDeclaration | t.ClassExpression>,\n): () => t.PrivateName {\n const currentPrivateId: number[] = [];\n const privateNames = new Set<string>();\n\n classPath.traverse({\n PrivateName(path) {\n privateNames.add(path.node.id.name);\n },\n });\n\n return (): t.PrivateName => {\n let reifiedId;\n do {\n incrementId(currentPrivateId);\n reifiedId = String.fromCharCode(...currentPrivateId);\n } while (privateNames.has(reifiedId));\n\n return t.privateName(t.identifier(reifiedId));\n };\n}\n\n/**\n * Wraps the above generator function so that it's run lazily the first time\n * it's actually required. Several types of decoration do not require this, so it\n * saves iterating the class elements an additional time and allocating the space\n * for the Sets of element names.\n */\nfunction createLazyPrivateUidGeneratorForClass(\n classPath: NodePath<t.ClassDeclaration | t.ClassExpression>,\n): () => t.PrivateName {\n let generator: () => t.PrivateName;\n\n return (): t.PrivateName => {\n if (!generator) {\n generator = createPrivateUidGeneratorForClass(classPath);\n }\n\n return generator();\n };\n}\n\n/**\n * Takes a class definition and the desired class name if anonymous and\n * replaces it with an equivalent class declaration (path) which is then\n * assigned to a local variable (id). This allows us to reassign the local variable with the\n * decorated version of the class. The class definition retains its original\n * name so that `toString` is not affected, other references to the class\n * are renamed instead.\n */\nfunction replaceClassWithVar(\n path: NodePath<t.ClassDeclaration | t.ClassExpression>,\n className: string | t.Identifier | t.StringLiteral | undefined,\n): {\n id: t.Identifier;\n path: NodePath<t.ClassDeclaration | t.ClassExpression>;\n} {\n if (path.type === \"ClassDeclaration\") {\n const id = path.node.id;\n const className = id.name;\n const varId = path.scope.generateUidIdentifierBasedOnNode(id);\n const classId = t.identifier(className);\n\n path.scope.rename(className, varId.name);\n\n path.get(\"id\").replaceWith(classId);\n\n return { id: t.cloneNode(varId), path };\n } else {\n let varId: t.Identifier;\n\n if (path.node.id) {\n className = path.node.id.name;\n varId = path.scope.parent.generateDeclaredUidIdentifier(className);\n path.scope.rename(className, varId.name);\n } else {\n varId = path.scope.parent.generateDeclaredUidIdentifier(\n typeof className === \"string\" ? className : \"decorated_class\",\n );\n }\n\n const newClassExpr = t.classExpression(\n typeof className === \"string\" ? t.identifier(className) : null,\n path.node.superClass,\n path.node.body,\n );\n\n const [newPath] = path.replaceWith(\n t.sequenceExpression([newClassExpr, varId]),\n );\n\n return {\n id: t.cloneNode(varId),\n path: newPath.get(\"expressions.0\") as NodePath<t.ClassExpression>,\n };\n }\n}\n\nfunction generateClassProperty(\n key: t.PrivateName | t.Identifier,\n value: t.Expression | undefined,\n isStatic: boolean,\n): t.ClassPrivateProperty | t.ClassProperty {\n if (key.type === \"PrivateName\") {\n return t.classPrivateProperty(key, value, undefined, isStatic);\n } else {\n return t.classProperty(key, value, undefined, undefined, isStatic);\n }\n}\n\nfunction addProxyAccessorsFor(\n className: t.Identifier,\n element: NodePath<ClassDecoratableElement>,\n originalKey: t.PrivateName | t.Expression,\n targetKey: t.PrivateName,\n version: DecoratorVersionKind,\n isComputed = false,\n): void {\n const { static: isStatic } = element.node;\n\n const thisArg =\n version === \"2023-05\" && isStatic ? className : t.thisExpression();\n\n const getterBody = t.blockStatement([\n t.returnStatement(\n t.memberExpression(t.cloneNode(thisArg), t.cloneNode(targetKey)),\n ),\n ]);\n\n const setterBody = t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.cloneNode(thisArg), t.cloneNode(targetKey)),\n t.identifier(\"v\"),\n ),\n ),\n ]);\n\n let getter: t.ClassMethod | t.ClassPrivateMethod,\n setter: t.ClassMethod | t.ClassPrivateMethod;\n\n if (originalKey.type === \"PrivateName\") {\n getter = t.classPrivateMethod(\n \"get\",\n t.cloneNode(originalKey),\n [],\n getterBody,\n isStatic,\n );\n setter = t.classPrivateMethod(\n \"set\",\n t.cloneNode(originalKey),\n [t.identifier(\"v\")],\n setterBody,\n isStatic,\n );\n } else {\n getter = t.classMethod(\n \"get\",\n t.cloneNode(originalKey),\n [],\n getterBody,\n isComputed,\n isStatic,\n );\n setter = t.classMethod(\n \"set\",\n t.cloneNode(originalKey),\n [t.identifier(\"v\")],\n setterBody,\n isComputed,\n isStatic,\n );\n }\n\n element.insertAfter(setter);\n element.insertAfter(getter);\n}\n\nfunction extractProxyAccessorsFor(\n targetKey: t.PrivateName,\n version: DecoratorVersionKind,\n): (t.FunctionExpression | t.ArrowFunctionExpression)[] {\n if (version !== \"2023-05\" && version !== \"2023-01\") {\n return [\n template.expression.ast`\n function () {\n return this.${t.cloneNode(targetKey)};\n }\n ` as t.FunctionExpression,\n template.expression.ast`\n function (value) {\n this.${t.cloneNode(targetKey)} = value;\n }\n ` as t.FunctionExpression,\n ];\n }\n return [\n template.expression.ast`\n o => o.${t.cloneNode(targetKey)}\n ` as t.ArrowFunctionExpression,\n template.expression.ast`\n (o, v) => o.${t.cloneNode(targetKey)} = v\n ` as t.ArrowFunctionExpression,\n ];\n}\n\n// 3 bits reserved to this (0-7)\nconst FIELD = 0;\nconst ACCESSOR = 1;\nconst METHOD = 2;\nconst GETTER = 3;\nconst SETTER = 4;\n\nconst STATIC_OLD_VERSION = 5; // Before 2023-05\nconst STATIC = 8; // 1 << 3\nconst DECORATORS_HAVE_THIS = 16; // 1 << 3\n\nfunction getElementKind(element: NodePath<ClassDecoratableElement>): number {\n switch (element.node.type) {\n case \"ClassProperty\":\n case \"ClassPrivateProperty\":\n return FIELD;\n case \"ClassAccessorProperty\":\n return ACCESSOR;\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n if (element.node.kind === \"get\") {\n return GETTER;\n } else if (element.node.kind === \"set\") {\n return SETTER;\n } else {\n return METHOD;\n }\n }\n}\n\n// Information about the decorators applied to an element\ninterface DecoratorInfo {\n // The expressions of the decorators themselves\n decorators: t.Expression[];\n decoratorsThis: t.Expression[];\n\n // The kind of the decorated value, matches the kind value passed to applyDecs\n kind: number;\n\n // whether or not the field is static\n isStatic: boolean;\n\n // The name of the decorator\n name: t.StringLiteral | t.Expression;\n\n privateMethods:\n | (t.FunctionExpression | t.ArrowFunctionExpression)[]\n | undefined;\n\n // The names of local variables that will be used/returned from the decoration\n locals: t.Identifier | t.Identifier[] | undefined;\n}\n\n// Information about a computed property key. These must be evaluated\n// interspersed with decorator expressions, which is why they get added to the\n// array of DecoratorInfos later on.\ninterface ComputedPropInfo {\n localComputedNameId: t.Identifier;\n keyNode: t.Expression;\n}\n\nfunction isDecoratorInfo(\n info: DecoratorInfo | ComputedPropInfo,\n): info is DecoratorInfo {\n return \"decorators\" in info;\n}\n\nfunction filteredOrderedDecoratorInfo(\n info: (DecoratorInfo | ComputedPropInfo)[],\n): DecoratorInfo[] {\n const filtered = info.filter(isDecoratorInfo);\n\n return [\n ...filtered.filter(\n el => el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER,\n ),\n ...filtered.filter(\n el => !el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER,\n ),\n ...filtered.filter(el => el.isStatic && el.kind === FIELD),\n ...filtered.filter(el => !el.isStatic && el.kind === FIELD),\n ];\n}\n\nfunction generateDecorationList(\n decorators: t.Expression[],\n decoratorsThis: (t.Expression | null)[],\n version: DecoratorVersionKind,\n) {\n const decsCount = decorators.length;\n const hasOneThis = decoratorsThis.some(Boolean);\n const decs: t.Expression[] = [];\n for (let i = 0; i < decsCount; i++) {\n if (version === \"2023-05\" && hasOneThis) {\n decs.push(\n decoratorsThis[i] || t.unaryExpression(\"void\", t.numericLiteral(0)),\n );\n }\n decs.push(decorators[i]);\n }\n\n return { hasThis: hasOneThis, decs };\n}\n\nfunction generateDecorationExprs(\n info: (DecoratorInfo | ComputedPropInfo)[],\n version: DecoratorVersionKind,\n): t.ArrayExpression {\n return t.arrayExpression(\n filteredOrderedDecoratorInfo(info).map(el => {\n const { decs, hasThis } = generateDecorationList(\n el.decorators,\n el.decoratorsThis,\n version,\n );\n\n let flag = el.kind;\n if (el.isStatic) {\n flag += version === \"2023-05\" ? STATIC : STATIC_OLD_VERSION;\n }\n if (hasThis) flag += DECORATORS_HAVE_THIS;\n\n return t.arrayExpression([\n decs.length === 1 ? decs[0] : t.arrayExpression(decs),\n t.numericLiteral(flag),\n el.name,\n ...(el.privateMethods || []),\n ]);\n }),\n );\n}\n\nfunction extractElementLocalAssignments(\n decorationInfo: (DecoratorInfo | ComputedPropInfo)[],\n) {\n const localIds: t.Identifier[] = [];\n\n for (const el of filteredOrderedDecoratorInfo(decorationInfo)) {\n const { locals } = el;\n\n if (Array.isArray(locals)) {\n localIds.push(...locals);\n } else if (locals !== undefined) {\n localIds.push(locals);\n }\n }\n\n return localIds;\n}\n\nfunction addCallAccessorsFor(\n element: NodePath,\n key: t.PrivateName,\n getId: t.Identifier,\n setId: t.Identifier,\n) {\n element.insertAfter(\n t.classPrivateMethod(\n \"get\",\n t.cloneNode(key),\n [],\n t.blockStatement([\n t.returnStatement(\n t.callExpression(t.cloneNode(getId), [t.thisExpression()]),\n ),\n ]),\n ),\n );\n\n element.insertAfter(\n t.classPrivateMethod(\n \"set\",\n t.cloneNode(key),\n [t.identifier(\"v\")],\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(t.cloneNode(setId), [\n t.thisExpression(),\n t.identifier(\"v\"),\n ]),\n ),\n ]),\n ),\n );\n}\n\nfunction isNotTsParameter(\n node: t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty,\n): node is t.Identifier | t.Pattern | t.RestElement {\n return node.type !== \"TSParameterProperty\";\n}\n\nfunction movePrivateAccessor(\n element: NodePath<t.ClassPrivateMethod>,\n key: t.PrivateName,\n methodLocalVar: t.Identifier,\n isStatic: boolean,\n) {\n let params: (t.Identifier | t.RestElement)[];\n let block: t.Statement[];\n\n if (element.node.kind === \"set\") {\n params = [t.identifier(\"v\")];\n block = [\n t.expressionStatement(\n t.callExpression(methodLocalVar, [\n t.thisExpression(),\n t.identifier(\"v\"),\n ]),\n ),\n ];\n } else {\n params = [];\n block = [\n t.returnStatement(t.callExpression(methodLocalVar, [t.thisExpression()])),\n ];\n }\n\n element.replaceWith(\n t.classPrivateMethod(\n element.node.kind,\n t.cloneNode(key),\n params,\n t.blockStatement(block),\n isStatic,\n ),\n );\n}\n\nfunction isClassDecoratableElementPath(\n path: NodePath<ClassElement>,\n): path is NodePath<ClassDecoratableElement> {\n const { type } = path;\n\n return (\n type !== \"TSDeclareMethod\" &&\n type !== \"TSIndexSignature\" &&\n type !== \"StaticBlock\"\n );\n}\n\nfunction staticBlockToIIFE(block: t.StaticBlock) {\n return t.callExpression(\n t.arrowFunctionExpression([], t.blockStatement(block.body)),\n [],\n );\n}\n\nfunction maybeSequenceExpression(exprs: t.Expression[]) {\n if (exprs.length === 0) return t.unaryExpression(\"void\", t.numericLiteral(0));\n if (exprs.length === 1) return exprs[0];\n return t.sequenceExpression(exprs);\n}\n\nfunction createSetFunctionNameCall(\n state: PluginPass,\n className: t.Identifier | t.StringLiteral,\n) {\n return t.callExpression(state.addHelper(\"setFunctionName\"), [\n t.thisExpression(),\n className,\n ]);\n}\n\nfunction createToPropertyKeyCall(state: PluginPass, propertyKey: t.Expression) {\n return t.callExpression(state.addHelper(\"toPropertyKey\"), [propertyKey]);\n}\n\nfunction transformClass(\n path: NodePath<t.ClassExpression | t.ClassDeclaration>,\n state: PluginPass,\n constantSuper: boolean,\n version: DecoratorVersionKind,\n className: string | t.Identifier | t.StringLiteral | undefined,\n propertyVisitor: Visitor<PluginPass>,\n): NodePath {\n const body = path.get(\"body.body\");\n\n const classDecorators = path.node.decorators;\n let hasElementDecorators = false;\n\n const generateClassPrivateUid = createLazyPrivateUidGeneratorForClass(path);\n\n const assignments: t.AssignmentExpression[] = [];\n const scopeParent: Scope = path.scope.parent;\n const memoiseExpression = (expression: t.Expression, hint: string) => {\n const localEvaluatedId = scopeParent.generateDeclaredUidIdentifier(hint);\n assignments.push(t.assignmentExpression(\"=\", localEvaluatedId, expression));\n return t.cloneNode(localEvaluatedId);\n };\n\n // Iterate over the class to see if we need to decorate it, and also to\n // transform simple auto accessors which are not decorated\n for (const element of body) {\n if (!isClassDecoratableElementPath(element)) {\n continue;\n }\n\n if (element.node.decorators && element.node.decorators.length > 0) {\n switch (element.node.type) {\n case \"ClassProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassProperty should be callable. Improve typings.\n propertyVisitor.ClassProperty(\n element as NodePath<t.ClassProperty>,\n state,\n );\n break;\n case \"ClassPrivateProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassPrivateProperty should be callable. Improve typings.\n propertyVisitor.ClassPrivateProperty(\n element as NodePath<t.ClassPrivateProperty>,\n state,\n );\n break;\n case \"ClassAccessorProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassAccessorProperty should be callable. Improve typings.\n propertyVisitor.ClassAccessorProperty(\n element as NodePath<t.ClassAccessorProperty>,\n state,\n );\n break;\n }\n hasElementDecorators = true;\n } else if (element.node.type === \"ClassAccessorProperty\") {\n // @ts-expect-error todo: propertyVisitor.ClassAccessorProperty should be callable. Improve typings.\n propertyVisitor.ClassAccessorProperty(\n element as NodePath<t.ClassAccessorProperty>,\n state,\n );\n const { key, value, static: isStatic, computed } = element.node;\n\n const newId = generateClassPrivateUid();\n const newField = generateClassProperty(newId, value, isStatic);\n const keyPath = element.get(\"key\");\n const [newPath] = element.replaceWith(newField);\n\n addProxyAccessorsFor(\n path.node.id,\n newPath,\n computed && !keyPath.isConstantExpression()\n ? memoiseExpression(\n createToPropertyKeyCall(state, key as t.Expression),\n \"computedKey\",\n )\n : key,\n newId,\n version,\n computed,\n );\n }\n }\n\n if (!classDecorators && !hasElementDecorators) {\n // If nothing is decorated but we have assignments, it must be the memoised\n // computed keys of class accessors\n if (assignments.length > 0) {\n path.insertBefore(assignments.map(expr => t.expressionStatement(expr)));\n\n // Recrawl the scope to make sure new identifiers are properly synced\n path.scope.crawl();\n }\n // If nothing is decorated and no assignments inserted, return\n return;\n }\n\n const elementDecoratorInfo: (DecoratorInfo | ComputedPropInfo)[] = [];\n\n // The initializer of the first non-static field will be injected with the protoInit call\n let firstFieldPath:\n | NodePath<t.ClassProperty | t.ClassPrivateProperty>\n | undefined;\n let constructorPath: NodePath<t.ClassMethod> | undefined;\n let requiresProtoInit = false;\n let requiresStaticInit = false;\n const decoratedPrivateMethods = new Set<string>();\n\n let protoInitLocal: t.Identifier,\n staticInitLocal: t.Identifier,\n classInitLocal: t.Identifier,\n classIdLocal: t.Identifier;\n\n const decoratorsThis = new Map<t.Decorator, t.Expression>();\n const maybeExtractDecorator = (decorator: t.Decorator) => {\n const { expression } = decorator;\n if (version === \"2023-05\" && t.isMemberExpression(expression)) {\n let object;\n if (\n t.isSuper(expression.object) ||\n t.isThisExpression(expression.object)\n ) {\n object = memoiseExpression(t.thisExpression(), \"obj\");\n } else if (!scopeParent.isStatic(expression.object)) {\n object = memoiseExpression(expression.object, \"obj\");\n expression.object = object;\n } else {\n object = expression.object;\n }\n decoratorsThis.set(decorator, t.cloneNode(object));\n }\n if (!scopeParent.isStatic(expression)) {\n decorator.expression = memoiseExpression(expression, \"dec\");\n }\n };\n\n let needsDeclaraionForClassBinding = false;\n if (classDecorators) {\n classInitLocal = scopeParent.generateDeclaredUidIdentifier(\"initClass\");\n needsDeclaraionForClassBinding = path.isClassDeclaration();\n ({ id: classIdLocal, path } = replaceClassWithVar(path, className));\n\n path.node.decorators = null;\n\n for (const classDecorator of classDecorators) {\n maybeExtractDecorator(classDecorator);\n }\n } else {\n if (!path.node.id) {\n path.node.id = path.scope.generateUidIdentifier(\"Class\");\n }\n classIdLocal = t.cloneNode(path.node.id);\n }\n\n let lastInstancePrivateName: t.PrivateName;\n let needsInstancePrivateBrandCheck = false;\n\n if (hasElementDecorators) {\n for (const element of body) {\n if (!isClassDecoratableElementPath(element)) {\n continue;\n }\n\n const { node } = element;\n const decorators = element.get(\"decorators\");\n\n const hasDecorators = Array.isArray(decorators) && decorators.length > 0;\n\n if (hasDecorators) {\n for (const decoratorPath of decorators) {\n maybeExtractDecorator(decoratorPath.node);\n }\n }\n\n const isComputed =\n \"computed\" in element.node && element.node.computed === true;\n if (isComputed) {\n if (!element.get(\"key\").isConstantExpression()) {\n node.key = memoiseExpression(\n createToPropertyKeyCall(state, node.key as t.Expression),\n \"computedKey\",\n );\n }\n }\n\n const kind = getElementKind(element);\n const { key } = node;\n\n const isPrivate = key.type === \"PrivateName\";\n\n const isStatic = !!element.node.static;\n\n let name = \"computedKey\";\n\n if (isPrivate) {\n name = key.id.name;\n } else if (!isComputed && key.type === \"Identifier\") {\n name = key.name;\n }\n\n if (isPrivate && !isStatic) {\n if (hasDecorators) {\n needsInstancePrivateBrandCheck = true;\n }\n if (t.isClassPrivateProperty(node) || !lastInstancePrivateName) {\n lastInstancePrivateName = key;\n }\n }\n\n if (element.isClassMethod({ kind: \"constructor\" })) {\n constructorPath = element;\n }\n\n if (hasDecorators) {\n let locals: t.Identifier | t.Identifier[];\n let privateMethods: Array<\n t.FunctionExpression | t.ArrowFunctionExpression\n >;\n\n if (kind === ACCESSOR) {\n const { value } = element.node as t.ClassAccessorProperty;\n\n const params: t.Expression[] = [t.thisExpression()];\n\n if (value) {\n params.push(t.cloneNode(value));\n }\n\n const newId = generateClassPrivateUid();\n const newFieldInitId =\n element.scope.parent.generateDeclaredUidIdentifier(`init_${name}`);\n const newValue = t.callExpression(\n t.cloneNode(newFieldInitId),\n params,\n );\n\n const newField = generateClassProperty(newId, newValue, isStatic);\n const [newPath] = element.replaceWith(newField);\n\n if (isPrivate) {\n privateMethods = extractProxyAccessorsFor(newId, version);\n\n const getId = newPath.scope.parent.generateDeclaredUidIdentifier(\n `get_${name}`,\n );\n const setId = newPath.scope.parent.generateDeclaredUidIdentifier(\n `set_${name}`,\n );\n\n addCallAccessorsFor(newPath, key, getId, setId);\n\n locals = [newFieldInitId, getId, setId];\n } else {\n addProxyAccessorsFor(\n path.node.id,\n newPath,\n key,\n newId,\n version,\n isComputed,\n );\n locals = newFieldInitId;\n }\n } else if (kind === FIELD) {\n const initId = element.scope.parent.generateDeclaredUidIdentifier(\n `init_${name}`,\n );\n const valuePath = (\n element as NodePath<t.ClassProperty | t.ClassPrivateProperty>\n ).get(\"value\");\n\n valuePath.replaceWith(\n t.callExpression(\n t.cloneNode(initId),\n [t.thisExpression(), valuePath.node].filter(v => v),\n ),\n );\n\n locals = initId;\n\n if (isPrivate) {\n privateMethods = extractProxyAccessorsFor(key, version);\n }\n } else if (isPrivate) {\n locals = element.scope.parent.generateDeclaredUidIdentifier(\n `call_${name}`,\n );\n\n const replaceSupers = new ReplaceSupers({\n constantSuper,\n methodPath: element as NodePath<t.ClassPrivateMethod>,\n objectRef: classIdLocal,\n superRef: path.node.superClass,\n file: state.file,\n refToPreserve: classIdLocal,\n });\n\n replaceSupers.replace();\n\n const {\n params,\n body,\n async: isAsync,\n } = element.node as t.ClassPrivateMethod;\n\n privateMethods = [\n t.functionExpression(\n undefined,\n params.filter(isNotTsParameter),\n body,\n isAsync,\n ),\n ];\n\n if (kind === GETTER || kind === SETTER) {\n movePrivateAccessor(\n element as NodePath<t.ClassPrivateMethod>,\n t.cloneNode(key),\n t.cloneNode(locals),\n isStatic,\n );\n } else {\n const node = element.node as t.ClassPrivateMethod;\n\n // Unshift\n path.node.body.body.unshift(\n t.classPrivateProperty(key, t.cloneNode(locals), [], node.static),\n );\n\n decoratedPrivateMethods.add(key.id.name);\n\n element.remove();\n }\n }\n\n let nameExpr: t.Expression;\n\n if (isComputed) {\n nameExpr = t.cloneNode(key as t.Expression);\n } else if (key.type === \"PrivateName\") {\n nameExpr = t.stringLiteral(key.id.name);\n } else if (key.type === \"Identifier\") {\n nameExpr = t.stringLiteral(key.name);\n } else {\n nameExpr = t.cloneNode(key as t.Expression);\n }\n\n elementDecoratorInfo.push({\n kind,\n decorators: decorators.map(d => d.node.expression),\n decoratorsThis: decorators.map(d => decoratorsThis.get(d.node)),\n name: nameExpr,\n isStatic,\n privateMethods,\n locals,\n });\n\n if (kind !== FIELD) {\n if (isStatic) {\n requiresStaticInit = true;\n } else {\n requiresProtoInit = true;\n }\n }\n\n if (element.node) {\n element.node.decorators = null;\n }\n\n if (\n !firstFieldPath &&\n !isStatic &&\n (kind === FIELD || kind === ACCESSOR)\n ) {\n firstFieldPath = element as NodePath<\n t.ClassProperty | t.ClassPrivateProperty\n >;\n }\n }\n }\n }\n\n const elementDecorations = generateDecorationExprs(\n elementDecoratorInfo,\n version,\n );\n let classDecorationsFlag = 0;\n let classDecorations: t.Expression[] = [];\n if (classDecorators) {\n const { hasThis, decs } = generateDecorationList(\n classDecorators.map(el => el.expression),\n classDecorators.map(dec => decoratorsThis.get(dec)),\n version,\n );\n classDecorationsFlag = hasThis ? 1 : 0;\n classDecorations = decs;\n }\n\n const elementLocals: t.Identifier[] =\n extractElementLocalAssignments(elementDecoratorInfo);\n\n if (requiresProtoInit) {\n protoInitLocal = scopeParent.generateDeclaredUidIdentifier(\"initProto\");\n elementLocals.push(protoInitLocal);\n\n const protoInitCall = t.callExpression(t.cloneNode(protoInitLocal), [\n t.thisExpression(),\n ]);\n\n if (firstFieldPath) {\n const value = firstFieldPath.get(\"value\");\n const body: t.Expression[] = [protoInitCall];\n\n if (value.node) {\n body.push(value.node);\n }\n\n value.replaceWith(t.sequenceExpression(body));\n } else if (constructorPath) {\n if (path.node.superClass) {\n constructorPath.traverse({\n CallExpression: {\n exit(path) {\n if (!path.get(\"callee\").isSuper()) return;\n\n path.replaceWith(\n t.callExpression(t.cloneNode(protoInitLocal), [path.node]),\n );\n\n path.skip();\n },\n },\n ClassMethod(path) {\n if (path.node.kind === \"constructor\") {\n path.skip();\n }\n },\n });\n } else {\n constructorPath.node.body.body.unshift(\n t.expressionStatement(protoInitCall),\n );\n }\n } else {\n const body: t.Statement[] = [t.expressionStatement(protoInitCall)];\n\n if (path.node.superClass) {\n body.unshift(\n t.expressionStatement(\n t.callExpression(t.super(), [\n t.spreadElement(t.identifier(\"args\")),\n ]),\n ),\n );\n }\n\n path.node.body.body.unshift(\n t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [t.restElement(t.identifier(\"args\"))],\n t.blockStatement(body),\n ),\n );\n }\n }\n\n if (requiresStaticInit) {\n staticInitLocal = scopeParent.generateDeclaredUidIdentifier(\"initStatic\");\n elementLocals.push(staticInitLocal);\n }\n\n if (decoratedPrivateMethods.size > 0) {\n path.traverse({\n PrivateName(path) {\n if (!decoratedPrivateMethods.has(path.node.id.name)) return;\n\n const parentPath = path.parentPath;\n const parentParentPath = parentPath.parentPath;\n\n if (\n // this.bar().#x = 123;\n (parentParentPath.node.type === \"AssignmentExpression\" &&\n parentParentPath.node.left === parentPath.node) ||\n // this.#x++;\n parentParentPath.node.type === \"UpdateExpression\" ||\n // ([...this.#x] = foo);\n parentParentPath.node.type === \"RestElement\" ||\n // ([this.#x] = foo);\n parentParentPath.node.type === \"ArrayPattern\" ||\n // ({ a: this.#x } = bar);\n (parentParentPath.node.type === \"ObjectProperty\" &&\n parentParentPath.node.value === parentPath.node &&\n parentParentPath.parentPath.type === \"ObjectPattern\") ||\n // for (this.#x of []);\n (parentParentPath.node.type === \"ForOfStatement\" &&\n parentParentPath.node.left === parentPath.node)\n ) {\n throw path.buildCodeFrameError(\n `Decorated private methods are not updatable, but \"#${path.node.id.name}\" is updated via this expression.`,\n );\n }\n },\n });\n }\n\n const classLocals: t.Identifier[] = [];\n let classInitInjected = false;\n const classInitCall =\n classInitLocal && t.callExpression(t.cloneNode(classInitLocal), []);\n\n const originalClass = path.node;\n\n if (classDecorators) {\n classLocals.push(classIdLocal, classInitLocal);\n const statics: (\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassPrivateMethod\n )[] = [];\n let staticBlocks: t.StaticBlock[] = [];\n path.get(\"body.body\").forEach(element => {\n // Static blocks cannot be compiled to \"instance blocks\", but we can inline\n // them as IIFEs in the next property.\n if (element.isStaticBlock()) {\n staticBlocks.push(element.node);\n element.remove();\n return;\n }\n\n const isProperty =\n element.isClassProperty() || element.isClassPrivateProperty();\n\n if (\n (isProperty || element.isClassPrivateMethod()) &&\n element.node.static\n ) {\n if (isProperty && staticBlocks.length > 0) {\n const allValues: t.Expression[] = staticBlocks.map(staticBlockToIIFE);\n if (element.node.value) allValues.push(element.node.value);\n element.node.value = maybeSequenceExpression(allValues);\n staticBlocks = [];\n }\n\n element.node.static = false;\n statics.push(element.node);\n element.remove();\n }\n });\n\n if (statics.length > 0 || staticBlocks.length > 0) {\n const staticsClass = template.expression.ast`\n class extends ${state.addHelper(\"identity\")} {}\n ` as t.ClassExpression;\n staticsClass.body.body = [\n t.staticBlock([\n t.toStatement(originalClass, true) ||\n // If toStatement returns false, originalClass must be an anonymous ClassExpression,\n // because `export default @dec ...` has been handled in the export visitor before.\n t.expressionStatement(originalClass as t.ClassExpression),\n ]),\n ...statics,\n ];\n\n const constructorBody: t.Expression[] = [];\n\n const newExpr = t.newExpression(staticsClass, []);\n\n if (staticBlocks.length > 0) {\n constructorBody.push(...staticBlocks.map(staticBlockToIIFE));\n }\n if (classInitCall) {\n classInitInjected = true;\n constructorBody.push(classInitCall);\n }\n if (constructorBody.length > 0) {\n constructorBody.unshift(\n t.callExpression(t.super(), [t.cloneNode(classIdLocal)]),\n );\n\n staticsClass.body.body.push(\n t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement([\n t.expressionStatement(t.sequenceExpression(constructorBody)),\n ]),\n ),\n );\n } else {\n newExpr.arguments.push(t.cloneNode(classIdLocal));\n }\n\n path.replaceWith(newExpr);\n }\n }\n if (!classInitInjected && classInitCall) {\n path.node.body.body.push(\n t.staticBlock([t.expressionStatement(classInitCall)]),\n );\n }\n\n let { superClass } = originalClass;\n if (superClass && (process.env.BABEL_8_BREAKING || version === \"2023-05\")) {\n const id = path.scope.maybeGenerateMemoised(superClass);\n if (id) {\n originalClass.superClass = t.assignmentExpression(\"=\", id, superClass);\n superClass = id;\n }\n }\n\n originalClass.body.body.unshift(\n t.staticBlock(\n [\n t.expressionStatement(\n createLocalsAssignment(\n elementLocals,\n classLocals,\n elementDecorations,\n t.arrayExpression(classDecorations),\n t.numericLiteral(classDecorationsFlag),\n needsInstancePrivateBrandCheck ? lastInstancePrivateName : null,\n typeof className === \"object\" ? className : undefined,\n t.cloneNode(superClass),\n state,\n version,\n ),\n ),\n requiresStaticInit &&\n t.expressionStatement(\n t.callExpression(t.cloneNode(staticInitLocal), [\n t.thisExpression(),\n ]),\n ),\n ].filter(Boolean),\n ),\n );\n\n // When path is a ClassExpression, path.insertBefore will convert `path`\n // into a SequenceExpression\n path.insertBefore(assignments.map(expr => t.expressionStatement(expr)));\n\n if (needsDeclaraionForClassBinding) {\n path.insertBefore(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(classIdLocal)),\n ]),\n );\n }\n\n // Recrawl the scope to make sure new identifiers are properly synced\n path.scope.crawl();\n\n return path;\n}\n\nfunction createLocalsAssignment(\n elementLocals: t.Identifier[],\n classLocals: t.Identifier[],\n elementDecorations: t.ArrayExpression,\n classDecorations: t.ArrayExpression,\n classDecorationsFlag: t.NumericLiteral,\n maybePrivateBranName: t.PrivateName | null,\n setClassName: t.Identifier | t.StringLiteral | undefined,\n superClass: null | t.Expression,\n state: PluginPass,\n version: DecoratorVersionKind,\n) {\n let lhs, rhs;\n const args: t.Expression[] = [\n setClassName\n ? createSetFunctionNameCall(state, setClassName)\n : t.thisExpression(),\n elementDecorations,\n classDecorations,\n ];\n\n if (!process.env.BABEL_8_BREAKING) {\n if (\n version === \"2021-12\" ||\n (version === \"2022-03\" && !state.availableHelper(\"applyDecs2203R\"))\n ) {\n const lhs = t.arrayPattern([...elementLocals, ...classLocals]);\n const rhs = t.callExpression(\n state.addHelper(version === \"2021-12\" ? \"applyDecs\" : \"applyDecs2203\"),\n args,\n );\n return t.assignmentExpression(\"=\", lhs, rhs);\n }\n }\n\n if (process.env.BABEL_8_BREAKING || version === \"2023-05\") {\n if (\n maybePrivateBranName ||\n superClass ||\n classDecorationsFlag.value !== 0\n ) {\n args.push(classDecorationsFlag);\n }\n if (maybePrivateBranName) {\n args.push(\n template.expression.ast`\n _ => ${t.cloneNode(maybePrivateBranName)} in _\n ` as t.ArrowFunctionExpression,\n );\n } else if (superClass) {\n args.push(t.unaryExpression(\"void\", t.numericLiteral(0)));\n }\n if (superClass) args.push(superClass);\n rhs = t.callExpression(state.addHelper(\"applyDecs2305\"), args);\n } else if (version === \"2023-01\") {\n if (maybePrivateBranName) {\n args.push(\n template.expression.ast`\n _ => ${t.cloneNode(maybePrivateBranName)} in _\n ` as t.ArrowFunctionExpression,\n );\n }\n rhs = t.callExpression(state.addHelper(\"applyDecs2301\"), args);\n } else {\n rhs = t.callExpression(state.addHelper(\"applyDecs2203R\"), args);\n }\n // optimize `{ c: [classLocals] } = applyapplyDecs2203R(...)` to\n // `[classLocals] = applyapplyDecs2203R(...).c`\n if (elementLocals.length > 0) {\n if (classLocals.length > 0) {\n lhs = t.objectPattern([\n t.objectProperty(t.identifier(\"e\"), t.arrayPattern(elementLocals)),\n t.objectProperty(t.identifier(\"c\"), t.arrayPattern(classLocals)),\n ]);\n } else {\n lhs = t.arrayPattern(elementLocals);\n rhs = t.memberExpression(rhs, t.identifier(\"e\"), false, false);\n }\n } else {\n // invariant: classLocals.length > 0\n lhs = t.arrayPattern(classLocals);\n rhs = t.memberExpression(rhs, t.identifier(\"c\"), false, false);\n }\n\n return t.assignmentExpression(\"=\", lhs, rhs);\n}\n\nfunction isProtoKey(\n node: t.Identifier | t.StringLiteral | t.BigIntLiteral | t.NumericLiteral,\n) {\n return node.type === \"Identifier\"\n ? node.name === \"__proto__\"\n : node.value === \"__proto__\";\n}\n\nfunction isDecorated(node: t.Class | ClassDecoratableElement) {\n return node.decorators && node.decorators.length > 0;\n}\n\nfunction shouldTransformElement(node: ClassElement) {\n switch (node.type) {\n case \"ClassAccessorProperty\":\n return true;\n case \"ClassMethod\":\n case \"ClassProperty\":\n case \"ClassPrivateMethod\":\n case \"ClassPrivateProperty\":\n return isDecorated(node);\n default:\n return false;\n }\n}\n\nfunction shouldTransformClass(node: t.Class) {\n return isDecorated(node) || node.body.body.some(shouldTransformElement);\n}\n\n// Todo: unify name references logic with helper-function-name\nfunction NamedEvaluationVisitoryFactory(\n isAnonymous: (path: NodePath) => boolean,\n visitor: (\n path: NodePath,\n state: PluginPass,\n name:\n | string\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n ) => void,\n) {\n function handleComputedProperty(\n propertyPath: NodePath<\n t.ObjectProperty | t.ClassProperty | t.ClassAccessorProperty\n >,\n key: t.Expression,\n state: PluginPass,\n ): t.StringLiteral | t.Identifier {\n switch (key.type) {\n case \"StringLiteral\":\n return t.stringLiteral(key.value);\n case \"NumericLiteral\":\n case \"BigIntLiteral\": {\n const keyValue = key.value + \"\";\n propertyPath.get(\"key\").replaceWith(t.stringLiteral(keyValue));\n return t.stringLiteral(keyValue);\n }\n default: {\n const ref = propertyPath.scope.maybeGenerateMemoised(key);\n propertyPath\n .get(\"key\")\n .replaceWith(\n t.assignmentExpression(\n \"=\",\n ref,\n createToPropertyKeyCall(state, key),\n ),\n );\n return t.cloneNode(ref);\n }\n }\n }\n return {\n VariableDeclarator(path, state) {\n const id = path.node.id;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"init\"));\n if (isAnonymous(initializer)) {\n const name = id.name;\n visitor(initializer, state, name);\n }\n }\n },\n AssignmentExpression(path, state) {\n const id = path.node.left;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"right\"));\n if (isAnonymous(initializer)) {\n switch (path.node.operator) {\n case \"=\":\n case \"&&=\":\n case \"||=\":\n case \"??=\":\n visitor(initializer, state, id.name);\n }\n }\n }\n },\n AssignmentPattern(path, state) {\n const id = path.node.left;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"right\"));\n if (isAnonymous(initializer)) {\n const name = id.name;\n visitor(initializer, state, name);\n }\n }\n },\n // We listen on ObjectExpression so that we don't have to visit\n // the object properties under object patterns\n ObjectExpression(path, state) {\n for (const propertyPath of path.get(\"properties\")) {\n const { node } = propertyPath;\n if (node.type !== \"ObjectProperty\") continue;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(\n propertyPath.get(\"value\"),\n );\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n // 13.2.5.5 RS: PropertyDefinitionEvaluation\n if (!isProtoKey(id as t.StringLiteral | t.Identifier)) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n }\n } else {\n const ref = handleComputedProperty(\n propertyPath as NodePath<t.ObjectProperty>,\n // The key of a computed object property must not be a private name\n id as t.Expression,\n state,\n );\n visitor(initializer, state, ref);\n }\n }\n }\n },\n ClassPrivateProperty(path, state) {\n const { node } = path;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n const className = t.stringLiteral(\"#\" + node.key.id.name);\n visitor(initializer, state, className);\n }\n },\n ClassAccessorProperty(path, state) {\n const { node } = path;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else if (id.type === \"PrivateName\") {\n const className = t.stringLiteral(\"#\" + id.id.name);\n visitor(initializer, state, className);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n } else {\n const ref = handleComputedProperty(\n path,\n // The key of a computed accessor property must not be a private name\n id as t.Expression,\n state,\n );\n visitor(initializer, state, ref);\n }\n }\n },\n ClassProperty(path, state) {\n const { node } = path;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n } else {\n const ref = handleComputedProperty(path, id, state);\n visitor(initializer, state, ref);\n }\n }\n },\n } satisfies Visitor<PluginPass>;\n}\n\nfunction isDecoratedAnonymousClassExpression(path: NodePath) {\n return (\n path.isClassExpression({ id: null }) && shouldTransformClass(path.node)\n );\n}\n\nexport default function (\n { assertVersion, assumption }: PluginAPI,\n { loose }: Options,\n // TODO(Babel 8): Only keep 2023-05\n version: \"2023-05\" | \"2023-01\" | \"2022-03\" | \"2021-12\",\n inherits: PluginObject[\"inherits\"],\n): PluginObject {\n if (process.env.BABEL_8_BREAKING) {\n assertVersion(process.env.IS_PUBLISH ? PACKAGE_JSON.version : \"^7.21.0\");\n } else {\n if (version === \"2023-05\" || version === \"2023-01\") {\n assertVersion(\"^7.21.0\");\n } else if (version === \"2021-12\") {\n assertVersion(\"^7.16.0\");\n } else {\n assertVersion(\"^7.19.0\");\n }\n }\n\n const VISITED = new WeakSet<NodePath>();\n const constantSuper = assumption(\"constantSuper\") ?? loose;\n\n const namedEvaluationVisitor: Visitor<PluginPass> =\n NamedEvaluationVisitoryFactory(\n isDecoratedAnonymousClassExpression,\n visitClass,\n );\n\n function visitClass(\n path: NodePath<t.Class>,\n state: PluginPass,\n className: string | t.Identifier | t.StringLiteral | undefined,\n ) {\n if (VISITED.has(path)) return;\n const { node } = path;\n className ??= node.id?.name;\n const newPath = transformClass(\n path,\n state,\n constantSuper,\n version,\n className,\n namedEvaluationVisitor,\n );\n if (newPath) {\n VISITED.add(newPath);\n return;\n }\n VISITED.add(path);\n }\n\n return {\n name: \"proposal-decorators\",\n inherits: inherits,\n\n visitor: {\n ExportDefaultDeclaration(path, state) {\n const { declaration } = path.node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // When compiling class decorators we need to replace the class\n // binding, so we must split it in two separate declarations.\n isDecorated(declaration)\n ) {\n const isAnonymous = !declaration.id;\n const updatedVarDeclarationPath = splitExportDeclaration(\n path,\n ) as unknown as NodePath<t.ClassDeclaration>;\n if (isAnonymous) {\n visitClass(\n updatedVarDeclarationPath,\n state,\n t.stringLiteral(\"default\"),\n );\n }\n }\n },\n ExportNamedDeclaration(path) {\n const { declaration } = path.node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // When compiling class decorators we need to replace the class\n // binding, so we must split it in two separate declarations.\n isDecorated(declaration)\n ) {\n splitExportDeclaration(path);\n }\n },\n\n Class(path, state) {\n visitClass(path, state, undefined);\n },\n\n ...namedEvaluationVisitor,\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js
index 047b4d5b..a4ad9ff8 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js
@@ -7,7 +7,7 @@ exports.FEATURES = void 0;
exports.enableFeature = enableFeature;
exports.isLoose = isLoose;
exports.shouldTransform = shouldTransform;
-var _decorators = require("./decorators.js");
+var _decorators = require("./decorators-2018-09.js");
const FEATURES = exports.FEATURES = Object.freeze({
fields: 1 << 1,
privateMethods: 1 << 2,
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map
index ae2a3d90..00384e70 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map
@@ -1 +1 @@
-{"version":3,"names":["_decorators","require","FEATURES","exports","Object","freeze","fields","privateMethods","decorators","privateIn","staticBlocks","featuresSameLoose","Map","featuresKey","looseKey","looseLowPriorityKey","canIgnoreLoose","file","feature","get","enableFeature","loose","hasFeature","set","setLoose","resolvedLoose","mask","name","isLoose","Error","higherPriorityPluginName","undefined","console","warn","shouldTransform","path","decoratorPath","publicFieldPath","privateFieldPath","privateMethodPath","staticBlockPath","hasOwnDecorators","node","el","isClassProperty","isClassPrivateProperty","isClassPrivateMethod","isStaticBlock","buildCodeFrameError"],"sources":["../src/features.ts"],"sourcesContent":["import type { File, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { hasOwnDecorators } from \"./decorators.ts\";\n\nexport const FEATURES = Object.freeze(\n process.env.BABEL_8_BREAKING\n ? {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n privateIn: 1 << 3,\n staticBlocks: 1 << 4,\n }\n : {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n decorators: 1 << 3,\n privateIn: 1 << 4,\n staticBlocks: 1 << 5,\n },\n);\n\nconst featuresSameLoose = new Map([\n [FEATURES.fields, \"@babel/plugin-transform-class-properties\"],\n [FEATURES.privateMethods, \"@babel/plugin-transform-private-methods\"],\n [FEATURES.privateIn, \"@babel/plugin-transform-private-property-in-object\"],\n]);\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-class-features\n// - @babel/plugin-proposal-decorators\n// - node_modules\n// - @babel-plugin-class-features\nconst featuresKey = \"@babel/plugin-class-features/featuresKey\";\nconst looseKey = \"@babel/plugin-class-features/looseKey\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // See https://github.com/babel/babel/issues/11622.\n // Since preset-env sets loose for the fields and private methods plugins, it can\n // cause conflicts with the loose mode set by an explicit plugin in the config.\n // To solve this problem, we ignore preset-env's loose mode if another plugin\n // explicitly sets it\n // The code to handle this logic doesn't check that \"low priority loose\" is always\n // the same. However, it is only set by the preset and not directly by users:\n // unless someone _wants_ to break it, it shouldn't be a problem.\n // eslint-disable-next-line no-var\n var looseLowPriorityKey =\n \"@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var canIgnoreLoose = function (file: File, feature: number) {\n return !!(file.get(looseLowPriorityKey) & feature);\n };\n}\n\nexport function enableFeature(file: File, feature: number, loose: boolean) {\n // We can't blindly enable the feature because, if it was already set,\n // \"loose\" can't be changed, so that\n // @babel/plugin-class-properties { loose: true }\n // @babel/plugin-class-properties { loose: false }\n // is transformed in loose mode.\n // We only enabled the feature if it was previously disabled.\n if (process.env.BABEL_8_BREAKING) {\n if (!hasFeature(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n setLoose(file, feature, loose);\n }\n } else if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, true);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, false);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else {\n setLoose(file, feature, loose);\n }\n }\n\n let resolvedLoose: boolean | undefined;\n for (const [mask, name] of featuresSameLoose) {\n if (!hasFeature(file, mask)) continue;\n if (!process.env.BABEL_8_BREAKING) {\n if (canIgnoreLoose(file, mask)) continue;\n }\n\n const loose = isLoose(file, mask);\n\n if (resolvedLoose === !loose) {\n throw new Error(\n \"'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, \" +\n \"@babel/plugin-transform-private-methods and \" +\n \"@babel/plugin-transform-private-property-in-object (when they are enabled).\",\n );\n } else {\n resolvedLoose = loose;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var higherPriorityPluginName = name;\n }\n }\n }\n\n if (!process.env.BABEL_8_BREAKING && resolvedLoose !== undefined) {\n for (const [mask, name] of featuresSameLoose) {\n if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {\n setLoose(file, mask, resolvedLoose);\n console.warn(\n `Though the \"loose\" option was set to \"${!resolvedLoose}\" in your @babel/preset-env ` +\n `config, it will not be used for ${name} since the \"loose\" mode option was set to ` +\n `\"${resolvedLoose}\" for ${higherPriorityPluginName}.\\nThe \"loose\" option must be the ` +\n `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` +\n `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` +\n `silence this warning by explicitly adding\\n` +\n `\\t[\"${name}\", { \"loose\": ${resolvedLoose} }]\\n` +\n `to the \"plugins\" section of your Babel config.`,\n );\n }\n }\n }\n}\n\nfunction hasFeature(file: File, feature: number) {\n return !!(file.get(featuresKey) & feature);\n}\n\nexport function isLoose(file: File, feature: number) {\n return !!(file.get(looseKey) & feature);\n}\n\nfunction setLoose(file: File, feature: number, loose: boolean) {\n if (loose) file.set(looseKey, file.get(looseKey) | feature);\n else file.set(looseKey, file.get(looseKey) & ~feature);\n\n if (!process.env.BABEL_8_BREAKING) {\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);\n }\n}\n\nexport function shouldTransform(path: NodePath<t.Class>, file: File): boolean {\n let decoratorPath: NodePath<t.Decorator> | null = null;\n let publicFieldPath: NodePath<t.ClassProperty> | null = null;\n let privateFieldPath: NodePath<t.ClassPrivateProperty> | null = null;\n let privateMethodPath: NodePath<t.ClassPrivateMethod> | null = null;\n let staticBlockPath: NodePath<t.StaticBlock> | null = null;\n\n if (hasOwnDecorators(path.node)) {\n decoratorPath = path.get(\"decorators.0\");\n }\n for (const el of path.get(\"body.body\")) {\n if (!decoratorPath && hasOwnDecorators(el.node)) {\n decoratorPath = el.get(\"decorators.0\");\n }\n if (!publicFieldPath && el.isClassProperty()) {\n publicFieldPath = el;\n }\n if (!privateFieldPath && el.isClassPrivateProperty()) {\n privateFieldPath = el;\n }\n // NOTE: path.isClassPrivateMethod() it isn't supported in <7.2.0\n if (!privateMethodPath && el.isClassPrivateMethod?.()) {\n privateMethodPath = el;\n }\n if (!staticBlockPath && el.isStaticBlock?.()) {\n staticBlockPath = el;\n }\n }\n\n if (decoratorPath && privateFieldPath) {\n throw privateFieldPath.buildCodeFrameError(\n \"Private fields in decorated classes are not supported yet.\",\n );\n }\n if (decoratorPath && privateMethodPath) {\n throw privateMethodPath.buildCodeFrameError(\n \"Private methods in decorated classes are not supported yet.\",\n );\n }\n\n if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {\n throw path.buildCodeFrameError(\n \"Decorators are not enabled.\" +\n \"\\nIf you are using \" +\n '[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }], ' +\n 'make sure it comes *before* \"@babel/plugin-transform-class-properties\" ' +\n \"and enable loose mode, like so:\\n\" +\n '\\t[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }]\\n' +\n '\\t[\"@babel/plugin-transform-class-properties\", { \"loose\": true }]',\n );\n }\n\n if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {\n throw privateMethodPath.buildCodeFrameError(\n \"Class private methods are not enabled. \" +\n \"Please add `@babel/plugin-transform-private-methods` to your configuration.\",\n );\n }\n\n if (\n (publicFieldPath || privateFieldPath) &&\n !hasFeature(file, FEATURES.fields) &&\n // We want to allow enabling the private-methods plugin even without enabling\n // the class-properties plugin. Class fields will still be compiled in classes\n // that contain private methods.\n // This is already allowed with the other various class features plugins, but\n // it's because they can fallback to a transform separated from this helper.\n !hasFeature(file, FEATURES.privateMethods)\n ) {\n throw path.buildCodeFrameError(\n \"Class fields are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-properties` to your configuration.\",\n );\n }\n\n if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {\n throw path.buildCodeFrameError(\n \"Static class blocks are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-static-block` to your configuration.\",\n );\n }\n\n if (decoratorPath || privateMethodPath || staticBlockPath) {\n // If one of those feature is used we know that its transform is\n // enabled, otherwise the previous checks throw.\n return true;\n }\n if (\n (publicFieldPath || privateFieldPath) &&\n hasFeature(file, FEATURES.fields)\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"} \ No newline at end of file
+{"version":3,"names":["_decorators","require","FEATURES","exports","Object","freeze","fields","privateMethods","decorators","privateIn","staticBlocks","featuresSameLoose","Map","featuresKey","looseKey","looseLowPriorityKey","canIgnoreLoose","file","feature","get","enableFeature","loose","hasFeature","set","setLoose","resolvedLoose","mask","name","isLoose","Error","higherPriorityPluginName","undefined","console","warn","shouldTransform","path","decoratorPath","publicFieldPath","privateFieldPath","privateMethodPath","staticBlockPath","hasOwnDecorators","node","el","isClassProperty","isClassPrivateProperty","isClassPrivateMethod","isStaticBlock","buildCodeFrameError"],"sources":["../src/features.ts"],"sourcesContent":["import type { File, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { hasOwnDecorators } from \"./decorators-2018-09.ts\";\n\nexport const FEATURES = Object.freeze({\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n decorators: 1 << 3,\n privateIn: 1 << 4,\n staticBlocks: 1 << 5,\n});\n\nconst featuresSameLoose = new Map([\n [FEATURES.fields, \"@babel/plugin-transform-class-properties\"],\n [FEATURES.privateMethods, \"@babel/plugin-transform-private-methods\"],\n [FEATURES.privateIn, \"@babel/plugin-transform-private-property-in-object\"],\n]);\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-class-features\n// - @babel/plugin-proposal-decorators\n// - node_modules\n// - @babel-plugin-class-features\nconst featuresKey = \"@babel/plugin-class-features/featuresKey\";\nconst looseKey = \"@babel/plugin-class-features/looseKey\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // See https://github.com/babel/babel/issues/11622.\n // Since preset-env sets loose for the fields and private methods plugins, it can\n // cause conflicts with the loose mode set by an explicit plugin in the config.\n // To solve this problem, we ignore preset-env's loose mode if another plugin\n // explicitly sets it\n // The code to handle this logic doesn't check that \"low priority loose\" is always\n // the same. However, it is only set by the preset and not directly by users:\n // unless someone _wants_ to break it, it shouldn't be a problem.\n // eslint-disable-next-line no-var\n var looseLowPriorityKey =\n \"@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var canIgnoreLoose = function (file: File, feature: number) {\n return !!(file.get(looseLowPriorityKey) & feature);\n };\n}\n\nexport function enableFeature(file: File, feature: number, loose: boolean) {\n // We can't blindly enable the feature because, if it was already set,\n // \"loose\" can't be changed, so that\n // @babel/plugin-class-properties { loose: true }\n // @babel/plugin-class-properties { loose: false }\n // is transformed in loose mode.\n // We only enabled the feature if it was previously disabled.\n if (process.env.BABEL_8_BREAKING) {\n if (!hasFeature(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n setLoose(file, feature, loose);\n }\n } else if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, true);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, false);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else {\n setLoose(file, feature, loose);\n }\n }\n\n let resolvedLoose: boolean | undefined;\n for (const [mask, name] of featuresSameLoose) {\n if (!hasFeature(file, mask)) continue;\n if (!process.env.BABEL_8_BREAKING) {\n if (canIgnoreLoose(file, mask)) continue;\n }\n\n const loose = isLoose(file, mask);\n\n if (resolvedLoose === !loose) {\n throw new Error(\n \"'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, \" +\n \"@babel/plugin-transform-private-methods and \" +\n \"@babel/plugin-transform-private-property-in-object (when they are enabled).\",\n );\n } else {\n resolvedLoose = loose;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var higherPriorityPluginName = name;\n }\n }\n }\n\n if (!process.env.BABEL_8_BREAKING && resolvedLoose !== undefined) {\n for (const [mask, name] of featuresSameLoose) {\n if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {\n setLoose(file, mask, resolvedLoose);\n console.warn(\n `Though the \"loose\" option was set to \"${!resolvedLoose}\" in your @babel/preset-env ` +\n `config, it will not be used for ${name} since the \"loose\" mode option was set to ` +\n `\"${resolvedLoose}\" for ${higherPriorityPluginName}.\\nThe \"loose\" option must be the ` +\n `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` +\n `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` +\n `silence this warning by explicitly adding\\n` +\n `\\t[\"${name}\", { \"loose\": ${resolvedLoose} }]\\n` +\n `to the \"plugins\" section of your Babel config.`,\n );\n }\n }\n }\n}\n\nfunction hasFeature(file: File, feature: number) {\n return !!(file.get(featuresKey) & feature);\n}\n\nexport function isLoose(file: File, feature: number) {\n return !!(file.get(looseKey) & feature);\n}\n\nfunction setLoose(file: File, feature: number, loose: boolean) {\n if (loose) file.set(looseKey, file.get(looseKey) | feature);\n else file.set(looseKey, file.get(looseKey) & ~feature);\n\n if (!process.env.BABEL_8_BREAKING) {\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);\n }\n}\n\nexport function shouldTransform(path: NodePath<t.Class>, file: File): boolean {\n let decoratorPath: NodePath<t.Decorator> | null = null;\n let publicFieldPath: NodePath<t.ClassProperty> | null = null;\n let privateFieldPath: NodePath<t.ClassPrivateProperty> | null = null;\n let privateMethodPath: NodePath<t.ClassPrivateMethod> | null = null;\n let staticBlockPath: NodePath<t.StaticBlock> | null = null;\n\n if (hasOwnDecorators(path.node)) {\n decoratorPath = path.get(\"decorators.0\");\n }\n for (const el of path.get(\"body.body\")) {\n if (!decoratorPath && hasOwnDecorators(el.node)) {\n decoratorPath = el.get(\"decorators.0\");\n }\n if (!publicFieldPath && el.isClassProperty()) {\n publicFieldPath = el;\n }\n if (!privateFieldPath && el.isClassPrivateProperty()) {\n privateFieldPath = el;\n }\n // NOTE: path.isClassPrivateMethod() it isn't supported in <7.2.0\n if (!privateMethodPath && el.isClassPrivateMethod?.()) {\n privateMethodPath = el;\n }\n if (!staticBlockPath && el.isStaticBlock?.()) {\n staticBlockPath = el;\n }\n }\n\n if (decoratorPath && privateFieldPath) {\n throw privateFieldPath.buildCodeFrameError(\n \"Private fields in decorated classes are not supported yet.\",\n );\n }\n if (decoratorPath && privateMethodPath) {\n throw privateMethodPath.buildCodeFrameError(\n \"Private methods in decorated classes are not supported yet.\",\n );\n }\n\n if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {\n throw path.buildCodeFrameError(\n \"Decorators are not enabled.\" +\n \"\\nIf you are using \" +\n '[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }], ' +\n 'make sure it comes *before* \"@babel/plugin-transform-class-properties\" ' +\n \"and enable loose mode, like so:\\n\" +\n '\\t[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }]\\n' +\n '\\t[\"@babel/plugin-transform-class-properties\", { \"loose\": true }]',\n );\n }\n\n if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {\n throw privateMethodPath.buildCodeFrameError(\n \"Class private methods are not enabled. \" +\n \"Please add `@babel/plugin-transform-private-methods` to your configuration.\",\n );\n }\n\n if (\n (publicFieldPath || privateFieldPath) &&\n !hasFeature(file, FEATURES.fields) &&\n // We want to allow enabling the private-methods plugin even without enabling\n // the class-properties plugin. Class fields will still be compiled in classes\n // that contain private methods.\n // This is already allowed with the other various class features plugins, but\n // it's because they can fallback to a transform separated from this helper.\n !hasFeature(file, FEATURES.privateMethods)\n ) {\n throw path.buildCodeFrameError(\n \"Class fields are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-properties` to your configuration.\",\n );\n }\n\n if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {\n throw path.buildCodeFrameError(\n \"Static class blocks are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-static-block` to your configuration.\",\n );\n }\n\n if (decoratorPath || privateMethodPath || staticBlockPath) {\n // If one of those feature is used we know that its transform is\n // enabled, otherwise the previous checks throw.\n return true;\n }\n if (\n (publicFieldPath || privateFieldPath) &&\n hasFeature(file, FEATURES.fields)\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map
index 90ad5c6d..e7ba1b2e 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map
@@ -1 +1 @@
-{"version":3,"names":["_core","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperMemberExpressionToFunctions","_helperOptimiseCallExpression","_helperAnnotateAsPure","_helperSkipTransparentExpressionWrappers","ts","buildPrivateNamesMap","props","privateNamesMap","Map","prop","isPrivate","name","node","key","id","update","has","get","scope","generateUidIdentifier","static","method","isProperty","isClassPrivateMethod","kind","getId","setId","methodId","set","buildPrivateNamesNodes","privateFieldsAsProperties","privateFieldsAsSymbols","state","initNodes","value","isStatic","isMethod","isAccessor","t","cloneNode","init","callExpression","addHelper","stringLiteral","identifier","newExpression","annotateAsPure","push","template","statement","ast","privateNameVisitorFactory","visitor","nestedVisitor","traverse","visitors","merge","Object","assign","environmentVisitor","privateNameVisitor","Class","path","body","visiblePrivateNames","redeclared","delete","length","skipKey","PrivateName","noDocumentAll","parentPath","isMemberExpression","property","isOptionalMemberExpression","includes","handle","unshadow","innerBinding","_scope","hasBinding","bindingIdentifierEquals","rename","parent","buildCheckInRHS","rhs","file","inRHSIsObject","availableHelper","privateInVisitor","BinaryExpression","operator","left","right","isPrivateName","classRef","replaceWith","expression","privateNameHandlerSpec","memoise","member","count","object","memo","maybeGenerateMemoised","memoiser","receiver","helperName","sequenceExpression","console","warn","boundGet","memberExpression","destructureSet","helper","_unused","Error","call","args","optimiseCall","optionalCall","privateNameHandlerLoose","BASE","REF","PROP","simpleSet","optionalCallExpression","transformPrivateNamesUsage","ref","size","handler","memberExpressionToFunctions","buildPrivateFieldInitLoose","buildUndefinedNode","inheritPropComments","buildPrivateInstanceFieldInitSpec","thisExpression","buildPrivateStaticFieldInitSpec","privateName","initAdded","buildPrivateMethodInitLoose","buildPrivateInstanceMethodInitSpec","buildPrivateAccessorInitialization","buildPrivateInstanceMethodInitialization","buildPublicFieldInitLoose","computed","expressionStatement","assignmentExpression","isLiteral","buildPublicFieldInitSpec","buildPrivateStaticMethodInitLoose","buildPrivateMethodDeclaration","getterDeclared","setterDeclared","params","generator","async","isGetter","isSetter","declId","functionDeclaration","thisContextVisitor","UnaryExpression","argument","skipTransparentExprWrapperNodes","isThisExpression","booleanLiteral","ThisExpression","needsClassRef","MetaProperty","meta","innerReferencesVisitor","ReferencedIdentifier","replaceThisContext","innerBindingRef","_state$classRef","isNameOrLength","type","inheritLeadingComments","inheritInnerComments","buildFieldsInitNodes","superRef","setPublicClassFields","constantSuper","_ref","_ref2","classRefFlags","injectSuperRef","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","getSuperRef","isIdentifier","_injectSuperRef","generateUidIdentifierBasedOnNode","classRefForInnerBinding","isClassProperty","assertFieldTransformed","isStaticBlock","isInstance","isPublic","isField","ReplaceSupers","methodPath","refToPreserve","getObjectRef","replace","replaced","blockBody","isExpressionStatement","inheritsComments","unshift","filter","Boolean","wrapClass","leadingComments","remove","superClass","isClassExpression"],"sources":["../src/fields.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type {\n Handler,\n HandlerState,\n} from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nimport * as ts from \"./typescript.ts\";\n\ninterface PrivateNameMetadata {\n id: t.Identifier;\n static: boolean;\n method: boolean;\n getId?: t.Identifier;\n setId?: t.Identifier;\n methodId?: t.Identifier;\n initAdded?: boolean;\n getterDeclared?: boolean;\n setterDeclared?: boolean;\n}\n\ntype PrivateNamesMap = Map<string, PrivateNameMetadata>;\n\nexport function buildPrivateNamesMap(props: PropPath[]) {\n const privateNamesMap: PrivateNamesMap = new Map();\n for (const prop of props) {\n if (prop.isPrivate()) {\n const { name } = prop.node.key.id;\n const update: PrivateNameMetadata = privateNamesMap.has(name)\n ? privateNamesMap.get(name)\n : {\n id: prop.scope.generateUidIdentifier(name),\n static: prop.node.static,\n method: !prop.isProperty(),\n };\n if (prop.isClassPrivateMethod()) {\n if (prop.node.kind === \"get\") {\n update.getId = prop.scope.generateUidIdentifier(`get_${name}`);\n } else if (prop.node.kind === \"set\") {\n update.setId = prop.scope.generateUidIdentifier(`set_${name}`);\n } else if (prop.node.kind === \"method\") {\n update.methodId = prop.scope.generateUidIdentifier(name);\n }\n }\n privateNamesMap.set(name, update);\n }\n }\n return privateNamesMap;\n}\n\nexport function buildPrivateNamesNodes(\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties: boolean,\n privateFieldsAsSymbols: boolean,\n state: File,\n) {\n const initNodes: t.Statement[] = [];\n\n for (const [name, value] of privateNamesMap) {\n // - When the privateFieldsAsProperties assumption is enabled,\n // both static and instance fields are transpiled using a\n // secret non-enumerable property. Hence, we also need to generate that\n // key (using the classPrivateFieldLooseKey helper).\n // - When the privateFieldsAsSymbols assumption is enabled,\n // both static and instance fields are transpiled using a\n // unique Symbol to define a non-enumerable property.\n // - In spec mode, only instance fields need a \"private name\" initializer\n // because static fields are directly assigned to a variable in the\n // buildPrivateStaticFieldInitSpec function.\n const { static: isStatic, method: isMethod, getId, setId } = value;\n const isAccessor = getId || setId;\n const id = t.cloneNode(value.id);\n\n let init: t.Expression;\n\n if (privateFieldsAsProperties) {\n init = t.callExpression(state.addHelper(\"classPrivateFieldLooseKey\"), [\n t.stringLiteral(name),\n ]);\n } else if (privateFieldsAsSymbols) {\n init = t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(name)]);\n } else if (!isStatic) {\n init = t.newExpression(\n t.identifier(!isMethod || isAccessor ? \"WeakMap\" : \"WeakSet\"),\n [],\n );\n }\n\n if (init) {\n annotateAsPure(init);\n initNodes.push(template.statement.ast`var ${id} = ${init}`);\n }\n }\n\n return initNodes;\n}\n\ninterface PrivateNameVisitorState {\n privateNamesMap: PrivateNamesMap;\n privateFieldsAsProperties: boolean;\n redeclared?: string[];\n}\n\n// Traverses the class scope, handling private name references. If an inner\n// class redeclares the same private name, it will hand off traversal to the\n// restricted visitor (which doesn't traverse the inner class's inner scope).\nfunction privateNameVisitorFactory<S>(\n visitor: Visitor<PrivateNameVisitorState & S>,\n) {\n // Traverses the outer portion of a class, without touching the class's inner\n // scope, for private names.\n const nestedVisitor = traverse.visitors.merge([\n {\n ...visitor,\n },\n environmentVisitor,\n ]);\n\n const privateNameVisitor: Visitor<PrivateNameVisitorState & S> = {\n ...visitor,\n\n Class(path) {\n const { privateNamesMap } = this;\n const body = path.get(\"body.body\");\n\n const visiblePrivateNames = new Map(privateNamesMap);\n const redeclared = [];\n for (const prop of body) {\n if (!prop.isPrivate()) continue;\n const { name } = prop.node.key.id;\n visiblePrivateNames.delete(name);\n redeclared.push(name);\n }\n\n // If the class doesn't redeclare any private fields, we can continue with\n // our overall traversal.\n if (!redeclared.length) {\n return;\n }\n\n // This class redeclares some private field. We need to process the outer\n // environment with access to all the outer privates, then we can process\n // the inner environment with only the still-visible outer privates.\n path.get(\"body\").traverse(nestedVisitor, {\n ...this,\n redeclared,\n });\n path.traverse(privateNameVisitor, {\n ...this,\n privateNamesMap: visiblePrivateNames,\n });\n\n // We'll eventually hit this class node again with the overall Class\n // Features visitor, which'll process the redeclared privates.\n path.skipKey(\"body\");\n },\n };\n\n return privateNameVisitor;\n}\n\ninterface PrivateNameState {\n privateNamesMap: PrivateNamesMap;\n classRef: t.Identifier;\n file: File;\n noDocumentAll: boolean;\n innerBinding?: t.Identifier;\n}\n\nconst privateNameVisitor = privateNameVisitorFactory<\n HandlerState<PrivateNameState> & PrivateNameState\n>({\n PrivateName(path, { noDocumentAll }) {\n const { privateNamesMap, redeclared } = this;\n const { node, parentPath } = path;\n\n if (\n !parentPath.isMemberExpression({ property: node }) &&\n !parentPath.isOptionalMemberExpression({ property: node })\n ) {\n return;\n }\n const { name } = node.id;\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n this.handle(parentPath, noDocumentAll);\n },\n});\n\n// rename all bindings that shadows innerBinding\nfunction unshadow(\n name: string,\n scope: Scope,\n innerBinding: t.Identifier | undefined,\n) {\n // in some cases, scope.getBinding(name) === undefined\n // so we check hasBinding to avoid keeping looping\n // see: https://github.com/babel/babel/pull/13656#discussion_r686030715\n while (\n scope?.hasBinding(name) &&\n !scope.bindingIdentifierEquals(name, innerBinding)\n ) {\n scope.rename(name);\n scope = scope.parent;\n }\n}\n\nexport function buildCheckInRHS(\n rhs: t.Expression,\n file: File,\n inRHSIsObject?: boolean,\n) {\n if (inRHSIsObject || !file.availableHelper?.(\"checkInRHS\")) return rhs;\n return t.callExpression(file.addHelper(\"checkInRHS\"), [rhs]);\n}\n\nconst privateInVisitor = privateNameVisitorFactory<{\n classRef: t.Identifier;\n file: File;\n innerBinding?: t.Identifier;\n}>({\n BinaryExpression(path, { file }) {\n const { operator, left, right } = path.node;\n if (operator !== \"in\") return;\n if (!t.isPrivateName(left)) return;\n\n const { privateFieldsAsProperties, privateNamesMap, redeclared } = this;\n\n const { name } = left.id;\n\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(this.classRef.name, path.scope, this.innerBinding);\n\n if (privateFieldsAsProperties) {\n const { id } = privateNamesMap.get(name);\n path.replaceWith(template.expression.ast`\n Object.prototype.hasOwnProperty.call(${buildCheckInRHS(\n right,\n file,\n )}, ${t.cloneNode(id)})\n `);\n return;\n }\n\n const { id, static: isStatic } = privateNamesMap.get(name);\n\n if (isStatic) {\n path.replaceWith(\n template.expression.ast`${buildCheckInRHS(\n right,\n file,\n )} === ${t.cloneNode(this.classRef)}`,\n );\n return;\n }\n\n path.replaceWith(\n template.expression.ast`${t.cloneNode(id)}.has(${buildCheckInRHS(\n right,\n file,\n )})`,\n );\n },\n});\n\ninterface Receiver {\n receiver(\n this: HandlerState<PrivateNameState> & PrivateNameState,\n member: NodePath<t.MemberExpression | t.OptionalMemberExpression>,\n ): t.Expression;\n}\n\nconst privateNameHandlerSpec: Handler<PrivateNameState & Receiver> & Receiver =\n {\n memoise(member, count) {\n const { scope } = member;\n const { object } = member.node as { object: t.Expression };\n\n const memo = scope.maybeGenerateMemoised(object);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(object, memo, count);\n },\n\n receiver(member) {\n const { object } = member.node as { object: t.Expression };\n\n if (this.memoiser.has(object)) {\n return t.cloneNode(this.memoiser.get(object));\n }\n\n return t.cloneNode(object);\n },\n\n get(member) {\n const { classRef, privateNamesMap, file, innerBinding } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n methodId,\n getId,\n setId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n // NOTE: This package has a peerDependency on @babel/core@^7.0.0, but these\n // helpers have been introduced in @babel/helpers@7.1.0.\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodGet\"\n : \"classStaticPrivateFieldSpecGet\";\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(classRef.name, member.scope, innerBinding);\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]);\n }\n\n if (isMethod) {\n if (isAccessor) {\n if (!getId && setId) {\n if (file.availableHelper(\"writeOnlyError\")) {\n return t.sequenceExpression([\n this.receiver(member),\n t.callExpression(file.addHelper(\"writeOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n console.warn(\n `@babel/helpers is outdated, update it to silence this warning.`,\n );\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateMethodGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n t.cloneNode(methodId),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n },\n\n boundGet(member) {\n this.memoise(member, 1);\n\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n [this.receiver(member)],\n );\n },\n\n set(member, value) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n getId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodSet\"\n : \"classStaticPrivateFieldSpecSet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n value,\n ]);\n }\n if (isMethod) {\n if (setId) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n }\n return t.sequenceExpression([\n this.receiver(member),\n value,\n t.callExpression(file.addHelper(\"readOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n },\n\n destructureSet(member) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const { id, static: isStatic } = privateNamesMap.get(name);\n if (isStatic) {\n try {\n // classStaticPrivateFieldDestructureSet was introduced in 7.13.10\n // eslint-disable-next-line no-var\n var helper = file.addHelper(\"classStaticPrivateFieldDestructureSet\");\n } catch {\n throw new Error(\n \"Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \\n\" +\n \"please update @babel/helpers to the latest version.\",\n );\n }\n return t.memberExpression(\n t.callExpression(helper, [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"classPrivateFieldDestructureSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n },\n\n call(member, args: (t.Expression | t.SpreadElement)[]) {\n // The first access (the get) should do the memo assignment.\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, false);\n },\n\n optionalCall(member, args: (t.Expression | t.SpreadElement)[]) {\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n };\n\nconst privateNameHandlerLoose: Handler<PrivateNameState> = {\n get(member) {\n const { privateNamesMap, file } = this;\n const { object } = member.node;\n const { name } = (member.node.property as t.PrivateName).id;\n\n return template.expression`BASE(REF, PROP)[PROP]`({\n BASE: file.addHelper(\"classPrivateFieldLooseBase\"),\n REF: t.cloneNode(object),\n PROP: t.cloneNode(privateNamesMap.get(name).id),\n });\n },\n\n set() {\n // noop\n throw new Error(\"private name handler with loose = true don't need set()\");\n },\n\n boundGet(member) {\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n [t.cloneNode(member.node.object as t.Expression)],\n );\n },\n\n simpleSet(member) {\n return this.get(member);\n },\n\n destructureSet(member) {\n return this.get(member);\n },\n\n call(member, args) {\n return t.callExpression(this.get(member), args);\n },\n\n optionalCall(member, args) {\n return t.optionalCallExpression(this.get(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n};\n\nexport function transformPrivateNamesUsage(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n privateNamesMap: PrivateNamesMap,\n {\n privateFieldsAsProperties,\n noDocumentAll,\n innerBinding,\n }: {\n privateFieldsAsProperties: boolean;\n noDocumentAll: boolean;\n innerBinding: t.Identifier;\n },\n state: File,\n) {\n if (!privateNamesMap.size) return;\n\n const body = path.get(\"body\");\n const handler = privateFieldsAsProperties\n ? privateNameHandlerLoose\n : privateNameHandlerSpec;\n\n memberExpressionToFunctions<PrivateNameState>(body, privateNameVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n ...handler,\n noDocumentAll,\n innerBinding,\n });\n body.traverse(privateInVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n privateFieldsAsProperties,\n innerBinding,\n });\n}\n\nfunction buildPrivateFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${t.cloneNode(id)}, {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${t.cloneNode(id)}.set(${ref}, {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ${value},\n })` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n writable: true,\n value: ${value}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateStaticFieldInitSpec(\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId, initAdded } = privateName;\n const isAccessor = getId || setId;\n\n if (!prop.isProperty() && (initAdded || !isAccessor)) return;\n\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n }\n `,\n prop,\n );\n }\n\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n };\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { methodId, id, getId, setId, initAdded } = privateName;\n if (initAdded) return;\n\n if (methodId) {\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n}\n\nfunction buildPrivateInstanceMethodInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n return buildPrivateAccessorInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n }\n\n return buildPrivateInstanceMethodInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n}\n\nfunction buildPrivateAccessorInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId } = privateName;\n\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`\n ${id}.set(${ref}, {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceMethodInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id } = privateName;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateMethodInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${id}.add(${ref})` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateMethodInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)}\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPublicFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(ref, key, computed || t.isLiteral(key)),\n value,\n ),\n ),\n prop,\n );\n}\n\nfunction buildPublicFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n state: File,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n ref,\n computed || t.isLiteral(key)\n ? key\n : t.stringLiteral((key as t.Identifier).name),\n value,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n state: File,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, methodId, getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n })\n `,\n prop,\n );\n }\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodDeclaration(\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties = false,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const {\n id,\n methodId,\n getId,\n setId,\n getterDeclared,\n setterDeclared,\n static: isStatic,\n } = privateName;\n const { params, body, generator, async } = prop.node;\n const isGetter = getId && !getterDeclared && params.length === 0;\n const isSetter = setId && !setterDeclared && params.length > 0;\n\n let declId = methodId;\n\n if (isGetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n getterDeclared: true,\n });\n declId = getId;\n } else if (isSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n setterDeclared: true,\n });\n declId = setId;\n } else if (isStatic && !privateFieldsAsProperties) {\n declId = id;\n }\n\n return inheritPropComments(\n t.functionDeclaration(\n t.cloneNode(declId),\n // @ts-expect-error params for ClassMethod has TSParameterProperty\n params,\n body,\n generator,\n async,\n ),\n prop,\n );\n}\n\ntype ReplaceThisState = {\n classRef: t.Identifier;\n needsClassRef: boolean;\n innerBinding: t.Identifier | null;\n};\n\ntype ReplaceInnerBindingReferenceState = ReplaceThisState;\n\nconst thisContextVisitor = traverse.visitors.merge<ReplaceThisState>([\n {\n UnaryExpression(path) {\n // Replace `delete this` with `true`\n const { node } = path;\n if (node.operator === \"delete\") {\n const argument = skipTransparentExprWrapperNodes(node.argument);\n if (t.isThisExpression(argument)) {\n path.replaceWith(t.booleanLiteral(true));\n }\n }\n },\n ThisExpression(path, state) {\n state.needsClassRef = true;\n path.replaceWith(t.cloneNode(state.classRef));\n },\n MetaProperty(path) {\n const { node, scope } = path;\n // if there are `new.target` in static field\n // we should replace it with `undefined`\n if (node.meta.name === \"new\" && node.property.name === \"target\") {\n path.replaceWith(scope.buildUndefinedNode());\n }\n },\n },\n environmentVisitor,\n]);\n\nconst innerReferencesVisitor: Visitor<ReplaceInnerBindingReferenceState> = {\n ReferencedIdentifier(path, state) {\n if (\n path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)\n ) {\n state.needsClassRef = true;\n path.node.name = state.classRef.name;\n }\n },\n};\n\nfunction replaceThisContext(\n path: PropPath,\n ref: t.Identifier,\n innerBindingRef: t.Identifier | null,\n) {\n const state: ReplaceThisState = {\n classRef: ref,\n needsClassRef: false,\n innerBinding: innerBindingRef,\n };\n if (!path.isMethod()) {\n // replace `this` in property initializers and static blocks\n path.traverse(thisContextVisitor, state);\n }\n\n // todo: use innerBinding.referencePaths to avoid full traversal\n if (\n innerBindingRef != null &&\n state.classRef?.name &&\n state.classRef.name !== innerBindingRef.name\n ) {\n path.traverse(innerReferencesVisitor, state);\n }\n\n return state.needsClassRef;\n}\n\nexport type PropNode =\n | t.ClassProperty\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock;\nexport type PropPath = NodePath<PropNode>;\n\nfunction isNameOrLength({ key, computed }: t.ClassProperty) {\n if (key.type === \"Identifier\") {\n return !computed && (key.name === \"name\" || key.name === \"length\");\n }\n if (key.type === \"StringLiteral\") {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\n/**\n * Inherit comments from class members. This is a reduced version of\n * t.inheritsComments: the trailing comments are not inherited because\n * for most class members except the last one, their trailing comments are\n * the next sibling's leading comments.\n *\n * @template T transformed class member type\n * @param {T} node transformed class member\n * @param {PropPath} prop class member\n * @returns transformed class member type with comments inherited\n */\nfunction inheritPropComments<T extends t.Node>(node: T, prop: PropPath) {\n t.inheritLeadingComments(node, prop.node);\n t.inheritInnerComments(node, prop.node);\n return node;\n}\n\n/**\n * ClassRefFlag records the requirement of the class binding reference.\n *\n * @enum {number}\n */\nconst enum ClassRefFlag {\n None,\n /**\n * When this flag is enabled, the binding reference can be the class id,\n * if exists, or the uid identifier generated for class expression. The\n * reference is safe to be consumed by [[Define]].\n */\n ForDefine = 1 << 0,\n /**\n * When this flag is enabled, the reference must be a uid, because the outer\n * class binding can be mutated by user codes.\n * E.g.\n * class C { static p = C }; const oldC = C; C = null; oldC.p;\n * we must memoize class `C` before defining the property `p`.\n */\n ForInnerBinding = 1 << 1,\n}\n\nexport function buildFieldsInitNodes(\n ref: t.Identifier | null,\n superRef: t.Expression | undefined,\n props: PropPath[],\n privateNamesMap: PrivateNamesMap,\n file: File,\n setPublicClassFields: boolean,\n privateFieldsAsProperties: boolean,\n constantSuper: boolean,\n innerBindingRef: t.Identifier | null,\n) {\n let classRefFlags = ClassRefFlag.None;\n let injectSuperRef: t.Identifier;\n const staticNodes: t.Statement[] = [];\n const instanceNodes: t.ExpressionStatement[] = [];\n let lastInstanceNodeReturnsThis = false;\n // These nodes are pure and can be moved to the closest statement position\n const pureStaticNodes: t.FunctionDeclaration[] = [];\n let classBindingNode: t.ExpressionStatement | null = null;\n\n const getSuperRef = t.isIdentifier(superRef)\n ? () => superRef\n : () => {\n injectSuperRef ??=\n props[0].scope.generateUidIdentifierBasedOnNode(superRef);\n return injectSuperRef;\n };\n\n const classRefForInnerBinding =\n ref ?? props[0].scope.generateUidIdentifier(\"class\");\n ref ??= t.cloneNode(innerBindingRef);\n\n for (const prop of props) {\n prop.isClassProperty() && ts.assertFieldTransformed(prop);\n\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n const isStatic = !t.isStaticBlock?.(prop.node) && prop.node.static;\n const isInstance = !isStatic;\n const isPrivate = prop.isPrivate();\n const isPublic = !isPrivate;\n const isField = prop.isProperty();\n const isMethod = !isField;\n const isStaticBlock = prop.isStaticBlock?.();\n\n if (isStatic) classRefFlags |= ClassRefFlag.ForDefine;\n\n if (isStatic || (isMethod && isPrivate) || isStaticBlock) {\n new ReplaceSupers({\n methodPath: prop,\n constantSuper,\n file: file,\n refToPreserve: innerBindingRef,\n getSuperRef,\n getObjectRef() {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n if (isStatic || isStaticBlock) {\n return classRefForInnerBinding;\n } else {\n return t.memberExpression(\n classRefForInnerBinding,\n t.identifier(\"prototype\"),\n );\n }\n },\n }).replace();\n\n const replaced = replaceThisContext(\n prop,\n classRefForInnerBinding,\n innerBindingRef,\n );\n if (replaced) {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n }\n }\n\n lastInstanceNodeReturnsThis = false;\n\n // TODO(ts): there are so many `ts-expect-error` inside cases since\n // ts can not infer type from pre-computed values (or a case test)\n // even change `isStaticBlock` to `t.isStaticBlock(prop)` will not make prop\n // a `NodePath<t.StaticBlock>`\n // this maybe a bug for ts\n switch (true) {\n case isStaticBlock: {\n const blockBody = (prop.node as t.StaticBlock).body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n staticNodes.push(inheritPropComments(blockBody[0], prop));\n } else {\n staticNodes.push(\n t.inheritsComments(\n template.statement.ast`(() => { ${blockBody} })()`,\n prop.node,\n ),\n );\n }\n break;\n }\n case isStatic && isPrivate && isField && privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.cloneNode(ref), prop, privateNamesMap),\n );\n break;\n case isStatic && isPrivate && isField && !privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n break;\n case isStatic && isPublic && isField && setPublicClassFields:\n // Functions always have non-writable .name and .length properties,\n // so we must always use [[Define]] for them.\n // It might still be possible to a computed static fields whose resulting\n // key is \"name\" or \"length\", but the assumption is telling us that it's\n // not going to happen.\n // @ts-expect-error checked in switch\n if (!isNameOrLength(prop.node)) {\n // @ts-expect-error checked in switch\n staticNodes.push(buildPublicFieldInitLoose(t.cloneNode(ref), prop));\n break;\n }\n // falls through\n case isStatic && isPublic && isField && !setPublicClassFields:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.cloneNode(ref), prop, file),\n );\n break;\n case isInstance && isPrivate && isField && privateFieldsAsProperties:\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.thisExpression(), prop, privateNamesMap),\n );\n break;\n case isInstance && isPrivate && isField && !privateFieldsAsProperties:\n instanceNodes.push(\n buildPrivateInstanceFieldInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateMethodInitLoose(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && !privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateInstanceMethodInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && !privateFieldsAsProperties:\n staticNodes.unshift(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && privateFieldsAsProperties:\n staticNodes.unshift(\n buildPrivateStaticMethodInitLoose(\n t.cloneNode(ref),\n // @ts-expect-error checked in switch\n prop,\n file,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPublic && isField && setPublicClassFields:\n // @ts-expect-error checked in switch\n instanceNodes.push(buildPublicFieldInitLoose(t.thisExpression(), prop));\n break;\n case isInstance && isPublic && isField && !setPublicClassFields:\n lastInstanceNodeReturnsThis = true;\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.thisExpression(), prop, file),\n );\n break;\n default:\n throw new Error(\"Unreachable.\");\n }\n }\n\n if (classRefFlags & ClassRefFlag.ForInnerBinding && innerBindingRef != null) {\n classBindingNode = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classRefForInnerBinding),\n t.cloneNode(innerBindingRef),\n ),\n );\n }\n\n return {\n staticNodes: staticNodes.filter(Boolean),\n instanceNodes: instanceNodes.filter(Boolean),\n lastInstanceNodeReturnsThis,\n pureStaticNodes: pureStaticNodes.filter(Boolean),\n classBindingNode,\n wrapClass(path: NodePath<t.Class>) {\n for (const prop of props) {\n // Delete leading comments so that they don't get attached as\n // trailing comments of the previous sibling.\n // When transforming props, we explicitly attach their leading\n // comments to the transformed node with `inheritPropComments`\n // above.\n prop.node.leadingComments = null;\n prop.remove();\n }\n\n if (injectSuperRef) {\n path.scope.push({ id: t.cloneNode(injectSuperRef) });\n path.set(\n \"superClass\",\n t.assignmentExpression(\"=\", injectSuperRef, path.node.superClass),\n );\n }\n\n if (classRefFlags !== ClassRefFlag.None) {\n if (path.isClassExpression()) {\n path.scope.push({ id: ref });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(ref), path.node),\n );\n } else {\n if (innerBindingRef == null) {\n // export anonymous class declaration\n path.node.id = ref;\n }\n if (classBindingNode != null) {\n path.scope.push({ id: classRefForInnerBinding });\n }\n }\n }\n\n return path;\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
+{"version":3,"names":["_core","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperMemberExpressionToFunctions","_helperOptimiseCallExpression","_helperAnnotateAsPure","_helperSkipTransparentExpressionWrappers","ts","buildPrivateNamesMap","props","privateNamesMap","Map","prop","isPrivate","name","node","key","id","update","has","get","scope","generateUidIdentifier","static","method","isProperty","isClassPrivateMethod","kind","getId","setId","methodId","set","buildPrivateNamesNodes","privateFieldsAsProperties","privateFieldsAsSymbols","state","initNodes","value","isStatic","isMethod","isAccessor","t","cloneNode","init","callExpression","addHelper","stringLiteral","identifier","newExpression","annotateAsPure","push","template","statement","ast","privateNameVisitorFactory","visitor","nestedVisitor","traverse","visitors","merge","Object","assign","environmentVisitor","privateNameVisitor","Class","path","body","visiblePrivateNames","redeclared","delete","length","skipKey","PrivateName","noDocumentAll","parentPath","isMemberExpression","property","isOptionalMemberExpression","includes","handle","unshadow","innerBinding","_scope","hasBinding","bindingIdentifierEquals","rename","parent","buildCheckInRHS","rhs","file","inRHSIsObject","availableHelper","privateInVisitor","BinaryExpression","operator","left","right","isPrivateName","classRef","replaceWith","expression","privateNameHandlerSpec","memoise","member","count","object","memo","maybeGenerateMemoised","memoiser","receiver","helperName","sequenceExpression","console","warn","boundGet","memberExpression","destructureSet","helper","_unused","Error","call","args","optimiseCall","optionalCall","privateNameHandlerLoose","BASE","REF","PROP","simpleSet","optionalCallExpression","transformPrivateNamesUsage","ref","size","handler","memberExpressionToFunctions","buildPrivateFieldInitLoose","buildUndefinedNode","inheritPropComments","buildPrivateInstanceFieldInitSpec","thisExpression","buildPrivateStaticFieldInitSpec","privateName","initAdded","buildPrivateMethodInitLoose","buildPrivateInstanceMethodInitSpec","buildPrivateAccessorInitialization","buildPrivateInstanceMethodInitialization","buildPublicFieldInitLoose","computed","expressionStatement","assignmentExpression","isLiteral","buildPublicFieldInitSpec","buildPrivateStaticMethodInitLoose","buildPrivateMethodDeclaration","getterDeclared","setterDeclared","params","generator","async","isGetter","isSetter","declId","functionDeclaration","thisContextVisitor","UnaryExpression","argument","skipTransparentExprWrapperNodes","isThisExpression","booleanLiteral","ThisExpression","needsClassRef","MetaProperty","meta","innerReferencesVisitor","ReferencedIdentifier","replaceThisContext","innerBindingRef","_state$classRef","isNameOrLength","type","inheritLeadingComments","inheritInnerComments","buildFieldsInitNodes","superRef","setPublicClassFields","constantSuper","_ref","_ref2","classRefFlags","injectSuperRef","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","getSuperRef","isIdentifier","_injectSuperRef","generateUidIdentifierBasedOnNode","classRefForInnerBinding","isClassProperty","assertFieldTransformed","isStaticBlock","isInstance","isPublic","isField","ReplaceSupers","methodPath","refToPreserve","getObjectRef","replace","replaced","blockBody","isExpressionStatement","inheritsComments","unshift","filter","Boolean","wrapClass","leadingComments","remove","superClass","isClassExpression"],"sources":["../src/fields.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type {\n Handler,\n HandlerState,\n} from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nimport * as ts from \"./typescript.ts\";\n\ninterface PrivateNameMetadata {\n id: t.Identifier;\n static: boolean;\n method: boolean;\n getId?: t.Identifier;\n setId?: t.Identifier;\n methodId?: t.Identifier;\n initAdded?: boolean;\n getterDeclared?: boolean;\n setterDeclared?: boolean;\n}\n\ntype PrivateNamesMap = Map<string, PrivateNameMetadata>;\n\nexport function buildPrivateNamesMap(props: PropPath[]) {\n const privateNamesMap: PrivateNamesMap = new Map();\n for (const prop of props) {\n if (prop.isPrivate()) {\n const { name } = prop.node.key.id;\n const update: PrivateNameMetadata = privateNamesMap.has(name)\n ? privateNamesMap.get(name)\n : {\n id: prop.scope.generateUidIdentifier(name),\n static: prop.node.static,\n method: !prop.isProperty(),\n };\n if (prop.isClassPrivateMethod()) {\n if (prop.node.kind === \"get\") {\n update.getId = prop.scope.generateUidIdentifier(`get_${name}`);\n } else if (prop.node.kind === \"set\") {\n update.setId = prop.scope.generateUidIdentifier(`set_${name}`);\n } else if (prop.node.kind === \"method\") {\n update.methodId = prop.scope.generateUidIdentifier(name);\n }\n }\n privateNamesMap.set(name, update);\n }\n }\n return privateNamesMap;\n}\n\nexport function buildPrivateNamesNodes(\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties: boolean,\n privateFieldsAsSymbols: boolean,\n state: File,\n) {\n const initNodes: t.Statement[] = [];\n\n for (const [name, value] of privateNamesMap) {\n // - When the privateFieldsAsProperties assumption is enabled,\n // both static and instance fields are transpiled using a\n // secret non-enumerable property. Hence, we also need to generate that\n // key (using the classPrivateFieldLooseKey helper).\n // - When the privateFieldsAsSymbols assumption is enabled,\n // both static and instance fields are transpiled using a\n // unique Symbol to define a non-enumerable property.\n // - In spec mode, only instance fields need a \"private name\" initializer\n // because static fields are directly assigned to a variable in the\n // buildPrivateStaticFieldInitSpec function.\n const { static: isStatic, method: isMethod, getId, setId } = value;\n const isAccessor = getId || setId;\n const id = t.cloneNode(value.id);\n\n let init: t.Expression;\n\n if (privateFieldsAsProperties) {\n init = t.callExpression(state.addHelper(\"classPrivateFieldLooseKey\"), [\n t.stringLiteral(name),\n ]);\n } else if (privateFieldsAsSymbols) {\n init = t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(name)]);\n } else if (!isStatic) {\n init = t.newExpression(\n t.identifier(!isMethod || isAccessor ? \"WeakMap\" : \"WeakSet\"),\n [],\n );\n }\n\n if (init) {\n annotateAsPure(init);\n initNodes.push(template.statement.ast`var ${id} = ${init}`);\n }\n }\n\n return initNodes;\n}\n\ninterface PrivateNameVisitorState {\n privateNamesMap: PrivateNamesMap;\n privateFieldsAsProperties: boolean;\n redeclared?: string[];\n}\n\n// Traverses the class scope, handling private name references. If an inner\n// class redeclares the same private name, it will hand off traversal to the\n// restricted visitor (which doesn't traverse the inner class's inner scope).\nfunction privateNameVisitorFactory<S>(\n visitor: Visitor<PrivateNameVisitorState & S>,\n) {\n // Traverses the outer portion of a class, without touching the class's inner\n // scope, for private names.\n const nestedVisitor = traverse.visitors.merge([\n {\n ...visitor,\n },\n environmentVisitor,\n ]);\n\n const privateNameVisitor: Visitor<PrivateNameVisitorState & S> = {\n ...visitor,\n\n Class(path) {\n const { privateNamesMap } = this;\n const body = path.get(\"body.body\");\n\n const visiblePrivateNames = new Map(privateNamesMap);\n const redeclared = [];\n for (const prop of body) {\n if (!prop.isPrivate()) continue;\n const { name } = prop.node.key.id;\n visiblePrivateNames.delete(name);\n redeclared.push(name);\n }\n\n // If the class doesn't redeclare any private fields, we can continue with\n // our overall traversal.\n if (!redeclared.length) {\n return;\n }\n\n // This class redeclares some private field. We need to process the outer\n // environment with access to all the outer privates, then we can process\n // the inner environment with only the still-visible outer privates.\n path.get(\"body\").traverse(nestedVisitor, {\n ...this,\n redeclared,\n });\n path.traverse(privateNameVisitor, {\n ...this,\n privateNamesMap: visiblePrivateNames,\n });\n\n // We'll eventually hit this class node again with the overall Class\n // Features visitor, which'll process the redeclared privates.\n path.skipKey(\"body\");\n },\n };\n\n return privateNameVisitor;\n}\n\ninterface PrivateNameState {\n privateNamesMap: PrivateNamesMap;\n classRef: t.Identifier;\n file: File;\n noDocumentAll: boolean;\n innerBinding?: t.Identifier;\n}\n\nconst privateNameVisitor = privateNameVisitorFactory<\n HandlerState<PrivateNameState> & PrivateNameState\n>({\n PrivateName(path, { noDocumentAll }) {\n const { privateNamesMap, redeclared } = this;\n const { node, parentPath } = path;\n\n if (\n !parentPath.isMemberExpression({ property: node }) &&\n !parentPath.isOptionalMemberExpression({ property: node })\n ) {\n return;\n }\n const { name } = node.id;\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n this.handle(parentPath, noDocumentAll);\n },\n});\n\n// rename all bindings that shadows innerBinding\nfunction unshadow(\n name: string,\n scope: Scope,\n innerBinding: t.Identifier | undefined,\n) {\n // in some cases, scope.getBinding(name) === undefined\n // so we check hasBinding to avoid keeping looping\n // see: https://github.com/babel/babel/pull/13656#discussion_r686030715\n while (\n scope?.hasBinding(name) &&\n !scope.bindingIdentifierEquals(name, innerBinding)\n ) {\n scope.rename(name);\n scope = scope.parent;\n }\n}\n\nexport function buildCheckInRHS(\n rhs: t.Expression,\n file: File,\n inRHSIsObject?: boolean,\n) {\n if (inRHSIsObject || !file.availableHelper?.(\"checkInRHS\")) return rhs;\n return t.callExpression(file.addHelper(\"checkInRHS\"), [rhs]);\n}\n\nconst privateInVisitor = privateNameVisitorFactory<{\n classRef: t.Identifier;\n file: File;\n innerBinding?: t.Identifier;\n}>({\n BinaryExpression(path, { file }) {\n const { operator, left, right } = path.node;\n if (operator !== \"in\") return;\n if (!t.isPrivateName(left)) return;\n\n const { privateFieldsAsProperties, privateNamesMap, redeclared } = this;\n\n const { name } = left.id;\n\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(this.classRef.name, path.scope, this.innerBinding);\n\n if (privateFieldsAsProperties) {\n const { id } = privateNamesMap.get(name);\n path.replaceWith(template.expression.ast`\n Object.prototype.hasOwnProperty.call(${buildCheckInRHS(\n right,\n file,\n )}, ${t.cloneNode(id)})\n `);\n return;\n }\n\n const { id, static: isStatic } = privateNamesMap.get(name);\n\n if (isStatic) {\n path.replaceWith(\n template.expression.ast`${buildCheckInRHS(\n right,\n file,\n )} === ${t.cloneNode(this.classRef)}`,\n );\n return;\n }\n\n path.replaceWith(\n template.expression.ast`${t.cloneNode(id)}.has(${buildCheckInRHS(\n right,\n file,\n )})`,\n );\n },\n});\n\ninterface Receiver {\n receiver(\n this: HandlerState<PrivateNameState> & PrivateNameState,\n member: NodePath<t.MemberExpression | t.OptionalMemberExpression>,\n ): t.Expression;\n}\n\nconst privateNameHandlerSpec: Handler<PrivateNameState & Receiver> & Receiver =\n {\n memoise(member, count) {\n const { scope } = member;\n const { object } = member.node as { object: t.Expression };\n\n const memo = scope.maybeGenerateMemoised(object);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(object, memo, count);\n },\n\n receiver(member) {\n const { object } = member.node as { object: t.Expression };\n\n if (this.memoiser.has(object)) {\n return t.cloneNode(this.memoiser.get(object));\n }\n\n return t.cloneNode(object);\n },\n\n get(member) {\n const { classRef, privateNamesMap, file, innerBinding } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n methodId,\n getId,\n setId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n // NOTE: This package has a peerDependency on @babel/core@^7.0.0, but these\n // helpers have been introduced in @babel/helpers@7.1.0.\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodGet\"\n : \"classStaticPrivateFieldSpecGet\";\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(classRef.name, member.scope, innerBinding);\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]);\n }\n\n if (isMethod) {\n if (isAccessor) {\n if (!getId && setId) {\n if (file.availableHelper(\"writeOnlyError\")) {\n return t.sequenceExpression([\n this.receiver(member),\n t.callExpression(file.addHelper(\"writeOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n console.warn(\n `@babel/helpers is outdated, update it to silence this warning.`,\n );\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateMethodGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n t.cloneNode(methodId),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n },\n\n boundGet(member) {\n this.memoise(member, 1);\n\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n [this.receiver(member)],\n );\n },\n\n set(member, value) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n getId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodSet\"\n : \"classStaticPrivateFieldSpecSet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n value,\n ]);\n }\n if (isMethod) {\n if (setId) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n }\n return t.sequenceExpression([\n this.receiver(member),\n value,\n t.callExpression(file.addHelper(\"readOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n },\n\n destructureSet(member) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const { id, static: isStatic } = privateNamesMap.get(name);\n if (isStatic) {\n try {\n // classStaticPrivateFieldDestructureSet was introduced in 7.13.10\n // eslint-disable-next-line no-var\n var helper = file.addHelper(\"classStaticPrivateFieldDestructureSet\");\n } catch {\n throw new Error(\n \"Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \\n\" +\n \"please update @babel/helpers to the latest version.\",\n );\n }\n return t.memberExpression(\n t.callExpression(helper, [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"classPrivateFieldDestructureSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n },\n\n call(member, args: (t.Expression | t.SpreadElement)[]) {\n // The first access (the get) should do the memo assignment.\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, false);\n },\n\n optionalCall(member, args: (t.Expression | t.SpreadElement)[]) {\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n };\n\nconst privateNameHandlerLoose: Handler<PrivateNameState> = {\n get(member) {\n const { privateNamesMap, file } = this;\n const { object } = member.node;\n const { name } = (member.node.property as t.PrivateName).id;\n\n return template.expression`BASE(REF, PROP)[PROP]`({\n BASE: file.addHelper(\"classPrivateFieldLooseBase\"),\n REF: t.cloneNode(object),\n PROP: t.cloneNode(privateNamesMap.get(name).id),\n });\n },\n\n set() {\n // noop\n throw new Error(\"private name handler with loose = true don't need set()\");\n },\n\n boundGet(member) {\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n [t.cloneNode(member.node.object as t.Expression)],\n );\n },\n\n simpleSet(member) {\n return this.get(member);\n },\n\n destructureSet(member) {\n return this.get(member);\n },\n\n call(member, args) {\n return t.callExpression(this.get(member), args);\n },\n\n optionalCall(member, args) {\n return t.optionalCallExpression(this.get(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n};\n\nexport function transformPrivateNamesUsage(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n privateNamesMap: PrivateNamesMap,\n {\n privateFieldsAsProperties,\n noDocumentAll,\n innerBinding,\n }: {\n privateFieldsAsProperties: boolean;\n noDocumentAll: boolean;\n innerBinding: t.Identifier;\n },\n state: File,\n) {\n if (!privateNamesMap.size) return;\n\n const body = path.get(\"body\");\n const handler = privateFieldsAsProperties\n ? privateNameHandlerLoose\n : privateNameHandlerSpec;\n\n memberExpressionToFunctions<PrivateNameState>(body, privateNameVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n ...handler,\n noDocumentAll,\n innerBinding,\n });\n body.traverse(privateInVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n privateFieldsAsProperties,\n innerBinding,\n });\n}\n\nfunction buildPrivateFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${t.cloneNode(id)}, {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${t.cloneNode(id)}.set(${ref}, {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ${value},\n })` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n writable: true,\n value: ${value}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateStaticFieldInitSpec(\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId, initAdded } = privateName;\n const isAccessor = getId || setId;\n\n if (!prop.isProperty() && (initAdded || !isAccessor)) return;\n\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n }\n `,\n prop,\n );\n }\n\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n };\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { methodId, id, getId, setId, initAdded } = privateName;\n if (initAdded) return;\n\n if (methodId) {\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n}\n\nfunction buildPrivateInstanceMethodInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n return buildPrivateAccessorInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n }\n\n return buildPrivateInstanceMethodInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n}\n\nfunction buildPrivateAccessorInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId } = privateName;\n\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`\n ${id}.set(${ref}, {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceMethodInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id } = privateName;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateMethodInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${id}.add(${ref})` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateMethodInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)}\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPublicFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(ref, key, computed || t.isLiteral(key)),\n value,\n ),\n ),\n prop,\n );\n}\n\nfunction buildPublicFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n state: File,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n ref,\n computed || t.isLiteral(key)\n ? key\n : t.stringLiteral((key as t.Identifier).name),\n value,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n state: File,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, methodId, getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n })\n `,\n prop,\n );\n }\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodDeclaration(\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties = false,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const {\n id,\n methodId,\n getId,\n setId,\n getterDeclared,\n setterDeclared,\n static: isStatic,\n } = privateName;\n const { params, body, generator, async } = prop.node;\n const isGetter = getId && !getterDeclared && params.length === 0;\n const isSetter = setId && !setterDeclared && params.length > 0;\n\n let declId = methodId;\n\n if (isGetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n getterDeclared: true,\n });\n declId = getId;\n } else if (isSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n setterDeclared: true,\n });\n declId = setId;\n } else if (isStatic && !privateFieldsAsProperties) {\n declId = id;\n }\n\n return inheritPropComments(\n t.functionDeclaration(\n t.cloneNode(declId),\n // @ts-expect-error params for ClassMethod has TSParameterProperty\n params,\n body,\n generator,\n async,\n ),\n prop,\n );\n}\n\ntype ReplaceThisState = {\n classRef: t.Identifier;\n needsClassRef: boolean;\n innerBinding: t.Identifier | null;\n};\n\ntype ReplaceInnerBindingReferenceState = ReplaceThisState;\n\nconst thisContextVisitor = traverse.visitors.merge<ReplaceThisState>([\n {\n UnaryExpression(path) {\n // Replace `delete this` with `true`\n const { node } = path;\n if (node.operator === \"delete\") {\n const argument = skipTransparentExprWrapperNodes(node.argument);\n if (t.isThisExpression(argument)) {\n path.replaceWith(t.booleanLiteral(true));\n }\n }\n },\n ThisExpression(path, state) {\n state.needsClassRef = true;\n path.replaceWith(t.cloneNode(state.classRef));\n },\n MetaProperty(path) {\n const { node, scope } = path;\n // if there are `new.target` in static field\n // we should replace it with `undefined`\n if (node.meta.name === \"new\" && node.property.name === \"target\") {\n path.replaceWith(scope.buildUndefinedNode());\n }\n },\n },\n environmentVisitor,\n]);\n\nconst innerReferencesVisitor: Visitor<ReplaceInnerBindingReferenceState> = {\n ReferencedIdentifier(path, state) {\n if (\n path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)\n ) {\n state.needsClassRef = true;\n path.node.name = state.classRef.name;\n }\n },\n};\n\nfunction replaceThisContext(\n path: PropPath,\n ref: t.Identifier,\n innerBindingRef: t.Identifier | null,\n) {\n const state: ReplaceThisState = {\n classRef: ref,\n needsClassRef: false,\n innerBinding: innerBindingRef,\n };\n if (!path.isMethod()) {\n // replace `this` in property initializers and static blocks\n path.traverse(thisContextVisitor, state);\n }\n\n // todo: use innerBinding.referencePaths to avoid full traversal\n if (\n innerBindingRef != null &&\n state.classRef?.name &&\n state.classRef.name !== innerBindingRef.name\n ) {\n path.traverse(innerReferencesVisitor, state);\n }\n\n return state.needsClassRef;\n}\n\nexport type PropNode =\n | t.ClassProperty\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock;\nexport type PropPath = NodePath<PropNode>;\n\nfunction isNameOrLength({ key, computed }: t.ClassProperty) {\n if (key.type === \"Identifier\") {\n return !computed && (key.name === \"name\" || key.name === \"length\");\n }\n if (key.type === \"StringLiteral\") {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\n/**\n * Inherit comments from class members. This is a reduced version of\n * t.inheritsComments: the trailing comments are not inherited because\n * for most class members except the last one, their trailing comments are\n * the next sibling's leading comments.\n *\n * @template T transformed class member type\n * @param {T} node transformed class member\n * @param {PropPath} prop class member\n * @returns transformed class member type with comments inherited\n */\nfunction inheritPropComments<T extends t.Node>(node: T, prop: PropPath) {\n t.inheritLeadingComments(node, prop.node);\n t.inheritInnerComments(node, prop.node);\n return node;\n}\n\n/**\n * ClassRefFlag records the requirement of the class binding reference.\n *\n * @enum {number}\n */\nconst enum ClassRefFlag {\n None,\n /**\n * When this flag is enabled, the binding reference can be the class id,\n * if exists, or the uid identifier generated for class expression. The\n * reference is safe to be consumed by [[Define]].\n */\n ForDefine = 1 << 0,\n /**\n * When this flag is enabled, the reference must be a uid, because the outer\n * class binding can be mutated by user codes.\n * E.g.\n * class C { static p = C }; const oldC = C; C = null; oldC.p;\n * we must memoize class `C` before defining the property `p`.\n */\n ForInnerBinding = 1 << 1,\n}\n\nexport function buildFieldsInitNodes(\n ref: t.Identifier | null,\n superRef: t.Expression | undefined,\n props: PropPath[],\n privateNamesMap: PrivateNamesMap,\n file: File,\n setPublicClassFields: boolean,\n privateFieldsAsProperties: boolean,\n constantSuper: boolean,\n innerBindingRef: t.Identifier | null,\n) {\n let classRefFlags = ClassRefFlag.None;\n let injectSuperRef: t.Identifier;\n const staticNodes: t.Statement[] = [];\n const instanceNodes: t.ExpressionStatement[] = [];\n let lastInstanceNodeReturnsThis = false;\n // These nodes are pure and can be moved to the closest statement position\n const pureStaticNodes: t.FunctionDeclaration[] = [];\n let classBindingNode: t.ExpressionStatement | null = null;\n\n const getSuperRef = t.isIdentifier(superRef)\n ? () => superRef\n : () => {\n injectSuperRef ??=\n props[0].scope.generateUidIdentifierBasedOnNode(superRef);\n return injectSuperRef;\n };\n\n const classRefForInnerBinding =\n ref ?? props[0].scope.generateUidIdentifier(\"class\");\n ref ??= t.cloneNode(innerBindingRef);\n\n for (const prop of props) {\n prop.isClassProperty() && ts.assertFieldTransformed(prop);\n\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n const isStatic = !t.isStaticBlock?.(prop.node) && prop.node.static;\n const isInstance = !isStatic;\n const isPrivate = prop.isPrivate();\n const isPublic = !isPrivate;\n const isField = prop.isProperty();\n const isMethod = !isField;\n const isStaticBlock = prop.isStaticBlock?.();\n\n if (isStatic) classRefFlags |= ClassRefFlag.ForDefine;\n\n if (isStatic || (isMethod && isPrivate) || isStaticBlock) {\n new ReplaceSupers({\n methodPath: prop,\n constantSuper,\n file: file,\n refToPreserve: innerBindingRef,\n getSuperRef,\n getObjectRef() {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n if (isStatic || isStaticBlock) {\n return classRefForInnerBinding;\n } else {\n return t.memberExpression(\n classRefForInnerBinding,\n t.identifier(\"prototype\"),\n );\n }\n },\n }).replace();\n\n const replaced = replaceThisContext(\n prop,\n classRefForInnerBinding,\n innerBindingRef,\n );\n if (replaced) {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n }\n }\n\n lastInstanceNodeReturnsThis = false;\n\n // TODO(ts): there are so many `ts-expect-error` inside cases since\n // ts can not infer type from pre-computed values (or a case test)\n // even change `isStaticBlock` to `t.isStaticBlock(prop)` will not make prop\n // a `NodePath<t.StaticBlock>`\n // this maybe a bug for ts\n switch (true) {\n case isStaticBlock: {\n const blockBody = (prop.node as t.StaticBlock).body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n staticNodes.push(inheritPropComments(blockBody[0], prop));\n } else {\n staticNodes.push(\n t.inheritsComments(\n template.statement.ast`(() => { ${blockBody} })()`,\n prop.node,\n ),\n );\n }\n break;\n }\n case isStatic && isPrivate && isField && privateFieldsAsProperties:\n staticNodes.push(\n buildPrivateFieldInitLoose(t.cloneNode(ref), prop, privateNamesMap),\n );\n break;\n case isStatic && isPrivate && isField && !privateFieldsAsProperties:\n staticNodes.push(\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n break;\n case isStatic && isPublic && isField && setPublicClassFields:\n // Functions always have non-writable .name and .length properties,\n // so we must always use [[Define]] for them.\n // It might still be possible to a computed static fields whose resulting\n // key is \"name\" or \"length\", but the assumption is telling us that it's\n // not going to happen.\n // @ts-expect-error checked in switch\n if (!isNameOrLength(prop.node)) {\n // @ts-expect-error checked in switch\n staticNodes.push(buildPublicFieldInitLoose(t.cloneNode(ref), prop));\n break;\n }\n // falls through\n case isStatic && isPublic && isField && !setPublicClassFields:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.cloneNode(ref), prop, file),\n );\n break;\n case isInstance && isPrivate && isField && privateFieldsAsProperties:\n instanceNodes.push(\n buildPrivateFieldInitLoose(t.thisExpression(), prop, privateNamesMap),\n );\n break;\n case isInstance && isPrivate && isField && !privateFieldsAsProperties:\n instanceNodes.push(\n buildPrivateInstanceFieldInitSpec(\n t.thisExpression(),\n prop,\n privateNamesMap,\n file,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateMethodInitLoose(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && !privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateInstanceMethodInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && !privateFieldsAsProperties:\n staticNodes.unshift(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && privateFieldsAsProperties:\n staticNodes.unshift(\n buildPrivateStaticMethodInitLoose(\n t.cloneNode(ref),\n // @ts-expect-error checked in switch\n prop,\n file,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPublic && isField && setPublicClassFields:\n // @ts-expect-error checked in switch\n instanceNodes.push(buildPublicFieldInitLoose(t.thisExpression(), prop));\n break;\n case isInstance && isPublic && isField && !setPublicClassFields:\n lastInstanceNodeReturnsThis = true;\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.thisExpression(), prop, file),\n );\n break;\n default:\n throw new Error(\"Unreachable.\");\n }\n }\n\n if (classRefFlags & ClassRefFlag.ForInnerBinding && innerBindingRef != null) {\n classBindingNode = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classRefForInnerBinding),\n t.cloneNode(innerBindingRef),\n ),\n );\n }\n\n return {\n staticNodes: staticNodes.filter(Boolean),\n instanceNodes: instanceNodes.filter(Boolean),\n lastInstanceNodeReturnsThis,\n pureStaticNodes: pureStaticNodes.filter(Boolean),\n classBindingNode,\n wrapClass(path: NodePath<t.Class>) {\n for (const prop of props) {\n // Delete leading comments so that they don't get attached as\n // trailing comments of the previous sibling.\n // When transforming props, we explicitly attach their leading\n // comments to the transformed node with `inheritPropComments`\n // above.\n prop.node.leadingComments = null;\n prop.remove();\n }\n\n if (injectSuperRef) {\n path.scope.push({ id: t.cloneNode(injectSuperRef) });\n path.set(\n \"superClass\",\n t.assignmentExpression(\"=\", injectSuperRef, path.node.superClass),\n );\n }\n\n if (classRefFlags !== ClassRefFlag.None) {\n if (path.isClassExpression()) {\n path.scope.push({ id: ref });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(ref), path.node),\n );\n } else {\n if (innerBindingRef == null) {\n // export anonymous class declaration\n path.node.id = ref;\n }\n if (classBindingNode != null) {\n path.scope.push({ id: classRefForInnerBinding });\n }\n }\n }\n\n return path;\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js
index 69bff6fe..5100f585 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js
@@ -31,9 +31,10 @@ Object.defineProperty(exports, "injectInitialization", {
var _core = require("@babel/core");
var _helperFunctionName = require("@babel/helper-function-name");
var _helperSplitExportDeclaration = require("@babel/helper-split-export-declaration");
+var _decorators = require("./decorators.js");
var _semver = require("semver");
var _fields = require("./fields.js");
-var _decorators = require("./decorators.js");
+var _decorators2 = require("./decorators-2018-09.js");
var _misc = require("./misc.js");
var _features = require("./features.js");
var _typescript = require("./typescript.js");
@@ -44,8 +45,18 @@ function createClassFeaturePlugin({
loose,
manipulateOptions,
api,
- inherits
+ inherits,
+ decoratorVersion
}) {
+ if (feature & _features.FEATURES.decorators) {
+ {
+ if (decoratorVersion === "2021-12" || decoratorVersion === "2022-03" || decoratorVersion === "2023-01" || decoratorVersion === "2023-05") {
+ return (0, _decorators.default)(api, {
+ loose
+ }, decoratorVersion, inherits);
+ }
+ }
+ }
{
var _api;
(_api = api) != null ? _api : api = {
@@ -84,12 +95,12 @@ function createClassFeaturePlugin({
(0, _features.enableFeature)(file, feature, loose);
{
if (typeof file.get(versionKey) === "number") {
- file.set(versionKey, "7.23.6");
+ file.set(versionKey, "7.23.7");
return;
}
}
- if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.23.6")) {
- file.set(versionKey, "7.23.6");
+ if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.23.7")) {
+ file.set(versionKey, "7.23.7");
}
},
visitor: {
@@ -97,13 +108,13 @@ function createClassFeaturePlugin({
file
}) {
var _ref;
- if (file.get(versionKey) !== "7.23.6") return;
+ if (file.get(versionKey) !== "7.23.7") return;
if (!(0, _features.shouldTransform)(path, file)) return;
const pathIsClassDeclaration = path.isClassDeclaration();
if (pathIsClassDeclaration) (0, _typescript.assertFieldTransformed)(path);
const loose = (0, _features.isLoose)(file, feature);
let constructor;
- const isDecorated = (0, _decorators.hasDecorators)(path.node);
+ const isDecorated = (0, _decorators2.hasDecorators)(path.node);
const props = [];
const elements = [];
const computedPaths = [];
@@ -173,7 +184,7 @@ function createClassFeaturePlugin({
({
instanceNodes,
wrapClass
- } = (0, _decorators.buildDecoratedClass)(classRefForDefine, path, elements, file));
+ } = (0, _decorators2.buildDecoratedClass)(classRefForDefine, path, elements, file));
} else {
keysNodes = (0, _misc.extractComputedKeys)(path, computedPaths, file);
({
@@ -213,9 +224,9 @@ function createClassFeaturePlugin({
file
}) {
{
- if (file.get(versionKey) !== "7.23.6") return;
+ if (file.get(versionKey) !== "7.23.7") return;
const decl = path.get("declaration");
- if (decl.isClassDeclaration() && (0, _decorators.hasDecorators)(decl.node)) {
+ if (decl.isClassDeclaration() && (0, _decorators2.hasDecorators)(decl.node)) {
if (decl.node.id) {
(0, _helperSplitExportDeclaration.default)(path);
} else {
diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map
index 7f1c8989..94881ba7 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map
+++ b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map
@@ -1 +1 @@
-{"version":3,"names":["_core","require","_helperFunctionName","_helperSplitExportDeclaration","_semver","_fields","_decorators","_misc","_features","_typescript","versionKey","createClassFeaturePlugin","name","feature","loose","manipulateOptions","api","inherits","_api","assumption","setPublicClassFields","privateFieldsAsSymbols","privateFieldsAsProperties","constantSuper","noDocumentAll","Error","privateFieldsAsSymbolsOrProperties","explicit","undefined","push","length","console","warn","join","pre","file","enableFeature","get","set","semver","lt","visitor","Class","path","_ref","shouldTransform","pathIsClassDeclaration","isClassDeclaration","assertFieldTransformed","isLoose","constructor","isDecorated","hasDecorators","node","props","elements","computedPaths","privateNames","Set","body","isClassProperty","isClassMethod","computed","isPrivate","key","id","getName","setName","isClassPrivateMethod","kind","has","buildCodeFrameError","add","isProperty","isStaticBlock","innerBinding","ref","nameFunction","scope","generateUidIdentifier","classRefForDefine","t","cloneNode","privateNamesMap","buildPrivateNamesMap","privateNamesNodes","buildPrivateNamesNodes","transformPrivateNamesUsage","keysNodes","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","wrapClass","buildDecoratedClass","extractComputedKeys","buildFieldsInitNodes","superClass","injectInitialization","referenceVisitor","state","prop","static","traverse","wrappedPath","insertBefore","insertAfter","find","parent","isStatement","isDeclaration","ExportDefaultDeclaration","decl","splitExportDeclaration","type"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginAPI, PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\n\nimport semver from \"semver\";\n\nimport {\n buildPrivateNamesNodes,\n buildPrivateNamesMap,\n transformPrivateNamesUsage,\n buildFieldsInitNodes,\n buildCheckInRHS,\n} from \"./fields.ts\";\nimport type { PropPath } from \"./fields.ts\";\nimport { buildDecoratedClass, hasDecorators } from \"./decorators.ts\";\nimport { injectInitialization, extractComputedKeys } from \"./misc.ts\";\nimport {\n enableFeature,\n FEATURES,\n isLoose,\n shouldTransform,\n} from \"./features.ts\";\nimport { assertFieldTransformed } from \"./typescript.ts\";\n\nexport { FEATURES, enableFeature, injectInitialization, buildCheckInRHS };\n\nconst versionKey = \"@babel/plugin-class-features/version\";\n\ninterface Options {\n name: string;\n feature: number;\n loose?: boolean;\n inherits?: PluginObject[\"inherits\"];\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n api?: PluginAPI;\n}\n\nexport function createClassFeaturePlugin({\n name,\n feature,\n loose,\n manipulateOptions,\n api,\n inherits,\n}: Options): PluginObject {\n if (!process.env.BABEL_8_BREAKING) {\n api ??= { assumption: () => void 0 as any } as any;\n }\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n const privateFieldsAsSymbols = api.assumption(\"privateFieldsAsSymbols\");\n const privateFieldsAsProperties = api.assumption(\"privateFieldsAsProperties\");\n const constantSuper = api.assumption(\"constantSuper\");\n const noDocumentAll = api.assumption(\"noDocumentAll\");\n\n if (privateFieldsAsProperties && privateFieldsAsSymbols) {\n throw new Error(\n `Cannot enable both the \"privateFieldsAsProperties\" and ` +\n `\"privateFieldsAsSymbols\" assumptions as the same time.`,\n );\n }\n const privateFieldsAsSymbolsOrProperties =\n privateFieldsAsProperties || privateFieldsAsSymbols;\n\n if (loose === true) {\n type AssumptionName = Parameters<PluginAPI[\"assumption\"]>[0];\n const explicit: `\"${AssumptionName}\"`[] = [];\n\n if (setPublicClassFields !== undefined) {\n explicit.push(`\"setPublicClassFields\"`);\n }\n if (privateFieldsAsProperties !== undefined) {\n explicit.push(`\"privateFieldsAsProperties\"`);\n }\n if (privateFieldsAsSymbols !== undefined) {\n explicit.push(`\"privateFieldsAsSymbols\"`);\n }\n if (explicit.length !== 0) {\n console.warn(\n `[${name}]: You are using the \"loose: true\" option and you are` +\n ` explicitly setting a value for the ${explicit.join(\" and \")}` +\n ` assumption${explicit.length > 1 ? \"s\" : \"\"}. The \"loose\" option` +\n ` can cause incompatibilities with the other class features` +\n ` plugins, so it's recommended that you replace it with the` +\n ` following top-level option:\\n` +\n `\\t\"assumptions\": {\\n` +\n `\\t\\t\"setPublicClassFields\": true,\\n` +\n `\\t\\t\"privateFieldsAsSymbols\": true\\n` +\n `\\t}`,\n );\n }\n }\n\n return {\n name,\n manipulateOptions,\n inherits,\n\n pre(file) {\n enableFeature(file, feature, loose);\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n Class(path, { file }) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n if (!shouldTransform(path, file)) return;\n\n const pathIsClassDeclaration = path.isClassDeclaration();\n\n if (pathIsClassDeclaration) assertFieldTransformed(path);\n\n const loose = isLoose(file, feature);\n\n let constructor: NodePath<t.ClassMethod>;\n const isDecorated = hasDecorators(path.node);\n const props: PropPath[] = [];\n const elements = [];\n const computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[] = [];\n const privateNames = new Set<string>();\n const body = path.get(\"body\");\n\n for (const path of body.get(\"body\")) {\n if (\n // check path.node.computed is enough, but ts will complain\n (path.isClassProperty() || path.isClassMethod()) &&\n path.node.computed\n ) {\n computedPaths.push(path);\n }\n\n if (path.isPrivate()) {\n const { name } = path.node.key.id;\n const getName = `get ${name}`;\n const setName = `set ${name}`;\n\n if (path.isClassPrivateMethod()) {\n if (path.node.kind === \"get\") {\n if (\n privateNames.has(getName) ||\n (privateNames.has(name) && !privateNames.has(setName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(getName).add(name);\n } else if (path.node.kind === \"set\") {\n if (\n privateNames.has(setName) ||\n (privateNames.has(name) && !privateNames.has(getName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(setName).add(name);\n }\n } else {\n if (\n (privateNames.has(name) &&\n !privateNames.has(getName) &&\n !privateNames.has(setName)) ||\n (privateNames.has(name) &&\n (privateNames.has(getName) || privateNames.has(setName)))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n\n privateNames.add(name);\n }\n }\n\n if (path.isClassMethod({ kind: \"constructor\" })) {\n constructor = path;\n } else {\n elements.push(path);\n if (\n path.isProperty() ||\n path.isPrivate() ||\n path.isStaticBlock?.()\n ) {\n props.push(path as PropPath);\n }\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (!props.length) return;\n } else {\n if (!props.length && !isDecorated) return;\n }\n\n const innerBinding = path.node.id;\n let ref: t.Identifier | null;\n if (!innerBinding || !pathIsClassDeclaration) {\n nameFunction(path);\n ref = path.scope.generateUidIdentifier(\"class\");\n }\n const classRefForDefine = ref ?? t.cloneNode(innerBinding);\n\n // NODE: These three functions don't support decorators yet,\n // but verifyUsedFeatures throws if there are both\n // decorators and private fields.\n const privateNamesMap = buildPrivateNamesMap(props);\n const privateNamesNodes = buildPrivateNamesNodes(\n privateNamesMap,\n privateFieldsAsProperties ?? loose,\n privateFieldsAsSymbols ?? false,\n file,\n );\n\n transformPrivateNamesUsage(\n classRefForDefine,\n path,\n privateNamesMap,\n {\n privateFieldsAsProperties:\n privateFieldsAsSymbolsOrProperties ?? loose,\n noDocumentAll,\n innerBinding,\n },\n file,\n );\n\n let keysNodes: t.Statement[],\n staticNodes: t.Statement[],\n instanceNodes: t.ExpressionStatement[],\n lastInstanceNodeReturnsThis: boolean,\n pureStaticNodes: t.FunctionDeclaration[],\n classBindingNode: t.Statement | null,\n wrapClass: (path: NodePath<t.Class>) => NodePath;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) {\n staticNodes = pureStaticNodes = keysNodes = [];\n ({ instanceNodes, wrapClass } = buildDecoratedClass(\n classRefForDefine,\n path,\n elements,\n file,\n ));\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n\n if (instanceNodes.length > 0) {\n injectInitialization(\n path,\n constructor,\n instanceNodes,\n (referenceVisitor, state) => {\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) return;\n }\n for (const prop of props) {\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n if (t.isStaticBlock?.(prop.node) || prop.node.static) continue;\n prop.traverse(referenceVisitor, state);\n }\n },\n lastInstanceNodeReturnsThis,\n );\n }\n\n // rename to make ts happy\n const wrappedPath = wrapClass(path);\n wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);\n if (staticNodes.length > 0) {\n wrappedPath.insertAfter(staticNodes);\n }\n if (pureStaticNodes.length > 0) {\n wrappedPath\n .find(parent => parent.isStatement() || parent.isDeclaration())\n .insertAfter(pureStaticNodes);\n }\n if (classBindingNode != null && pathIsClassDeclaration) {\n wrappedPath.insertAfter(classBindingNode);\n }\n },\n\n ExportDefaultDeclaration(path, { file }) {\n if (!process.env.BABEL_8_BREAKING) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n const decl = path.get(\"declaration\");\n\n if (decl.isClassDeclaration() && hasDecorators(decl.node)) {\n if (decl.node.id) {\n // export default class Foo {}\n // -->\n // class Foo {} export { Foo as default }\n splitExportDeclaration(path);\n } else {\n // @ts-expect-error Anonymous class declarations can be\n // transformed as if they were expressions\n decl.node.type = \"ClassExpression\";\n }\n }\n }\n },\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
+{"version":3,"names":["_core","require","_helperFunctionName","_helperSplitExportDeclaration","_decorators","_semver","_fields","_decorators2","_misc","_features","_typescript","versionKey","createClassFeaturePlugin","name","feature","loose","manipulateOptions","api","inherits","decoratorVersion","FEATURES","decorators","createDecoratorTransform","_api","assumption","setPublicClassFields","privateFieldsAsSymbols","privateFieldsAsProperties","constantSuper","noDocumentAll","Error","privateFieldsAsSymbolsOrProperties","explicit","undefined","push","length","console","warn","join","pre","file","enableFeature","get","set","semver","lt","visitor","Class","path","_ref","shouldTransform","pathIsClassDeclaration","isClassDeclaration","assertFieldTransformed","isLoose","constructor","isDecorated","hasDecorators","node","props","elements","computedPaths","privateNames","Set","body","isClassProperty","isClassMethod","computed","isPrivate","key","id","getName","setName","isClassPrivateMethod","kind","has","buildCodeFrameError","add","isProperty","isStaticBlock","innerBinding","ref","nameFunction","scope","generateUidIdentifier","classRefForDefine","t","cloneNode","privateNamesMap","buildPrivateNamesMap","privateNamesNodes","buildPrivateNamesNodes","transformPrivateNamesUsage","keysNodes","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","wrapClass","buildDecoratedClass","extractComputedKeys","buildFieldsInitNodes","superClass","injectInitialization","referenceVisitor","state","prop","static","traverse","wrappedPath","insertBefore","insertAfter","find","parent","isStatement","isDeclaration","ExportDefaultDeclaration","decl","splitExportDeclaration","type"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginAPI, PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport createDecoratorTransform from \"./decorators.ts\";\n\nimport semver from \"semver\";\n\nimport {\n buildPrivateNamesNodes,\n buildPrivateNamesMap,\n transformPrivateNamesUsage,\n buildFieldsInitNodes,\n buildCheckInRHS,\n} from \"./fields.ts\";\nimport type { PropPath } from \"./fields.ts\";\nimport { buildDecoratedClass, hasDecorators } from \"./decorators-2018-09.ts\";\nimport { injectInitialization, extractComputedKeys } from \"./misc.ts\";\nimport {\n enableFeature,\n FEATURES,\n isLoose,\n shouldTransform,\n} from \"./features.ts\";\nimport { assertFieldTransformed } from \"./typescript.ts\";\n\nexport { FEATURES, enableFeature, injectInitialization, buildCheckInRHS };\n\nconst versionKey = \"@babel/plugin-class-features/version\";\n\ninterface Options {\n name: string;\n feature: number;\n loose?: boolean;\n inherits?: PluginObject[\"inherits\"];\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n api?: PluginAPI;\n decoratorVersion?: \"2023-05\" | \"2023-01\" | \"2022-03\" | \"2021-12\" | \"2018-09\";\n}\n\nexport function createClassFeaturePlugin({\n name,\n feature,\n loose,\n manipulateOptions,\n api,\n inherits,\n decoratorVersion,\n}: Options): PluginObject {\n if (feature & FEATURES.decorators) {\n if (process.env.BABEL_8_BREAKING) {\n return createDecoratorTransform(api, { loose }, \"2023-05\", inherits);\n } else {\n if (\n decoratorVersion === \"2021-12\" ||\n decoratorVersion === \"2022-03\" ||\n decoratorVersion === \"2023-01\" ||\n decoratorVersion === \"2023-05\"\n ) {\n return createDecoratorTransform(\n api,\n { loose },\n decoratorVersion,\n inherits,\n );\n }\n }\n }\n if (!process.env.BABEL_8_BREAKING) {\n api ??= { assumption: () => void 0 as any } as any;\n }\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n const privateFieldsAsSymbols = api.assumption(\"privateFieldsAsSymbols\");\n const privateFieldsAsProperties = api.assumption(\"privateFieldsAsProperties\");\n const constantSuper = api.assumption(\"constantSuper\");\n const noDocumentAll = api.assumption(\"noDocumentAll\");\n\n if (privateFieldsAsProperties && privateFieldsAsSymbols) {\n throw new Error(\n `Cannot enable both the \"privateFieldsAsProperties\" and ` +\n `\"privateFieldsAsSymbols\" assumptions as the same time.`,\n );\n }\n const privateFieldsAsSymbolsOrProperties =\n privateFieldsAsProperties || privateFieldsAsSymbols;\n\n if (loose === true) {\n type AssumptionName = Parameters<PluginAPI[\"assumption\"]>[0];\n const explicit: `\"${AssumptionName}\"`[] = [];\n\n if (setPublicClassFields !== undefined) {\n explicit.push(`\"setPublicClassFields\"`);\n }\n if (privateFieldsAsProperties !== undefined) {\n explicit.push(`\"privateFieldsAsProperties\"`);\n }\n if (privateFieldsAsSymbols !== undefined) {\n explicit.push(`\"privateFieldsAsSymbols\"`);\n }\n if (explicit.length !== 0) {\n console.warn(\n `[${name}]: You are using the \"loose: true\" option and you are` +\n ` explicitly setting a value for the ${explicit.join(\" and \")}` +\n ` assumption${explicit.length > 1 ? \"s\" : \"\"}. The \"loose\" option` +\n ` can cause incompatibilities with the other class features` +\n ` plugins, so it's recommended that you replace it with the` +\n ` following top-level option:\\n` +\n `\\t\"assumptions\": {\\n` +\n `\\t\\t\"setPublicClassFields\": true,\\n` +\n `\\t\\t\"privateFieldsAsSymbols\": true\\n` +\n `\\t}`,\n );\n }\n }\n\n return {\n name,\n manipulateOptions,\n inherits,\n\n pre(file) {\n enableFeature(file, feature, loose);\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n Class(path, { file }) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n if (!shouldTransform(path, file)) return;\n\n const pathIsClassDeclaration = path.isClassDeclaration();\n\n if (pathIsClassDeclaration) assertFieldTransformed(path);\n\n const loose = isLoose(file, feature);\n\n let constructor: NodePath<t.ClassMethod>;\n const isDecorated = hasDecorators(path.node);\n const props: PropPath[] = [];\n const elements = [];\n const computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[] = [];\n const privateNames = new Set<string>();\n const body = path.get(\"body\");\n\n for (const path of body.get(\"body\")) {\n if (\n // check path.node.computed is enough, but ts will complain\n (path.isClassProperty() || path.isClassMethod()) &&\n path.node.computed\n ) {\n computedPaths.push(path);\n }\n\n if (path.isPrivate()) {\n const { name } = path.node.key.id;\n const getName = `get ${name}`;\n const setName = `set ${name}`;\n\n if (path.isClassPrivateMethod()) {\n if (path.node.kind === \"get\") {\n if (\n privateNames.has(getName) ||\n (privateNames.has(name) && !privateNames.has(setName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(getName).add(name);\n } else if (path.node.kind === \"set\") {\n if (\n privateNames.has(setName) ||\n (privateNames.has(name) && !privateNames.has(getName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(setName).add(name);\n }\n } else {\n if (\n (privateNames.has(name) &&\n !privateNames.has(getName) &&\n !privateNames.has(setName)) ||\n (privateNames.has(name) &&\n (privateNames.has(getName) || privateNames.has(setName)))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n\n privateNames.add(name);\n }\n }\n\n if (path.isClassMethod({ kind: \"constructor\" })) {\n constructor = path;\n } else {\n elements.push(path);\n if (\n path.isProperty() ||\n path.isPrivate() ||\n path.isStaticBlock?.()\n ) {\n props.push(path as PropPath);\n }\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (!props.length) return;\n } else {\n if (!props.length && !isDecorated) return;\n }\n\n const innerBinding = path.node.id;\n let ref: t.Identifier | null;\n if (!innerBinding || !pathIsClassDeclaration) {\n nameFunction(path);\n ref = path.scope.generateUidIdentifier(\"class\");\n }\n const classRefForDefine = ref ?? t.cloneNode(innerBinding);\n\n // NODE: These three functions don't support decorators yet,\n // but verifyUsedFeatures throws if there are both\n // decorators and private fields.\n const privateNamesMap = buildPrivateNamesMap(props);\n const privateNamesNodes = buildPrivateNamesNodes(\n privateNamesMap,\n privateFieldsAsProperties ?? loose,\n privateFieldsAsSymbols ?? false,\n file,\n );\n\n transformPrivateNamesUsage(\n classRefForDefine,\n path,\n privateNamesMap,\n {\n privateFieldsAsProperties:\n privateFieldsAsSymbolsOrProperties ?? loose,\n noDocumentAll,\n innerBinding,\n },\n file,\n );\n\n let keysNodes: t.Statement[],\n staticNodes: t.Statement[],\n instanceNodes: t.ExpressionStatement[],\n lastInstanceNodeReturnsThis: boolean,\n pureStaticNodes: t.FunctionDeclaration[],\n classBindingNode: t.Statement | null,\n wrapClass: (path: NodePath<t.Class>) => NodePath;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) {\n staticNodes = pureStaticNodes = keysNodes = [];\n ({ instanceNodes, wrapClass } = buildDecoratedClass(\n classRefForDefine,\n path,\n elements,\n file,\n ));\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n\n if (instanceNodes.length > 0) {\n injectInitialization(\n path,\n constructor,\n instanceNodes,\n (referenceVisitor, state) => {\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) return;\n }\n for (const prop of props) {\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n if (t.isStaticBlock?.(prop.node) || prop.node.static) continue;\n prop.traverse(referenceVisitor, state);\n }\n },\n lastInstanceNodeReturnsThis,\n );\n }\n\n // rename to make ts happy\n const wrappedPath = wrapClass(path);\n wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);\n if (staticNodes.length > 0) {\n wrappedPath.insertAfter(staticNodes);\n }\n if (pureStaticNodes.length > 0) {\n wrappedPath\n .find(parent => parent.isStatement() || parent.isDeclaration())\n .insertAfter(pureStaticNodes);\n }\n if (classBindingNode != null && pathIsClassDeclaration) {\n wrappedPath.insertAfter(classBindingNode);\n }\n },\n\n ExportDefaultDeclaration(path, { file }) {\n if (!process.env.BABEL_8_BREAKING) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n const decl = path.get(\"declaration\");\n\n if (decl.isClassDeclaration() && hasDecorators(decl.node)) {\n if (decl.node.id) {\n // export default class Foo {}\n // -->\n // class Foo {} export { Foo as default }\n splitExportDeclaration(path);\n } else {\n // @ts-expect-error Anonymous class declarations can be\n // transformed as if they were expressions\n decl.node.type = \"ClassExpression\";\n }\n }\n }\n },\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helper-create-class-features-plugin/package.json b/node_modules/@babel/helper-create-class-features-plugin/package.json
index 8e2ba75c..b2f0fdfb 100644
--- a/node_modules/@babel/helper-create-class-features-plugin/package.json
+++ b/node_modules/@babel/helper-create-class-features-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/helper-create-class-features-plugin",
- "version": "7.23.6",
+ "version": "7.23.7",
"author": "The Babel Team (https://babel.dev/team)",
"license": "MIT",
"description": "Compile class public and private fields, private methods and decorators to ES6",
@@ -32,9 +32,11 @@
"@babel/core": "^7.0.0"
},
"devDependencies": {
- "@babel/core": "^7.23.6",
+ "@babel/core": "^7.23.7",
"@babel/helper-plugin-test-runner": "^7.22.5",
- "@babel/preset-env": "^7.23.6"
+ "@babel/preset-env": "^7.23.7",
+ "@types/charcodes": "^0.2.0",
+ "charcodes": "^0.2.0"
},
"engines": {
"node": ">=6.9.0"
diff --git a/node_modules/@babel/helpers/lib/helpers-generated.js b/node_modules/@babel/helpers/lib/helpers-generated.js
index 656a51dc..356e9b0e 100644
--- a/node_modules/@babel/helpers/lib/helpers-generated.js
+++ b/node_modules/@babel/helpers/lib/helpers-generated.js
@@ -20,7 +20,7 @@ var _default = exports.default = Object.freeze({
applyDecs2203: helper("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}'),
applyDecs2203R: helper("7.20.0", 'import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:o?"#"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u="get"):3===a?(c={get:r[3]},u="get"):4===a?(c={set:r[3]},u="set"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],"#"+n,"set"),setFunctionName(r[3],"#"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),"function"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:"function"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}'),
applyDecs2301: helper("7.21.0", 'import checkInRHS from"checkInRHS";import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var l,f,p={kind:u,name:s?"#"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f="get"):3===a?(u={get:r[3]},f="get"):4===a?(u={set:r[3]},f="set"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,"#"+n,"set"),setFunctionName(u[f||"value"],"#"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),"function"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:"function"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}'),
- applyDecs2305: helper("7.21.0", 'import checkInRHS from"checkInRHS";import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?"get":4===o||d?"set":"value";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,"get"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?"":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","field","class"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,"get",f&&m)),(o<2||4===o)&&(F=i(S,"set",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if("object"==typeof v&&v)(y=s(v.get,"accessor.get"))&&(S.get=y),(y=s(v.set,"accessor.set"))&&(S.set=y),(y=s(v.init,"accessor.init"))&&A.push(y);else if(void 0!==v)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(v,(p?"field":"method")+" decorators","return")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,"get"),i(S,"set")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),"class decorators","return")||e,f),c.bind(null,t,e)]}}}'),
+ applyDecs2305: helper("7.21.0", 'import checkInRHS from"checkInRHS";import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?"get":4===o||d?"set":"value";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,"get"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?"":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,"get",f&&m)),(o<2||4===o)&&(F=i(S,"set",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if("object"==typeof v&&v)(y=s(v.get,"accessor.get"))&&(S.get=y),(y=s(v.set,"accessor.set"))&&(S.set=y),(y=s(v.init,"accessor.init"))&&A.push(y);else if(void 0!==v)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(v,(p?"field":"method")+" decorators","return")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,"get"),i(S,"set")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),"class decorators","return")||e,f),c.bind(null,t,e)]}}}'),
asyncGeneratorDelegate: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}'),
asyncIterator: helper("7.15.9", 'export default function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}'),
awaitAsyncGenerator: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}'),
diff --git a/node_modules/@babel/helpers/lib/helpers-generated.js.map b/node_modules/@babel/helpers/lib/helpers-generated.js.map
index 51998e22..59c835e7 100644
--- a/node_modules/@babel/helpers/lib/helpers-generated.js.map
+++ b/node_modules/@babel/helpers/lib/helpers-generated.js.map
@@ -1 +1 @@
-{"version":3,"names":["_template","require","helper","minVersion","source","Object","freeze","ast","template","program","preserveComments","_default","exports","default","AsyncGenerator","OverloadYield","applyDecs","applyDecs2203","applyDecs2203R","applyDecs2301","applyDecs2305","asyncGeneratorDelegate","asyncIterator","awaitAsyncGenerator","checkInRHS","defineAccessor","dispose","importDeferProxy","interopRequireWildcard","iterableToArrayLimit","iterableToArrayLimitLoose","jsx","objectSpread2","regeneratorRuntime","setFunctionName","toPrimitive","toPropertyKey","typeof","using","wrapRegExp"],"sources":["../src/helpers-generated.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'yarn gulp generate-runtime-helpers'\n */\n\nimport template from \"@babel/template\";\n\nfunction helper(minVersion: string, source: string) {\n return Object.freeze({\n minVersion,\n ast: () => template.program.ast(source, { preserveComments: true }),\n });\n}\n\nexport default Object.freeze({\n // size: 1126, gzip size: 512\n AsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i=\"return\"===r?\"return\":\"next\";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?\"return\":\"normal\",t)}),(function(e){resume(\"throw\",e)}))}catch(e){settle(\"throw\",e)}}function settle(e,n){switch(e){case\"return\":r.resolve({value:n,done:!0});break;case\"throw\":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},\"function\"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke(\"next\",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke(\"throw\",e)},AsyncGenerator.prototype.return=function(e){return this._invoke(\"return\",e)};',\n ),\n // size: 62, gzip size: 78\n OverloadYield: helper(\n \"7.18.14\",\n \"export default function _OverloadYield(t,e){this.v=t,this.k=e}\",\n ),\n // size: 5887, gzip size: 2222\n applyDecs: helper(\n \"7.17.8\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,\"getMetadata\"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,\"constructor\"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,\"setMetadata\"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,\"addInitializer\"),old_assertCallable(a,\"An initializer\"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var d,u,f={kind:c,name:l?\"#\"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}function old_assertMetadataKey(e){if(\"symbol\"!=typeof e)throw new TypeError(\"Metadata keys must be symbols, received: \"+e)}function old_assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if(\"object\"!==a||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&old_assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&old_assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&old_assertCallable(t.init,\"accessor.init\"),void 0!==t.initializer&&old_assertCallable(t.initializer,\"accessor.initializer\")}else if(\"function\"!==a)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&\"undefined\"!=typeof console&&console.warn(\".initializer has been renamed to .init as of March 2022\"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u=\"get\"):3===o?(c={get:a[3]},u=\"get\"):4===o?(c={set:a[3]},u=\"set\"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],\"#\"+r,\"set\"),setFunctionName(a[3],\"#\"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),\"function\"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:\"function\"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if(\"function\"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:\"class\",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',\n ),\n // size: 3868, gzip size: 1578\n applyDecs2203: helper(\n \"7.19.0\",\n 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:s?\"#\"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),\"function\"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:\"function\"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:\"class\",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',\n ),\n // size: 4091, gzip size: 1651\n applyDecs2203R: helper(\n \"7.20.0\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:o?\"#\"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u=\"get\"):3===a?(c={get:r[3]},u=\"get\"):4===a?(c={set:r[3]},u=\"set\"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],\"#\"+n,\"set\"),setFunctionName(r[3],\"#\"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),\"function\"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:\"function\"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',\n ),\n // size: 4670, gzip size: 1848\n applyDecs2301: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError(\"Attempted to access private element on non-instance\")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u=\"accessor\";break;case 2:u=\"method\";break;case 3:u=\"getter\";break;case 4:u=\"setter\";break;default:u=\"field\"}var l,f,p={kind:u,name:s?\"#\"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f=\"get\"):3===a?(u={get:r[3]},f=\"get\"):4===a?(u={set:r[3]},f=\"set\"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,\"#\"+n,\"set\"),setFunctionName(u[f||\"value\"],\"#\"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),\"function\"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:\"function\"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',\n ),\n // size: 3275, gzip size: 1613\n applyDecs2305: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if(\"function\"!=typeof e&&(n||void 0!==e))throw new TypeError(t+\" must \"+(r||\"be\")+\" a function\"+(n?\"\":\" or undefined\"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError(\"Attempted to access private element on non-instance\")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?\"get\":4===o||d?\"set\":\"value\";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,\"get\"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?\"\":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:[\"field\",\"accessor\",\"method\",\"getter\",\"setter\",\"field\",\"class\"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\");s(t,\"An initializer\",\"be\",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,\"get\",f&&m)),(o<2||4===o)&&(F=i(S,\"set\",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if(\"object\"==typeof v&&v)(y=s(v.get,\"accessor.get\"))&&(S.get=y),(y=s(v.set,\"accessor.set\"))&&(S.set=y),(y=s(v.init,\"accessor.init\"))&&A.push(y);else if(void 0!==v)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\")}else s(v,(p?\"field\":\"method\")+\" decorators\",\"return\")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,\"get\"),i(S,\"set\")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(\"Symbol.metadata\"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for(\"Symbol.metadata\")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+\"/\"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?\"#\"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),\"class decorators\",\"return\")||e,f),c.bind(null,t,e)]}}}',\n ),\n // size: 544, gzip size: 300\n asyncGeneratorDelegate: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e[\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump(\"next\",t)},\"function\"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump(\"throw\",t)}),\"function\"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump(\"return\",t)}),e}',\n ),\n // size: 1096, gzip size: 439\n asyncIterator: helper(\n \"7.15.9\",\n 'export default function _asyncIterator(r){var n,t,o,e=2;for(\"undefined\"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t=\"@@asyncIterator\",o=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+\" is not an object.\"));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',\n ),\n // size: 119, gzip size: 113\n awaitAsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}',\n ),\n // size: 161, gzip size: 154\n checkInRHS: helper(\n \"7.20.5\",\n 'export default function _checkInRHS(e){if(Object(e)!==e)throw TypeError(\"right-hand side of \\'in\\' should be an object, got \"+(null!==e?typeof e:\"null\"));return e}',\n ),\n // size: 130, gzip size: 130\n defineAccessor: helper(\n \"7.20.7\",\n \"export default function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}\",\n ),\n // size: 672, gzip size: 332\n dispose: helper(\n \"7.22.0\",\n 'function dispose_SuppressedError(r,e){return\"undefined\"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=r,this.error=e,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}export default function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(r,e):r,s=!0,next()}return next()}',\n ),\n // size: 552, gzip size: 267\n importDeferProxy: helper(\n \"7.23.0\",\n \"export default function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}\",\n ),\n // size: 693, gzip size: 361\n interopRequireWildcard: helper(\n \"7.14.0\",\n 'function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}export default function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}',\n ),\n // size: 431, gzip size: 303\n iterableToArrayLimit: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',\n ),\n // size: 228, gzip size: 196\n iterableToArrayLimitLoose: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimitLoose(e,r){var t=e&&(\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"]);if(null!=t){var o,l=[];for(t=t.call(e);e.length<r&&!(o=t.next()).done;)l.push(o.value);return l}}',\n ),\n // size: 539, gzip size: 351\n jsx: helper(\n \"7.0.0-beta.0\",\n 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=new Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:\"\"+E,ref:null,props:r,_owner:null}}',\n ),\n // size: 677, gzip size: 316\n objectSpread2: helper(\n \"7.5.0\",\n 'import defineProperty from\"defineProperty\";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}export default function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}',\n ),\n // size: 7643, gzip size: 2662\n regeneratorRuntime: helper(\n \"7.18.0\",\n 'export default function _regeneratorRuntime(){\"use strict\";\\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},\"\")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,\"_invoke\",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}e.wrap=wrap;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",s=\"completed\",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){[\"next\",\"throw\",\"return\"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if(\"throw\"!==c.type){var u=c.arg,h=u.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?e.resolve(h.__await).then((function(t){invoke(\"next\",t,i,a)}),(function(t){invoke(\"throw\",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke(\"throw\",t,i,a)}))}a(c.arg)}var r;o(this,\"_invoke\",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw new Error(\"Generator is already running\");if(o===s){if(\"throw\"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);o=f;var p=tryCatch(e,r,n);if(\"normal\"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}\"throw\"===p.type&&(o=s,n.method=\"throw\",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,\"throw\"===n&&e.iterator.return&&(r.method=\"return\",r.arg=t,maybeInvokeDelegate(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a \\'\"+n+\"\\' method\")),y;var i=tryCatch(o,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,y):a:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||\"\"===e){var r=e[a];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+\" is not iterable\")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,\"constructor\",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,\"constructor\",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||\"GeneratorFunction\"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,\"GeneratorFunction\")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,\"Generator\"),define(g,a,(function(){return this})),define(g,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)\"t\"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type=\"throw\",a.arg=e,r.next=n,o&&(r.method=\"next\",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return handle(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),y}},e}',\n ),\n // size: 193, gzip size: 179\n setFunctionName: helper(\n \"7.23.6\",\n 'export default function setFunctionName(e,t,n){\"symbol\"==typeof t&&(t=(t=t.description)?\"[\"+t+\"]\":\"\");try{Object.defineProperty(e,\"name\",{configurable:!0,value:n?n+\" \"+t:t})}catch(e){}return e}',\n ),\n // size: 285, gzip size: 210\n toPrimitive: helper(\n \"7.1.5\",\n 'export default function toPrimitive(t,r){if(\"object\"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||\"default\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===r?String:Number)(t)}',\n ),\n // size: 145, gzip size: 129\n toPropertyKey: helper(\n \"7.1.5\",\n 'import toPrimitive from\"toPrimitive\";export default function toPropertyKey(t){var i=toPrimitive(t,\"string\");return\"symbol\"==typeof i?i:String(i)}',\n ),\n // size: 289, gzip size: 165\n typeof: helper(\n \"7.0.0-beta.0\",\n 'export default function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o},_typeof(o)}',\n ),\n // size: 432, gzip size: 261\n using: helper(\n \"7.22.0\",\n 'export default function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");if(e)var r=n[Symbol.asyncDispose||Symbol.for(\"Symbol.asyncDispose\")];if(null==r&&(r=n[Symbol.dispose||Symbol.for(\"Symbol.dispose\")]),\"function\"!=typeof r)throw new TypeError(\"Property [Symbol.dispose] is not a function.\");return o.push({v:n,d:r,a:e}),n}',\n ),\n // size: 1256, gzip size: 573\n wrapRegExp: helper(\n \"7.19.0\",\n 'import setPrototypeOf from\"setPrototypeOf\";import inherits from\"inherits\";export default function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=new RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if(\"number\"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if(\"string\"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\\\$<([^>]+)>/g,(function(e,r){var t=o[r];return\"$\"+(Array.isArray(t)?t.join(\"$\"):t)})))}if(\"function\"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',\n ),\n});\n"],"mappings":";;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AAEA,SAASC,MAAMA,CAACC,UAAkB,EAAEC,MAAc,EAAE;EAClD,OAAOC,MAAM,CAACC,MAAM,CAAC;IACnBH,UAAU;IACVI,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACH,MAAM,EAAE;MAAEM,gBAAgB,EAAE;IAAK,CAAC;EACpE,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,MAAM,CAACC,MAAM,CAAC;EAE3BQ,cAAc,EAAEZ,MAAM,CACpB,cAAc,EACd,wmCACF,CAAC;EAEDa,aAAa,EAAEb,MAAM,CACnB,SAAS,EACT,gEACF,CAAC;EAEDc,SAAS,EAAEd,MAAM,CACf,QAAQ,EACR,iwLACF,CAAC;EAEDe,aAAa,EAAEf,MAAM,CACnB,QAAQ,EACR,8xHACF,CAAC;EAEDgB,cAAc,EAAEhB,MAAM,CACpB,QAAQ,EACR,6/HACF,CAAC;EAEDiB,aAAa,EAAEjB,MAAM,CACnB,QAAQ,EACR,gkJACF,CAAC;EAEDkB,aAAa,EAAElB,MAAM,CACnB,QAAQ,EACR,6sGACF,CAAC;EAEDmB,sBAAsB,EAAEnB,MAAM,CAC5B,cAAc,EACd,kiBACF,CAAC;EAEDoB,aAAa,EAAEpB,MAAM,CACnB,QAAQ,EACR,0kCACF,CAAC;EAEDqB,mBAAmB,EAAErB,MAAM,CACzB,cAAc,EACd,yHACF,CAAC;EAEDsB,UAAU,EAAEtB,MAAM,CAChB,QAAQ,EACR,qKACF,CAAC;EAEDuB,cAAc,EAAEvB,MAAM,CACpB,QAAQ,EACR,oIACF,CAAC;EAEDwB,OAAO,EAAExB,MAAM,CACb,QAAQ,EACR,kqBACF,CAAC;EAEDyB,gBAAgB,EAAEzB,MAAM,CACtB,QAAQ,EACR,0iBACF,CAAC;EAED0B,sBAAsB,EAAE1B,MAAM,CAC5B,QAAQ,EACR,urBACF,CAAC;EAED2B,oBAAoB,EAAE3B,MAAM,CAC1B,cAAc,EACd,ibACF,CAAC;EAED4B,yBAAyB,EAAE5B,MAAM,CAC/B,cAAc,EACd,sOACF,CAAC;EAED6B,GAAG,EAAE7B,MAAM,CACT,cAAc,EACd,6hBACF,CAAC;EAED8B,aAAa,EAAE9B,MAAM,CACnB,OAAO,EACP,uqBACF,CAAC;EAED+B,kBAAkB,EAAE/B,MAAM,CACxB,QAAQ,EACR,g+OACF,CAAC;EAEDgC,eAAe,EAAEhC,MAAM,CACrB,QAAQ,EACR,mMACF,CAAC;EAEDiC,WAAW,EAAEjC,MAAM,CACjB,OAAO,EACP,+RACF,CAAC;EAEDkC,aAAa,EAAElC,MAAM,CACnB,OAAO,EACP,mJACF,CAAC;EAEDmC,MAAM,EAAEnC,MAAM,CACZ,cAAc,EACd,mSACF,CAAC;EAEDoC,KAAK,EAAEpC,MAAM,CACX,QAAQ,EACR,kbACF,CAAC;EAEDqC,UAAU,EAAErC,MAAM,CAChB,QAAQ,EACR,2uCACF;AACF,CAAC,CAAC"} \ No newline at end of file
+{"version":3,"names":["_template","require","helper","minVersion","source","Object","freeze","ast","template","program","preserveComments","_default","exports","default","AsyncGenerator","OverloadYield","applyDecs","applyDecs2203","applyDecs2203R","applyDecs2301","applyDecs2305","asyncGeneratorDelegate","asyncIterator","awaitAsyncGenerator","checkInRHS","defineAccessor","dispose","importDeferProxy","interopRequireWildcard","iterableToArrayLimit","iterableToArrayLimitLoose","jsx","objectSpread2","regeneratorRuntime","setFunctionName","toPrimitive","toPropertyKey","typeof","using","wrapRegExp"],"sources":["../src/helpers-generated.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'yarn gulp generate-runtime-helpers'\n */\n\nimport template from \"@babel/template\";\n\nfunction helper(minVersion: string, source: string) {\n return Object.freeze({\n minVersion,\n ast: () => template.program.ast(source, { preserveComments: true }),\n });\n}\n\nexport default Object.freeze({\n // size: 1126, gzip size: 512\n AsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i=\"return\"===r?\"return\":\"next\";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?\"return\":\"normal\",t)}),(function(e){resume(\"throw\",e)}))}catch(e){settle(\"throw\",e)}}function settle(e,n){switch(e){case\"return\":r.resolve({value:n,done:!0});break;case\"throw\":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},\"function\"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke(\"next\",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke(\"throw\",e)},AsyncGenerator.prototype.return=function(e){return this._invoke(\"return\",e)};',\n ),\n // size: 62, gzip size: 78\n OverloadYield: helper(\n \"7.18.14\",\n \"export default function _OverloadYield(t,e){this.v=t,this.k=e}\",\n ),\n // size: 5887, gzip size: 2222\n applyDecs: helper(\n \"7.17.8\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,\"getMetadata\"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,\"constructor\"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,\"setMetadata\"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,\"addInitializer\"),old_assertCallable(a,\"An initializer\"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var d,u,f={kind:c,name:l?\"#\"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}function old_assertMetadataKey(e){if(\"symbol\"!=typeof e)throw new TypeError(\"Metadata keys must be symbols, received: \"+e)}function old_assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if(\"object\"!==a||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&old_assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&old_assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&old_assertCallable(t.init,\"accessor.init\"),void 0!==t.initializer&&old_assertCallable(t.initializer,\"accessor.initializer\")}else if(\"function\"!==a)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&\"undefined\"!=typeof console&&console.warn(\".initializer has been renamed to .init as of March 2022\"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u=\"get\"):3===o?(c={get:a[3]},u=\"get\"):4===o?(c={set:a[3]},u=\"set\"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],\"#\"+r,\"set\"),setFunctionName(a[3],\"#\"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),\"function\"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:\"function\"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if(\"function\"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:\"class\",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',\n ),\n // size: 3868, gzip size: 1578\n applyDecs2203: helper(\n \"7.19.0\",\n 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:s?\"#\"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),\"function\"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:\"function\"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:\"class\",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',\n ),\n // size: 4091, gzip size: 1651\n applyDecs2203R: helper(\n \"7.20.0\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:o?\"#\"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u=\"get\"):3===a?(c={get:r[3]},u=\"get\"):4===a?(c={set:r[3]},u=\"set\"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],\"#\"+n,\"set\"),setFunctionName(r[3],\"#\"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),\"function\"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:\"function\"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',\n ),\n // size: 4670, gzip size: 1848\n applyDecs2301: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError(\"Attempted to access private element on non-instance\")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u=\"accessor\";break;case 2:u=\"method\";break;case 3:u=\"getter\";break;case 4:u=\"setter\";break;default:u=\"field\"}var l,f,p={kind:u,name:s?\"#\"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f=\"get\"):3===a?(u={get:r[3]},f=\"get\"):4===a?(u={set:r[3]},f=\"set\"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,\"#\"+n,\"set\"),setFunctionName(u[f||\"value\"],\"#\"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),\"function\"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:\"function\"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',\n ),\n // size: 3267, gzip size: 1611\n applyDecs2305: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if(\"function\"!=typeof e&&(n||void 0!==e))throw new TypeError(t+\" must \"+(r||\"be\")+\" a function\"+(n?\"\":\" or undefined\"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError(\"Attempted to access private element on non-instance\")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?\"get\":4===o||d?\"set\":\"value\";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,\"get\"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?\"\":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:[\"field\",\"accessor\",\"method\",\"getter\",\"setter\",\"class\"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\");s(t,\"An initializer\",\"be\",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,\"get\",f&&m)),(o<2||4===o)&&(F=i(S,\"set\",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if(\"object\"==typeof v&&v)(y=s(v.get,\"accessor.get\"))&&(S.get=y),(y=s(v.set,\"accessor.set\"))&&(S.set=y),(y=s(v.init,\"accessor.init\"))&&A.push(y);else if(void 0!==v)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\")}else s(v,(p?\"field\":\"method\")+\" decorators\",\"return\")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,\"get\"),i(S,\"set\")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(\"Symbol.metadata\"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for(\"Symbol.metadata\")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+\"/\"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?\"#\"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),\"class decorators\",\"return\")||e,f),c.bind(null,t,e)]}}}',\n ),\n // size: 544, gzip size: 300\n asyncGeneratorDelegate: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e[\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump(\"next\",t)},\"function\"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump(\"throw\",t)}),\"function\"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump(\"return\",t)}),e}',\n ),\n // size: 1096, gzip size: 439\n asyncIterator: helper(\n \"7.15.9\",\n 'export default function _asyncIterator(r){var n,t,o,e=2;for(\"undefined\"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t=\"@@asyncIterator\",o=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+\" is not an object.\"));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',\n ),\n // size: 119, gzip size: 113\n awaitAsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}',\n ),\n // size: 161, gzip size: 154\n checkInRHS: helper(\n \"7.20.5\",\n 'export default function _checkInRHS(e){if(Object(e)!==e)throw TypeError(\"right-hand side of \\'in\\' should be an object, got \"+(null!==e?typeof e:\"null\"));return e}',\n ),\n // size: 130, gzip size: 130\n defineAccessor: helper(\n \"7.20.7\",\n \"export default function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}\",\n ),\n // size: 672, gzip size: 332\n dispose: helper(\n \"7.22.0\",\n 'function dispose_SuppressedError(r,e){return\"undefined\"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=r,this.error=e,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}export default function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(r,e):r,s=!0,next()}return next()}',\n ),\n // size: 552, gzip size: 267\n importDeferProxy: helper(\n \"7.23.0\",\n \"export default function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}\",\n ),\n // size: 693, gzip size: 361\n interopRequireWildcard: helper(\n \"7.14.0\",\n 'function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}export default function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}',\n ),\n // size: 431, gzip size: 303\n iterableToArrayLimit: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',\n ),\n // size: 228, gzip size: 196\n iterableToArrayLimitLoose: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimitLoose(e,r){var t=e&&(\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"]);if(null!=t){var o,l=[];for(t=t.call(e);e.length<r&&!(o=t.next()).done;)l.push(o.value);return l}}',\n ),\n // size: 539, gzip size: 351\n jsx: helper(\n \"7.0.0-beta.0\",\n 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=new Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:\"\"+E,ref:null,props:r,_owner:null}}',\n ),\n // size: 677, gzip size: 316\n objectSpread2: helper(\n \"7.5.0\",\n 'import defineProperty from\"defineProperty\";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}export default function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}',\n ),\n // size: 7643, gzip size: 2662\n regeneratorRuntime: helper(\n \"7.18.0\",\n 'export default function _regeneratorRuntime(){\"use strict\";\\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},\"\")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,\"_invoke\",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}e.wrap=wrap;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",s=\"completed\",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){[\"next\",\"throw\",\"return\"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if(\"throw\"!==c.type){var u=c.arg,h=u.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?e.resolve(h.__await).then((function(t){invoke(\"next\",t,i,a)}),(function(t){invoke(\"throw\",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke(\"throw\",t,i,a)}))}a(c.arg)}var r;o(this,\"_invoke\",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw new Error(\"Generator is already running\");if(o===s){if(\"throw\"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);o=f;var p=tryCatch(e,r,n);if(\"normal\"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}\"throw\"===p.type&&(o=s,n.method=\"throw\",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,\"throw\"===n&&e.iterator.return&&(r.method=\"return\",r.arg=t,maybeInvokeDelegate(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a \\'\"+n+\"\\' method\")),y;var i=tryCatch(o,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,y):a:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||\"\"===e){var r=e[a];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+\" is not iterable\")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,\"constructor\",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,\"constructor\",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||\"GeneratorFunction\"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,\"GeneratorFunction\")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,\"Generator\"),define(g,a,(function(){return this})),define(g,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)\"t\"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type=\"throw\",a.arg=e,r.next=n,o&&(r.method=\"next\",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return handle(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),y}},e}',\n ),\n // size: 193, gzip size: 179\n setFunctionName: helper(\n \"7.23.6\",\n 'export default function setFunctionName(e,t,n){\"symbol\"==typeof t&&(t=(t=t.description)?\"[\"+t+\"]\":\"\");try{Object.defineProperty(e,\"name\",{configurable:!0,value:n?n+\" \"+t:t})}catch(e){}return e}',\n ),\n // size: 285, gzip size: 210\n toPrimitive: helper(\n \"7.1.5\",\n 'export default function toPrimitive(t,r){if(\"object\"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||\"default\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===r?String:Number)(t)}',\n ),\n // size: 145, gzip size: 129\n toPropertyKey: helper(\n \"7.1.5\",\n 'import toPrimitive from\"toPrimitive\";export default function toPropertyKey(t){var i=toPrimitive(t,\"string\");return\"symbol\"==typeof i?i:String(i)}',\n ),\n // size: 289, gzip size: 165\n typeof: helper(\n \"7.0.0-beta.0\",\n 'export default function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o},_typeof(o)}',\n ),\n // size: 432, gzip size: 261\n using: helper(\n \"7.22.0\",\n 'export default function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");if(e)var r=n[Symbol.asyncDispose||Symbol.for(\"Symbol.asyncDispose\")];if(null==r&&(r=n[Symbol.dispose||Symbol.for(\"Symbol.dispose\")]),\"function\"!=typeof r)throw new TypeError(\"Property [Symbol.dispose] is not a function.\");return o.push({v:n,d:r,a:e}),n}',\n ),\n // size: 1256, gzip size: 573\n wrapRegExp: helper(\n \"7.19.0\",\n 'import setPrototypeOf from\"setPrototypeOf\";import inherits from\"inherits\";export default function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=new RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if(\"number\"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if(\"string\"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\\\$<([^>]+)>/g,(function(e,r){var t=o[r];return\"$\"+(Array.isArray(t)?t.join(\"$\"):t)})))}if(\"function\"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',\n ),\n});\n"],"mappings":";;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AAEA,SAASC,MAAMA,CAACC,UAAkB,EAAEC,MAAc,EAAE;EAClD,OAAOC,MAAM,CAACC,MAAM,CAAC;IACnBH,UAAU;IACVI,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACH,MAAM,EAAE;MAAEM,gBAAgB,EAAE;IAAK,CAAC;EACpE,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,MAAM,CAACC,MAAM,CAAC;EAE3BQ,cAAc,EAAEZ,MAAM,CACpB,cAAc,EACd,wmCACF,CAAC;EAEDa,aAAa,EAAEb,MAAM,CACnB,SAAS,EACT,gEACF,CAAC;EAEDc,SAAS,EAAEd,MAAM,CACf,QAAQ,EACR,iwLACF,CAAC;EAEDe,aAAa,EAAEf,MAAM,CACnB,QAAQ,EACR,8xHACF,CAAC;EAEDgB,cAAc,EAAEhB,MAAM,CACpB,QAAQ,EACR,6/HACF,CAAC;EAEDiB,aAAa,EAAEjB,MAAM,CACnB,QAAQ,EACR,gkJACF,CAAC;EAEDkB,aAAa,EAAElB,MAAM,CACnB,QAAQ,EACR,qsGACF,CAAC;EAEDmB,sBAAsB,EAAEnB,MAAM,CAC5B,cAAc,EACd,kiBACF,CAAC;EAEDoB,aAAa,EAAEpB,MAAM,CACnB,QAAQ,EACR,0kCACF,CAAC;EAEDqB,mBAAmB,EAAErB,MAAM,CACzB,cAAc,EACd,yHACF,CAAC;EAEDsB,UAAU,EAAEtB,MAAM,CAChB,QAAQ,EACR,qKACF,CAAC;EAEDuB,cAAc,EAAEvB,MAAM,CACpB,QAAQ,EACR,oIACF,CAAC;EAEDwB,OAAO,EAAExB,MAAM,CACb,QAAQ,EACR,kqBACF,CAAC;EAEDyB,gBAAgB,EAAEzB,MAAM,CACtB,QAAQ,EACR,0iBACF,CAAC;EAED0B,sBAAsB,EAAE1B,MAAM,CAC5B,QAAQ,EACR,urBACF,CAAC;EAED2B,oBAAoB,EAAE3B,MAAM,CAC1B,cAAc,EACd,ibACF,CAAC;EAED4B,yBAAyB,EAAE5B,MAAM,CAC/B,cAAc,EACd,sOACF,CAAC;EAED6B,GAAG,EAAE7B,MAAM,CACT,cAAc,EACd,6hBACF,CAAC;EAED8B,aAAa,EAAE9B,MAAM,CACnB,OAAO,EACP,uqBACF,CAAC;EAED+B,kBAAkB,EAAE/B,MAAM,CACxB,QAAQ,EACR,g+OACF,CAAC;EAEDgC,eAAe,EAAEhC,MAAM,CACrB,QAAQ,EACR,mMACF,CAAC;EAEDiC,WAAW,EAAEjC,MAAM,CACjB,OAAO,EACP,+RACF,CAAC;EAEDkC,aAAa,EAAElC,MAAM,CACnB,OAAO,EACP,mJACF,CAAC;EAEDmC,MAAM,EAAEnC,MAAM,CACZ,cAAc,EACd,mSACF,CAAC;EAEDoC,KAAK,EAAEpC,MAAM,CACX,QAAQ,EACR,kbACF,CAAC;EAEDqC,UAAU,EAAErC,MAAM,CAChB,QAAQ,EACR,2uCACF;AACF,CAAC,CAAC"} \ No newline at end of file
diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js
index 9fd946b3..69b85be8 100644
--- a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js
+++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js
@@ -73,7 +73,7 @@ function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, in
decThis = decoratorsHaveThis ? decs[i - 1] : void 0;
var decoratorFinishedRef = {};
var ctx = {
- kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][kind],
+ kind: ["field", "accessor", "method", "getter", "setter", "class"][kind],
name: name,
metadata: metadata,
addInitializer: function (decoratorFinishedRef, initializer) {
diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map
index 1ecd4f0a..51dde060 100644
--- a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map
+++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map
@@ -1 +1 @@
-{"version":3,"names":["_checkInRHS","require","_setFunctionName","_toPropertyKey","applyDecs2305","targetClass","memberDecs","classDecs","classDecsHaveThis","instanceBrand","parentClass","_bindPropCall","obj","name","before","_this","value","call","runInitializers","initializers","i","length","assertCallable","fn","hint1","hint2","throwUndefined","TypeError","applyDec","Class","decInfo","decoratorsHaveThis","kind","metadata","ret","isStatic","isPrivate","isField","isAccessor","hasPrivateBrand","assertInstanceIfPrivate","target","decs","decVal","_","isClass","Array","isArray","desc","init","key","get","setFunctionName","set","Object","getOwnPropertyDescriptor","newValue","dec","decThis","decoratorFinishedRef","ctx","addInitializer","initializer","v","Error","push","bind","static","private","access","has","instance","defineProperty","applyMemberDecs","decInfos","protoInitializers","staticInitializers","staticBrand","checkInRHS","existingNonFields","Map","pushInitializers","existingKind","prototype","toPropertyKey","defineMetadata","Symbol","for","configurable","enumerable","arguments","parentMetadata","create","e","c"],"sources":["../../src/helpers/applyDecs2305.ts"],"sourcesContent":["/* @minVersion 7.21.0 */\n/* @mangleFns */\n\nimport checkInRHS from \"./checkInRHS.ts\";\nimport setFunctionName from \"./setFunctionName.ts\";\nimport toPropertyKey from \"./toPropertyKey.ts\";\n\nconst enum PROP_KIND {\n FIELD = 0,\n ACCESSOR = 1,\n METHOD = 2,\n GETTER = 3,\n SETTER = 4,\n CLASS = 5,\n\n STATIC = 8,\n\n DECORATORS_HAVE_THIS = 16,\n}\n\ntype DecoratorFinishedRef = { v?: boolean };\ntype DecoratorContextAccess = {\n get?: (target: object) => any;\n set?: (target: object, value: any) => void;\n has: (target: object) => boolean;\n};\ntype DecoratorContext = {\n kind: \"accessor\" | \"method\" | \"getter\" | \"setter\" | \"field\" | \"class\";\n name: string;\n static?: boolean;\n private?: boolean;\n access?: DecoratorContextAccess;\n metadata?: any;\n addInitializer?: (initializer: Function) => void;\n};\ntype DecoratorInfo =\n | [\n decs: Function | Function[],\n kind: PROP_KIND,\n name: string,\n any?,\n Function?,\n ]\n | [classDecs: Function[]];\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n decs, // dec, or array of decs, or array of this values and decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n );\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\nexport default /* @no-mangle */ function applyDecs2305(\n targetClass: any,\n memberDecs: DecoratorInfo[],\n classDecs: Function[],\n classDecsHaveThis: number,\n instanceBrand: Function,\n parentClass: any,\n) {\n function _bindPropCall(obj: any, name: string, before?: Function) {\n return function (_this: any, value?: any) {\n if (before) {\n before(_this);\n }\n return obj[name].call(_this, value);\n };\n }\n\n function runInitializers(initializers: Function[], value: any) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(value);\n }\n return value;\n }\n\n function assertCallable(\n fn: any,\n hint1: string,\n hint2?: string,\n throwUndefined?: boolean,\n ) {\n if (typeof fn !== \"function\") {\n if (throwUndefined || fn !== void 0) {\n throw new TypeError(\n hint1 +\n \" must \" +\n (hint2 || \"be\") +\n \" a function\" +\n (throwUndefined ? \"\" : \" or undefined\"),\n );\n }\n }\n return fn;\n }\n\n /* @no-mangle */\n function applyDec(\n Class: any,\n decInfo: DecoratorInfo,\n decoratorsHaveThis: number,\n name: string,\n kind: PROP_KIND,\n metadata: any,\n initializers: Function[],\n ret?: Function[],\n isStatic?: boolean,\n isPrivate?: boolean,\n isField?: boolean,\n isAccessor?: boolean,\n hasPrivateBrand?: Function,\n ) {\n function assertInstanceIfPrivate(target: any) {\n if (!hasPrivateBrand(target)) {\n throw new TypeError(\n \"Attempted to access private element on non-instance\",\n );\n }\n }\n\n var decs = decInfo[0],\n decVal = decInfo[3],\n _: any,\n isClass = !ret;\n\n if (!isClass) {\n if (!decoratorsHaveThis && !Array.isArray(decs)) {\n decs = [decs];\n }\n\n var desc: PropertyDescriptor = {},\n init: Function[] = [],\n key: \"get\" | \"set\" | \"value\" =\n kind === PROP_KIND.GETTER\n ? \"get\"\n : kind === PROP_KIND.SETTER || isAccessor\n ? \"set\"\n : \"value\";\n\n if (isPrivate) {\n if (isField || isAccessor) {\n desc = {\n get: setFunctionName(\n function (this: any) {\n return decVal(this);\n },\n name,\n \"get\",\n ),\n set: function (this: any, value: any) {\n decInfo[4](this, value);\n },\n };\n } else {\n desc[key] = decVal;\n }\n\n if (!isField) {\n setFunctionName(\n desc[key],\n name,\n kind === PROP_KIND.METHOD ? \"\" : key,\n );\n }\n } else if (!isField) {\n desc = Object.getOwnPropertyDescriptor(Class, name);\n }\n }\n\n var newValue;\n\n for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {\n var dec = (decs as Function[])[i],\n decThis = decoratorsHaveThis ? (decs as any[])[i - 1] : void 0;\n\n var decoratorFinishedRef: DecoratorFinishedRef = {};\n var ctx: DecoratorContext = {\n kind: [\n \"field\",\n \"accessor\",\n \"method\",\n \"getter\",\n \"setter\",\n \"field\",\n \"class\",\n ][kind] as any,\n\n name: name,\n metadata: metadata,\n addInitializer: function (\n decoratorFinishedRef: DecoratorFinishedRef,\n initializer: Function,\n ) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call addInitializer after decoration was finished\",\n );\n }\n assertCallable(initializer, \"An initializer\", \"be\", true);\n initializers.push(initializer);\n }.bind(null, decoratorFinishedRef),\n };\n\n try {\n if (isClass) {\n newValue = dec.call(decThis, Class, ctx);\n } else {\n ctx.static = isStatic;\n ctx.private = isPrivate;\n\n var get, set;\n if (!isPrivate && (isField || kind === PROP_KIND.METHOD)) {\n get = function (target: any) {\n return target[name];\n };\n if (isField) {\n set = function (target: any, v: any) {\n target[name] = v;\n };\n }\n } else if (kind === PROP_KIND.METHOD) {\n get = function (_this: any) {\n assertInstanceIfPrivate(_this);\n return desc.value;\n };\n } else {\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.GETTER) {\n get = _bindPropCall(\n desc,\n \"get\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.SETTER) {\n set = _bindPropCall(\n desc,\n \"set\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n }\n\n var access: DecoratorContextAccess = (ctx.access = {\n has: isPrivate\n ? // @ts-expect-error no thisArg\n hasPrivateBrand.bind()\n : function (target: object) {\n return name in target;\n },\n });\n if (get) access.get = get;\n if (set) access.set = set;\n\n newValue = dec.call(\n decThis,\n isAccessor\n ? {\n get: desc.get,\n set: desc.set,\n }\n : desc[key],\n ctx,\n );\n\n if (isAccessor) {\n if (typeof newValue === \"object\" && newValue) {\n if ((_ = assertCallable(newValue.get, \"accessor.get\"))) {\n desc.get = _;\n }\n if ((_ = assertCallable(newValue.set, \"accessor.set\"))) {\n desc.set = _;\n }\n if ((_ = assertCallable(newValue.init, \"accessor.init\"))) {\n init.push(_);\n }\n } else if (newValue !== void 0) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\",\n );\n }\n } else if (\n assertCallable(\n newValue,\n (isField ? \"field\" : \"method\") + \" decorators\",\n \"return\",\n )\n ) {\n if (isField) {\n init.push(newValue);\n } else {\n desc[key] = newValue;\n }\n }\n }\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n if (isField || isAccessor) {\n ret.push(function (instance: any, value: any) {\n for (var i = init.length - 1; i >= 0; i--) {\n value = init[i].call(instance, value);\n }\n return value;\n });\n }\n\n if (!isField && !isClass) {\n if (isPrivate) {\n if (isAccessor) {\n ret.push(_bindPropCall(desc, \"get\"), _bindPropCall(desc, \"set\"));\n } else {\n ret.push(\n kind === PROP_KIND.METHOD\n ? desc[key]\n : _bindPropCall.call.bind(desc[key]),\n );\n }\n } else {\n Object.defineProperty(Class, name, desc);\n }\n }\n return newValue;\n }\n\n /* @no-mangle */\n function applyMemberDecs(\n Class: any,\n decInfos: DecoratorInfo[],\n instanceBrand: Function,\n metadata: any,\n ) {\n var ret: Function[] = [];\n var protoInitializers: Function[];\n var staticInitializers: Function[];\n var staticBrand = function (_: any) {\n return checkInRHS(_) === Class;\n };\n\n var existingNonFields = new Map();\n\n function pushInitializers(initializers: Function[]) {\n if (initializers) {\n ret.push(runInitializers.bind(null, initializers));\n }\n }\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var decoratorsHaveThis = kind & PROP_KIND.DECORATORS_HAVE_THIS;\n var isStatic = !!(kind & PROP_KIND.STATIC);\n\n kind &= 7; /* 0b111 */\n\n var isField = kind === PROP_KIND.FIELD;\n\n var key = name + \"/\" + isStatic;\n\n if (!isField && !isPrivate) {\n var existingKind = existingNonFields.get(key);\n\n if (\n existingKind === true ||\n (existingKind === PROP_KIND.GETTER && kind !== PROP_KIND.SETTER) ||\n (existingKind === PROP_KIND.SETTER && kind !== PROP_KIND.GETTER)\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name,\n );\n }\n existingNonFields.set(key, kind > PROP_KIND.METHOD ? kind : true);\n }\n\n applyDec(\n isStatic ? Class : Class.prototype,\n decInfo,\n decoratorsHaveThis,\n isPrivate ? \"#\" + name : (toPropertyKey(name) as string),\n kind,\n metadata,\n isStatic\n ? (staticInitializers = staticInitializers || [])\n : (protoInitializers = protoInitializers || []),\n ret,\n isStatic,\n isPrivate,\n isField,\n kind === PROP_KIND.ACCESSOR,\n isStatic && isPrivate ? staticBrand : instanceBrand,\n );\n }\n\n pushInitializers(protoInitializers);\n pushInitializers(staticInitializers);\n return ret;\n }\n\n function defineMetadata(Class: any, metadata: any) {\n return Object.defineProperty(\n Class,\n Symbol.metadata || Symbol.for(\"Symbol.metadata\"),\n { configurable: true, enumerable: true, value: metadata },\n );\n }\n\n if (arguments.length >= 6) {\n var parentMetadata =\n parentClass[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n }\n var metadata = Object.create(parentMetadata == null ? null : parentMetadata);\n var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata);\n if (!classDecs.length) defineMetadata(targetClass, metadata);\n return {\n e: e,\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n var initializers: Function[] = [];\n return (\n classDecs.length && [\n defineMetadata(\n assertCallable(\n applyDec(\n targetClass,\n [classDecs],\n classDecsHaveThis,\n targetClass.name,\n PROP_KIND.CLASS,\n metadata,\n initializers,\n ),\n \"class decorators\",\n \"return\",\n ) || targetClass,\n metadata,\n ),\n runInitializers.bind(null, initializers, targetClass),\n ]\n );\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
+{"version":3,"names":["_checkInRHS","require","_setFunctionName","_toPropertyKey","applyDecs2305","targetClass","memberDecs","classDecs","classDecsHaveThis","instanceBrand","parentClass","_bindPropCall","obj","name","before","_this","value","call","runInitializers","initializers","i","length","assertCallable","fn","hint1","hint2","throwUndefined","TypeError","applyDec","Class","decInfo","decoratorsHaveThis","kind","metadata","ret","isStatic","isPrivate","isField","isAccessor","hasPrivateBrand","assertInstanceIfPrivate","target","decs","decVal","_","isClass","Array","isArray","desc","init","key","get","setFunctionName","set","Object","getOwnPropertyDescriptor","newValue","dec","decThis","decoratorFinishedRef","ctx","addInitializer","initializer","v","Error","push","bind","static","private","access","has","instance","defineProperty","applyMemberDecs","decInfos","protoInitializers","staticInitializers","staticBrand","checkInRHS","existingNonFields","Map","pushInitializers","existingKind","prototype","toPropertyKey","defineMetadata","Symbol","for","configurable","enumerable","arguments","parentMetadata","create","e","c"],"sources":["../../src/helpers/applyDecs2305.ts"],"sourcesContent":["/* @minVersion 7.21.0 */\n/* @mangleFns */\n\nimport checkInRHS from \"./checkInRHS.ts\";\nimport setFunctionName from \"./setFunctionName.ts\";\nimport toPropertyKey from \"./toPropertyKey.ts\";\n\nconst enum PROP_KIND {\n FIELD = 0,\n ACCESSOR = 1,\n METHOD = 2,\n GETTER = 3,\n SETTER = 4,\n CLASS = 5,\n\n STATIC = 8,\n\n DECORATORS_HAVE_THIS = 16,\n}\n\ntype DecoratorFinishedRef = { v?: boolean };\ntype DecoratorContextAccess = {\n get?: (target: object) => any;\n set?: (target: object, value: any) => void;\n has: (target: object) => boolean;\n};\ntype DecoratorContext = {\n kind: \"accessor\" | \"method\" | \"getter\" | \"setter\" | \"field\" | \"class\";\n name: string;\n static?: boolean;\n private?: boolean;\n access?: DecoratorContextAccess;\n metadata?: any;\n addInitializer?: (initializer: Function) => void;\n};\ntype DecoratorInfo =\n | [\n decs: Function | Function[],\n kind: PROP_KIND,\n name: string,\n any?,\n Function?,\n ]\n | [classDecs: Function[]];\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n decs, // dec, or array of decs, or array of this values and decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n );\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\nexport default /* @no-mangle */ function applyDecs2305(\n targetClass: any,\n memberDecs: DecoratorInfo[],\n classDecs: Function[],\n classDecsHaveThis: number,\n instanceBrand: Function,\n parentClass: any,\n) {\n function _bindPropCall(obj: any, name: string, before?: Function) {\n return function (_this: any, value?: any) {\n if (before) {\n before(_this);\n }\n return obj[name].call(_this, value);\n };\n }\n\n function runInitializers(initializers: Function[], value: any) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(value);\n }\n return value;\n }\n\n function assertCallable(\n fn: any,\n hint1: string,\n hint2?: string,\n throwUndefined?: boolean,\n ) {\n if (typeof fn !== \"function\") {\n if (throwUndefined || fn !== void 0) {\n throw new TypeError(\n hint1 +\n \" must \" +\n (hint2 || \"be\") +\n \" a function\" +\n (throwUndefined ? \"\" : \" or undefined\"),\n );\n }\n }\n return fn;\n }\n\n /* @no-mangle */\n function applyDec(\n Class: any,\n decInfo: DecoratorInfo,\n decoratorsHaveThis: number,\n name: string,\n kind: PROP_KIND,\n metadata: any,\n initializers: Function[],\n ret?: Function[],\n isStatic?: boolean,\n isPrivate?: boolean,\n isField?: boolean,\n isAccessor?: boolean,\n hasPrivateBrand?: Function,\n ) {\n function assertInstanceIfPrivate(target: any) {\n if (!hasPrivateBrand(target)) {\n throw new TypeError(\n \"Attempted to access private element on non-instance\",\n );\n }\n }\n\n var decs = decInfo[0],\n decVal = decInfo[3],\n _: any,\n isClass = !ret;\n\n if (!isClass) {\n if (!decoratorsHaveThis && !Array.isArray(decs)) {\n decs = [decs];\n }\n\n var desc: PropertyDescriptor = {},\n init: Function[] = [],\n key: \"get\" | \"set\" | \"value\" =\n kind === PROP_KIND.GETTER\n ? \"get\"\n : kind === PROP_KIND.SETTER || isAccessor\n ? \"set\"\n : \"value\";\n\n if (isPrivate) {\n if (isField || isAccessor) {\n desc = {\n get: setFunctionName(\n function (this: any) {\n return decVal(this);\n },\n name,\n \"get\",\n ),\n set: function (this: any, value: any) {\n decInfo[4](this, value);\n },\n };\n } else {\n desc[key] = decVal;\n }\n\n if (!isField) {\n setFunctionName(\n desc[key],\n name,\n kind === PROP_KIND.METHOD ? \"\" : key,\n );\n }\n } else if (!isField) {\n desc = Object.getOwnPropertyDescriptor(Class, name);\n }\n }\n\n var newValue;\n\n for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {\n var dec = (decs as Function[])[i],\n decThis = decoratorsHaveThis ? (decs as any[])[i - 1] : void 0;\n\n var decoratorFinishedRef: DecoratorFinishedRef = {};\n var ctx: DecoratorContext = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][\n kind\n ] as any,\n\n name: name,\n metadata: metadata,\n addInitializer: function (\n decoratorFinishedRef: DecoratorFinishedRef,\n initializer: Function,\n ) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call addInitializer after decoration was finished\",\n );\n }\n assertCallable(initializer, \"An initializer\", \"be\", true);\n initializers.push(initializer);\n }.bind(null, decoratorFinishedRef),\n };\n\n try {\n if (isClass) {\n newValue = dec.call(decThis, Class, ctx);\n } else {\n ctx.static = isStatic;\n ctx.private = isPrivate;\n\n var get, set;\n if (!isPrivate && (isField || kind === PROP_KIND.METHOD)) {\n get = function (target: any) {\n return target[name];\n };\n if (isField) {\n set = function (target: any, v: any) {\n target[name] = v;\n };\n }\n } else if (kind === PROP_KIND.METHOD) {\n get = function (_this: any) {\n assertInstanceIfPrivate(_this);\n return desc.value;\n };\n } else {\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.GETTER) {\n get = _bindPropCall(\n desc,\n \"get\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.SETTER) {\n set = _bindPropCall(\n desc,\n \"set\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n }\n\n var access: DecoratorContextAccess = (ctx.access = {\n has: isPrivate\n ? // @ts-expect-error no thisArg\n hasPrivateBrand.bind()\n : function (target: object) {\n return name in target;\n },\n });\n if (get) access.get = get;\n if (set) access.set = set;\n\n newValue = dec.call(\n decThis,\n isAccessor\n ? {\n get: desc.get,\n set: desc.set,\n }\n : desc[key],\n ctx,\n );\n\n if (isAccessor) {\n if (typeof newValue === \"object\" && newValue) {\n if ((_ = assertCallable(newValue.get, \"accessor.get\"))) {\n desc.get = _;\n }\n if ((_ = assertCallable(newValue.set, \"accessor.set\"))) {\n desc.set = _;\n }\n if ((_ = assertCallable(newValue.init, \"accessor.init\"))) {\n init.push(_);\n }\n } else if (newValue !== void 0) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\",\n );\n }\n } else if (\n assertCallable(\n newValue,\n (isField ? \"field\" : \"method\") + \" decorators\",\n \"return\",\n )\n ) {\n if (isField) {\n init.push(newValue);\n } else {\n desc[key] = newValue;\n }\n }\n }\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n if (isField || isAccessor) {\n ret.push(function (instance: any, value: any) {\n for (var i = init.length - 1; i >= 0; i--) {\n value = init[i].call(instance, value);\n }\n return value;\n });\n }\n\n if (!isField && !isClass) {\n if (isPrivate) {\n if (isAccessor) {\n ret.push(_bindPropCall(desc, \"get\"), _bindPropCall(desc, \"set\"));\n } else {\n ret.push(\n kind === PROP_KIND.METHOD\n ? desc[key]\n : _bindPropCall.call.bind(desc[key]),\n );\n }\n } else {\n Object.defineProperty(Class, name, desc);\n }\n }\n return newValue;\n }\n\n /* @no-mangle */\n function applyMemberDecs(\n Class: any,\n decInfos: DecoratorInfo[],\n instanceBrand: Function,\n metadata: any,\n ) {\n var ret: Function[] = [];\n var protoInitializers: Function[];\n var staticInitializers: Function[];\n var staticBrand = function (_: any) {\n return checkInRHS(_) === Class;\n };\n\n var existingNonFields = new Map();\n\n function pushInitializers(initializers: Function[]) {\n if (initializers) {\n ret.push(runInitializers.bind(null, initializers));\n }\n }\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var decoratorsHaveThis = kind & PROP_KIND.DECORATORS_HAVE_THIS;\n var isStatic = !!(kind & PROP_KIND.STATIC);\n\n kind &= 7; /* 0b111 */\n\n var isField = kind === PROP_KIND.FIELD;\n\n var key = name + \"/\" + isStatic;\n\n if (!isField && !isPrivate) {\n var existingKind = existingNonFields.get(key);\n\n if (\n existingKind === true ||\n (existingKind === PROP_KIND.GETTER && kind !== PROP_KIND.SETTER) ||\n (existingKind === PROP_KIND.SETTER && kind !== PROP_KIND.GETTER)\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name,\n );\n }\n existingNonFields.set(key, kind > PROP_KIND.METHOD ? kind : true);\n }\n\n applyDec(\n isStatic ? Class : Class.prototype,\n decInfo,\n decoratorsHaveThis,\n isPrivate ? \"#\" + name : (toPropertyKey(name) as string),\n kind,\n metadata,\n isStatic\n ? (staticInitializers = staticInitializers || [])\n : (protoInitializers = protoInitializers || []),\n ret,\n isStatic,\n isPrivate,\n isField,\n kind === PROP_KIND.ACCESSOR,\n isStatic && isPrivate ? staticBrand : instanceBrand,\n );\n }\n\n pushInitializers(protoInitializers);\n pushInitializers(staticInitializers);\n return ret;\n }\n\n function defineMetadata(Class: any, metadata: any) {\n return Object.defineProperty(\n Class,\n Symbol.metadata || Symbol.for(\"Symbol.metadata\"),\n { configurable: true, enumerable: true, value: metadata },\n );\n }\n\n if (arguments.length >= 6) {\n var parentMetadata =\n parentClass[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n }\n var metadata = Object.create(parentMetadata == null ? null : parentMetadata);\n var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata);\n if (!classDecs.length) defineMetadata(targetClass, metadata);\n return {\n e: e,\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n var initializers: Function[] = [];\n return (\n classDecs.length && [\n defineMetadata(\n assertCallable(\n applyDec(\n targetClass,\n [classDecs],\n classDecsHaveThis,\n targetClass.name,\n PROP_KIND.CLASS,\n metadata,\n initializers,\n ),\n \"class decorators\",\n \"return\",\n ) || targetClass,\n metadata,\n ),\n runInitializers.bind(null, initializers, targetClass),\n ]\n );\n },\n };\n}\n"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map
index 44a1c21a..bf510a41 100644
--- a/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map
+++ b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map
@@ -1 +1 @@
-{"version":3,"names":["setFunctionName","fn","name","prefix","description","Object","defineProperty","configurable","value","_"],"sources":["../../src/helpers/setFunctionName.ts"],"sourcesContent":["/* @minVersion 7.23.6 */\n\n// https://tc39.es/ecma262/#sec-setfunctionname\nexport default function setFunctionName<T extends Function>(\n fn: T,\n name: symbol | string,\n prefix?: string,\n): T {\n if (typeof name === \"symbol\") {\n name = name.description;\n name = name ? \"[\" + (name as string) + \"]\" : \"\";\n }\n // In some older browsers .name was non-configurable, here we catch any\n // errors thrown by defineProperty.\n try {\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: prefix ? prefix + \" \" + name : name,\n });\n } catch (_) {}\n return fn;\n}\n"],"mappings":";;;;;;AAGe,SAASA,eAAeA,CACrCC,EAAK,EACLC,IAAqB,EACrBC,MAAe,EACZ;EACH,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5BA,IAAI,GAAGA,IAAI,CAACE,WAAW;IACvBF,IAAI,GAAGA,IAAI,GAAG,GAAG,GAAIA,IAAe,GAAG,GAAG,GAAG,EAAE;EACjD;EAGA,IAAI;IACFG,MAAM,CAACC,cAAc,CAACL,EAAE,EAAE,MAAM,EAAE;MAChCM,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAEL,MAAM,GAAGA,MAAM,GAAG,GAAG,GAAGD,IAAI,GAAGA;IACxC,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOO,CAAC,EAAE,CAAC;EACb,OAAOR,EAAE;AACX"} \ No newline at end of file
+{"version":3,"names":["setFunctionName","fn","name","prefix","description","Object","defineProperty","configurable","value","_"],"sources":["../../src/helpers/setFunctionName.ts"],"sourcesContent":["/* @minVersion 7.23.6 */\n\n// https://tc39.es/ecma262/#sec-setfunctionname\nexport default function setFunctionName<T extends Function>(\n fn: T,\n name: symbol | string,\n prefix?: string,\n): T {\n if (typeof name === \"symbol\") {\n name = name.description;\n name = name ? \"[\" + name + \"]\" : \"\";\n }\n // In some older browsers .name was non-configurable, here we catch any\n // errors thrown by defineProperty.\n try {\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: prefix ? prefix + \" \" + name : name,\n });\n } catch (_) {}\n return fn;\n}\n"],"mappings":";;;;;;AAGe,SAASA,eAAeA,CACrCC,EAAK,EACLC,IAAqB,EACrBC,MAAe,EACZ;EACH,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5BA,IAAI,GAAGA,IAAI,CAACE,WAAW;IACvBF,IAAI,GAAGA,IAAI,GAAG,GAAG,GAAGA,IAAI,GAAG,GAAG,GAAG,EAAE;EACrC;EAGA,IAAI;IACFG,MAAM,CAACC,cAAc,CAACL,EAAE,EAAE,MAAM,EAAE;MAChCM,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAEL,MAAM,GAAGA,MAAM,GAAG,GAAG,GAAGD,IAAI,GAAGA;IACxC,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOO,CAAC,EAAE,CAAC;EACb,OAAOR,EAAE;AACX"} \ No newline at end of file
diff --git a/node_modules/@babel/helpers/package.json b/node_modules/@babel/helpers/package.json
index 05118b9f..4eb4c468 100644
--- a/node_modules/@babel/helpers/package.json
+++ b/node_modules/@babel/helpers/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/helpers",
- "version": "7.23.6",
+ "version": "7.23.7",
"description": "Collection of helper functions used by Babel transforms.",
"author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-helpers",
@@ -16,7 +16,7 @@
"main": "./lib/index.js",
"dependencies": {
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.6",
+ "@babel/traverse": "^7.23.7",
"@babel/types": "^7.23.6"
},
"devDependencies": {
diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map
index 821f1093..4fe077b4 100644
--- a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map
+++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { NodePath, Visitor } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport { requeueComputedKeyAndDecorators } from \"@babel/helper-environment-visitor\";\n\nfunction isNameOrLength(key: t.Node): boolean {\n if (t.isIdentifier(key)) {\n return key.name === \"name\" || key.name === \"length\";\n }\n if (t.isStringLiteral(key)) {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\nfunction isStaticFieldWithValue(\n node: t.Node,\n): node is t.ClassProperty | t.ClassPrivateProperty {\n return (\n (t.isClassProperty(node) || t.isClassPrivateProperty(node)) &&\n node.static &&\n !!node.value\n );\n}\n\nconst hasReferenceVisitor: Visitor<{ name: string; ref: () => void }> = {\n ReferencedIdentifier(path, state) {\n if (path.node.name === state.name) {\n state.ref();\n path.stop();\n }\n },\n Scope(path, { name }) {\n if (path.scope.hasOwnBinding(name)) {\n path.skip();\n }\n },\n};\n\nfunction isReferenceOrThis(node: t.Node, name?: string) {\n return t.isThisExpression(node) || (name && t.isIdentifier(node, { name }));\n}\n\nconst hasReferenceOrThisVisitor: Visitor<{ name?: string; ref: () => void }> = {\n \"ThisExpression|ReferencedIdentifier\"(path, state) {\n if (isReferenceOrThis(path.node, state.name)) {\n state.ref();\n path.stop();\n }\n },\n FunctionParent(path, state) {\n if (path.isArrowFunctionExpression()) return;\n if (state.name && !path.scope.hasOwnBinding(state.name)) {\n path.traverse(hasReferenceVisitor, state);\n }\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n },\n};\n\ntype ClassElementWithComputedKeySupport = Extract<\n t.ClassBody[\"body\"][number],\n { computed?: boolean }\n>;\n\n/**\n * This function returns an array containing the indexes of class elements\n * that might be affected by https://crbug.com/v8/12421 bug.\n *\n * This bug affects public static class fields that have the same name as an\n * existing non-writable property with the same name. This usually happens when\n * the static field is named 'length' or 'name', since it clashes with the\n * predefined fn.length and fn.name properties. We must also compile static\n * fields with computed key, because they might end up being named 'length' or\n * 'name'.\n *\n * However, this bug can potentially affect public static fields with any name.\n * Consider this example:\n *\n * class A {\n * static {\n * Object.defineProperty(A, \"readonly\", {\n * value: 1,\n * writable: false,\n * configurable: true\n * })\n * }\n *\n * static readonly = 2;\n * }\n *\n * When initializing the 'static readonly' field, the class already has a\n * non-writable property named 'readonly' and thus V8 9.7 incorrectly throws.\n *\n * To avoid unconditionally compiling every public static field, we track how\n * the class is referenced during definition & static evaluation: any side\n * effect after a reference to the class can potentially define a non-writable\n * conficting property, so subsequent public static fields must be compiled.\n * The class could be referenced using the class name in computed keys, which\n * run before static fields, or using either the class name or 'this' in static\n * fields (both public and private) and static blocks.\n *\n * We don't need to check if computed keys referencing the class have any side\n * effect, because during the computed keys evaluation the internal class\n * binding is in TDZ. However, the first side effect in a static field/block\n * could have access to a function defined in a computed key that modifies the\n * class.\n *\n * This logic is already quite complex, so we assume that static blocks always\n * have side effects and reference the class (the reason to use them is to\n * perform additional initialization logic on the class anyway), so that we do\n * not have to check their contents.\n */\nexport function getPotentiallyBuggyFieldsIndexes(path: NodePath<t.Class>) {\n const buggyPublicStaticFieldsIndexes: number[] = [];\n\n let classReferenced = false;\n const className = path.node.id?.name;\n\n const hasReferenceState = {\n name: className,\n ref: () => (classReferenced = true),\n };\n\n if (className) {\n for (const el of path.get(\"body.body\")) {\n if ((el.node as ClassElementWithComputedKeySupport).computed) {\n // Since .traverse skips the top-level node, it doesn't detect\n // a reference happening immediately:\n // class A { [A]() {} }\n // However, it's a TDZ error so it's ok not to consider this case.\n (el as NodePath<ClassElementWithComputedKeySupport>)\n .get(\"key\")\n .traverse(hasReferenceVisitor, hasReferenceState);\n\n if (classReferenced) break;\n }\n }\n }\n\n let nextPotentiallyBuggy = false;\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n\n if (!nextPotentiallyBuggy) {\n if (t.isStaticBlock(node)) {\n classReferenced = true;\n nextPotentiallyBuggy = true;\n } else if (isStaticFieldWithValue(node)) {\n if (!classReferenced) {\n if (isReferenceOrThis(node.value, className)) {\n classReferenced = true;\n } else {\n (\n path.get(`body.body.${i}.value`) as NodePath<t.Expression>\n ).traverse(hasReferenceOrThisVisitor, hasReferenceState);\n }\n }\n\n if (classReferenced) {\n nextPotentiallyBuggy = !path.scope.isPure(node.value);\n }\n }\n }\n\n if (\n t.isClassProperty(node, { static: true }) &&\n (nextPotentiallyBuggy || node.computed || isNameOrLength(node.key))\n ) {\n buggyPublicStaticFieldsIndexes.push(i);\n }\n }\n\n return buggyPublicStaticFieldsIndexes;\n}\n\nexport function getNameOrLengthStaticFieldsIndexes(path: NodePath<t.Class>) {\n const indexes: number[] = [];\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n if (\n t.isClassProperty(node, { static: true, computed: false }) &&\n isNameOrLength(node.key)\n ) {\n indexes.push(i);\n }\n }\n\n return indexes;\n}\n\ntype Range = [start: number, end: number];\n\n/**\n * Converts a sorted list of numbers into a list of (inclusive-exclusive)\n * ranges representing the same numbers.\n *\n * @example toRanges([1, 3, 4, 5, 8, 9]) -> [[1, 2], [3, 6], [8, 10]]\n */\nexport function toRanges(nums: number[]): Range[] {\n const ranges: Range[] = [];\n\n if (nums.length === 0) return ranges;\n\n let start = nums[0];\n let end = start + 1;\n for (let i = 1; i < nums.length; i++) {\n if (nums[i] <= nums[i - 1]) {\n throw new Error(\"Internal Babel error: nums must be in ascending order\");\n }\n if (nums[i] === end) {\n end++;\n } else {\n ranges.push([start, end]);\n start = nums[i];\n end = start + 1;\n }\n }\n ranges.push([start, end]);\n\n return ranges;\n}\n","import type { NodePath, Scope } from \"@babel/traverse\";\nimport { types as t, type PluginPass, type File } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nimport {\n getPotentiallyBuggyFieldsIndexes,\n getNameOrLengthStaticFieldsIndexes,\n toRanges,\n} from \"./util.ts\";\n\nfunction buildFieldsReplacement(\n fields: t.ClassProperty[],\n scope: Scope,\n file: File,\n) {\n return t.staticBlock(\n fields.map(field => {\n const key =\n field.computed || !t.isIdentifier(field.key)\n ? field.key\n : t.stringLiteral(field.key.name);\n\n return t.expressionStatement(\n t.callExpression(file.addHelper(\"defineProperty\"), [\n t.thisExpression(),\n key,\n field.value || scope.buildUndefinedNode(),\n ]),\n );\n }),\n );\n}\n\nexport default declare(api => {\n api.assertVersion(7);\n\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n\n return {\n name: \"bugfix-v8-static-class-fields-redefine-readonly\",\n\n visitor: {\n Class(this: PluginPass, path: NodePath<t.Class>) {\n const ranges = toRanges(\n setPublicClassFields\n ? getNameOrLengthStaticFieldsIndexes(path)\n : getPotentiallyBuggyFieldsIndexes(path),\n );\n\n for (let i = ranges.length - 1; i >= 0; i--) {\n const [start, end] = ranges[i];\n\n const startPath = path.get(\"body.body\")[start];\n\n startPath.replaceWith(\n buildFieldsReplacement(\n path.node.body.body.slice(start, end) as t.ClassProperty[],\n path.scope,\n this.file,\n ),\n );\n\n for (let j = end - 1; j > start; j--) {\n path.get(\"body.body\")[j].remove();\n }\n }\n },\n },\n };\n});\n"],"names":["isNameOrLength","key","t","isIdentifier","name","isStringLiteral","value","isStaticFieldWithValue","node","isClassProperty","isClassPrivateProperty","static","hasReferenceVisitor","ReferencedIdentifier","path","state","ref","stop","Scope","scope","hasOwnBinding","skip","isReferenceOrThis","isThisExpression","hasReferenceOrThisVisitor","ThisExpression|ReferencedIdentifier","FunctionParent","isArrowFunctionExpression","traverse","isMethod","requeueComputedKeyAndDecorators","getPotentiallyBuggyFieldsIndexes","_path$node$id","buggyPublicStaticFieldsIndexes","classReferenced","className","id","hasReferenceState","el","get","computed","nextPotentiallyBuggy","body","i","length","isStaticBlock","isPure","push","getNameOrLengthStaticFieldsIndexes","indexes","toRanges","nums","ranges","start","end","Error","buildFieldsReplacement","fields","file","staticBlock","map","field","stringLiteral","expressionStatement","callExpression","addHelper","thisExpression","buildUndefinedNode","declare","api","assertVersion","setPublicClassFields","assumption","visitor","Class","startPath","replaceWith","slice","j","remove"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { NodePath, Visitor } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport { requeueComputedKeyAndDecorators } from \"@babel/helper-environment-visitor\";\n\nfunction isNameOrLength(key: t.Node): boolean {\n if (t.isIdentifier(key)) {\n return key.name === \"name\" || key.name === \"length\";\n }\n if (t.isStringLiteral(key)) {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\nfunction isStaticFieldWithValue(\n node: t.Node,\n): node is t.ClassProperty | t.ClassPrivateProperty {\n return (\n (t.isClassProperty(node) || t.isClassPrivateProperty(node)) &&\n node.static &&\n !!node.value\n );\n}\n\nconst hasReferenceVisitor: Visitor<{ name: string; ref: () => void }> = {\n ReferencedIdentifier(path, state) {\n if (path.node.name === state.name) {\n state.ref();\n path.stop();\n }\n },\n Scope(path, { name }) {\n if (path.scope.hasOwnBinding(name)) {\n path.skip();\n }\n },\n};\n\nfunction isReferenceOrThis(node: t.Node, name?: string) {\n return t.isThisExpression(node) || (name && t.isIdentifier(node, { name }));\n}\n\nconst hasReferenceOrThisVisitor: Visitor<{ name?: string; ref: () => void }> = {\n \"ThisExpression|ReferencedIdentifier\"(path, state) {\n if (isReferenceOrThis(path.node, state.name)) {\n state.ref();\n path.stop();\n }\n },\n FunctionParent(path, state) {\n if (path.isArrowFunctionExpression()) return;\n if (state.name && !path.scope.hasOwnBinding(state.name)) {\n path.traverse(hasReferenceVisitor, state);\n }\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n },\n};\n\ntype ClassElementWithComputedKeySupport = Extract<\n t.ClassBody[\"body\"][number],\n { computed?: boolean }\n>;\n\n/**\n * This function returns an array containing the indexes of class elements\n * that might be affected by https://crbug.com/v8/12421 bug.\n *\n * This bug affects public static class fields that have the same name as an\n * existing non-writable property with the same name. This usually happens when\n * the static field is named 'length' or 'name', since it clashes with the\n * predefined fn.length and fn.name properties. We must also compile static\n * fields with computed key, because they might end up being named 'length' or\n * 'name'.\n *\n * However, this bug can potentially affect public static fields with any name.\n * Consider this example:\n *\n * class A {\n * static {\n * Object.defineProperty(A, \"readonly\", {\n * value: 1,\n * writable: false,\n * configurable: true\n * })\n * }\n *\n * static readonly = 2;\n * }\n *\n * When initializing the 'static readonly' field, the class already has a\n * non-writable property named 'readonly' and thus V8 9.7 incorrectly throws.\n *\n * To avoid unconditionally compiling every public static field, we track how\n * the class is referenced during definition & static evaluation: any side\n * effect after a reference to the class can potentially define a non-writable\n * conficting property, so subsequent public static fields must be compiled.\n * The class could be referenced using the class name in computed keys, which\n * run before static fields, or using either the class name or 'this' in static\n * fields (both public and private) and static blocks.\n *\n * We don't need to check if computed keys referencing the class have any side\n * effect, because during the computed keys evaluation the internal class\n * binding is in TDZ. However, the first side effect in a static field/block\n * could have access to a function defined in a computed key that modifies the\n * class.\n *\n * This logic is already quite complex, so we assume that static blocks always\n * have side effects and reference the class (the reason to use them is to\n * perform additional initialization logic on the class anyway), so that we do\n * not have to check their contents.\n */\nexport function getPotentiallyBuggyFieldsIndexes(path: NodePath<t.Class>) {\n const buggyPublicStaticFieldsIndexes: number[] = [];\n\n let classReferenced = false;\n const className = path.node.id?.name;\n\n const hasReferenceState = {\n name: className,\n ref: () => (classReferenced = true),\n };\n\n if (className) {\n for (const el of path.get(\"body.body\")) {\n if ((el.node as ClassElementWithComputedKeySupport).computed) {\n // Since .traverse skips the top-level node, it doesn't detect\n // a reference happening immediately:\n // class A { [A]() {} }\n // However, it's a TDZ error so it's ok not to consider this case.\n (el as NodePath<ClassElementWithComputedKeySupport>)\n .get(\"key\")\n .traverse(hasReferenceVisitor, hasReferenceState);\n\n if (classReferenced) break;\n }\n }\n }\n\n let nextPotentiallyBuggy = false;\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n\n if (!nextPotentiallyBuggy) {\n if (t.isStaticBlock(node)) {\n classReferenced = true;\n nextPotentiallyBuggy = true;\n } else if (isStaticFieldWithValue(node)) {\n if (!classReferenced) {\n if (isReferenceOrThis(node.value, className)) {\n classReferenced = true;\n } else {\n (\n path.get(`body.body.${i}.value`) as NodePath<t.Expression>\n ).traverse(hasReferenceOrThisVisitor, hasReferenceState);\n }\n }\n\n if (classReferenced) {\n nextPotentiallyBuggy = !path.scope.isPure(node.value);\n }\n }\n }\n\n if (\n t.isClassProperty(node, { static: true }) &&\n (nextPotentiallyBuggy || node.computed || isNameOrLength(node.key))\n ) {\n buggyPublicStaticFieldsIndexes.push(i);\n }\n }\n\n return buggyPublicStaticFieldsIndexes;\n}\n\nexport function getNameOrLengthStaticFieldsIndexes(path: NodePath<t.Class>) {\n const indexes: number[] = [];\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n if (\n t.isClassProperty(node, { static: true, computed: false }) &&\n isNameOrLength(node.key)\n ) {\n indexes.push(i);\n }\n }\n\n return indexes;\n}\n\ntype Range = [start: number, end: number];\n\n/**\n * Converts a sorted list of numbers into a list of (inclusive-exclusive)\n * ranges representing the same numbers.\n *\n * @example toRanges([1, 3, 4, 5, 8, 9]) -> [[1, 2], [3, 6], [8, 10]]\n */\nexport function toRanges(nums: number[]): Range[] {\n const ranges: Range[] = [];\n\n if (nums.length === 0) return ranges;\n\n let start = nums[0];\n let end = start + 1;\n for (let i = 1; i < nums.length; i++) {\n if (nums[i] <= nums[i - 1]) {\n throw new Error(\"Internal Babel error: nums must be in ascending order\");\n }\n if (nums[i] === end) {\n end++;\n } else {\n ranges.push([start, end]);\n start = nums[i];\n end = start + 1;\n }\n }\n ranges.push([start, end]);\n\n return ranges;\n}\n","import type { NodePath, Scope } from \"@babel/traverse\";\nimport { types as t, type PluginPass, type File } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nimport {\n getPotentiallyBuggyFieldsIndexes,\n getNameOrLengthStaticFieldsIndexes,\n toRanges,\n} from \"./util.ts\";\n\nfunction buildFieldsReplacement(\n fields: t.ClassProperty[],\n scope: Scope,\n file: File,\n) {\n return t.staticBlock(\n fields.map(field => {\n const key =\n field.computed || !t.isIdentifier(field.key)\n ? field.key\n : t.stringLiteral(field.key.name);\n\n return t.expressionStatement(\n t.callExpression(file.addHelper(\"defineProperty\"), [\n t.thisExpression(),\n key,\n field.value || scope.buildUndefinedNode(),\n ]),\n );\n }),\n );\n}\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n\n return {\n name: \"bugfix-v8-static-class-fields-redefine-readonly\",\n\n visitor: {\n Class(this: PluginPass, path: NodePath<t.Class>) {\n const ranges = toRanges(\n setPublicClassFields\n ? getNameOrLengthStaticFieldsIndexes(path)\n : getPotentiallyBuggyFieldsIndexes(path),\n );\n\n for (let i = ranges.length - 1; i >= 0; i--) {\n const [start, end] = ranges[i];\n\n const startPath = path.get(\"body.body\")[start];\n\n startPath.replaceWith(\n buildFieldsReplacement(\n path.node.body.body.slice(start, end) as t.ClassProperty[],\n path.scope,\n this.file,\n ),\n );\n\n for (let j = end - 1; j > start; j--) {\n path.get(\"body.body\")[j].remove();\n }\n }\n },\n },\n };\n});\n"],"names":["isNameOrLength","key","t","isIdentifier","name","isStringLiteral","value","isStaticFieldWithValue","node","isClassProperty","isClassPrivateProperty","static","hasReferenceVisitor","ReferencedIdentifier","path","state","ref","stop","Scope","scope","hasOwnBinding","skip","isReferenceOrThis","isThisExpression","hasReferenceOrThisVisitor","ThisExpression|ReferencedIdentifier","FunctionParent","isArrowFunctionExpression","traverse","isMethod","requeueComputedKeyAndDecorators","getPotentiallyBuggyFieldsIndexes","_path$node$id","buggyPublicStaticFieldsIndexes","classReferenced","className","id","hasReferenceState","el","get","computed","nextPotentiallyBuggy","body","i","length","isStaticBlock","isPure","push","getNameOrLengthStaticFieldsIndexes","indexes","toRanges","nums","ranges","start","end","Error","buildFieldsReplacement","fields","file","staticBlock","map","field","stringLiteral","expressionStatement","callExpression","addHelper","thisExpression","buildUndefinedNode","declare","api","assertVersion","setPublicClassFields","assumption","visitor","Class","startPath","replaceWith","slice","j","remove"],"mappings":"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"} \ No newline at end of file
diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json
index 9cb50083..8256fa37 100644
--- a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json
+++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly",
- "version": "7.23.3",
+ "version": "7.23.7",
"description": "Transform static class fields assignments that are affected by https://crbug.com/v8/12421",
"repository": {
"type": "git",
@@ -29,9 +29,9 @@
"@babel/core": "^7.0.0"
},
"devDependencies": {
- "@babel/core": "^7.23.3",
+ "@babel/core": "^7.23.7",
"@babel/helper-plugin-test-runner": "^7.22.5",
- "@babel/traverse": "^7.23.3"
+ "@babel/traverse": "^7.23.7"
},
"engines": {
"node": ">=6.9.0"
diff --git a/node_modules/@babel/plugin-transform-async-generator-functions/package.json b/node_modules/@babel/plugin-transform-async-generator-functions/package.json
index 2ca1a058..9098433c 100644
--- a/node_modules/@babel/plugin-transform-async-generator-functions/package.json
+++ b/node_modules/@babel/plugin-transform-async-generator-functions/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/plugin-transform-async-generator-functions",
- "version": "7.23.4",
+ "version": "7.23.7",
"description": "Turn async generator functions into ES2015 generators",
"repository": {
"type": "git",
@@ -26,9 +26,9 @@
"@babel/core": "^7.0.0-0"
},
"devDependencies": {
- "@babel/core": "^7.23.3",
+ "@babel/core": "^7.23.7",
"@babel/helper-plugin-test-runner": "^7.22.5",
- "babel-plugin-polyfill-corejs3": "^0.8.5",
+ "babel-plugin-polyfill-corejs3": "^0.8.7",
"core-js-pure": "^3.30.2"
},
"engines": {
diff --git a/node_modules/@babel/preset-env/package.json b/node_modules/@babel/preset-env/package.json
index 7c31190a..f68bedd3 100644
--- a/node_modules/@babel/preset-env/package.json
+++ b/node_modules/@babel/preset-env/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/preset-env",
- "version": "7.23.6",
+ "version": "7.23.7",
"description": "A Babel preset for each environment.",
"author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-preset-env",
@@ -22,7 +22,7 @@
"@babel/helper-validator-option": "^7.23.5",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
@@ -43,7 +43,7 @@
"@babel/plugin-syntax-top-level-await": "^7.14.5",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
"@babel/plugin-transform-arrow-functions": "^7.23.3",
- "@babel/plugin-transform-async-generator-functions": "^7.23.4",
+ "@babel/plugin-transform-async-generator-functions": "^7.23.7",
"@babel/plugin-transform-async-to-generator": "^7.23.3",
"@babel/plugin-transform-block-scoped-functions": "^7.23.3",
"@babel/plugin-transform-block-scoping": "^7.23.4",
@@ -91,9 +91,9 @@
"@babel/plugin-transform-unicode-regex": "^7.23.3",
"@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
"@babel/preset-modules": "0.1.6-no-external-plugins",
- "babel-plugin-polyfill-corejs2": "^0.4.6",
- "babel-plugin-polyfill-corejs3": "^0.8.5",
- "babel-plugin-polyfill-regenerator": "^0.5.3",
+ "babel-plugin-polyfill-corejs2": "^0.4.7",
+ "babel-plugin-polyfill-corejs3": "^0.8.7",
+ "babel-plugin-polyfill-regenerator": "^0.5.4",
"core-js-compat": "^3.31.0",
"semver": "^6.3.1"
},
@@ -101,10 +101,10 @@
"@babel/core": "^7.0.0-0"
},
"devDependencies": {
- "@babel/core": "^7.23.6",
+ "@babel/core": "^7.23.7",
"@babel/core-7.12": "npm:@babel/core@7.12.9",
"@babel/helper-plugin-test-runner": "^7.22.5",
- "@babel/traverse": "^7.23.6"
+ "@babel/traverse": "^7.23.7"
},
"engines": {
"node": ">=6.9.0"
diff --git a/node_modules/@babel/runtime/helpers/applyDecs2305.js b/node_modules/@babel/runtime/helpers/applyDecs2305.js
index 90206f3b..6fbda9f5 100644
--- a/node_modules/@babel/runtime/helpers/applyDecs2305.js
+++ b/node_modules/@babel/runtime/helpers/applyDecs2305.js
@@ -44,7 +44,7 @@ function applyDecs2305(e, t, r, n, o, a) {
E = r ? g[j - 1] : void 0,
I = {},
O = {
- kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][o],
+ kind: ["field", "accessor", "method", "getter", "setter", "class"][o],
name: n,
metadata: a,
addInitializer: function (e, t) {
diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js b/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js
index 6cfb2583..0b42b6c9 100644
--- a/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js
+++ b/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js
@@ -44,7 +44,7 @@ export default function applyDecs2305(e, t, r, n, o, a) {
E = r ? g[j - 1] : void 0,
I = {},
O = {
- kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][o],
+ kind: ["field", "accessor", "method", "getter", "setter", "class"][o],
name: n,
metadata: a,
addInitializer: function (e, t) {
diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json
index 1cd93ae8..e1ad2bd3 100644
--- a/node_modules/@babel/runtime/package.json
+++ b/node_modules/@babel/runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/runtime",
- "version": "7.23.6",
+ "version": "7.23.7",
"description": "babel's modular runtime helpers",
"license": "MIT",
"publishConfig": {
diff --git a/node_modules/@babel/traverse/lib/path/removal.js b/node_modules/@babel/traverse/lib/path/removal.js
index 7b1ce871..aa61f9a6 100644
--- a/node_modules/@babel/traverse/lib/path/removal.js
+++ b/node_modules/@babel/traverse/lib/path/removal.js
@@ -36,8 +36,10 @@ function _removeFromScope() {
Object.keys(bindings).forEach(name => this.scope.removeBinding(name));
}
function _callRemovalHooks() {
- for (const fn of _removalHooks.hooks) {
- if (fn(this, this.parentPath)) return true;
+ if (this.parentPath) {
+ for (const fn of _removalHooks.hooks) {
+ if (fn(this, this.parentPath)) return true;
+ }
}
}
function _remove() {
diff --git a/node_modules/@babel/traverse/lib/path/removal.js.map b/node_modules/@babel/traverse/lib/path/removal.js.map
index 92464540..f1fd6f95 100644
--- a/node_modules/@babel/traverse/lib/path/removal.js.map
+++ b/node_modules/@babel/traverse/lib/path/removal.js.map
@@ -1 +1 @@
-{"version":3,"names":["_removalHooks","require","_cache","_index","_t","getBindingIdentifiers","remove","_this$opts","_assertUnremoved","resync","opts","noScope","_removeFromScope","_callRemovalHooks","_markRemoved","shareCommentsWithSiblings","_remove","bindings","node","Object","keys","forEach","name","scope","removeBinding","fn","hooks","parentPath","Array","isArray","container","splice","key","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","parent","getCachedPaths","hub","delete","removed","buildCodeFrameError"],"sources":["../../src/path/removal.ts"],"sourcesContent":["// This file contains methods responsible for removing a node.\n\nimport { hooks } from \"./lib/removal-hooks.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport type NodePath from \"./index.ts\";\nimport { REMOVED, SHOULD_SKIP } from \"./index.ts\";\nimport { getBindingIdentifiers } from \"@babel/types\";\n\nexport function remove(this: NodePath) {\n this._assertUnremoved();\n\n this.resync();\n if (!this.opts?.noScope) {\n this._removeFromScope();\n }\n\n if (this._callRemovalHooks()) {\n this._markRemoved();\n return;\n }\n\n this.shareCommentsWithSiblings();\n this._remove();\n this._markRemoved();\n}\n\nexport function _removeFromScope(this: NodePath) {\n const bindings = getBindingIdentifiers(this.node, false, false, true);\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\n\nexport function _callRemovalHooks(this: NodePath) {\n for (const fn of hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n}\n\nexport function _remove(this: NodePath) {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key as number, 1);\n this.updateSiblingKeys(this.key as number, -1);\n } else {\n this._replaceWith(null);\n }\n}\n\nexport function _markRemoved(this: NodePath) {\n // this.shouldSkip = true; this.removed = true;\n this._traverseFlags |= SHOULD_SKIP | REMOVED;\n if (this.parent) {\n getCachedPaths(this.hub, this.parent).delete(this.node);\n }\n this.node = null;\n}\n\nexport function _assertUnremoved(this: NodePath) {\n if (this.removed) {\n throw this.buildCodeFrameError(\n \"NodePath has been removed so is read-only.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAH,OAAA;AAAqD;EAA5CI;AAAqB,IAAAD,EAAA;AAEvB,SAASE,MAAMA,CAAA,EAAiB;EAAA,IAAAC,UAAA;EACrC,IAAI,CAACC,gBAAgB,CAAC,CAAC;EAEvB,IAAI,CAACC,MAAM,CAAC,CAAC;EACb,IAAI,GAAAF,UAAA,GAAC,IAAI,CAACG,IAAI,aAATH,UAAA,CAAWI,OAAO,GAAE;IACvB,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAI,IAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE;IAC5B,IAAI,CAACC,YAAY,CAAC,CAAC;IACnB;EACF;EAEA,IAAI,CAACC,yBAAyB,CAAC,CAAC;EAChC,IAAI,CAACC,OAAO,CAAC,CAAC;EACd,IAAI,CAACF,YAAY,CAAC,CAAC;AACrB;AAEO,SAASF,gBAAgBA,CAAA,EAAiB;EAC/C,MAAMK,QAAQ,GAAGZ,qBAAqB,CAAC,IAAI,CAACa,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;EACrEC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI,IAAI,CAACC,KAAK,CAACC,aAAa,CAACF,IAAI,CAAC,CAAC;AACvE;AAEO,SAAST,iBAAiBA,CAAA,EAAiB;EAChD,KAAK,MAAMY,EAAE,IAAIC,mBAAK,EAAE;IACtB,IAAID,EAAE,CAAC,IAAI,EAAE,IAAI,CAACE,UAAU,CAAC,EAAE,OAAO,IAAI;EAC5C;AACF;AAEO,SAASX,OAAOA,CAAA,EAAiB;EACtC,IAAIY,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,SAAS,CAAC,EAAE;IACjC,IAAI,CAACA,SAAS,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,EAAY,CAAC,CAAC;IAC5C,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACD,GAAG,EAAY,CAAC,CAAC,CAAC;EAChD,CAAC,MAAM;IACL,IAAI,CAACE,YAAY,CAAC,IAAI,CAAC;EACzB;AACF;AAEO,SAASpB,YAAYA,CAAA,EAAiB;EAE3C,IAAI,CAACqB,cAAc,IAAIC,kBAAW,GAAGC,cAAO;EAC5C,IAAI,IAAI,CAACC,MAAM,EAAE;IACf,IAAAC,qBAAc,EAAC,IAAI,CAACC,GAAG,EAAE,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,IAAI,CAACvB,IAAI,CAAC;EACzD;EACA,IAAI,CAACA,IAAI,GAAG,IAAI;AAClB;AAEO,SAASV,gBAAgBA,CAAA,EAAiB;EAC/C,IAAI,IAAI,CAACkC,OAAO,EAAE;IAChB,MAAM,IAAI,CAACC,mBAAmB,CAC5B,4CACF,CAAC;EACH;AACF"} \ No newline at end of file
+{"version":3,"names":["_removalHooks","require","_cache","_index","_t","getBindingIdentifiers","remove","_this$opts","_assertUnremoved","resync","opts","noScope","_removeFromScope","_callRemovalHooks","_markRemoved","shareCommentsWithSiblings","_remove","bindings","node","Object","keys","forEach","name","scope","removeBinding","parentPath","fn","hooks","Array","isArray","container","splice","key","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","parent","getCachedPaths","hub","delete","removed","buildCodeFrameError"],"sources":["../../src/path/removal.ts"],"sourcesContent":["// This file contains methods responsible for removing a node.\n\nimport { hooks } from \"./lib/removal-hooks.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport type NodePath from \"./index.ts\";\nimport { REMOVED, SHOULD_SKIP } from \"./index.ts\";\nimport { getBindingIdentifiers } from \"@babel/types\";\n\nexport function remove(this: NodePath) {\n this._assertUnremoved();\n\n this.resync();\n if (!this.opts?.noScope) {\n this._removeFromScope();\n }\n\n if (this._callRemovalHooks()) {\n this._markRemoved();\n return;\n }\n\n this.shareCommentsWithSiblings();\n this._remove();\n this._markRemoved();\n}\n\nexport function _removeFromScope(this: NodePath) {\n const bindings = getBindingIdentifiers(this.node, false, false, true);\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\n\nexport function _callRemovalHooks(this: NodePath) {\n if (this.parentPath) {\n for (const fn of hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n }\n}\n\nexport function _remove(this: NodePath) {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key as number, 1);\n this.updateSiblingKeys(this.key as number, -1);\n } else {\n this._replaceWith(null);\n }\n}\n\nexport function _markRemoved(this: NodePath) {\n // this.shouldSkip = true; this.removed = true;\n this._traverseFlags |= SHOULD_SKIP | REMOVED;\n if (this.parent) {\n getCachedPaths(this.hub, this.parent).delete(this.node);\n }\n this.node = null;\n}\n\nexport function _assertUnremoved(this: NodePath) {\n if (this.removed) {\n throw this.buildCodeFrameError(\n \"NodePath has been removed so is read-only.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAH,OAAA;AAAqD;EAA5CI;AAAqB,IAAAD,EAAA;AAEvB,SAASE,MAAMA,CAAA,EAAiB;EAAA,IAAAC,UAAA;EACrC,IAAI,CAACC,gBAAgB,CAAC,CAAC;EAEvB,IAAI,CAACC,MAAM,CAAC,CAAC;EACb,IAAI,GAAAF,UAAA,GAAC,IAAI,CAACG,IAAI,aAATH,UAAA,CAAWI,OAAO,GAAE;IACvB,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAI,IAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE;IAC5B,IAAI,CAACC,YAAY,CAAC,CAAC;IACnB;EACF;EAEA,IAAI,CAACC,yBAAyB,CAAC,CAAC;EAChC,IAAI,CAACC,OAAO,CAAC,CAAC;EACd,IAAI,CAACF,YAAY,CAAC,CAAC;AACrB;AAEO,SAASF,gBAAgBA,CAAA,EAAiB;EAC/C,MAAMK,QAAQ,GAAGZ,qBAAqB,CAAC,IAAI,CAACa,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;EACrEC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI,IAAI,CAACC,KAAK,CAACC,aAAa,CAACF,IAAI,CAAC,CAAC;AACvE;AAEO,SAAST,iBAAiBA,CAAA,EAAiB;EAChD,IAAI,IAAI,CAACY,UAAU,EAAE;IACnB,KAAK,MAAMC,EAAE,IAAIC,mBAAK,EAAE;MACtB,IAAID,EAAE,CAAC,IAAI,EAAE,IAAI,CAACD,UAAU,CAAC,EAAE,OAAO,IAAI;IAC5C;EACF;AACF;AAEO,SAAST,OAAOA,CAAA,EAAiB;EACtC,IAAIY,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,SAAS,CAAC,EAAE;IACjC,IAAI,CAACA,SAAS,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,EAAY,CAAC,CAAC;IAC5C,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACD,GAAG,EAAY,CAAC,CAAC,CAAC;EAChD,CAAC,MAAM;IACL,IAAI,CAACE,YAAY,CAAC,IAAI,CAAC;EACzB;AACF;AAEO,SAASpB,YAAYA,CAAA,EAAiB;EAE3C,IAAI,CAACqB,cAAc,IAAIC,kBAAW,GAAGC,cAAO;EAC5C,IAAI,IAAI,CAACC,MAAM,EAAE;IACf,IAAAC,qBAAc,EAAC,IAAI,CAACC,GAAG,EAAE,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,IAAI,CAACvB,IAAI,CAAC;EACzD;EACA,IAAI,CAACA,IAAI,GAAG,IAAI;AAClB;AAEO,SAASV,gBAAgBA,CAAA,EAAiB;EAC/C,IAAI,IAAI,CAACkC,OAAO,EAAE;IAChB,MAAM,IAAI,CAACC,mBAAmB,CAC5B,4CACF,CAAC;EACH;AACF"} \ No newline at end of file
diff --git a/node_modules/@babel/traverse/package.json b/node_modules/@babel/traverse/package.json
index 6067dc81..2ffc9d69 100644
--- a/node_modules/@babel/traverse/package.json
+++ b/node_modules/@babel/traverse/package.json
@@ -1,6 +1,6 @@
{
"name": "@babel/traverse",
- "version": "7.23.6",
+ "version": "7.23.7",
"description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes",
"author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-traverse",
@@ -28,7 +28,7 @@
"globals": "^11.1.0"
},
"devDependencies": {
- "@babel/core": "^7.23.6",
+ "@babel/core": "^7.23.7",
"@babel/helper-plugin-test-runner": "^7.22.5"
},
"engines": {
diff --git a/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md b/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md
index ac8681e8..0399fe70 100644
--- a/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md
+++ b/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changes to Cascade Layer Name Parser
+### 1.0.7
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+
### 1.0.6
_December 15, 2023_
@@ -15,11 +22,4 @@ _September 24, 2023_
- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch)
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
-### 1.0.4
-
-_July 24, 2023_
-
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md)
diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts b/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts
index 225d9fda..5865e6c8 100644
--- a/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts
+++ b/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts
@@ -24,8 +24,11 @@ export declare function parse(source: string, options?: {
onParseError?: (error: ParseError) => void;
}): LayerName[];
+/**
+ * Parses an array of {@link https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/docs/css-tokenizer.csstoken.md | CSSTokens} into a list of cascade layer names.
+ */
export declare function parseFromTokens(tokens: Array<CSSToken>, options?: {
onParseError?: (error: ParseError) => void;
-}): LayerName[];
+}): Array<LayerName>;
export { }
diff --git a/node_modules/@csstools/cascade-layer-name-parser/package.json b/node_modules/@csstools/cascade-layer-name-parser/package.json
index 593c2e88..8bab037c 100644
--- a/node_modules/@csstools/cascade-layer-name-parser/package.json
+++ b/node_modules/@csstools/cascade-layer-name-parser/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/cascade-layer-name-parser",
"description": "Parse CSS Cascade Layer names.",
- "version": "1.0.6",
+ "version": "1.0.7",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,8 +48,8 @@
"dist"
],
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser#readme",
"repository": {
diff --git a/node_modules/@csstools/css-calc/CHANGELOG.md b/node_modules/@csstools/css-calc/CHANGELOG.md
index 95f0d5f4..ab4a1177 100644
--- a/node_modules/@csstools/css-calc/CHANGELOG.md
+++ b/node_modules/@csstools/css-calc/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changes to CSS Calc
+### 1.1.6
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+
### 1.1.5
_December 15, 2023_
@@ -15,12 +22,4 @@ _September 24, 2023_
- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch)
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
-### 1.1.3
-
-_July 24, 2023_
-
-- Correctly serialize negative zero `-0` values as `calc(-1 * 0px)`
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md)
diff --git a/node_modules/@csstools/css-calc/dist/index.cjs b/node_modules/@csstools/css-calc/dist/index.cjs
index 65d449dc..496da279 100644
--- a/node_modules/@csstools/css-calc/dist/index.cjs
+++ b/node_modules/@csstools/css-calc/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/css-parser-algorithms"),n=require("@csstools/css-tokenizer");const o=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(o,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const t={cm:"px",in:"px",mm:"px",pc:"px",pt:"px",px:"px",q:"px",deg:"deg",grad:"deg",rad:"deg",turn:"deg",ms:"s",s:"s",hz:"hz",khz:"hz"},r=new Map([["cm",e=>e],["mm",e=>10*e],["q",e=>40*e],["in",e=>e/2.54],["pc",e=>e/2.54*6],["pt",e=>e/2.54*72],["px",e=>e/2.54*96]]),u=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),i=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),a=new Map([["hz",e=>e],["khz",e=>e/1e3]]),l=new Map([["cm",e=>2.54*e],["mm",e=>25.4*e],["q",e=>25.4*e*4],["in",e=>e],["pc",e=>6*e],["pt",e=>72*e],["px",e=>96*e]]),s=new Map([["hz",e=>1e3*e],["khz",e=>e]]),c=new Map([["cm",e=>e/10],["mm",e=>e],["q",e=>4*e],["in",e=>e/25.4],["pc",e=>e/25.4*6],["pt",e=>e/25.4*72],["px",e=>e/25.4*96]]),T=new Map([["ms",e=>e],["s",e=>e/1e3]]),p=new Map([["cm",e=>e/6*2.54],["mm",e=>e/6*25.4],["q",e=>e/6*25.4*4],["in",e=>e/6],["pc",e=>e],["pt",e=>e/6*72],["px",e=>e/6*96]]),v=new Map([["cm",e=>e/72*2.54],["mm",e=>e/72*25.4],["q",e=>e/72*25.4*4],["in",e=>e/72],["pc",e=>e/72*6],["pt",e=>e],["px",e=>e/72*96]]),m=new Map([["cm",e=>e/96*2.54],["mm",e=>e/96*25.4],["q",e=>e/96*25.4*4],["in",e=>e/96],["pc",e=>e/96*6],["pt",e=>e/96*72],["px",e=>e]]),N=new Map([["cm",e=>e/4/10],["mm",e=>e/4],["q",e=>e],["in",e=>e/4/25.4],["pc",e=>e/4/25.4*6],["pt",e=>e/4/25.4*72],["px",e=>e/4/25.4*96]]),f=new Map([["deg",e=>180*e/Math.PI],["grad",e=>180*e/Math.PI/.9],["rad",e=>e],["turn",e=>180*e/Math.PI/360]]),y=new Map([["ms",e=>1e3*e],["s",e=>e]]),k=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),d=new Map([["cm",r],["mm",c],["q",N],["in",l],["pc",p],["pt",v],["px",m],["ms",T],["s",y],["deg",u],["grad",i],["rad",f],["turn",k],["hz",a],["khz",s]]);function convertUnit(e,o){if(e[0]!==n.TokenType.Dimension)return o;if(o[0]!==n.TokenType.Dimension)return o;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(o[4].unit);if(t===r)return o;const u=d.get(r);if(!u)return o;const i=u.get(t);if(!i)return o;const a=i(o[4].value);return[n.TokenType.Dimension,a.toString()+e[4].unit,o[2],o[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function toCanonicalUnit(e){if(e[0]!==n.TokenType.Dimension)return e;const o=toLowerCaseAZ(e[4].unit),r=t[o];if(o===r)return e;const u=d.get(o);if(!u)return e;const i=u.get(r);if(!i)return e;const a=i(e[4].value);return[n.TokenType.Dimension,a.toString()+r,e[2],e[3],{value:a,unit:r,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function addition(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function division(o){if(2!==o.length)return-1;const t=o[0].value,r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&"object"==typeof e&&"inputs"in e&&Array.isArray(e.inputs)&&"operation"in e}function solve(n){if(-1===n)return-1;const o=[];for(let t=0;t<n.inputs.length;t++){const r=n.inputs[t];if(e.isTokenNode(r)){o.push(r);continue}const u=solve(r);if(-1===u)return-1;o.push(u)}return n.operation(o)}function multiplication(o){if(2!==o.length)return-1;const t=o[0].value,r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Percentage){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Dimension){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+r[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(o,t){for(let r=0;r<o.length;r++){const u=o[r];if(!e.isTokenNode(u))continue;const i=u.value;if(i[0]!==n.TokenType.Ident)continue;const a=toLowerCaseAZ(i[4].value);switch(a){case"e":o.splice(r,1,new e.TokenNode([n.TokenType.Number,Math.E.toString(),i[2],i[3],{value:Math.E,type:n.NumberType.Number}]));break;case"pi":o.splice(r,1,new e.TokenNode([n.TokenType.Number,Math.PI.toString(),i[2],i[3],{value:Math.PI,type:n.NumberType.Number}]));break;case"infinity":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"infinity",i[2],i[3],{value:1/0,type:n.NumberType.Number}]));break;case"-infinity":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"-infinity",i[2],i[3],{value:-1/0,type:n.NumberType.Number}]));break;case"nan":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"NaN",i[2],i[3],{value:Number.NaN,type:n.NumberType.Number}]));break;default:if(t.has(a)){const n=t.get(a);o.splice(r,1,new e.TokenNode(n))}}}return o}function isNumeric(e){return e[0]===n.TokenType.Dimension||(e[0]===n.TokenType.Percentage||e[0]===n.TokenType.Number)}function isDimensionOrNumber(e){return e[0]===n.TokenType.Dimension||e[0]===n.TokenType.Number}function arrayOfSameNumeric(e){if(0===e.length)return!0;const o=e[0];if(!isNumeric(o))return!1;if(1===e.length)return!0;if(o[0]===n.TokenType.Dimension){const n=toLowerCaseAZ(o[4].unit);for(let t=1;t<e.length;t++){const r=e[t];if(o[0]!==r[0])return!1;if(n!==toLowerCaseAZ(r[4].unit))return!1}return!0}for(let n=1;n<e.length;n++){const t=e[n];if(o[0]!==t[0])return!1}return!0}function twoOfSameNumeric(e,o){return!!isNumeric(e)&&(e[0]===n.TokenType.Dimension?e[0]===o[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(o[4].unit):e[0]===o[0])}function unary(e){if(1!==e.length)return-1;return isNumeric(e[0].value)?e[0]:-1}function resultToCalculation(e,o,t){return o[0]===n.TokenType.Dimension?dimensionToCalculation(e,o[4].unit,t):o[0]===n.TokenType.Percentage?percentageToCalculation(e,t):o[0]===n.TokenType.Number?numberToCalculation(e,t):-1}function dimensionToCalculation(o,t,r){const u=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Dimension,r.toString()+t,u[0][2],u[u.length-1][3],{value:r,type:Number.isInteger(r)?n.NumberType.Integer:n.NumberType.Number,unit:t}])],operation:unary}}function percentageToCalculation(o,t){const r=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Percentage,t.toString()+"%",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(o,t){const r=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?n.NumberType.Integer:n.NumberType.Number}])],operation:unary}}function solveACos(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.acos(t[4].value))}function solveASin(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.asin(t[4].value))}function solveATan(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.atan(t[4].value))}function solveATan2(e,n,o){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;return dimensionToCalculation(e,"rad",Math.atan2(t[4].value,r[4].value))}function solveAbs(e,n){const o=n.value;if(!isDimensionOrNumber(o))return-1;return resultToCalculation(e,o,Math.abs(o[4].value))}function solveClamp(n,o,t,r){if(!e.isTokenNode(o)||!e.isTokenNode(t)||!e.isTokenNode(r))return-1;const u=o.value;if(!isNumeric(u))return-1;const i=convertUnit(u,t.value);if(!twoOfSameNumeric(u,i))return-1;const a=convertUnit(u,r.value);if(!twoOfSameNumeric(u,a))return-1;return resultToCalculation(n,u,Math.max(u[4].value,Math.min(i[4].value,a[4].value)))}function solveCos(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=u.get("rad")(t[4].value);break;case"grad":r=i.get("rad")(t[4].value);break;case"turn":r=k.get("rad")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.hypot(...i);return resultToCalculation(n,r,a)}function solveMax(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.max(...i);return resultToCalculation(n,r,a)}function solveMin(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.min(...i);return resultToCalculation(n,r,a)}function solveMod(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)&&(Number.isFinite(r[4].value)||(r[4].value!==Number.POSITIVE_INFINITY||t[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*t[4].value,-0))&&(r[4].value!==Number.NEGATIVE_INFINITY||t[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*t[4].value,0)))?Number.isFinite(r[4].value)?(t[4].value%r[4].value+r[4].value)%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solvePow(e,o,t){const r=o.value,u=t.value;if(r[0]!==n.TokenType.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)?Number.isFinite(r[4].value)?t[4].value%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solveRound(e,n,o,t){const r=o.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;if(0===u[4].value)i=Number.NaN;else if(Number.isFinite(r[4].value)||Number.isFinite(u[4].value))if(!Number.isFinite(r[4].value)&&Number.isFinite(u[4].value))i=r[4].value;else if(Number.isFinite(r[4].value)&&!Number.isFinite(u[4].value))switch(n){case"down":i=r[4].value<0?-1/0:Object.is(-0,0*r[4].value)?-0:0;break;case"up":i=r[4].value>0?1/0:Object.is(0,0*r[4].value)?0:-0;break;default:i=Object.is(0,0*r[4].value)?0:-0}else if(Number.isFinite(u[4].value))switch(n){case"down":i=Math.floor(r[4].value/u[4].value)*u[4].value;break;case"up":i=Math.ceil(r[4].value/u[4].value)*u[4].value;break;case"to-zero":i=Math.trunc(r[4].value/u[4].value)*u[4].value;break;default:{let e=Math.floor(r[4].value/u[4].value)*u[4].value,n=Math.ceil(r[4].value/u[4].value)*u[4].value;if(e>n){const o=e;e=n,n=o}const o=Math.abs(r[4].value-e),t=Math.abs(r[4].value-n);i=o===t?n:o<t?e:n;break}}else i=r[4].value;else i=Number.NaN;return resultToCalculation(e,r,i)}function solveSign(e,n){const o=n.value;if(!isDimensionOrNumber(o))return-1;return numberToCalculation(e,Math.sign(o[4].value))}function solveSin(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=u.get("rad")(t[4].value);break;case"grad":r=i.get("rad")(t[4].value);break;case"turn":r=k.get("rad")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let a=0,l=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":a=f.get("deg")(r);break;case"deg":a=r,l=u.get("rad")(r);break;case"grad":a=i.get("deg")(r),l=i.get("rad")(r);break;case"turn":a=k.get("deg")(r),l=k.get("rad")(r);break;default:return-1}const s=a/90;return l=a%90==0&&s%2!=0?s>0?1/0:-1/0:Math.tan(l),numberToCalculation(e,l)}function subtraction(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function solveLog(o,t){if(1===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;const i=t[1];if(!i||!e.isTokenNode(i))return-1;const a=i.value;if(a[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const b=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),u=[],i=[],a=[];{let o=u;for(let t=0;t<r.length;t++){const l=r[t];if(e.isTokenNode(l)&&l.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i){o=a;continue}if(o===u){o=i;continue}return-1}o.push(l)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],u),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===s)return-1;const c=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));if(-1===c)return-1;return solveClamp(o,l,s,c)}],["cos",function cos(e,n){return singleNodeSolver(e,n,solveCos)}],["exp",function exp(e,n){return singleNodeSolver(e,n,solveExp)}],["hypot",function hypot(e,n){return variadicNodesSolver(e,n,solveHypot)}],["log",function log(e,n){return variadicNodesSolver(e,n,solveLog)}],["max",function max(e,n){return variadicNodesSolver(e,n,solveMax)}],["min",function min(e,n){return variadicNodesSolver(e,n,solveMin)}],["mod",function mod(e,n){return twoCommaSeparatedNodesSolver(e,n,solveMod)}],["pow",function pow(e,n){return twoCommaSeparatedNodesSolver(e,n,solvePow)}],["rem",function rem(e,n){return twoCommaSeparatedNodesSolver(e,n,solveRem)}],["round",function round(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);let u="";const i=[],a=[];{let o=i;for(let t=0;t<r.length;t++){const l=r[t];if(!u&&0===i.length&&0===a.length&&e.isTokenNode(l)&&l.value[0]===n.TokenType.Ident){const e=toLowerCaseAZ(l.value[4].value);if(g.has(e)){u=e;continue}}if(e.isTokenNode(l)&&l.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i&&u&&0===i.length)continue;if(o===i){o=a;continue}return-1}o.push(l)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));if(-1===s)return-1;u||(u="nearest");return solveRound(o,u,l,s)}],["sign",function sign(e,n){return singleNodeSolver(e,n,solveSign)}],["sin",function sin(e,n){return singleNodeSolver(e,n,solveSin)}],["sqrt",function sqrt(e,n){return singleNodeSolver(e,n,solveSqrt)}],["tan",function tan(e,n){return singleNodeSolver(e,n,solveTan)}]]);function calc$1(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);if(1===r.length&&e.isTokenNode(r[0]))return{inputs:[r[0]],operation:unary};let u=0;for(;u<r.length;){const o=r[u];if(e.isSimpleBlockNode(o)&&o.startToken[0]===n.TokenType.OpenParen){const e=calc$1(o,t);if(-1===e)return-1;r.splice(u,1,e)}else if(e.isFunctionNode(o)){const e=b.get(toLowerCaseAZ(o.getName()));if(!e)return-1;{const n=e(o,t);if(-1===n)return-1;r.splice(u,1,n)}}else u++}if(u=0,1===r.length&&isCalculation(r[0]))return r[0];for(;u<r.length;){const o=r[u];if(!o||!e.isTokenNode(o)&&!isCalculation(o)){u++;continue}const t=r[u+1];if(!t||!e.isTokenNode(t)){u++;continue}const i=t.value;if(i[0]!==n.TokenType.Delim||"*"!==i[4].value&&"/"!==i[4].value){u++;continue}const a=r[u+2];if(!a||!e.isTokenNode(a)&&!isCalculation(a))return-1;"*"!==i[4].value?"/"!==i[4].value?u++:r.splice(u,3,{inputs:[o,a],operation:division}):r.splice(u,3,{inputs:[o,a],operation:multiplication})}if(u=0,1===r.length&&isCalculation(r[0]))return r[0];for(;u<r.length;){const o=r[u];if(!o||!e.isTokenNode(o)&&!isCalculation(o)){u++;continue}const t=r[u+1];if(!t||!e.isTokenNode(t)){u++;continue}const i=t.value;if(i[0]!==n.TokenType.Delim||"+"!==i[4].value&&"-"!==i[4].value){u++;continue}const a=r[u+2];if(!a||!e.isTokenNode(a)&&!isCalculation(a))return-1;"+"!==i[4].value?"-"!==i[4].value?u++:r.splice(u,3,{inputs:[o,a],operation:subtraction}):r.splice(u,3,{inputs:[o,a],operation:addition})}return 1===r.length&&isCalculation(r[0])?r[0]:-1}function singleNodeSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],u),t));return-1===i?-1:r(o,i)}function twoCommaSeparatedNodesSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[],a=[];{let o=i;for(let t=0;t<u.length;t++){const r=u[t];if(e.isTokenNode(r)&&r.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i){o=a;continue}return-1}o.push(r)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));return-1===s?-1:r(o,l,s)}function variadicNodesSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[];{const o=[];let r=[];for(let t=0;t<u.length;t++){const i=u[t];e.isTokenNode(i)&&i.value[0]===n.TokenType.Comma?(o.push(r),r=[]):r.push(i)}o.push(r);for(let r=0;r<o.length;r++){if(0===o[r].length)return-1;const u=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],o[r]),t));if(-1===u)return-1;i.push(u)}}return r(o,i)}const g=new Set(["nearest","up","down","to-zero"]);function patchNaN(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;return t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension?o:Number.isNaN(t[4].value)?t[0]===n.TokenType.Number?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}])]):t[0]===n.TokenType.Dimension?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:n.NumberType.Integer,unit:t[4].unit}])]):t[0]===n.TokenType.Percentage?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Percentage,"1%",t[2],t[3],{value:1}])]):-1:o}function patchInfinity(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;if(t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension)return o;if(Number.isFinite(t[4].value))return o;let r="";return Number.NEGATIVE_INFINITY===t[4].value&&(r="-"),t[0]===n.TokenType.Number?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}])]):t[0]===n.TokenType.Dimension?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:n.NumberType.Integer,unit:t[4].unit}])]):t[0]===n.TokenType.Percentage?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Percentage,"1%",t[2],t[3],{value:1}])]):-1}function patchMinusZero(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;return t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension?o:Object.is(-0,t[4].value)?("-0"===t[1]||(t[1]=`calc(-1 * ${t[1]})`),o):o}function patchPrecision(o,t=13){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const r=o.value;if(r[0]!==n.TokenType.Number&&r[0]!==n.TokenType.Percentage&&r[0]!==n.TokenType.Dimension)return o;if(Number.isInteger(r[4].value))return o;const u=Number(r[4].value.toFixed(t)).toString();return r[0]===n.TokenType.Number?r[1]=u:r[0]===n.TokenType.Percentage?r[1]=u+"%":r[0]===n.TokenType.Dimension&&(r[1]=u+r[4].unit),o}function patchCanonicalUnit(o){return-1===o?-1:(e.isFunctionNode(o)||o.value[0]!==n.TokenType.Dimension||(o.value=toCanonicalUnit(o.value)),o)}function patchCalcResult(e,n){let o;return o=patchNaN(e),o=patchInfinity(o),n?.toCanonicalUnits&&(o=patchCanonicalUnit(o)),o=patchPrecision(o,n?.precision),o=patchMinusZero(o),o}function tokenizeGlobals(e){const o=new Map;if(!e)return o;for(const[t,r]of e)if(n.isToken(r))o.set(t,r);else if("string"!=typeof r);else{const e=n.tokenizer({css:r}),u=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!u)continue;if(u[0]!==n.TokenType.Number&&u[0]!==n.TokenType.Dimension&&u[0]!==n.TokenType.Percentage)continue;o.set(t,u)}return o}function calcFromComponentValues(n,o){const t=tokenizeGlobals(o?.globals);return e.replaceComponentValues(n,(n=>{if(e.isFunctionNode(n)){const e=b.get(toLowerCaseAZ(n.getName()));if(e){const r=patchCalcResult(solve(e(n,t)),o);if(-1!==r)return r}}}))}const h=new Set(b.keys());exports.calc=function calc(o,t){return calcFromComponentValues(e.parseCommaSeparatedListOfComponentValues(n.tokenize({css:o}),{}),t).map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")},exports.calcFromComponentValues=calcFromComponentValues,exports.mathFunctionNames=h;
+"use strict";var e=require("@csstools/css-parser-algorithms"),n=require("@csstools/css-tokenizer");const o=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(o,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const t={cm:"px",in:"px",mm:"px",pc:"px",pt:"px",px:"px",q:"px",deg:"deg",grad:"deg",rad:"deg",turn:"deg",ms:"s",s:"s",hz:"hz",khz:"hz"},r=new Map([["cm",e=>e],["mm",e=>10*e],["q",e=>40*e],["in",e=>e/2.54],["pc",e=>e/2.54*6],["pt",e=>e/2.54*72],["px",e=>e/2.54*96]]),u=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),i=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),a=new Map([["hz",e=>e],["khz",e=>e/1e3]]),l=new Map([["cm",e=>2.54*e],["mm",e=>25.4*e],["q",e=>25.4*e*4],["in",e=>e],["pc",e=>6*e],["pt",e=>72*e],["px",e=>96*e]]),s=new Map([["hz",e=>1e3*e],["khz",e=>e]]),c=new Map([["cm",e=>e/10],["mm",e=>e],["q",e=>4*e],["in",e=>e/25.4],["pc",e=>e/25.4*6],["pt",e=>e/25.4*72],["px",e=>e/25.4*96]]),T=new Map([["ms",e=>e],["s",e=>e/1e3]]),p=new Map([["cm",e=>e/6*2.54],["mm",e=>e/6*25.4],["q",e=>e/6*25.4*4],["in",e=>e/6],["pc",e=>e],["pt",e=>e/6*72],["px",e=>e/6*96]]),v=new Map([["cm",e=>e/72*2.54],["mm",e=>e/72*25.4],["q",e=>e/72*25.4*4],["in",e=>e/72],["pc",e=>e/72*6],["pt",e=>e],["px",e=>e/72*96]]),m=new Map([["cm",e=>e/96*2.54],["mm",e=>e/96*25.4],["q",e=>e/96*25.4*4],["in",e=>e/96],["pc",e=>e/96*6],["pt",e=>e/96*72],["px",e=>e]]),N=new Map([["cm",e=>e/4/10],["mm",e=>e/4],["q",e=>e],["in",e=>e/4/25.4],["pc",e=>e/4/25.4*6],["pt",e=>e/4/25.4*72],["px",e=>e/4/25.4*96]]),f=new Map([["deg",e=>180*e/Math.PI],["grad",e=>180*e/Math.PI/.9],["rad",e=>e],["turn",e=>180*e/Math.PI/360]]),y=new Map([["ms",e=>1e3*e],["s",e=>e]]),k=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),d=new Map([["cm",r],["mm",c],["q",N],["in",l],["pc",p],["pt",v],["px",m],["ms",T],["s",y],["deg",u],["grad",i],["rad",f],["turn",k],["hz",a],["khz",s]]);function convertUnit(e,o){if(e[0]!==n.TokenType.Dimension)return o;if(o[0]!==n.TokenType.Dimension)return o;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(o[4].unit);if(t===r)return o;const u=d.get(r);if(!u)return o;const i=u.get(t);if(!i)return o;const a=i(o[4].value);return[n.TokenType.Dimension,a.toString()+e[4].unit,o[2],o[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function toCanonicalUnit(e){if(e[0]!==n.TokenType.Dimension)return e;const o=toLowerCaseAZ(e[4].unit),r=t[o];if(o===r)return e;const u=d.get(o);if(!u)return e;const i=u.get(r);if(!i)return e;const a=i(e[4].value);return[n.TokenType.Dimension,a.toString()+r,e[2],e[3],{value:a,unit:r,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function addition(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function division(o){if(2!==o.length)return-1;const t=o[0].value,r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&"object"==typeof e&&"inputs"in e&&Array.isArray(e.inputs)&&"operation"in e}function solve(n){if(-1===n)return-1;const o=[];for(let t=0;t<n.inputs.length;t++){const r=n.inputs[t];if(e.isTokenNode(r)){o.push(r);continue}const u=solve(r);if(-1===u)return-1;o.push(u)}return n.operation(o)}function multiplication(o){if(2!==o.length)return-1;const t=o[0].value,r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Percentage){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Number){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Dimension){const o=t[4].value*r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+r[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(o,t){for(let r=0;r<o.length;r++){const u=o[r];if(!e.isTokenNode(u))continue;const i=u.value;if(i[0]!==n.TokenType.Ident)continue;const a=toLowerCaseAZ(i[4].value);switch(a){case"e":o.splice(r,1,new e.TokenNode([n.TokenType.Number,Math.E.toString(),i[2],i[3],{value:Math.E,type:n.NumberType.Number}]));break;case"pi":o.splice(r,1,new e.TokenNode([n.TokenType.Number,Math.PI.toString(),i[2],i[3],{value:Math.PI,type:n.NumberType.Number}]));break;case"infinity":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"infinity",i[2],i[3],{value:1/0,type:n.NumberType.Number}]));break;case"-infinity":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"-infinity",i[2],i[3],{value:-1/0,type:n.NumberType.Number}]));break;case"nan":o.splice(r,1,new e.TokenNode([n.TokenType.Number,"NaN",i[2],i[3],{value:Number.NaN,type:n.NumberType.Number}]));break;default:if(t.has(a)){const n=t.get(a);o.splice(r,1,new e.TokenNode(n))}}}return o}function isNumeric(e){return e[0]===n.TokenType.Dimension||(e[0]===n.TokenType.Percentage||e[0]===n.TokenType.Number)}function isDimensionOrNumber(e){return e[0]===n.TokenType.Dimension||e[0]===n.TokenType.Number}function arrayOfSameNumeric(e){if(0===e.length)return!0;const o=e[0];if(!isNumeric(o))return!1;if(1===e.length)return!0;if(o[0]===n.TokenType.Dimension){const n=toLowerCaseAZ(o[4].unit);for(let t=1;t<e.length;t++){const r=e[t];if(o[0]!==r[0])return!1;if(n!==toLowerCaseAZ(r[4].unit))return!1}return!0}for(let n=1;n<e.length;n++){const t=e[n];if(o[0]!==t[0])return!1}return!0}function twoOfSameNumeric(e,o){return!!isNumeric(e)&&(e[0]===n.TokenType.Dimension?e[0]===o[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(o[4].unit):e[0]===o[0])}function unary(e){if(1!==e.length)return-1;return isNumeric(e[0].value)?e[0]:-1}function resultToCalculation(e,o,t){return o[0]===n.TokenType.Dimension?dimensionToCalculation(e,o[4].unit,t):o[0]===n.TokenType.Percentage?percentageToCalculation(e,t):o[0]===n.TokenType.Number?numberToCalculation(e,t):-1}function dimensionToCalculation(o,t,r){const u=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Dimension,r.toString()+t,u[0][2],u[u.length-1][3],{value:r,type:Number.isInteger(r)?n.NumberType.Integer:n.NumberType.Number,unit:t}])],operation:unary}}function percentageToCalculation(o,t){const r=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Percentage,t.toString()+"%",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(o,t){const r=o.tokens();return{inputs:[new e.TokenNode([n.TokenType.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?n.NumberType.Integer:n.NumberType.Number}])],operation:unary}}function solveACos(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.acos(t[4].value))}function solveASin(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.asin(t[4].value))}function solveATan(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return dimensionToCalculation(e,"rad",Math.atan(t[4].value))}function solveATan2(e,n,o){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;return dimensionToCalculation(e,"rad",Math.atan2(t[4].value,r[4].value))}function solveAbs(e,n){const o=n.value;if(!isDimensionOrNumber(o))return-1;return resultToCalculation(e,o,Math.abs(o[4].value))}function solveClamp(n,o,t,r){if(!e.isTokenNode(o)||!e.isTokenNode(t)||!e.isTokenNode(r))return-1;const u=o.value;if(!isNumeric(u))return-1;const i=convertUnit(u,t.value);if(!twoOfSameNumeric(u,i))return-1;const a=convertUnit(u,r.value);if(!twoOfSameNumeric(u,a))return-1;return resultToCalculation(n,u,Math.max(u[4].value,Math.min(i[4].value,a[4].value)))}function solveCos(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=u.get("rad")(t[4].value);break;case"grad":r=i.get("rad")(t[4].value);break;case"turn":r=k.get("rad")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.hypot(...i);return resultToCalculation(n,r,a)}function solveMax(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.max(...i);return resultToCalculation(n,r,a)}function solveMin(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.min(...i);return resultToCalculation(n,r,a)}function solveMod(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)&&(Number.isFinite(r[4].value)||(r[4].value!==Number.POSITIVE_INFINITY||t[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*t[4].value,-0))&&(r[4].value!==Number.NEGATIVE_INFINITY||t[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*t[4].value,0)))?Number.isFinite(r[4].value)?(t[4].value%r[4].value+r[4].value)%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solvePow(e,o,t){const r=o.value,u=t.value;if(r[0]!==n.TokenType.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)?Number.isFinite(r[4].value)?t[4].value%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solveRound(e,n,o,t){const r=o.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;if(0===u[4].value)i=Number.NaN;else if(Number.isFinite(r[4].value)||Number.isFinite(u[4].value))if(!Number.isFinite(r[4].value)&&Number.isFinite(u[4].value))i=r[4].value;else if(Number.isFinite(r[4].value)&&!Number.isFinite(u[4].value))switch(n){case"down":i=r[4].value<0?-1/0:Object.is(-0,0*r[4].value)?-0:0;break;case"up":i=r[4].value>0?1/0:Object.is(0,0*r[4].value)?0:-0;break;default:i=Object.is(0,0*r[4].value)?0:-0}else if(Number.isFinite(u[4].value))switch(n){case"down":i=Math.floor(r[4].value/u[4].value)*u[4].value;break;case"up":i=Math.ceil(r[4].value/u[4].value)*u[4].value;break;case"to-zero":i=Math.trunc(r[4].value/u[4].value)*u[4].value;break;default:{let e=Math.floor(r[4].value/u[4].value)*u[4].value,n=Math.ceil(r[4].value/u[4].value)*u[4].value;if(e>n){const o=e;e=n,n=o}const o=Math.abs(r[4].value-e),t=Math.abs(r[4].value-n);i=o===t?n:o<t?e:n;break}}else i=r[4].value;else i=Number.NaN;return resultToCalculation(e,r,i)}function solveSign(e,n){const o=n.value;if(!isDimensionOrNumber(o))return-1;return numberToCalculation(e,Math.sign(o[4].value))}function solveSin(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=u.get("rad")(t[4].value);break;case"grad":r=i.get("rad")(t[4].value);break;case"turn":r=k.get("rad")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,o){const t=o.value;if(t[0]!==n.TokenType.Number)return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,o){const t=o.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let a=0,l=t[4].value;if(t[0]===n.TokenType.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":a=f.get("deg")(r);break;case"deg":a=r,l=u.get("rad")(r);break;case"grad":a=i.get("deg")(r),l=i.get("rad")(r);break;case"turn":a=k.get("deg")(r),l=k.get("rad")(r);break;default:return-1}const s=a/90;return l=a%90==0&&s%2!=0?s>0?1/0:-1/0:Math.tan(l),numberToCalculation(e,l)}function subtraction(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function solveLog(o,t){if(1===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;const i=t[1];if(!i||!e.isTokenNode(i))return-1;const a=i.value;if(a[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const b=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),u=[],i=[],a=[];{let o=u;for(let t=0;t<r.length;t++){const l=r[t];if(e.isTokenNode(l)&&l.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i){o=a;continue}if(o===u){o=i;continue}return-1}o.push(l)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],u),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===s)return-1;const c=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));if(-1===c)return-1;return solveClamp(o,l,s,c)}],["cos",function cos(e,n){return singleNodeSolver(e,n,solveCos)}],["exp",function exp(e,n){return singleNodeSolver(e,n,solveExp)}],["hypot",function hypot(e,n){return variadicNodesSolver(e,n,solveHypot)}],["log",function log(e,n){return variadicNodesSolver(e,n,solveLog)}],["max",function max(e,n){return variadicNodesSolver(e,n,solveMax)}],["min",function min(e,n){return variadicNodesSolver(e,n,solveMin)}],["mod",function mod(e,n){return twoCommaSeparatedNodesSolver(e,n,solveMod)}],["pow",function pow(e,n){return twoCommaSeparatedNodesSolver(e,n,solvePow)}],["rem",function rem(e,n){return twoCommaSeparatedNodesSolver(e,n,solveRem)}],["round",function round(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);let u="";const i=[],a=[];{let o=i;for(let t=0;t<r.length;t++){const l=r[t];if(!u&&0===i.length&&0===a.length&&e.isTokenNode(l)&&l.value[0]===n.TokenType.Ident){const e=toLowerCaseAZ(l.value[4].value);if(g.has(e)){u=e;continue}}if(e.isTokenNode(l)&&l.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i&&u&&0===i.length)continue;if(o===i){o=a;continue}return-1}o.push(l)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));if(-1===s)return-1;u||(u="nearest");return solveRound(o,u,l,s)}],["sign",function sign(e,n){return singleNodeSolver(e,n,solveSign)}],["sin",function sin(e,n){return singleNodeSolver(e,n,solveSin)}],["sqrt",function sqrt(e,n){return singleNodeSolver(e,n,solveSqrt)}],["tan",function tan(e,n){return singleNodeSolver(e,n,solveTan)}]]);function calc$1(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);if(1===r.length&&e.isTokenNode(r[0]))return{inputs:[r[0]],operation:unary};let u=0;for(;u<r.length;){const o=r[u];if(e.isSimpleBlockNode(o)&&o.startToken[0]===n.TokenType.OpenParen){const e=calc$1(o,t);if(-1===e)return-1;r.splice(u,1,e)}else if(e.isFunctionNode(o)){const e=b.get(toLowerCaseAZ(o.getName()));if(!e)return-1;const n=e(o,t);if(-1===n)return-1;r.splice(u,1,n)}else u++}if(u=0,1===r.length&&isCalculation(r[0]))return r[0];for(;u<r.length;){const o=r[u];if(!o||!e.isTokenNode(o)&&!isCalculation(o)){u++;continue}const t=r[u+1];if(!t||!e.isTokenNode(t)){u++;continue}const i=t.value;if(i[0]!==n.TokenType.Delim||"*"!==i[4].value&&"/"!==i[4].value){u++;continue}const a=r[u+2];if(!a||!e.isTokenNode(a)&&!isCalculation(a))return-1;"*"!==i[4].value?"/"!==i[4].value?u++:r.splice(u,3,{inputs:[o,a],operation:division}):r.splice(u,3,{inputs:[o,a],operation:multiplication})}if(u=0,1===r.length&&isCalculation(r[0]))return r[0];for(;u<r.length;){const o=r[u];if(!o||!e.isTokenNode(o)&&!isCalculation(o)){u++;continue}const t=r[u+1];if(!t||!e.isTokenNode(t)){u++;continue}const i=t.value;if(i[0]!==n.TokenType.Delim||"+"!==i[4].value&&"-"!==i[4].value){u++;continue}const a=r[u+2];if(!a||!e.isTokenNode(a)&&!isCalculation(a))return-1;"+"!==i[4].value?"-"!==i[4].value?u++:r.splice(u,3,{inputs:[o,a],operation:subtraction}):r.splice(u,3,{inputs:[o,a],operation:addition})}return 1===r.length&&isCalculation(r[0])?r[0]:-1}function singleNodeSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],u),t));return-1===i?-1:r(o,i)}function twoCommaSeparatedNodesSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[],a=[];{let o=i;for(let t=0;t<u.length;t++){const r=u[t];if(e.isTokenNode(r)&&r.value[0]===n.TokenType.Comma){if(o===a)return-1;if(o===i){o=a;continue}return-1}o.push(r)}}const l=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],i),t));if(-1===l)return-1;const s=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],a),t));return-1===s?-1:r(o,l,s)}function variadicNodesSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[];{const o=[];let r=[];for(let t=0;t<u.length;t++){const i=u[t];e.isTokenNode(i)&&i.value[0]===n.TokenType.Comma?(o.push(r),r=[]):r.push(i)}o.push(r);for(let r=0;r<o.length;r++){if(0===o[r].length)return-1;const u=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],o[r]),t));if(-1===u)return-1;i.push(u)}}return r(o,i)}const g=new Set(["nearest","up","down","to-zero"]);function patchNaN(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;return t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension?o:Number.isNaN(t[4].value)?t[0]===n.TokenType.Number?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}])]):t[0]===n.TokenType.Dimension?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:n.NumberType.Integer,unit:t[4].unit}])]):t[0]===n.TokenType.Percentage?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Percentage,"1%",t[2],t[3],{value:1}])]):-1:o}function patchInfinity(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;if(t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension)return o;if(Number.isFinite(t[4].value))return o;let r="";return Number.NEGATIVE_INFINITY===t[4].value&&(r="-"),t[0]===n.TokenType.Number?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}])]):t[0]===n.TokenType.Dimension?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:n.NumberType.Integer,unit:t[4].unit}])]):t[0]===n.TokenType.Percentage?new e.FunctionNode([n.TokenType.Function,"calc(",t[2],t[3],{value:"calc"}],[n.TokenType.CloseParen,")",t[2],t[3],void 0],[new e.TokenNode([n.TokenType.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Delim,"*",t[2],t[3],{value:"*"}]),new e.WhitespaceNode([[n.TokenType.Whitespace," ",t[2],t[3],void 0]]),new e.TokenNode([n.TokenType.Percentage,"1%",t[2],t[3],{value:1}])]):-1}function patchMinusZero(o){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const t=o.value;return t[0]!==n.TokenType.Number&&t[0]!==n.TokenType.Percentage&&t[0]!==n.TokenType.Dimension?o:Object.is(-0,t[4].value)?("-0"===t[1]||(t[1]=`calc(-1 * ${t[1]})`),o):o}function patchPrecision(o,t=13){if(-1===o)return-1;if(e.isFunctionNode(o))return o;const r=o.value;if(r[0]!==n.TokenType.Number&&r[0]!==n.TokenType.Percentage&&r[0]!==n.TokenType.Dimension)return o;if(Number.isInteger(r[4].value))return o;const u=Number(r[4].value.toFixed(t)).toString();return r[0]===n.TokenType.Number?r[1]=u:r[0]===n.TokenType.Percentage?r[1]=u+"%":r[0]===n.TokenType.Dimension&&(r[1]=u+r[4].unit),o}function patchCanonicalUnit(o){return-1===o?-1:(e.isFunctionNode(o)||o.value[0]!==n.TokenType.Dimension||(o.value=toCanonicalUnit(o.value)),o)}function patchCalcResult(e,n){let o;return o=patchNaN(e),o=patchInfinity(o),n?.toCanonicalUnits&&(o=patchCanonicalUnit(o)),o=patchPrecision(o,n?.precision),o=patchMinusZero(o),o}function tokenizeGlobals(e){const o=new Map;if(!e)return o;for(const[t,r]of e)if(n.isToken(r))o.set(t,r);else if("string"!=typeof r);else{const e=n.tokenizer({css:r}),u=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!u)continue;if(u[0]!==n.TokenType.Number&&u[0]!==n.TokenType.Dimension&&u[0]!==n.TokenType.Percentage)continue;o.set(t,u)}return o}function calcFromComponentValues(n,o){const t=tokenizeGlobals(o?.globals);return e.replaceComponentValues(n,(n=>{if(!e.isFunctionNode(n))return;const r=b.get(toLowerCaseAZ(n.getName()));if(!r)return;const u=patchCalcResult(solve(r(n,t)),o);return-1!==u?u:void 0}))}const h=new Set(b.keys());exports.calc=function calc(o,t){return calcFromComponentValues(e.parseCommaSeparatedListOfComponentValues(n.tokenize({css:o}),{}),t).map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")},exports.calcFromComponentValues=calcFromComponentValues,exports.mathFunctionNames=h;
diff --git a/node_modules/@csstools/css-calc/dist/index.mjs b/node_modules/@csstools/css-calc/dist/index.mjs
index a45745b5..368e8aa1 100644
--- a/node_modules/@csstools/css-calc/dist/index.mjs
+++ b/node_modules/@csstools/css-calc/dist/index.mjs
@@ -1 +1 @@
-import{TokenNode as e,isTokenNode as n,isCommentNode as t,isWhitespaceNode as r,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as a,WhitespaceNode as o,parseCommaSeparatedListOfComponentValues as l,replaceComponentValues as c}from"@csstools/css-parser-algorithms";import{TokenType as s,NumberType as v,isToken as m,tokenizer as f,tokenize as p,stringify as N}from"@csstools/css-tokenizer";const g=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(g,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const b={cm:"px",in:"px",mm:"px",pc:"px",pt:"px",px:"px",q:"px",deg:"deg",grad:"deg",rad:"deg",turn:"deg",ms:"s",s:"s",hz:"hz",khz:"hz"},d=new Map([["cm",e=>e],["mm",e=>10*e],["q",e=>40*e],["in",e=>e/2.54],["pc",e=>e/2.54*6],["pt",e=>e/2.54*72],["px",e=>e/2.54*96]]),w=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),h=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),C=new Map([["hz",e=>e],["khz",e=>e/1e3]]),I=new Map([["cm",e=>2.54*e],["mm",e=>25.4*e],["q",e=>25.4*e*4],["in",e=>e],["pc",e=>6*e],["pt",e=>72*e],["px",e=>96*e]]),S=new Map([["hz",e=>1e3*e],["khz",e=>e]]),y=new Map([["cm",e=>e/10],["mm",e=>e],["q",e=>4*e],["in",e=>e/25.4],["pc",e=>e/25.4*6],["pt",e=>e/25.4*72],["px",e=>e/25.4*96]]),M=new Map([["ms",e=>e],["s",e=>e/1e3]]),P=new Map([["cm",e=>e/6*2.54],["mm",e=>e/6*25.4],["q",e=>e/6*25.4*4],["in",e=>e/6],["pc",e=>e],["pt",e=>e/6*72],["px",e=>e/6*96]]),D=new Map([["cm",e=>e/72*2.54],["mm",e=>e/72*25.4],["q",e=>e/72*25.4*4],["in",e=>e/72],["pc",e=>e/72*6],["pt",e=>e],["px",e=>e/72*96]]),T=new Map([["cm",e=>e/96*2.54],["mm",e=>e/96*25.4],["q",e=>e/96*25.4*4],["in",e=>e/96],["pc",e=>e/96*6],["pt",e=>e/96*72],["px",e=>e]]),A=new Map([["cm",e=>e/4/10],["mm",e=>e/4],["q",e=>e],["in",e=>e/4/25.4],["pc",e=>e/4/25.4*6],["pt",e=>e/4/25.4*72],["px",e=>e/4/25.4*96]]),k=new Map([["deg",e=>180*e/Math.PI],["grad",e=>180*e/Math.PI/.9],["rad",e=>e],["turn",e=>180*e/Math.PI/360]]),F=new Map([["ms",e=>1e3*e],["s",e=>e]]),x=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),O=new Map([["cm",d],["mm",y],["q",A],["in",I],["pc",P],["pt",D],["px",T],["ms",M],["s",F],["deg",w],["grad",h],["rad",k],["turn",x],["hz",C],["khz",S]]);function convertUnit(e,n){if(e[0]!==s.Dimension)return n;if(n[0]!==s.Dimension)return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const u=O.get(r);if(!u)return n;const i=u.get(t);if(!i)return n;const a=i(n[4].value);return[s.Dimension,a.toString()+e[4].unit,n[2],n[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?v.Integer:v.Number}]}function toCanonicalUnit(e){if(e[0]!==s.Dimension)return e;const n=toLowerCaseAZ(e[4].unit),t=b[n];if(n===t)return e;const r=O.get(n);if(!r)return e;const u=r.get(t);if(!u)return e;const i=u(e[4].value);return[s.Dimension,i.toString()+t,e[2],e[3],{value:i,unit:t,type:Number.isInteger(i)?v.Integer:v.Number}]}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value+r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value+r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}return-1}function division(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&"object"==typeof e&&"inputs"in e&&Array.isArray(e.inputs)&&"operation"in e}function solve(e){if(-1===e)return-1;const t=[];for(let r=0;r<e.inputs.length;r++){const u=e.inputs[r];if(n(u)){t.push(u);continue}const i=solve(u);if(-1===i)return-1;t.push(i)}return e.operation(t)}function multiplication(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Number&&r[0]===s.Percentage){const n=t[4].value*r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}if(t[0]===s.Number&&r[0]===s.Dimension){const n=t[4].value*r[4].value;return new e([s.Dimension,n.toString()+r[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(t,r){for(let u=0;u<t.length;u++){const i=t[u];if(!n(i))continue;const a=i.value;if(a[0]!==s.Ident)continue;const o=toLowerCaseAZ(a[4].value);switch(o){case"e":t.splice(u,1,new e([s.Number,Math.E.toString(),a[2],a[3],{value:Math.E,type:v.Number}]));break;case"pi":t.splice(u,1,new e([s.Number,Math.PI.toString(),a[2],a[3],{value:Math.PI,type:v.Number}]));break;case"infinity":t.splice(u,1,new e([s.Number,"infinity",a[2],a[3],{value:1/0,type:v.Number}]));break;case"-infinity":t.splice(u,1,new e([s.Number,"-infinity",a[2],a[3],{value:-1/0,type:v.Number}]));break;case"nan":t.splice(u,1,new e([s.Number,"NaN",a[2],a[3],{value:Number.NaN,type:v.Number}]));break;default:if(r.has(o)){const n=r.get(o);t.splice(u,1,new e(n))}}}return t}function isNumeric(e){return e[0]===s.Dimension||(e[0]===s.Percentage||e[0]===s.Number)}function isDimensionOrNumber(e){return e[0]===s.Dimension||e[0]===s.Number}function arrayOfSameNumeric(e){if(0===e.length)return!0;const n=e[0];if(!isNumeric(n))return!1;if(1===e.length)return!0;if(n[0]===s.Dimension){const t=toLowerCaseAZ(n[4].unit);for(let r=1;r<e.length;r++){const u=e[r];if(n[0]!==u[0])return!1;if(t!==toLowerCaseAZ(u[4].unit))return!1}return!0}for(let t=1;t<e.length;t++){const r=e[t];if(n[0]!==r[0])return!1}return!0}function twoOfSameNumeric(e,n){return!!isNumeric(e)&&(e[0]===s.Dimension?e[0]===n[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(n[4].unit):e[0]===n[0])}function unary(e){if(1!==e.length)return-1;return isNumeric(e[0].value)?e[0]:-1}function resultToCalculation(e,n,t){return n[0]===s.Dimension?dimensionToCalculation(e,n[4].unit,t):n[0]===s.Percentage?percentageToCalculation(e,t):n[0]===s.Number?numberToCalculation(e,t):-1}function dimensionToCalculation(n,t,r){const u=n.tokens();return{inputs:[new e([s.Dimension,r.toString()+t,u[0][2],u[u.length-1][3],{value:r,type:Number.isInteger(r)?v.Integer:v.Number,unit:t}])],operation:unary}}function percentageToCalculation(n,t){const r=n.tokens();return{inputs:[new e([s.Percentage,t.toString()+"%",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(n,t){const r=n.tokens();return{inputs:[new e([s.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?v.Integer:v.Number}])],operation:unary}}function solveACos(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.acos(t[4].value))}function solveASin(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.asin(t[4].value))}function solveATan(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.atan(t[4].value))}function solveATan2(e,n,t){const r=n.value;if(!isDimensionOrNumber(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;return dimensionToCalculation(e,"rad",Math.atan2(r[4].value,u[4].value))}function solveAbs(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;return resultToCalculation(e,t,Math.abs(t[4].value))}function solveClamp(e,t,r,u){if(!n(t)||!n(r)||!n(u))return-1;const i=t.value;if(!isNumeric(i))return-1;const a=convertUnit(i,r.value);if(!twoOfSameNumeric(i,a))return-1;const o=convertUnit(i,u.value);if(!twoOfSameNumeric(i,o))return-1;return resultToCalculation(e,i,Math.max(i[4].value,Math.min(a[4].value,o[4].value)))}function solveCos(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=w.get("rad")(t[4].value);break;case"grad":r=h.get("rad")(t[4].value);break;case"turn":r=x.get("rad")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.hypot(...a);return resultToCalculation(e,u,o)}function solveMax(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.max(...a);return resultToCalculation(e,u,o)}function solveMin(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.min(...a);return resultToCalculation(e,u,o)}function solveMod(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(u[4].value)||(u[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(u[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(u[4].value)?(r[4].value%u[4].value+u[4].value)%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solvePow(e,n,t){const r=n.value,u=t.value;if(r[0]!==s.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(u[4].value)?r[4].value%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solveRound(e,n,t,r){const u=t.value;if(!isNumeric(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let a;if(0===i[4].value)a=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(i[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(i[4].value))a=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case"down":a=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case"up":a=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:a=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case"down":a=Math.floor(u[4].value/i[4].value)*i[4].value;break;case"up":a=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case"to-zero":a=Math.trunc(u[4].value/i[4].value)*i[4].value;break;default:{let e=Math.floor(u[4].value/i[4].value)*i[4].value,n=Math.ceil(u[4].value/i[4].value)*i[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);a=t===r?n:t<r?e:n;break}}else a=u[4].value;else a=Number.NaN;return resultToCalculation(e,u,a)}function solveSign(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;return numberToCalculation(e,Math.sign(t[4].value))}function solveSin(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=w.get("rad")(t[4].value);break;case"grad":r=h.get("rad")(t[4].value);break;case"turn":r=x.get("rad")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let u=0,i=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":u=k.get("deg")(r);break;case"deg":u=r,i=w.get("rad")(r);break;case"grad":u=h.get("deg")(r),i=h.get("rad")(r);break;case"turn":u=x.get("deg")(r),i=x.get("rad")(r);break;default:return-1}const a=u/90;return i=u%90==0&&a%2!=0?a>0?1/0:-1/0:Math.tan(i),numberToCalculation(e,i)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value-r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value-r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}return-1}function solveLog(e,t){if(1===t.length){const r=t[0];if(!r||!n(r))return-1;const u=r.value;if(u[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const u=r.value;if(u[0]!==s.Number)return-1;const i=t[1];if(!i||!n(i))return-1;const a=i.value;if(a[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const Z=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(e,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),o=[],l=[],c=[];{let e=o;for(let t=0;t<i.length;t++){const r=i[t];if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l){e=c;continue}if(e===o){e=l;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],o),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===m)return-1;const f=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));if(-1===f)return-1;return solveClamp(e,v,m,f)}],["cos",function cos(e,n){return singleNodeSolver(e,n,solveCos)}],["exp",function exp(e,n){return singleNodeSolver(e,n,solveExp)}],["hypot",function hypot(e,n){return variadicNodesSolver(e,n,solveHypot)}],["log",function log(e,n){return variadicNodesSolver(e,n,solveLog)}],["max",function max(e,n){return variadicNodesSolver(e,n,solveMax)}],["min",function min(e,n){return variadicNodesSolver(e,n,solveMin)}],["mod",function mod(e,n){return twoCommaSeparatedNodesSolver(e,n,solveMod)}],["pow",function pow(e,n){return twoCommaSeparatedNodesSolver(e,n,solvePow)}],["rem",function rem(e,n){return twoCommaSeparatedNodesSolver(e,n,solveRem)}],["round",function round(e,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u);let o="";const l=[],c=[];{let e=l;for(let t=0;t<i.length;t++){const r=i[t];if(!o&&0===l.length&&0===c.length&&n(r)&&r.value[0]===s.Ident){const e=toLowerCaseAZ(r.value[4].value);if(L.has(e)){o=e;continue}}if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l&&o&&0===l.length)continue;if(e===l){e=c;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));if(-1===m)return-1;o||(o="nearest");return solveRound(e,o,v,m)}],["sign",function sign(e,n){return singleNodeSolver(e,n,solveSign)}],["sin",function sin(e,n){return singleNodeSolver(e,n,solveSin)}],["sqrt",function sqrt(e,n){return singleNodeSolver(e,n,solveSqrt)}],["tan",function tan(e,n){return singleNodeSolver(e,n,solveTan)}]]);function calc$1(e,a){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],a);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l<o.length;){const e=o[l];if(u(e)&&e.startToken[0]===s.OpenParen){const n=calc$1(e,a);if(-1===n)return-1;o.splice(l,1,n)}else if(i(e)){const n=Z.get(toLowerCaseAZ(e.getName()));if(!n)return-1;{const t=n(e,a);if(-1===t)return-1;o.splice(l,1,t)}}else l++}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(r[0]!==s.Delim||"*"!==r[4].value&&"/"!==r[4].value){l++;continue}const u=o[l+2];if(!u||!n(u)&&!isCalculation(u))return-1;"*"!==r[4].value?"/"!==r[4].value?l++:o.splice(l,3,{inputs:[e,u],operation:division}):o.splice(l,3,{inputs:[e,u],operation:multiplication})}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(r[0]!==s.Delim||"+"!==r[4].value&&"-"!==r[4].value){l++;continue}const u=o[l+2];if(!u||!n(u)&&!isCalculation(u))return-1;"+"!==r[4].value?"-"!==r[4].value?l++:o.splice(l,3,{inputs:[e,u],operation:subtraction}):o.splice(l,3,{inputs:[e,u],operation:addition})}return 1===o.length&&isCalculation(o[0])?o[0]:-1}function singleNodeSolver(e,n,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],n),o=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],i),n));return-1===o?-1:u(e,o)}function twoCommaSeparatedNodesSolver(e,u,i){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),l=[],c=[];{let e=l;for(let t=0;t<o.length;t++){const r=o[t];if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l){e=c;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));return-1===m?-1:i(e,v,m)}function variadicNodesSolver(e,u,i){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),l=[];{const e=[];let t=[];for(let r=0;r<o.length;r++){const u=o[r];n(u)&&u.value[0]===s.Comma?(e.push(t),t=[]):t.push(u)}e.push(t);for(let n=0;n<e.length;n++){if(0===e[n].length)return-1;const t=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],e[n]),u));if(-1===t)return-1;l.push(t)}}return i(e,l)}const L=new Set(["nearest","up","down","to-zero"]);function patchNaN(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;return t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension?n:Number.isNaN(t[4].value)?t[0]===s.Number?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}])]):t[0]===s.Dimension?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:v.Integer,unit:t[4].unit}])]):t[0]===s.Percentage?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Percentage,"1%",t[2],t[3],{value:1}])]):-1:n}function patchInfinity(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;if(t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension)return n;if(Number.isFinite(t[4].value))return n;let r="";return Number.NEGATIVE_INFINITY===t[4].value&&(r="-"),t[0]===s.Number?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}])]):t[0]===s.Dimension?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:v.Integer,unit:t[4].unit}])]):t[0]===s.Percentage?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Percentage,"1%",t[2],t[3],{value:1}])]):-1}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return n[0]!==s.Number&&n[0]!==s.Percentage&&n[0]!==s.Dimension?e:Object.is(-0,n[4].value)?("-0"===n[1]||(n[1]=`calc(-1 * ${n[1]})`),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(i(e))return e;const t=e.value;if(t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension)return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return t[0]===s.Number?t[1]=r:t[0]===s.Percentage?t[1]=r+"%":t[0]===s.Dimension&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:(i(e)||e.value[0]!==s.Dimension||(e.value=toCanonicalUnit(e.value)),e)}function patchCalcResult(e,n){let t;return t=patchNaN(e),t=patchInfinity(t),n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(m(r))n.set(t,r);else if("string"!=typeof r);else{const e=f({css:r}),u=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!u)continue;if(u[0]!==s.Number&&u[0]!==s.Dimension&&u[0]!==s.Percentage)continue;n.set(t,u)}return n}function calc(e,n){return calcFromComponentValues(l(p({css:e}),{}),n).map((e=>e.map((e=>N(...e.tokens()))).join(""))).join(",")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return c(e,(e=>{if(i(e)){const r=Z.get(toLowerCaseAZ(e.getName()));if(r){const u=patchCalcResult(solve(r(e,t)),n);if(-1!==u)return u}}}))}const z=new Set(Z.keys());export{calc,calcFromComponentValues,z as mathFunctionNames};
+import{TokenNode as e,isTokenNode as n,isCommentNode as t,isWhitespaceNode as r,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as a,WhitespaceNode as o,parseCommaSeparatedListOfComponentValues as l,replaceComponentValues as c}from"@csstools/css-parser-algorithms";import{TokenType as s,NumberType as v,isToken as m,tokenizer as f,tokenize as p,stringify as N}from"@csstools/css-tokenizer";const g=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(g,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const b={cm:"px",in:"px",mm:"px",pc:"px",pt:"px",px:"px",q:"px",deg:"deg",grad:"deg",rad:"deg",turn:"deg",ms:"s",s:"s",hz:"hz",khz:"hz"},d=new Map([["cm",e=>e],["mm",e=>10*e],["q",e=>40*e],["in",e=>e/2.54],["pc",e=>e/2.54*6],["pt",e=>e/2.54*72],["px",e=>e/2.54*96]]),w=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),h=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),C=new Map([["hz",e=>e],["khz",e=>e/1e3]]),I=new Map([["cm",e=>2.54*e],["mm",e=>25.4*e],["q",e=>25.4*e*4],["in",e=>e],["pc",e=>6*e],["pt",e=>72*e],["px",e=>96*e]]),S=new Map([["hz",e=>1e3*e],["khz",e=>e]]),y=new Map([["cm",e=>e/10],["mm",e=>e],["q",e=>4*e],["in",e=>e/25.4],["pc",e=>e/25.4*6],["pt",e=>e/25.4*72],["px",e=>e/25.4*96]]),M=new Map([["ms",e=>e],["s",e=>e/1e3]]),P=new Map([["cm",e=>e/6*2.54],["mm",e=>e/6*25.4],["q",e=>e/6*25.4*4],["in",e=>e/6],["pc",e=>e],["pt",e=>e/6*72],["px",e=>e/6*96]]),D=new Map([["cm",e=>e/72*2.54],["mm",e=>e/72*25.4],["q",e=>e/72*25.4*4],["in",e=>e/72],["pc",e=>e/72*6],["pt",e=>e],["px",e=>e/72*96]]),T=new Map([["cm",e=>e/96*2.54],["mm",e=>e/96*25.4],["q",e=>e/96*25.4*4],["in",e=>e/96],["pc",e=>e/96*6],["pt",e=>e/96*72],["px",e=>e]]),A=new Map([["cm",e=>e/4/10],["mm",e=>e/4],["q",e=>e],["in",e=>e/4/25.4],["pc",e=>e/4/25.4*6],["pt",e=>e/4/25.4*72],["px",e=>e/4/25.4*96]]),k=new Map([["deg",e=>180*e/Math.PI],["grad",e=>180*e/Math.PI/.9],["rad",e=>e],["turn",e=>180*e/Math.PI/360]]),F=new Map([["ms",e=>1e3*e],["s",e=>e]]),x=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),O=new Map([["cm",d],["mm",y],["q",A],["in",I],["pc",P],["pt",D],["px",T],["ms",M],["s",F],["deg",w],["grad",h],["rad",k],["turn",x],["hz",C],["khz",S]]);function convertUnit(e,n){if(e[0]!==s.Dimension)return n;if(n[0]!==s.Dimension)return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const u=O.get(r);if(!u)return n;const i=u.get(t);if(!i)return n;const a=i(n[4].value);return[s.Dimension,a.toString()+e[4].unit,n[2],n[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?v.Integer:v.Number}]}function toCanonicalUnit(e){if(e[0]!==s.Dimension)return e;const n=toLowerCaseAZ(e[4].unit),t=b[n];if(n===t)return e;const r=O.get(n);if(!r)return e;const u=r.get(t);if(!u)return e;const i=u(e[4].value);return[s.Dimension,i.toString()+t,e[2],e[3],{value:i,unit:t,type:Number.isInteger(i)?v.Integer:v.Number}]}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value+r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value+r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}return-1}function division(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&"object"==typeof e&&"inputs"in e&&Array.isArray(e.inputs)&&"operation"in e}function solve(e){if(-1===e)return-1;const t=[];for(let r=0;r<e.inputs.length;r++){const u=e.inputs[r];if(n(u)){t.push(u);continue}const i=solve(u);if(-1===i)return-1;t.push(i)}return e.operation(t)}function multiplication(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Number&&r[0]===s.Percentage){const n=t[4].value*r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Number){const n=t[4].value*r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}if(t[0]===s.Number&&r[0]===s.Dimension){const n=t[4].value*r[4].value;return new e([s.Dimension,n.toString()+r[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(t,r){for(let u=0;u<t.length;u++){const i=t[u];if(!n(i))continue;const a=i.value;if(a[0]!==s.Ident)continue;const o=toLowerCaseAZ(a[4].value);switch(o){case"e":t.splice(u,1,new e([s.Number,Math.E.toString(),a[2],a[3],{value:Math.E,type:v.Number}]));break;case"pi":t.splice(u,1,new e([s.Number,Math.PI.toString(),a[2],a[3],{value:Math.PI,type:v.Number}]));break;case"infinity":t.splice(u,1,new e([s.Number,"infinity",a[2],a[3],{value:1/0,type:v.Number}]));break;case"-infinity":t.splice(u,1,new e([s.Number,"-infinity",a[2],a[3],{value:-1/0,type:v.Number}]));break;case"nan":t.splice(u,1,new e([s.Number,"NaN",a[2],a[3],{value:Number.NaN,type:v.Number}]));break;default:if(r.has(o)){const n=r.get(o);t.splice(u,1,new e(n))}}}return t}function isNumeric(e){return e[0]===s.Dimension||(e[0]===s.Percentage||e[0]===s.Number)}function isDimensionOrNumber(e){return e[0]===s.Dimension||e[0]===s.Number}function arrayOfSameNumeric(e){if(0===e.length)return!0;const n=e[0];if(!isNumeric(n))return!1;if(1===e.length)return!0;if(n[0]===s.Dimension){const t=toLowerCaseAZ(n[4].unit);for(let r=1;r<e.length;r++){const u=e[r];if(n[0]!==u[0])return!1;if(t!==toLowerCaseAZ(u[4].unit))return!1}return!0}for(let t=1;t<e.length;t++){const r=e[t];if(n[0]!==r[0])return!1}return!0}function twoOfSameNumeric(e,n){return!!isNumeric(e)&&(e[0]===s.Dimension?e[0]===n[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(n[4].unit):e[0]===n[0])}function unary(e){if(1!==e.length)return-1;return isNumeric(e[0].value)?e[0]:-1}function resultToCalculation(e,n,t){return n[0]===s.Dimension?dimensionToCalculation(e,n[4].unit,t):n[0]===s.Percentage?percentageToCalculation(e,t):n[0]===s.Number?numberToCalculation(e,t):-1}function dimensionToCalculation(n,t,r){const u=n.tokens();return{inputs:[new e([s.Dimension,r.toString()+t,u[0][2],u[u.length-1][3],{value:r,type:Number.isInteger(r)?v.Integer:v.Number,unit:t}])],operation:unary}}function percentageToCalculation(n,t){const r=n.tokens();return{inputs:[new e([s.Percentage,t.toString()+"%",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(n,t){const r=n.tokens();return{inputs:[new e([s.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?v.Integer:v.Number}])],operation:unary}}function solveACos(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.acos(t[4].value))}function solveASin(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.asin(t[4].value))}function solveATan(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return dimensionToCalculation(e,"rad",Math.atan(t[4].value))}function solveATan2(e,n,t){const r=n.value;if(!isDimensionOrNumber(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;return dimensionToCalculation(e,"rad",Math.atan2(r[4].value,u[4].value))}function solveAbs(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;return resultToCalculation(e,t,Math.abs(t[4].value))}function solveClamp(e,t,r,u){if(!n(t)||!n(r)||!n(u))return-1;const i=t.value;if(!isNumeric(i))return-1;const a=convertUnit(i,r.value);if(!twoOfSameNumeric(i,a))return-1;const o=convertUnit(i,u.value);if(!twoOfSameNumeric(i,o))return-1;return resultToCalculation(e,i,Math.max(i[4].value,Math.min(a[4].value,o[4].value)))}function solveCos(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=w.get("rad")(t[4].value);break;case"grad":r=h.get("rad")(t[4].value);break;case"turn":r=x.get("rad")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.hypot(...a);return resultToCalculation(e,u,o)}function solveMax(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.max(...a);return resultToCalculation(e,u,o)}function solveMin(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.min(...a);return resultToCalculation(e,u,o)}function solveMod(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(u[4].value)||(u[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(u[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(u[4].value)?(r[4].value%u[4].value+u[4].value)%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solvePow(e,n,t){const r=n.value,u=t.value;if(r[0]!==s.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(u[4].value)?r[4].value%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solveRound(e,n,t,r){const u=t.value;if(!isNumeric(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let a;if(0===i[4].value)a=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(i[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(i[4].value))a=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case"down":a=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case"up":a=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:a=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case"down":a=Math.floor(u[4].value/i[4].value)*i[4].value;break;case"up":a=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case"to-zero":a=Math.trunc(u[4].value/i[4].value)*i[4].value;break;default:{let e=Math.floor(u[4].value/i[4].value)*i[4].value,n=Math.ceil(u[4].value/i[4].value)*i[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);a=t===r?n:t<r?e:n;break}}else a=u[4].value;else a=Number.NaN;return resultToCalculation(e,u,a)}function solveSign(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;return numberToCalculation(e,Math.sign(t[4].value))}function solveSin(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":break;case"deg":r=w.get("rad")(t[4].value);break;case"grad":r=h.get("rad")(t[4].value);break;case"turn":r=x.get("rad")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,n){const t=n.value;if(t[0]!==s.Number)return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let u=0,i=t[4].value;if(t[0]===s.Dimension)switch(toLowerCaseAZ(t[4].unit)){case"rad":u=k.get("deg")(r);break;case"deg":u=r,i=w.get("rad")(r);break;case"grad":u=h.get("deg")(r),i=h.get("rad")(r);break;case"turn":u=x.get("deg")(r),i=x.get("rad")(r);break;default:return-1}const a=u/90;return i=u%90==0&&a%2!=0?a>0?1/0:-1/0:Math.tan(i),numberToCalculation(e,i)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value-r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value-r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number,unit:t[4].unit}])}return-1}function solveLog(e,t){if(1===t.length){const r=t[0];if(!r||!n(r))return-1;const u=r.value;if(u[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const u=r.value;if(u[0]!==s.Number)return-1;const i=t[1];if(!i||!n(i))return-1;const a=i.value;if(a[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const Z=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(e,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),o=[],l=[],c=[];{let e=o;for(let t=0;t<i.length;t++){const r=i[t];if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l){e=c;continue}if(e===o){e=l;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],o),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===m)return-1;const f=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));if(-1===f)return-1;return solveClamp(e,v,m,f)}],["cos",function cos(e,n){return singleNodeSolver(e,n,solveCos)}],["exp",function exp(e,n){return singleNodeSolver(e,n,solveExp)}],["hypot",function hypot(e,n){return variadicNodesSolver(e,n,solveHypot)}],["log",function log(e,n){return variadicNodesSolver(e,n,solveLog)}],["max",function max(e,n){return variadicNodesSolver(e,n,solveMax)}],["min",function min(e,n){return variadicNodesSolver(e,n,solveMin)}],["mod",function mod(e,n){return twoCommaSeparatedNodesSolver(e,n,solveMod)}],["pow",function pow(e,n){return twoCommaSeparatedNodesSolver(e,n,solvePow)}],["rem",function rem(e,n){return twoCommaSeparatedNodesSolver(e,n,solveRem)}],["round",function round(e,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u);let o="";const l=[],c=[];{let e=l;for(let t=0;t<i.length;t++){const r=i[t];if(!o&&0===l.length&&0===c.length&&n(r)&&r.value[0]===s.Ident){const e=toLowerCaseAZ(r.value[4].value);if(L.has(e)){o=e;continue}}if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l&&o&&0===l.length)continue;if(e===l){e=c;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));if(-1===m)return-1;o||(o="nearest");return solveRound(e,o,v,m)}],["sign",function sign(e,n){return singleNodeSolver(e,n,solveSign)}],["sin",function sin(e,n){return singleNodeSolver(e,n,solveSin)}],["sqrt",function sqrt(e,n){return singleNodeSolver(e,n,solveSqrt)}],["tan",function tan(e,n){return singleNodeSolver(e,n,solveTan)}]]);function calc$1(e,a){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],a);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l<o.length;){const e=o[l];if(u(e)&&e.startToken[0]===s.OpenParen){const n=calc$1(e,a);if(-1===n)return-1;o.splice(l,1,n)}else if(i(e)){const n=Z.get(toLowerCaseAZ(e.getName()));if(!n)return-1;const t=n(e,a);if(-1===t)return-1;o.splice(l,1,t)}else l++}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(r[0]!==s.Delim||"*"!==r[4].value&&"/"!==r[4].value){l++;continue}const u=o[l+2];if(!u||!n(u)&&!isCalculation(u))return-1;"*"!==r[4].value?"/"!==r[4].value?l++:o.splice(l,3,{inputs:[e,u],operation:division}):o.splice(l,3,{inputs:[e,u],operation:multiplication})}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(r[0]!==s.Delim||"+"!==r[4].value&&"-"!==r[4].value){l++;continue}const u=o[l+2];if(!u||!n(u)&&!isCalculation(u))return-1;"+"!==r[4].value?"-"!==r[4].value?l++:o.splice(l,3,{inputs:[e,u],operation:subtraction}):o.splice(l,3,{inputs:[e,u],operation:addition})}return 1===o.length&&isCalculation(o[0])?o[0]:-1}function singleNodeSolver(e,n,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],n),o=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],i),n));return-1===o?-1:u(e,o)}function twoCommaSeparatedNodesSolver(e,u,i){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),l=[],c=[];{let e=l;for(let t=0;t<o.length;t++){const r=o[t];if(n(r)&&r.value[0]===s.Comma){if(e===c)return-1;if(e===l){e=c;continue}return-1}e.push(r)}}const v=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],l),u));if(-1===v)return-1;const m=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],c),u));return-1===m?-1:i(e,v,m)}function variadicNodesSolver(e,u,i){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),l=[];{const e=[];let t=[];for(let r=0;r<o.length;r++){const u=o[r];n(u)&&u.value[0]===s.Comma?(e.push(t),t=[]):t.push(u)}e.push(t);for(let n=0;n<e.length;n++){if(0===e[n].length)return-1;const t=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],e[n]),u));if(-1===t)return-1;l.push(t)}}return i(e,l)}const L=new Set(["nearest","up","down","to-zero"]);function patchNaN(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;return t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension?n:Number.isNaN(t[4].value)?t[0]===s.Number?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}])]):t[0]===s.Dimension?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:v.Integer,unit:t[4].unit}])]):t[0]===s.Percentage?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,"NaN",t[2],t[3],{value:"NaN"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Percentage,"1%",t[2],t[3],{value:1}])]):-1:n}function patchInfinity(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;if(t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension)return n;if(Number.isFinite(t[4].value))return n;let r="";return Number.NEGATIVE_INFINITY===t[4].value&&(r="-"),t[0]===s.Number?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}])]):t[0]===s.Dimension?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Dimension,"1"+t[4].unit,t[2],t[3],{value:1,type:v.Integer,unit:t[4].unit}])]):t[0]===s.Percentage?new a([s.Function,"calc(",t[2],t[3],{value:"calc"}],[s.CloseParen,")",t[2],t[3],void 0],[new e([s.Ident,r+"infinity",t[2],t[3],{value:r+"infinity"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Delim,"*",t[2],t[3],{value:"*"}]),new o([[s.Whitespace," ",t[2],t[3],void 0]]),new e([s.Percentage,"1%",t[2],t[3],{value:1}])]):-1}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return n[0]!==s.Number&&n[0]!==s.Percentage&&n[0]!==s.Dimension?e:Object.is(-0,n[4].value)?("-0"===n[1]||(n[1]=`calc(-1 * ${n[1]})`),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(i(e))return e;const t=e.value;if(t[0]!==s.Number&&t[0]!==s.Percentage&&t[0]!==s.Dimension)return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return t[0]===s.Number?t[1]=r:t[0]===s.Percentage?t[1]=r+"%":t[0]===s.Dimension&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:(i(e)||e.value[0]!==s.Dimension||(e.value=toCanonicalUnit(e.value)),e)}function patchCalcResult(e,n){let t;return t=patchNaN(e),t=patchInfinity(t),n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(m(r))n.set(t,r);else if("string"!=typeof r);else{const e=f({css:r}),u=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!u)continue;if(u[0]!==s.Number&&u[0]!==s.Dimension&&u[0]!==s.Percentage)continue;n.set(t,u)}return n}function calc(e,n){return calcFromComponentValues(l(p({css:e}),{}),n).map((e=>e.map((e=>N(...e.tokens()))).join(""))).join(",")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return c(e,(e=>{if(!i(e))return;const r=Z.get(toLowerCaseAZ(e.getName()));if(!r)return;const u=patchCalcResult(solve(r(e,t)),n);return-1!==u?u:void 0}))}const z=new Set(Z.keys());export{calc,calcFromComponentValues,z as mathFunctionNames};
diff --git a/node_modules/@csstools/css-calc/package.json b/node_modules/@csstools/css-calc/package.json
index 16e5350e..258573a3 100644
--- a/node_modules/@csstools/css-calc/package.json
+++ b/node_modules/@csstools/css-calc/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/css-calc",
"description": "Solve CSS math expressions",
- "version": "1.1.5",
+ "version": "1.1.6",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,8 +48,8 @@
"dist"
],
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme",
"repository": {
diff --git a/node_modules/@csstools/css-color-parser/CHANGELOG.md b/node_modules/@csstools/css-color-parser/CHANGELOG.md
index be3d1ccf..e52df39b 100644
--- a/node_modules/@csstools/css-color-parser/CHANGELOG.md
+++ b/node_modules/@csstools/css-color-parser/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to CSS Color Parser
+### 1.5.1
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.6`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#116) (patch)
+
### 1.5.0
_December 15, 2023_
@@ -19,10 +27,4 @@ _October 9, 2023_
- Add utility to determine if a color is in the Display P3 gamut.
-### 1.3.3
-
-_October 2, 2023_
-
-- Fix interpolation of `hue` when either or both components are `none` and `longer` is the interpolation method.
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md)
diff --git a/node_modules/@csstools/css-color-parser/package.json b/node_modules/@csstools/css-color-parser/package.json
index 12b43584..0f5b0d43 100644
--- a/node_modules/@csstools/css-color-parser/package.json
+++ b/node_modules/@csstools/css-color-parser/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/css-color-parser",
"description": "Parse CSS color values",
- "version": "1.5.0",
+ "version": "1.5.1",
"contributors": [
{
"name": "Antonio Laguna",
@@ -49,11 +49,11 @@
],
"dependencies": {
"@csstools/color-helpers": "^4.0.0",
- "@csstools/css-calc": "^1.1.5"
+ "@csstools/css-calc": "^1.1.6"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser#readme",
"repository": {
diff --git a/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md
index 6d228cd2..802f35cf 100644
--- a/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md
+++ b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to CSS Parser Algorithms
+### 2.5.0
+
+_December 31, 2023_
+
+- Add a `forEach` and `walk` function.
+- Improve documentation.
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+
### 2.4.0
_December 15, 2023_
@@ -16,10 +24,4 @@ _September 24, 2023_
- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch)
-### 2.3.1
-
-_July 24, 2023_
-
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md)
diff --git a/node_modules/@csstools/css-parser-algorithms/README.md b/node_modules/@csstools/css-parser-algorithms/README.md
index b63c2ce3..3195aff0 100644
--- a/node_modules/@csstools/css-parser-algorithms/README.md
+++ b/node_modules/@csstools/css-parser-algorithms/README.md
@@ -6,6 +6,10 @@
Implemented from : https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/
+## API
+
+[Read the API docs](./docs/css-parser-algorithms.md)
+
## Usage
Add [CSS Parser Algorithms] to your project:
diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.cjs b/node_modules/@csstools/css-parser-algorithms/dist/index.cjs
index eedf0293..003cd61c 100644
--- a/node_modules/@csstools/css-parser-algorithms/dist/index.cjs
+++ b/node_modules/@csstools/css-parser-algorithms/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e,n=require("@csstools/css-tokenizer");function walkerIndexGenerator(e){let n=e.slice();return(e,o,t)=>{let s=-1;for(let i=n.indexOf(o);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<t);i++);return-1===s||s===t&&o===e[t]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,o){const t=o[0];if(t[0]===n.TokenType.OpenParen||t[0]===n.TokenType.OpenCurly||t[0]===n.TokenType.OpenSquare){const n=consumeSimpleBlock(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Function){const n=consumeFunction(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Whitespace){const n=consumeWhitespace(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Comment){const n=consumeComment(e,o);return{advance:n.advance,node:n.node}}return{advance:1,node:new TokenNode(t)}}exports.ComponentValueType=void 0,(e=exports.ComponentValueType||(exports.ComponentValueType={})).Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token";class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const o=walkerIndexGenerator(this.value);let t=0;for(;t<this.value.length;){const s=this.value[t];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},t))return!1;if(t=o(this.value,s,t),-1===t)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,o)=>!1!==e(n,o)&&((!("walk"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=exports.ComponentValueType.Function;name;endToken;constructor(e,n,o){super(),this.name=e,this.endToken=n,this.value=o}getName(){return this.name[4].value}normalize(){this.endToken[0]===n.TokenType.EOF&&(this.endToken=[n.TokenType.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===n.TokenType.EOF?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.name)+e+n.stringify(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===exports.ComponentValueType.Function)}}function consumeFunction(e,o){const t=[];let s=1;for(;;){const i=o[s];if(!i||i[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a function.",o[0][2],o[o.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:o.length,node:new FunctionNode(o[0],i,t)};if(i[0]===n.TokenType.CloseParen)return{advance:s+1,node:new FunctionNode(o[0],i,t)};if(i[0]===n.TokenType.Comment||i[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(s));s+=n.advance,t.push(...n.nodes);continue}const r=consumeComponentValue(e,o.slice(s));s+=r.advance,t.push(r.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=exports.ComponentValueType.SimpleBlock;startToken;endToken;constructor(e,n,o){super(),this.startToken=e,this.endToken=n,this.value=o}normalize(){if(this.endToken[0]===n.TokenType.EOF){const e=n.mirrorVariant(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===n.TokenType.EOF?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.startToken)+e+n.stringify(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===exports.ComponentValueType.SimpleBlock)}}function consumeSimpleBlock(e,o){const t=n.mirrorVariantType(o[0][0]);if(!t)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const s=[];let i=1;for(;;){const r=o[i];if(!r||r[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a simple block.",o[0][2],o[o.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:o.length,node:new SimpleBlockNode(o[0],r,s)};if(r[0]===t)return{advance:i+1,node:new SimpleBlockNode(o[0],r,s)};if(r[0]===n.TokenType.Comment||r[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(i));i+=n.advance,s.push(...n.nodes);continue}const a=consumeComponentValue(e,o.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=exports.ComponentValueType.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return n.stringify(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===exports.ComponentValueType.Whitespace)}}function consumeWhitespace(e,o){let t=0;for(;;){if(o[t][0]!==n.TokenType.Whitespace)return{advance:t,node:new WhitespaceNode(o.slice(0,t))};t++}}class CommentNode{type=exports.ComponentValueType.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return n.stringify(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===exports.ComponentValueType.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,o){const t=[];let s=0;for(;;)if(o[s][0]!==n.TokenType.Whitespace){if(o[s][0]!==n.TokenType.Comment)return{advance:s,nodes:t};t.push(new CommentNode(o[s])),s++}else{const e=consumeWhitespace(0,o.slice(s));s+=e.advance,t.push(e.node)}}class TokenNode{type=exports.ComponentValueType.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return n.stringify(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===exports.ComponentValueType.Token)}}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}exports.CommentNode=CommentNode,exports.ContainerNodeBaseClass=ContainerNodeBaseClass,exports.FunctionNode=FunctionNode,exports.SimpleBlockNode=SimpleBlockNode,exports.TokenNode=TokenNode,exports.WhitespaceNode=WhitespaceNode,exports.gatherNodeAncestry=function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((o=>{n.set(o,e.parent)})):n.set(e.node,e.parent)})),n},exports.isCommentNode=function isCommentNode(e){return CommentNode.isCommentNode(e)},exports.isFunctionNode=isFunctionNode,exports.isSimpleBlockNode=isSimpleBlockNode,exports.isTokenNode=function isTokenNode(e){return TokenNode.isTokenNode(e)},exports.isWhitespaceNode=function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)},exports.parseCommaSeparatedListOfComponentValues=function parseCommaSeparatedListOfComponentValues(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];if(0===e.length)return[];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=[],a=0;for(;;){if(!s[a]||s[a][0]===n.TokenType.EOF)return r.length&&i.push(r),i;if(s[a][0]===n.TokenType.Comma){i.push(r),r=[],a++;continue}const o=consumeComponentValue(t,e.slice(a));r.push(o.node),a+=o.advance}},exports.parseComponentValue=function parseComponentValue(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=consumeComponentValue(t,s);if(s[Math.min(i.advance,s.length-1)][0]===n.TokenType.EOF)return i.node;t.onParseError(new n.ParseError("Expected EOF after parsing a component value.",e[0][2],e[e.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))},exports.parseListOfComponentValues=function parseListOfComponentValues(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=0;for(;;){if(!s[r]||s[r][0]===n.TokenType.EOF)return i;const e=consumeComponentValue(t,s.slice(r));i.push(e.node),r+=e.advance}},exports.replaceComponentValues=function replaceComponentValues(e,n){for(let o=0;o<e.length;o++){const t=e[o];for(let e=0;e<t.length;e++){const o=t[e];{const s=n(o);if(s){t.splice(e,1,s);continue}}(isSimpleBlockNode(o)||isFunctionNode(o))&&o.walk(((e,o)=>{if("number"!=typeof o)return;const t=e.node,s=n(t);s&&e.parent.value.splice(o,1,s)}))}}return e},exports.sourceIndices=function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const o=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(o)[1]]}const n=e.tokens(),o=n[0],t=n[n.length-1];return o&&t?[o[2],t[3]]:[0,0]},exports.stringify=function stringify(e){return e.map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")},exports.walkerIndexGenerator=walkerIndexGenerator;
+"use strict";var e,n=require("@csstools/css-tokenizer");function walkerIndexGenerator(e){let n=e.slice();return(e,o,t)=>{let s=-1;for(let r=n.indexOf(o);r<n.length&&(s=e.indexOf(n[r]),-1===s||s<t);r++);return-1===s||s===t&&o===e[t]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,o){const t=o[0];if(t[0]===n.TokenType.OpenParen||t[0]===n.TokenType.OpenCurly||t[0]===n.TokenType.OpenSquare){const n=consumeSimpleBlock(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Function){const n=consumeFunction(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Whitespace){const n=consumeWhitespace(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Comment){const n=consumeComment(e,o);return{advance:n.advance,node:n.node}}return{advance:1,node:new TokenNode(t)}}exports.ComponentValueType=void 0,(e=exports.ComponentValueType||(exports.ComponentValueType={})).Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token";class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const o=walkerIndexGenerator(this.value);let t=0;for(;t<this.value.length;){const s=this.value[t];let r;if(n&&(r={...n}),!1===e({node:s,parent:this,state:r},t))return!1;if(t=o(this.value,s,t),-1===t)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,o)=>!1!==e(n,o)&&((!("walk"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=exports.ComponentValueType.Function;name;endToken;constructor(e,n,o){super(),this.name=e,this.endToken=n,this.value=o}getName(){return this.name[4].value}normalize(){this.endToken[0]===n.TokenType.EOF&&(this.endToken=[n.TokenType.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===n.TokenType.EOF?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.name)+e+n.stringify(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===exports.ComponentValueType.Function)}}function consumeFunction(e,o){const t=[];let s=1;for(;;){const r=o[s];if(!r||r[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a function.",o[0][2],o[o.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:o.length,node:new FunctionNode(o[0],r,t)};if(r[0]===n.TokenType.CloseParen)return{advance:s+1,node:new FunctionNode(o[0],r,t)};if(r[0]===n.TokenType.Comment||r[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(s));s+=n.advance,t.push(...n.nodes);continue}const i=consumeComponentValue(e,o.slice(s));s+=i.advance,t.push(i.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=exports.ComponentValueType.SimpleBlock;startToken;endToken;constructor(e,n,o){super(),this.startToken=e,this.endToken=n,this.value=o}normalize(){if(this.endToken[0]===n.TokenType.EOF){const e=n.mirrorVariant(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===n.TokenType.EOF?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.startToken)+e+n.stringify(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===exports.ComponentValueType.SimpleBlock)}}function consumeSimpleBlock(e,o){const t=n.mirrorVariantType(o[0][0]);if(!t)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const s=[];let r=1;for(;;){const i=o[r];if(!i||i[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a simple block.",o[0][2],o[o.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:o.length,node:new SimpleBlockNode(o[0],i,s)};if(i[0]===t)return{advance:r+1,node:new SimpleBlockNode(o[0],i,s)};if(i[0]===n.TokenType.Comment||i[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(r));r+=n.advance,s.push(...n.nodes);continue}const a=consumeComponentValue(e,o.slice(r));r+=a.advance,s.push(a.node)}}class WhitespaceNode{type=exports.ComponentValueType.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return n.stringify(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===exports.ComponentValueType.Whitespace)}}function consumeWhitespace(e,o){let t=0;for(;;){if(o[t][0]!==n.TokenType.Whitespace)return{advance:t,node:new WhitespaceNode(o.slice(0,t))};t++}}class CommentNode{type=exports.ComponentValueType.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return n.stringify(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===exports.ComponentValueType.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,o){const t=[];let s=0;for(;;)if(o[s][0]!==n.TokenType.Whitespace){if(o[s][0]!==n.TokenType.Comment)return{advance:s,nodes:t};t.push(new CommentNode(o[s])),s++}else{const e=consumeWhitespace(0,o.slice(s));s+=e.advance,t.push(e.node)}}class TokenNode{type=exports.ComponentValueType.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===exports.ComponentValueType.Token)}}function forEach(e,n,o){if(0===e.length)return;const t=walkerIndexGenerator(e);let s=0;for(;s<e.length;){const r=e[s];let i;if(o&&(i={...o}),!1===n({node:r,parent:{value:e},state:i},s))return!1;if(s=t(e,r,s),-1===s)break}}function walk(e,n,o){0!==e.length&&forEach(e,((o,t)=>!1!==n(o,t)&&((!("walk"in o.node)||!e.includes(o.node)||!1!==o.node.walk(n,o.state))&&void 0)),o)}exports.CommentNode=CommentNode,exports.ContainerNodeBaseClass=ContainerNodeBaseClass,exports.FunctionNode=FunctionNode,exports.SimpleBlockNode=SimpleBlockNode,exports.TokenNode=TokenNode,exports.WhitespaceNode=WhitespaceNode,exports.forEach=forEach,exports.gatherNodeAncestry=function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((o=>{n.set(o,e.parent)})):n.set(e.node,e.parent)})),n},exports.isCommentNode=function isCommentNode(e){return CommentNode.isCommentNode(e)},exports.isFunctionNode=function isFunctionNode(e){return FunctionNode.isFunctionNode(e)},exports.isSimpleBlockNode=function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)},exports.isTokenNode=function isTokenNode(e){return TokenNode.isTokenNode(e)},exports.isWhitespaceNode=function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)},exports.parseCommaSeparatedListOfComponentValues=function parseCommaSeparatedListOfComponentValues(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];if(0===e.length)return[];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const r=[];let i=[],a=0;for(;;){if(!s[a]||s[a][0]===n.TokenType.EOF)return i.length&&r.push(i),r;if(s[a][0]===n.TokenType.Comma){r.push(i),i=[],a++;continue}const o=consumeComponentValue(t,e.slice(a));i.push(o.node),a+=o.advance}},exports.parseComponentValue=function parseComponentValue(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const r=consumeComponentValue(t,s);if(s[Math.min(r.advance,s.length-1)][0]===n.TokenType.EOF)return r.node;t.onParseError(new n.ParseError("Expected EOF after parsing a component value.",e[0][2],e[e.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))},exports.parseListOfComponentValues=function parseListOfComponentValues(e,o){const t={onParseError:o?.onParseError??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const r=[];let i=0;for(;;){if(!s[i]||s[i][0]===n.TokenType.EOF)return r;const e=consumeComponentValue(t,s.slice(i));r.push(e.node),i+=e.advance}},exports.replaceComponentValues=function replaceComponentValues(e,n){for(let o=0;o<e.length;o++){walk(e[o],((e,o)=>{if("number"!=typeof o)return;const t=n(e.node);t&&e.parent.value.splice(o,1,t)}))}return e},exports.sourceIndices=function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const o=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(o)[1]]}const n=e.tokens(),o=n[0],t=n[n.length-1];return o&&t?[o[2],t[3]]:[0,0]},exports.stringify=function stringify(e){return e.map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")},exports.walk=walk,exports.walkerIndexGenerator=walkerIndexGenerator;
diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts
index 7df6e14c..9759d057 100644
--- a/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts
+++ b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts
@@ -1,18 +1,122 @@
+/**
+ * Parse CSS following the {@link https://drafts.csswg.org/css-syntax/#parsing | CSS Syntax Level 3 specification}.
+ *
+ * @remarks
+ * The tokenizing and parsing tools provided by CSS Tools are designed to be low level and generic with strong ties to their respective specifications.
+ *
+ * Any analysis or mutation of CSS source code should be done with the least powerful tool that can accomplish the task.
+ * For many applications it is sufficient to work with tokens.
+ * For others you might need to use {@link https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms | @csstools/css-parser-algorithms} or a more specific parser.
+ *
+ * The implementation of the AST nodes is kept lightweight and simple.
+ * Do not expect magic methods, instead assume that arrays and class instances behave like any other JavaScript.
+ *
+ * @example
+ * Parse a string of CSS into a component value:
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseComponentValue } from '@csstools/css-parser';
+ *
+ * const myCSS = `calc(1px * 2)`;
+ *
+ * const componentValue = parseComponentValue(tokenize({
+ * css: myCSS,
+ * }));
+ *
+ * console.log(componentValue);
+ * ```
+ *
+ * @example
+ * Use the right algorithm for the job.
+ *
+ * Algorithms that can parse larger structures (comma-separated lists, ...) can also parse smaller structures.
+ * However, the opposite is not true.
+ *
+ * If your context allows a list of component values, use {@link parseListOfComponentValues}:
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseListOfComponentValues } from '@csstools/css-parser';
+ *
+ * parseComponentValue(tokenize({ css: `10x 20px` }));
+ * ```
+ *
+ * If your context allows a comma-separated list of component values, use {@link parseCommaSeparatedListOfComponentValues}:
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser';
+ *
+ * parseCommaSeparatedListOfComponentValues(tokenize({ css: `20deg, 50%, 30%` }));
+ * ```
+ *
+ * @example
+ * Use the stateful walkers to keep track of the context of a given component value.
+ *
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseComponentValue, isSimpleBlockNode } from '@csstools/css-parser';
+ *
+ * const myCSS = `calc(1px * (5 / 2))`;
+ *
+ * const componentValue = parseComponentValue(tokenize({ css: myCSS }));
+ *
+ * let state = { inSimpleBlock: false };
+ * componentValue.walk((entry) => {
+ * if (isSimpleBlockNode(entry)) {
+ * entry.state.inSimpleBlock = true;
+ * return;
+ * }
+ *
+ * if (entry.state.inSimpleBlock) {
+ * console.log(entry.node.toString()); // `5`, ...
+ * }
+ * }, state);
+ * ```
+ *
+ * @packageDocumentation
+ */
+
import { CSSToken } from '@csstools/css-tokenizer';
import { ParseError } from '@csstools/css-tokenizer';
import { TokenFunction } from '@csstools/css-tokenizer';
export declare class CommentNode {
+ /**
+ * The node type, always `ComponentValueType.Comment`
+ */
type: ComponentValueType;
+ /**
+ * The comment token.
+ */
value: CSSToken;
constructor(value: CSSToken);
+ /**
+ * Retrieve the tokens for the current comment.
+ * This is the inverse of parsing from a list of tokens.
+ */
tokens(): Array<CSSToken>;
+ /**
+ * Convert the current comment to a string.
+ * This is not a true serialization.
+ * It is purely a concatenation of the string representation of the tokens.
+ */
toString(): string;
+ /**
+ * @internal
+ *
+ * A debug helper to convert the current object to a JSON representation.
+ * This is useful in asserts and to store large ASTs in files.
+ */
toJSON(): {
type: ComponentValueType;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isCommentNode(): this is CommentNode;
+ /**
+ * @internal
+ */
static isCommentNode(x: unknown): x is CommentNode;
}
@@ -57,9 +161,6 @@ export declare abstract class ContainerNodeBaseClass {
* The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration.
*
* @returns `false` if the iteration was halted, `undefined` otherwise.
- *
- * @template T - The type of the `state` object.
- * @template U - The type of the current node.
*/
forEach<T extends Record<string, unknown>, U extends ContainerNode>(this: U, cb: (entry: {
node: ComponentValue;
@@ -80,9 +181,6 @@ export declare abstract class ContainerNodeBaseClass {
* However changes are passed down to child node iterations.
*
* @returns `false` if the iteration was halted, `undefined` otherwise.
- *
- * @template T - The type of the `state` object.
- * @template U - The type of the current node.
*/
walk<T extends Record<string, unknown>, U extends ContainerNode>(this: U, cb: (entry: {
node: ComponentValue;
@@ -91,10 +189,42 @@ export declare abstract class ContainerNodeBaseClass {
}, index: number | string) => boolean | void, state?: T): false | undefined;
}
+/**
+ * Iterates over each item in a list of component values.
+ *
+ * @param cb - The callback function to execute for each item.
+ * The function receives an object containing the current node (`node`), its parent (`parent`),
+ * and an optional `state` object.
+ * A second parameter is the index of the current node.
+ * The function can return `false` to stop the iteration.
+ *
+ * @param state - An optional state object that can be used to pass additional information to the callback function.
+ * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration.
+ *
+ * @returns `false` if the iteration was halted, `undefined` otherwise.
+ */
+export declare function forEach<T extends Record<string, unknown>>(componentValues: Array<ComponentValue>, cb: (entry: {
+ node: ComponentValue;
+ parent: ContainerNode | {
+ value: Array<ComponentValue>;
+ };
+ state?: T;
+}, index: number | string) => boolean | void, state?: T): false | undefined;
+
+/**
+ * A function node.
+ *
+ * @example
+ * ```js
+ * const node = parseComponentValue(tokenize('calc(1 + 1)'));
+ *
+ * isFunctionNode(node); // true
+ * node.getName(); // 'calc'
+ * ```
+ */
export declare class FunctionNode extends ContainerNodeBaseClass {
/**
- * The node type
- * Always `ComponentValueType.Function`
+ * The node type, always `ComponentValueType.Function`
*/
type: ComponentValueType;
/**
@@ -108,43 +238,69 @@ export declare class FunctionNode extends ContainerNodeBaseClass {
endToken: CSSToken;
constructor(name: TokenFunction, endToken: CSSToken, value: Array<ComponentValue>);
/**
- * Retrieve the name of the current Function.
+ * Retrieve the name of the current function.
* This is the parsed and unescaped name of the function.
*/
getName(): string;
/**
- * Normalize the current Function:
- * - if the "endToken" is EOF, replace with a ")-token"
+ * Normalize the current function:
+ * 1. if the "endToken" is EOF, replace with a ")-token"
*/
normalize(): void;
/**
- * Retrieve the tokens for the current Function.
+ * Retrieve the tokens for the current function.
* This is the inverse of parsing from a list of tokens.
*/
tokens(): Array<CSSToken>;
/**
- * Convert the current Function to a string.
+ * Convert the current function to a string.
* This is not a true serialization.
* It is purely a concatenation of the string representation of the tokens.
*/
toString(): string;
/**
+ * @internal
+ *
* A debug helper to convert the current object to a JSON representation.
* This is useful in asserts and to store large ASTs in files.
*/
toJSON(): unknown;
/**
- * Check if the current object is a FunctionNode.
- * This is a type guard to help with type narrowing.
+ * @internal
*/
isFunctionNode(): this is FunctionNode;
/**
- * Check if the given object is a FunctionNode.
- * This is a type guard to help with type narrowing.
+ * @internal
*/
static isFunctionNode(x: unknown): x is FunctionNode;
}
+/**
+ * AST nodes do not have a `parent` property or method.
+ * This makes it harder to traverse the AST upwards.
+ * This function builds a `Map<Child, Parent>` that can be used to lookup ancestors of a node.
+ *
+ * @remarks
+ * There is no magic behind this or the map it returns.
+ * Mutating the AST will not update the map.
+ *
+ * Types are erased and any content of the map has type `unknown`.
+ * If someone knows a clever way to type this, please let us know.
+ *
+ * @example
+ * ```js
+ * const ancestry = gatherNodeAncestry(mediaQuery);
+ * mediaQuery.walk((entry) => {
+ * const node = entry.node; // directly exposed
+ * const parent = entry.parent; // directly exposed
+ * const grandParent: unknown = ancestry.get(parent); // lookup
+ *
+ * console.log('node', node);
+ * console.log('parent', parent);
+ * console.log('grandParent', grandParent);
+ * });
+ * ```
+ */
export declare function gatherNodeAncestry(node: {
walk(cb: (entry: {
node: Array<unknown> | unknown;
@@ -152,46 +308,145 @@ export declare function gatherNodeAncestry(node: {
}, index: number | string) => boolean | void): false | undefined;
}): Map<unknown, unknown>;
+/**
+ * Check if the current object is a `CommentNode`.
+ * This is a type guard.
+ */
export declare function isCommentNode(x: unknown): x is CommentNode;
+/**
+ * Check if the current object is a `FunctionNode`.
+ * This is a type guard.
+ */
export declare function isFunctionNode(x: unknown): x is FunctionNode;
+/**
+ * Check if the current object is a `SimpleBlockNode`.
+ * This is a type guard.
+ */
export declare function isSimpleBlockNode(x: unknown): x is SimpleBlockNode;
+/**
+ * Check if the current object is a `TokenNode`.
+ * This is a type guard.
+ */
export declare function isTokenNode(x: unknown): x is TokenNode;
+/**
+ * Check if the current object is a `WhitespaceNode`.
+ * This is a type guard.
+ */
export declare function isWhitespaceNode(x: unknown): x is WhitespaceNode;
+/**
+ * Parse a comma-separated list of component values.
+ *
+ * @example
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser';
+ *
+ * parseCommaSeparatedListOfComponentValues(tokenize({ css: `20deg, 50%, 30%` }));
+ * ```
+ */
export declare function parseCommaSeparatedListOfComponentValues(tokens: Array<CSSToken>, options?: {
onParseError?: (error: ParseError) => void;
}): ComponentValue[][];
+/**
+ * Parse a single component value.
+ *
+ * @example
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser';
+ *
+ * parseCommaSeparatedListOfComponentValues(tokenize({ css: `10px` }));
+ * parseCommaSeparatedListOfComponentValues(tokenize({ css: `calc((10px + 1x) * 4)` }));
+ * ```
+ */
export declare function parseComponentValue(tokens: Array<CSSToken>, options?: {
onParseError?: (error: ParseError) => void;
}): ComponentValue | undefined;
+/**
+ * Parse a list of component values.
+ *
+ * @example
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseListOfComponentValues } from '@csstools/css-parser';
+ *
+ * parseListOfComponentValues(tokenize({ css: `20deg 30%` }));
+ * ```
+ */
export declare function parseListOfComponentValues(tokens: Array<CSSToken>, options?: {
onParseError?: (error: ParseError) => void;
}): ComponentValue[];
+/**
+ * Replace specific component values in a list of component values.
+ * A helper for the most common and simplistic cases when mutating an AST.
+ */
export declare function replaceComponentValues(componentValuesList: Array<Array<ComponentValue>>, replaceWith: (componentValue: ComponentValue) => ComponentValue | void): ComponentValue[][];
+/**
+ * A simple block node.
+ *
+ * @example
+ * ```js
+ * const node = parseComponentValue(tokenize('[foo=bar]'));
+ *
+ * isSimpleBlockNode(node); // true
+ * node.startToken; // [TokenType.OpenSquare, '[', 0, 0, undefined]
+ * ```
+ */
export declare class SimpleBlockNode extends ContainerNodeBaseClass {
+ /**
+ * The node type, always `ComponentValueType.SimpleBlock`
+ */
type: ComponentValueType;
+ /**
+ * The token for the opening token of the block.
+ */
startToken: CSSToken;
+ /**
+ * The token for the closing token of the block.
+ * If the block is closed it will be the mirror variant of the `startToken`.
+ * If the block is unclosed, this will be an EOF token.
+ */
endToken: CSSToken;
constructor(startToken: CSSToken, endToken: CSSToken, value: Array<ComponentValue>);
/**
- * Normalize the current Simple Block:
- * - if the "endToken" is EOF, replace with the mirror token of the "startToken"
+ * Normalize the current simple block
+ * 1. if the "endToken" is EOF, replace with the mirror token of the "startToken"
*/
normalize(): void;
+ /**
+ * Retrieve the tokens for the current simple block.
+ * This is the inverse of parsing from a list of tokens.
+ */
tokens(): Array<CSSToken>;
+ /**
+ * Convert the current simple block to a string.
+ * This is not a true serialization.
+ * It is purely a concatenation of the string representation of the tokens.
+ */
toString(): string;
- indexOf(item: ComponentValue): number | string;
- at(index: number | string): ComponentValue | undefined;
+ /**
+ * @internal
+ *
+ * A debug helper to convert the current object to a JSON representation.
+ * This is useful in asserts and to store large ASTs in files.
+ */
toJSON(): unknown;
+ /**
+ * @internal
+ */
isSimpleBlockNode(): this is SimpleBlockNode;
+ /**
+ * @internal
+ */
static isSimpleBlockNode(x: unknown): x is SimpleBlockNode;
}
@@ -204,45 +459,148 @@ export declare function sourceIndices(x: {
tokens(): Array<CSSToken>;
}>): [number, number];
+/**
+ * Concatenate the string representation of a collection of component values.
+ * This is not a proper serializer that will handle escaping and whitespace.
+ * It only produces valid CSS for token lists that are also valid.
+ */
export declare function stringify(componentValueLists: Array<Array<ComponentValue>>): string;
export declare class TokenNode {
+ /**
+ * The node type, always `ComponentValueType.Token`
+ */
type: ComponentValueType;
+ /**
+ * The token.
+ */
value: CSSToken;
constructor(value: CSSToken);
+ /**
+ * This is the inverse of parsing from a list of tokens.
+ */
tokens(): Array<CSSToken>;
+ /**
+ * Convert the current token to a string.
+ * This is not a true serialization.
+ * It is purely the string representation of token.
+ */
toString(): string;
+ /**
+ * @internal
+ *
+ * A debug helper to convert the current object to a JSON representation.
+ * This is useful in asserts and to store large ASTs in files.
+ */
toJSON(): {
type: ComponentValueType;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isTokenNode(): this is TokenNode;
+ /**
+ * @internal
+ */
static isTokenNode(x: unknown): x is TokenNode;
}
/**
+ * Walks each item in a list of component values all of their children.
+ *
+ * @param cb - The callback function to execute for each item.
+ * The function receives an object containing the current node (`node`), its parent (`parent`),
+ * and an optional `state` object.
+ * A second parameter is the index of the current node.
+ * The function can return `false` to stop the iteration.
+ *
+ * @param state - An optional state object that can be used to pass additional information to the callback function.
+ * The state object is cloned for each iteration. This means that changes to the state object are not reflected in the next iteration.
+ * However changes are passed down to child node iterations.
+ *
+ * @returns `false` if the iteration was halted, `undefined` otherwise.
+ *
+ * @example
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ * import { parseListOfComponentValues, isSimpleBlockNode } from '@csstools/css-parser';
+ *
+ * const myCSS = `calc(1px * (5 / 2)) 10px`;
+ *
+ * const componentValues = parseListOfComponentValues(tokenize({ css: myCSS }));
+ *
+ * let state = { inSimpleBlock: false };
+ * walk(componentValues, (entry) => {
+ * if (isSimpleBlockNode(entry)) {
+ * entry.state.inSimpleBlock = true;
+ * return;
+ * }
+ *
+ * if (entry.state.inSimpleBlock) {
+ * console.log(entry.node.toString()); // `5`, ...
+ * }
+ * }, state);
+ * ```
+ */
+export declare function walk<T extends Record<string, unknown>>(componentValues: Array<ComponentValue>, cb: (entry: {
+ node: ComponentValue;
+ parent: ContainerNode | {
+ value: Array<ComponentValue>;
+ };
+ state?: T;
+}, index: number | string) => boolean | void, state?: T): false | undefined;
+
+/**
* Generate a function that finds the next element that should be visited when walking an AST.
* Rules :
- * - the previous iteration is used as a reference, so any checks are relative to the start of the current iteration.
- * - the next element always appears after the current index.
- * - the next element always exists in the list.
- * - replacing an element does not cause the replaced element to be visited.
- * - removing an element does not cause elements to be skipped.
- * - an element added later in the list will be visited.
+ * 1. the previous iteration is used as a reference, so any checks are relative to the start of the current iteration.
+ * 2. the next element always appears after the current index.
+ * 3. the next element always exists in the list.
+ * 4. replacing an element does not cause the replaced element to be visited.
+ * 5. removing an element does not cause elements to be skipped.
+ * 6. an element added later in the list will be visited.
*/
export declare function walkerIndexGenerator<T>(initialList: Array<T>): (list: Array<T>, child: T, index: number) => number;
export declare class WhitespaceNode {
+ /**
+ * The node type, always `ComponentValueType.WhiteSpace`
+ */
type: ComponentValueType;
+ /**
+ * The list of consecutive whitespace tokens.
+ */
value: Array<CSSToken>;
constructor(value: Array<CSSToken>);
+ /**
+ * Retrieve the tokens for the current whitespace.
+ * This is the inverse of parsing from a list of tokens.
+ */
tokens(): Array<CSSToken>;
+ /**
+ * Convert the current whitespace to a string.
+ * This is not a true serialization.
+ * It is purely a concatenation of the string representation of the tokens.
+ */
toString(): string;
+ /**
+ * @internal
+ *
+ * A debug helper to convert the current object to a JSON representation.
+ * This is useful in asserts and to store large ASTs in files.
+ */
toJSON(): {
type: ComponentValueType;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isWhitespaceNode(): this is WhitespaceNode;
+ /**
+ * @internal
+ */
static isWhitespaceNode(x: unknown): x is WhitespaceNode;
}
diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.mjs b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs
index 63b5ace3..0032d39c 100644
--- a/node_modules/@csstools/css-parser-algorithms/dist/index.mjs
+++ b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs
@@ -1 +1 @@
-import{TokenType as e,isToken as n,stringify as t,mirrorVariant as o,ParseError as s,mirrorVariantType as i}from"@csstools/css-tokenizer";var r;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<o);i++);return-1===s||s===o&&t===e[o]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(n,t){const o=t[0];if(o[0]===e.OpenParen||o[0]===e.OpenCurly||o[0]===e.OpenSquare){const e=consumeSimpleBlock(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Function){const e=consumeFunction(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Whitespace){const e=consumeWhitespace(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Comment){const e=consumeComment(n,t);return{advance:e.advance,node:e.node}}return{advance:1,node:new TokenNode(o)}}!function(e){e.Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token"}(r||(r={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o<this.value.length;){const s=this.value[o];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},o))return!1;if(o=t(this.value,s,o),-1===o)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,t)=>!1!==e(n,t)&&((!("walk"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=r.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){this.endToken[0]===e.EOF&&(this.endToken=[e.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===e.EOF?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n(e)?t(e):e.toString())).join("");return t(this.name)+e+t(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===r.Function)}}function consumeFunction(n,t){const o=[];let i=1;for(;;){const r=t[i];if(!r||r[0]===e.EOF)return n.onParseError(new s("Unexpected EOF while consuming a function.",t[0][2],t[t.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:t.length,node:new FunctionNode(t[0],r,o)};if(r[0]===e.CloseParen)return{advance:i+1,node:new FunctionNode(t[0],r,o)};if(r[0]===e.Comment||r[0]===e.Whitespace){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,o.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,o.push(a.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=r.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(this.endToken[0]===e.EOF){const e=o(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===e.EOF?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n(e)?t(e):e.toString())).join("");return t(this.startToken)+e+t(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===r.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=i(t[0][0]);if(!o)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const r=[];let a=1;for(;;){const i=t[a];if(!i||i[0]===e.EOF)return n.onParseError(new s("Unexpected EOF while consuming a simple block.",t[0][2],t[t.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:t.length,node:new SimpleBlockNode(t[0],i,r)};if(i[0]===o)return{advance:a+1,node:new SimpleBlockNode(t[0],i,r)};if(i[0]===e.Comment||i[0]===e.Whitespace){const e=consumeAllCommentsAndWhitespace(n,t.slice(a));a+=e.advance,r.push(...e.nodes);continue}const c=consumeComponentValue(n,t.slice(a));a+=c.advance,r.push(c.node)}}class WhitespaceNode{type=r.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return t(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===r.Whitespace)}}function consumeWhitespace(n,t){let o=0;for(;;){if(t[o][0]!==e.Whitespace)return{advance:o,node:new WhitespaceNode(t.slice(0,o))};o++}}class CommentNode{type=r.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return t(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===r.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(n,t){const o=[];let s=0;for(;;)if(t[s][0]!==e.Whitespace){if(t[s][0]!==e.Comment)return{advance:s,nodes:o};o.push(new CommentNode(t[s])),s++}else{const e=consumeWhitespace(0,t.slice(s));s+=e.advance,o.push(e.node)}}class TokenNode{type=r.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return t(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===r.Token)}}function parseComponentValue(n,t){const o={onParseError:t?.onParseError??(()=>{})},i=[...n];i[i.length-1][0]!==e.EOF&&i.push([e.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(o,i);if(i[Math.min(r.advance,i.length-1)][0]===e.EOF)return r.node;o.onParseError(new s("Expected EOF after parsing a component value.",n[0][2],n[n.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))}function parseListOfComponentValues(n,t){const o={onParseError:t?.onParseError??(()=>{})},s=[...n];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=0;for(;;){if(!s[r]||s[r][0]===e.EOF)return i;const n=consumeComponentValue(o,s.slice(r));i.push(n.node),r+=n.advance}}function parseCommaSeparatedListOfComponentValues(n,t){const o={onParseError:t?.onParseError??(()=>{})},s=[...n];if(0===n.length)return[];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=[],a=0;for(;;){if(!s[a]||s[a][0]===e.EOF)return r.length&&i.push(r),i;if(s[a][0]===e.Comma){i.push(r),r=[],a++;continue}const t=consumeComponentValue(o,n.slice(a));r.push(t.node),a+=t.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((t=>{n.set(t,e.parent)})):n.set(e.node,e.parent)})),n}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function replaceComponentValues(e,n){for(let t=0;t<e.length;t++){const o=e[t];for(let e=0;e<o.length;e++){const t=o[e];{const s=n(t);if(s){o.splice(e,1,s);continue}}(isSimpleBlockNode(t)||isFunctionNode(t))&&t.walk(((e,t)=>{if("number"!=typeof t)return;const o=e.node,s=n(o);s&&e.parent.value.splice(t,1,s)}))}}return e}function stringify(e){return e.map((e=>e.map((e=>t(...e.tokens()))).join(""))).join(",")}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,r as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walkerIndexGenerator};
+import{TokenType as e,isToken as n,stringify as t,mirrorVariant as o,ParseError as s,mirrorVariantType as i}from"@csstools/css-tokenizer";var r;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<o);i++);return-1===s||s===o&&t===e[o]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(n,t){const o=t[0];if(o[0]===e.OpenParen||o[0]===e.OpenCurly||o[0]===e.OpenSquare){const e=consumeSimpleBlock(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Function){const e=consumeFunction(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Whitespace){const e=consumeWhitespace(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Comment){const e=consumeComment(n,t);return{advance:e.advance,node:e.node}}return{advance:1,node:new TokenNode(o)}}!function(e){e.Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token"}(r||(r={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o<this.value.length;){const s=this.value[o];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},o))return!1;if(o=t(this.value,s,o),-1===o)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,t)=>!1!==e(n,t)&&((!("walk"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=r.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){this.endToken[0]===e.EOF&&(this.endToken=[e.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===e.EOF?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n(e)?t(e):e.toString())).join("");return t(this.name)+e+t(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===r.Function)}}function consumeFunction(n,t){const o=[];let i=1;for(;;){const r=t[i];if(!r||r[0]===e.EOF)return n.onParseError(new s("Unexpected EOF while consuming a function.",t[0][2],t[t.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:t.length,node:new FunctionNode(t[0],r,o)};if(r[0]===e.CloseParen)return{advance:i+1,node:new FunctionNode(t[0],r,o)};if(r[0]===e.Comment||r[0]===e.Whitespace){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,o.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,o.push(a.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=r.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(this.endToken[0]===e.EOF){const e=o(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===e.EOF?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>n(e)?t(e):e.toString())).join("");return t(this.startToken)+e+t(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===r.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=i(t[0][0]);if(!o)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const r=[];let a=1;for(;;){const i=t[a];if(!i||i[0]===e.EOF)return n.onParseError(new s("Unexpected EOF while consuming a simple block.",t[0][2],t[t.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:t.length,node:new SimpleBlockNode(t[0],i,r)};if(i[0]===o)return{advance:a+1,node:new SimpleBlockNode(t[0],i,r)};if(i[0]===e.Comment||i[0]===e.Whitespace){const e=consumeAllCommentsAndWhitespace(n,t.slice(a));a+=e.advance,r.push(...e.nodes);continue}const c=consumeComponentValue(n,t.slice(a));a+=c.advance,r.push(c.node)}}class WhitespaceNode{type=r.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return t(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===r.Whitespace)}}function consumeWhitespace(n,t){let o=0;for(;;){if(t[o][0]!==e.Whitespace)return{advance:o,node:new WhitespaceNode(t.slice(0,o))};o++}}class CommentNode{type=r.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return t(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===r.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(n,t){const o=[];let s=0;for(;;)if(t[s][0]!==e.Whitespace){if(t[s][0]!==e.Comment)return{advance:s,nodes:o};o.push(new CommentNode(t[s])),s++}else{const e=consumeWhitespace(0,t.slice(s));s+=e.advance,o.push(e.node)}}class TokenNode{type=r.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===r.Token)}}function parseComponentValue(n,t){const o={onParseError:t?.onParseError??(()=>{})},i=[...n];i[i.length-1][0]!==e.EOF&&i.push([e.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(o,i);if(i[Math.min(r.advance,i.length-1)][0]===e.EOF)return r.node;o.onParseError(new s("Expected EOF after parsing a component value.",n[0][2],n[n.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))}function parseListOfComponentValues(n,t){const o={onParseError:t?.onParseError??(()=>{})},s=[...n];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=0;for(;;){if(!s[r]||s[r][0]===e.EOF)return i;const n=consumeComponentValue(o,s.slice(r));i.push(n.node),r+=n.advance}}function parseCommaSeparatedListOfComponentValues(n,t){const o={onParseError:t?.onParseError??(()=>{})},s=[...n];if(0===n.length)return[];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=[],a=0;for(;;){if(!s[a]||s[a][0]===e.EOF)return r.length&&i.push(r),i;if(s[a][0]===e.Comma){i.push(r),r=[],a++;continue}const t=consumeComponentValue(o,n.slice(a));r.push(t.node),a+=t.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((t=>{n.set(t,e.parent)})):n.set(e.node,e.parent)})),n}function forEach(e,n,t){if(0===e.length)return;const o=walkerIndexGenerator(e);let s=0;for(;s<e.length;){const i=e[s];let r;if(t&&(r={...t}),!1===n({node:i,parent:{value:e},state:r},s))return!1;if(s=o(e,i,s),-1===s)break}}function walk(e,n,t){0!==e.length&&forEach(e,((t,o)=>!1!==n(t,o)&&((!("walk"in t.node)||!e.includes(t.node)||!1!==t.node.walk(n,t.state))&&void 0)),t)}function replaceComponentValues(e,n){for(let t=0;t<e.length;t++){walk(e[t],((e,t)=>{if("number"!=typeof t)return;const o=n(e.node);o&&e.parent.value.splice(t,1,o)}))}return e}function stringify(e){return e.map((e=>e.map((e=>t(...e.tokens()))).join(""))).join(",")}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,r as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,forEach,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walk,walkerIndexGenerator};
diff --git a/node_modules/@csstools/css-parser-algorithms/package.json b/node_modules/@csstools/css-parser-algorithms/package.json
index 560095a7..4494b60f 100644
--- a/node_modules/@csstools/css-parser-algorithms/package.json
+++ b/node_modules/@csstools/css-parser-algorithms/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/css-parser-algorithms",
"description": "Algorithms to help you parse CSS from an array of tokens.",
- "version": "2.4.0",
+ "version": "2.5.0",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,7 +48,7 @@
"dist"
],
"peerDependencies": {
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-tokenizer": "^2.2.3"
},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms#readme",
"repository": {
diff --git a/node_modules/@csstools/css-tokenizer/CHANGELOG.md b/node_modules/@csstools/css-tokenizer/CHANGELOG.md
index 00476bb4..c13a4a8b 100644
--- a/node_modules/@csstools/css-tokenizer/CHANGELOG.md
+++ b/node_modules/@csstools/css-tokenizer/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changes to CSS Tokenizer
+### 2.2.3
+
+_December 31, 2023_
+
+- Improve documentation.
+
### 2.2.2
_December 15, 2023_
@@ -12,12 +18,4 @@ _September 24, 2023_
- Small performance improvements
-### 2.2.0
-
-_July 24, 2023_
-
-- Add support for `unicode-range-token`
-- Add `signCharacter` to `DimensionToken`, `NumberToken` and `PercentageToken`
-- Correctly tokenize negative zero `-0`
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md)
diff --git a/node_modules/@csstools/css-tokenizer/README.md b/node_modules/@csstools/css-tokenizer/README.md
index 810e47c8..ece9e1ef 100644
--- a/node_modules/@csstools/css-tokenizer/README.md
+++ b/node_modules/@csstools/css-tokenizer/README.md
@@ -6,6 +6,10 @@
Implemented from : https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/
+## API
+
+[Read the API docs](./docs/css-tokenizer.md)
+
## Usage
Add [CSS Tokenizer] to your project:
@@ -17,7 +21,7 @@ npm install @csstools/css-tokenizer --save-dev
```js
import { tokenizer, TokenType } from '@csstools/css-tokenizer';
-const myCSS = `@media only screen and (min-width: 768rem) {
+const myCSS = `@media only screen and (min-width: 768rem) {
.foo {
content: 'Some content!' !important;
}
@@ -68,7 +72,6 @@ console.log(tokens);
#### `onParseError`
The tokenizer is forgiving and won't stop when a parse error is encountered.
-Parse errors also aren't tokens.
To receive parsing error information you can set a callback.
@@ -87,8 +90,8 @@ while (true) {
}
```
-Parser errors will try to inform you about the point in the tokenizer logic the error happened.
-This tells you the kind of error.
+Parser errors will try to inform you where in the tokenizer logic the error happened.
+This tells you what kind of error occurred.
## Goals and non-goals
diff --git a/node_modules/@csstools/css-tokenizer/dist/index.cjs b/node_modules/@csstools/css-tokenizer/dist/index.cjs
index 499ca5f8..a5f6acbe 100644
--- a/node_modules/@csstools/css-tokenizer/dist/index.cjs
+++ b/node_modules/@csstools/css-tokenizer/dist/index.cjs
@@ -1 +1 @@
-"use strict";class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,o,n,r){super(e),this.name="ParseError",this.sourceStart=o,this.sourceEnd=n,this.parserState=r}}class Reader{cursor=0;source="";codePointSource=[];representationIndices=[-1];length=0;representationStart=0;representationEnd=-1;constructor(e){this.source=e;{let o=-1,n="";for(n of e)o+=n.length,this.codePointSource.push(n.codePointAt(0)),this.representationIndices.push(o)}this.length=this.codePointSource.length}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor]}readCodePoint(e=1){const o=this.codePointSource[this.cursor];return void 0!==o&&(this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor],o)}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.representationIndices[this.cursor]}resetRepresentation(){this.representationStart=this.representationIndices[this.cursor]+1,this.representationEnd=-1}}var e,o,n;exports.TokenType=void 0,(e=exports.TokenType||(exports.TokenType={})).Comment="comment",e.AtKeyword="at-keyword-token",e.BadString="bad-string-token",e.BadURL="bad-url-token",e.CDC="CDC-token",e.CDO="CDO-token",e.Colon="colon-token",e.Comma="comma-token",e.Delim="delim-token",e.Dimension="dimension-token",e.EOF="EOF-token",e.Function="function-token",e.Hash="hash-token",e.Ident="ident-token",e.Number="number-token",e.Percentage="percentage-token",e.Semicolon="semicolon-token",e.String="string-token",e.URL="url-token",e.Whitespace="whitespace-token",e.OpenParen="(-token",e.CloseParen=")-token",e.OpenSquare="[-token",e.CloseSquare="]-token",e.OpenCurly="{-token",e.CloseCurly="}-token",e.UnicodeRange="unicode-range-token",exports.NumberType=void 0,(o=exports.NumberType||(exports.NumberType={})).Integer="integer",o.Number="number",function(e){e.Unrestricted="unrestricted",e.ID="id"}(n||(n={}));const r=Object.values(exports.TokenType);const t=39,i=42,s=8,c=13,a=9,u=58,d=44,p=64,P=127,S=33,C=12,T=46,l=62,k=45,f=31,m=69,h=101,E=123,v=40,x=91,y=60,g=10,I=11,O=95,U=1114111,w=0,D=35,R=37,A=43,L=34,N=65533,b=92,q=125,W=41,F=93,H=59,V=14,B=47,z=32,K=117,M=85,$=114,J=82,_=108,j=76,Q=63,G=48,X=70;function checkIfFourCodePointsWouldStartCDO(e){return e.codePointSource[e.cursor]===y&&e.codePointSource[e.cursor+1]===S&&e.codePointSource[e.cursor+2]===k&&e.codePointSource[e.cursor+3]===k}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return isDigitCodePoint(e)||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||e===O}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===k}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===b&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,o){return o.codePointSource[o.cursor]===k?o.codePointSource[o.cursor+1]===k||(!!isIdentStartCodePoint(o.codePointSource[o.cursor+1])||o.codePointSource[o.cursor+1]===b&&!isNewLine(o.codePointSource[o.cursor+2])):!!isIdentStartCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===A||e.codePointSource[e.cursor]===k?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===T&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===T?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===k&&e.codePointSource[e.cursor+1]===k&&e.codePointSource[e.cursor+2]===l}function consumeComment(e,o){for(o.advanceCodePoint(2);;){const n=o.readCodePoint();if(!1===n){e.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(n===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[exports.TokenType.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,o){const n=o.readCodePoint();if(!1===n)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",o.representationStart,o.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),N;if(isHexDigitCodePoint(n)){const e=[n];for(;void 0!==o.codePointSource[o.cursor]&&isHexDigitCodePoint(o.codePointSource[o.cursor])&&e.length<6;)e.push(o.codePointSource[o.cursor]),o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor])&&o.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?N:(r=t)>=55296&&r<=57343||t>U?N:t}var r;return n}function consumeIdentSequence(e,o){const n=[];for(;;)if(isIdentCodePoint(o.codePointSource[o.cursor]))n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(o))return n;o.advanceCodePoint(),n.push(consumeEscapedCodePoint(e,o))}}function consumeHashToken(e,o){if(o.advanceCodePoint(),void 0!==o.codePointSource[o.cursor]&&(isIdentCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o))){let r=n.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)&&(r=n.ID);const t=consumeIdentSequence(e,o);return[exports.TokenType.Hash,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...t),type:r}]}return[exports.TokenType.Delim,"#",o.representationStart,o.representationEnd,{value:"#"}]}function consumeNumber(e,o){let n=exports.NumberType.Integer;for(o.codePointSource[o.cursor]!==A&&o.codePointSource[o.cursor]!==k||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===T&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===h||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==k&&o.codePointSource[o.cursor+1]!==A||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return n;o.advanceCodePoint(3)}for(n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return n}function consumeNumericToken(e,o){let n;{const e=o.codePointSource[o.cursor];e===k?n="-":e===A&&(n="+")}const r=consumeNumber(0,o),t=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const i=consumeIdentSequence(e,o);return[exports.TokenType.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r,unit:String.fromCodePoint(...i)}]}return o.codePointSource[o.cursor]===R?(o.advanceCodePoint(),[exports.TokenType.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n}]):[exports.TokenType.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.codePointSource[e.cursor]);)e.advanceCodePoint();return[exports.TokenType.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}function consumeStringToken(e,o){let n="";const r=o.readCodePoint();for(;;){const t=o.readCodePoint();if(!1===t)return e.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isNewLine(t))return e.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[exports.TokenType.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(t===r)return[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(t!==b)n+=String.fromCodePoint(t);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}n+=String.fromCodePoint(consumeEscapedCodePoint(e,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,o){for(;;){if(void 0===o.codePointSource[o.cursor])return;if(o.codePointSource[o.cursor]===W)return void o.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(o)?(o.advanceCodePoint(),consumeEscapedCodePoint(e,o)):o.advanceCodePoint()}}function consumeUrlToken(e,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let n="";for(;;){if(void 0===o.codePointSource[o.cursor])return e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(o.codePointSource[o.cursor]===W)return o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):o.codePointSource[o.cursor]===W?(o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):(consumeBadURL(e,o),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===L||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===v||((r=o.codePointSource[o.cursor])===I||r===P||w<=r&&r<=s||V<=r&&r<=f))return consumeBadURL(e,o),e.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===b){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),n+=String.fromCodePoint(consumeEscapedCodePoint(e,o));continue}return consumeBadURL(e,o),e.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}n+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var r}function consumeIdentLikeToken(e,o){const n=consumeIdentSequence(e,o);if(o.codePointSource[o.cursor]!==v)return[exports.TokenType.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];if(checkIfCodePointsMatchURLIdent(n)){o.advanceCodePoint();let r=0;for(;;){const e=isWhitespace(o.codePointSource[o.cursor]),i=isWhitespace(o.codePointSource[o.cursor+1]);if(e&&i){r+=1,o.advanceCodePoint(1);continue}const s=e?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===L||s===t)return r>0&&o.unreadCodePoint(r),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];break}return consumeUrlToken(e,o)}return o.advanceCodePoint(),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==A||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(e,o){o.advanceCodePoint(2);const n=[],r=[];for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&o.codePointSource[o.cursor]===Q;)0===r.length&&r.push(...n),n.push(G),r.push(X),o.advanceCodePoint();if(!r.length&&o.codePointSource[o.cursor]===k&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...n),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:e,endOfRange:e}]}const t=parseInt(String.fromCodePoint(...n),16),i=parseInt(String.fromCodePoint(...r),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:t,endOfRange:i}]}function tokenizer(e,o){const n=e.css.valueOf(),r=e.unicodeRangesAllowed??!1,i=new Reader(n),s={onParseError:o?.onParseError??(()=>{})};return{nextToken:function nextToken(){i.resetRepresentation();const e=i.codePointSource[i.cursor];if(void 0===e)return[exports.TokenType.EOF,"",-1,-1,void 0];if(e===B&&checkIfTwoCodePointsStartAComment(i))return consumeComment(s,i);if(r&&(e===K||e===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(i))return consumeUnicodeRangeToken(0,i);if(isIdentStartCodePoint(e))return consumeIdentLikeToken(s,i);if(isDigitCodePoint(e))return consumeNumericToken(s,i);switch(e){case d:return i.advanceCodePoint(),[exports.TokenType.Comma,",",i.representationStart,i.representationEnd,void 0];case u:return i.advanceCodePoint(),[exports.TokenType.Colon,":",i.representationStart,i.representationEnd,void 0];case H:return i.advanceCodePoint(),[exports.TokenType.Semicolon,";",i.representationStart,i.representationEnd,void 0];case v:return i.advanceCodePoint(),[exports.TokenType.OpenParen,"(",i.representationStart,i.representationEnd,void 0];case W:return i.advanceCodePoint(),[exports.TokenType.CloseParen,")",i.representationStart,i.representationEnd,void 0];case x:return i.advanceCodePoint(),[exports.TokenType.OpenSquare,"[",i.representationStart,i.representationEnd,void 0];case F:return i.advanceCodePoint(),[exports.TokenType.CloseSquare,"]",i.representationStart,i.representationEnd,void 0];case E:return i.advanceCodePoint(),[exports.TokenType.OpenCurly,"{",i.representationStart,i.representationEnd,void 0];case q:return i.advanceCodePoint(),[exports.TokenType.CloseCurly,"}",i.representationStart,i.representationEnd,void 0];case t:case L:return consumeStringToken(s,i);case D:return consumeHashToken(s,i);case A:case T:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]);case g:case c:case C:case a:case z:return consumeWhiteSpace(i);case k:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):checkIfThreeCodePointsWouldStartCDC(i)?(i.advanceCodePoint(3),[exports.TokenType.CDC,"--\x3e",i.representationStart,i.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,"-",i.representationStart,i.representationEnd,{value:"-"}]);case y:return checkIfFourCodePointsWouldStartCDO(i)?(i.advanceCodePoint(4),[exports.TokenType.CDO,"\x3c!--",i.representationStart,i.representationEnd,void 0]):(i.advanceCodePoint(),[exports.TokenType.Delim,"<",i.representationStart,i.representationEnd,{value:"<"}]);case p:if(i.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)){const e=consumeIdentSequence(s,i);return[exports.TokenType.AtKeyword,i.source.slice(i.representationStart,i.representationEnd+1),i.representationStart,i.representationEnd,{value:String.fromCodePoint(...e)}]}return[exports.TokenType.Delim,"@",i.representationStart,i.representationEnd,{value:"@"}];case b:return checkIfTwoCodePointsAreAValidEscape(i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),s.onParseError(new ParseError('Invalid escape sequence after "\\"',i.representationStart,i.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.Delim,"\\",i.representationStart,i.representationEnd,{value:"\\"}])}return i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]},endOfFile:function endOfFile(){return void 0===i.codePointSource[i.cursor]}}}exports.ParseError=ParseError,exports.Reader=Reader,exports.cloneTokens=function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))},exports.isToken=function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!r.includes(e[0])&&("string"==typeof e[1]&&("number"==typeof e[2]&&"number"==typeof e[3]))))},exports.mirrorVariant=function mirrorVariant(e){switch(e[0]){case exports.TokenType.OpenParen:return[exports.TokenType.CloseParen,")",-1,-1,void 0];case exports.TokenType.CloseParen:return[exports.TokenType.OpenParen,"(",-1,-1,void 0];case exports.TokenType.OpenCurly:return[exports.TokenType.CloseCurly,"}",-1,-1,void 0];case exports.TokenType.CloseCurly:return[exports.TokenType.OpenCurly,"{",-1,-1,void 0];case exports.TokenType.OpenSquare:return[exports.TokenType.CloseSquare,"]",-1,-1,void 0];case exports.TokenType.CloseSquare:return[exports.TokenType.OpenSquare,"[",-1,-1,void 0];default:return null}},exports.mirrorVariantType=function mirrorVariantType(e){switch(e){case exports.TokenType.OpenParen:return exports.TokenType.CloseParen;case exports.TokenType.CloseParen:return exports.TokenType.OpenParen;case exports.TokenType.OpenCurly:return exports.TokenType.CloseCurly;case exports.TokenType.CloseCurly:return exports.TokenType.OpenCurly;case exports.TokenType.OpenSquare:return exports.TokenType.CloseSquare;case exports.TokenType.CloseSquare:return exports.TokenType.OpenSquare;default:return null}},exports.mutateIdent=function mutateIdent(e,o){let n="";const r=[];{let e="";for(e of o)r.push(e.codePointAt(0))}let t=0;r[0]===k&&r[1]===k?(n="--",t=2):r[0]===k&&r[1]?(n="-",t=2,isIdentStartCodePoint(r[1])?n+=o[1]:n+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(n=o[0],t=1):(n=`\\${r[0].toString(16)} `,t=1);for(let e=t;e<r.length;e++)isIdentCodePoint(r[e])?n+=o[e]:n+=`\\${r[e].toString(16)} `;e[1]=n,e[4].value=o},exports.stringify=function stringify(...e){let o="";for(let n=0;n<e.length;n++)o+=e[n][1];return o},exports.tokenize=function tokenize(e,o){const n=tokenizer(e,o),r=[];{for(;!n.endOfFile();){const e=n.nextToken();e&&r.push(e)}const e=n.nextToken();e&&r.push(e)}return r},exports.tokenizer=tokenizer;
+"use strict";class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,o,n,r){super(e),this.name="ParseError",this.sourceStart=o,this.sourceEnd=n,this.parserState=r}}class Reader{cursor=0;source="";codePointSource=[];representationIndices=[-1];length=0;representationStart=0;representationEnd=-1;constructor(e){this.source=e;{let o=-1,n="";for(n of e)o+=n.length,this.codePointSource.push(n.codePointAt(0)),this.representationIndices.push(o)}this.length=this.codePointSource.length}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor]}readCodePoint(e=1){const o=this.codePointSource[this.cursor];return void 0!==o&&(this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor],o)}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.representationIndices[this.cursor]}resetRepresentation(){this.representationStart=this.representationIndices[this.cursor]+1,this.representationEnd=-1}}var e,o,n;exports.TokenType=void 0,(e=exports.TokenType||(exports.TokenType={})).Comment="comment",e.AtKeyword="at-keyword-token",e.BadString="bad-string-token",e.BadURL="bad-url-token",e.CDC="CDC-token",e.CDO="CDO-token",e.Colon="colon-token",e.Comma="comma-token",e.Delim="delim-token",e.Dimension="dimension-token",e.EOF="EOF-token",e.Function="function-token",e.Hash="hash-token",e.Ident="ident-token",e.Number="number-token",e.Percentage="percentage-token",e.Semicolon="semicolon-token",e.String="string-token",e.URL="url-token",e.Whitespace="whitespace-token",e.OpenParen="(-token",e.CloseParen=")-token",e.OpenSquare="[-token",e.CloseSquare="]-token",e.OpenCurly="{-token",e.CloseCurly="}-token",e.UnicodeRange="unicode-range-token",exports.NumberType=void 0,(o=exports.NumberType||(exports.NumberType={})).Integer="integer",o.Number="number",function(e){e.Unrestricted="unrestricted",e.ID="id"}(n||(n={}));const r=Object.values(exports.TokenType);const t=39,i=42,s=8,c=13,a=9,u=58,d=44,p=64,P=127,S=33,C=12,T=46,l=62,k=45,f=31,m=69,h=101,E=123,v=40,x=91,y=60,g=10,I=11,O=95,U=1114111,w=0,D=35,R=37,A=43,L=34,N=65533,b=92,q=125,W=41,F=93,H=59,V=14,B=47,z=32,K=117,M=85,$=114,J=82,_=108,j=76,Q=63,G=48,X=70;function checkIfFourCodePointsWouldStartCDO(e){return e.codePointSource[e.cursor]===y&&e.codePointSource[e.cursor+1]===S&&e.codePointSource[e.cursor+2]===k&&e.codePointSource[e.cursor+3]===k}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return isDigitCodePoint(e)||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||e===O}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===k}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===b&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,o){return o.codePointSource[o.cursor]===k?o.codePointSource[o.cursor+1]===k||(!!isIdentStartCodePoint(o.codePointSource[o.cursor+1])||o.codePointSource[o.cursor+1]===b&&!isNewLine(o.codePointSource[o.cursor+2])):!!isIdentStartCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===A||e.codePointSource[e.cursor]===k?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===T&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===T?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===k&&e.codePointSource[e.cursor+1]===k&&e.codePointSource[e.cursor+2]===l}function consumeComment(e,o){for(o.advanceCodePoint(2);;){const n=o.readCodePoint();if(!1===n){e.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(n===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[exports.TokenType.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,o){const n=o.readCodePoint();if(!1===n)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",o.representationStart,o.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),N;if(isHexDigitCodePoint(n)){const e=[n];for(;void 0!==o.codePointSource[o.cursor]&&isHexDigitCodePoint(o.codePointSource[o.cursor])&&e.length<6;)e.push(o.codePointSource[o.cursor]),o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor])&&o.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?N:(r=t)>=55296&&r<=57343||t>U?N:t}var r;return n}function consumeIdentSequence(e,o){const n=[];for(;;)if(isIdentCodePoint(o.codePointSource[o.cursor]))n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(o))return n;o.advanceCodePoint(),n.push(consumeEscapedCodePoint(e,o))}}function consumeHashToken(e,o){if(o.advanceCodePoint(),void 0!==o.codePointSource[o.cursor]&&(isIdentCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o))){let r=n.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)&&(r=n.ID);const t=consumeIdentSequence(e,o);return[exports.TokenType.Hash,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...t),type:r}]}return[exports.TokenType.Delim,"#",o.representationStart,o.representationEnd,{value:"#"}]}function consumeNumber(e,o){let n=exports.NumberType.Integer;for(o.codePointSource[o.cursor]!==A&&o.codePointSource[o.cursor]!==k||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===T&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===h||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==k&&o.codePointSource[o.cursor+1]!==A||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return n;o.advanceCodePoint(3)}for(n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return n}function consumeNumericToken(e,o){let n;{const e=o.codePointSource[o.cursor];e===k?n="-":e===A&&(n="+")}const r=consumeNumber(0,o),t=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const i=consumeIdentSequence(e,o);return[exports.TokenType.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r,unit:String.fromCodePoint(...i)}]}return o.codePointSource[o.cursor]===R?(o.advanceCodePoint(),[exports.TokenType.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n}]):[exports.TokenType.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.codePointSource[e.cursor]);)e.advanceCodePoint();return[exports.TokenType.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}function consumeStringToken(e,o){let n="";const r=o.readCodePoint();for(;;){const t=o.readCodePoint();if(!1===t)return e.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isNewLine(t))return e.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[exports.TokenType.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(t===r)return[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(t!==b)n+=String.fromCodePoint(t);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}n+=String.fromCodePoint(consumeEscapedCodePoint(e,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,o){for(;;){if(void 0===o.codePointSource[o.cursor])return;if(o.codePointSource[o.cursor]===W)return void o.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(o)?(o.advanceCodePoint(),consumeEscapedCodePoint(e,o)):o.advanceCodePoint()}}function consumeUrlToken(e,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let n="";for(;;){if(void 0===o.codePointSource[o.cursor])return e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(o.codePointSource[o.cursor]===W)return o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):o.codePointSource[o.cursor]===W?(o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):(consumeBadURL(e,o),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===L||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===v||((r=o.codePointSource[o.cursor])===I||r===P||w<=r&&r<=s||V<=r&&r<=f))return consumeBadURL(e,o),e.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===b){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),n+=String.fromCodePoint(consumeEscapedCodePoint(e,o));continue}return consumeBadURL(e,o),e.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}n+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var r}function consumeIdentLikeToken(e,o){const n=consumeIdentSequence(e,o);if(o.codePointSource[o.cursor]!==v)return[exports.TokenType.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];if(checkIfCodePointsMatchURLIdent(n)){o.advanceCodePoint();let r=0;for(;;){const e=isWhitespace(o.codePointSource[o.cursor]),i=isWhitespace(o.codePointSource[o.cursor+1]);if(e&&i){r+=1,o.advanceCodePoint(1);continue}const s=e?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===L||s===t)return r>0&&o.unreadCodePoint(r),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];break}return consumeUrlToken(e,o)}return o.advanceCodePoint(),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==A||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(e,o){o.advanceCodePoint(2);const n=[],r=[];for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&o.codePointSource[o.cursor]===Q;)0===r.length&&r.push(...n),n.push(G),r.push(X),o.advanceCodePoint();if(!r.length&&o.codePointSource[o.cursor]===k&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...n),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:e,endOfRange:e}]}const t=parseInt(String.fromCodePoint(...n),16),i=parseInt(String.fromCodePoint(...r),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:t,endOfRange:i}]}function tokenizer(e,o){const n=e.css.valueOf(),r=e.unicodeRangesAllowed??!1,i=new Reader(n),s={onParseError:o?.onParseError??noop};return{nextToken:function nextToken(){i.resetRepresentation();const e=i.codePointSource[i.cursor];if(void 0===e)return[exports.TokenType.EOF,"",-1,-1,void 0];if(e===B&&checkIfTwoCodePointsStartAComment(i))return consumeComment(s,i);if(r&&(e===K||e===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(i))return consumeUnicodeRangeToken(0,i);if(isIdentStartCodePoint(e))return consumeIdentLikeToken(s,i);if(isDigitCodePoint(e))return consumeNumericToken(s,i);switch(e){case d:return i.advanceCodePoint(),[exports.TokenType.Comma,",",i.representationStart,i.representationEnd,void 0];case u:return i.advanceCodePoint(),[exports.TokenType.Colon,":",i.representationStart,i.representationEnd,void 0];case H:return i.advanceCodePoint(),[exports.TokenType.Semicolon,";",i.representationStart,i.representationEnd,void 0];case v:return i.advanceCodePoint(),[exports.TokenType.OpenParen,"(",i.representationStart,i.representationEnd,void 0];case W:return i.advanceCodePoint(),[exports.TokenType.CloseParen,")",i.representationStart,i.representationEnd,void 0];case x:return i.advanceCodePoint(),[exports.TokenType.OpenSquare,"[",i.representationStart,i.representationEnd,void 0];case F:return i.advanceCodePoint(),[exports.TokenType.CloseSquare,"]",i.representationStart,i.representationEnd,void 0];case E:return i.advanceCodePoint(),[exports.TokenType.OpenCurly,"{",i.representationStart,i.representationEnd,void 0];case q:return i.advanceCodePoint(),[exports.TokenType.CloseCurly,"}",i.representationStart,i.representationEnd,void 0];case t:case L:return consumeStringToken(s,i);case D:return consumeHashToken(s,i);case A:case T:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]);case g:case c:case C:case a:case z:return consumeWhiteSpace(i);case k:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):checkIfThreeCodePointsWouldStartCDC(i)?(i.advanceCodePoint(3),[exports.TokenType.CDC,"--\x3e",i.representationStart,i.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,"-",i.representationStart,i.representationEnd,{value:"-"}]);case y:return checkIfFourCodePointsWouldStartCDO(i)?(i.advanceCodePoint(4),[exports.TokenType.CDO,"\x3c!--",i.representationStart,i.representationEnd,void 0]):(i.advanceCodePoint(),[exports.TokenType.Delim,"<",i.representationStart,i.representationEnd,{value:"<"}]);case p:if(i.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)){const e=consumeIdentSequence(s,i);return[exports.TokenType.AtKeyword,i.source.slice(i.representationStart,i.representationEnd+1),i.representationStart,i.representationEnd,{value:String.fromCodePoint(...e)}]}return[exports.TokenType.Delim,"@",i.representationStart,i.representationEnd,{value:"@"}];case b:return checkIfTwoCodePointsAreAValidEscape(i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),s.onParseError(new ParseError('Invalid escape sequence after "\\"',i.representationStart,i.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.Delim,"\\",i.representationStart,i.representationEnd,{value:"\\"}])}return i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]},endOfFile:function endOfFile(){return void 0===i.codePointSource[i.cursor]}}}function noop(){}exports.ParseError=ParseError,exports.Reader=Reader,exports.cloneTokens=function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))},exports.isToken=function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!r.includes(e[0])&&("string"==typeof e[1]&&("number"==typeof e[2]&&"number"==typeof e[3]))))},exports.mirrorVariant=function mirrorVariant(e){switch(e[0]){case exports.TokenType.OpenParen:return[exports.TokenType.CloseParen,")",-1,-1,void 0];case exports.TokenType.CloseParen:return[exports.TokenType.OpenParen,"(",-1,-1,void 0];case exports.TokenType.OpenCurly:return[exports.TokenType.CloseCurly,"}",-1,-1,void 0];case exports.TokenType.CloseCurly:return[exports.TokenType.OpenCurly,"{",-1,-1,void 0];case exports.TokenType.OpenSquare:return[exports.TokenType.CloseSquare,"]",-1,-1,void 0];case exports.TokenType.CloseSquare:return[exports.TokenType.OpenSquare,"[",-1,-1,void 0];default:return null}},exports.mirrorVariantType=function mirrorVariantType(e){switch(e){case exports.TokenType.OpenParen:return exports.TokenType.CloseParen;case exports.TokenType.CloseParen:return exports.TokenType.OpenParen;case exports.TokenType.OpenCurly:return exports.TokenType.CloseCurly;case exports.TokenType.CloseCurly:return exports.TokenType.OpenCurly;case exports.TokenType.OpenSquare:return exports.TokenType.CloseSquare;case exports.TokenType.CloseSquare:return exports.TokenType.OpenSquare;default:return null}},exports.mutateIdent=function mutateIdent(e,o){let n="";const r=[];for(const e of o)r.push(e.codePointAt(0));let t=0;r[0]===k&&r[1]===k?(n="--",t=2):r[0]===k&&r[1]?(n="-",t=2,isIdentStartCodePoint(r[1])?n+=o[1]:n+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(n=o[0],t=1):(n=`\\${r[0].toString(16)} `,t=1);for(let e=t;e<r.length;e++)isIdentCodePoint(r[e])?n+=o[e]:n+=`\\${r[e].toString(16)} `;e[1]=n,e[4].value=o},exports.stringify=function stringify(...e){let o="";for(let n=0;n<e.length;n++)o+=e[n][1];return o},exports.tokenize=function tokenize(e,o){const n=tokenizer(e,o),r=[];{for(;!n.endOfFile();){const e=n.nextToken();e&&r.push(e)}const e=n.nextToken();e&&r.push(e)}return r},exports.tokenizer=tokenizer;
diff --git a/node_modules/@csstools/css-tokenizer/dist/index.d.ts b/node_modules/@csstools/css-tokenizer/dist/index.d.ts
index cd375797..e503c818 100644
--- a/node_modules/@csstools/css-tokenizer/dist/index.d.ts
+++ b/node_modules/@csstools/css-tokenizer/dist/index.d.ts
@@ -1,5 +1,44 @@
+/**
+ * Tokenize CSS following the {@link https://drafts.csswg.org/css-syntax/#tokenization | CSS Syntax Level 3 specification}.
+ *
+ * @remarks
+ * The tokenizing and parsing tools provided by CSS Tools are designed to be low level and generic with strong ties to their respective specifications.
+ *
+ * Any analysis or mutation of CSS source code should be done with the least powerful tool that can accomplish the task.
+ * For many applications it is sufficient to work with tokens.
+ * For others you might need to use {@link https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms | @csstools/css-parser-algorithms} or a more specific parser.
+ *
+ * @example
+ * Tokenize a string of CSS into an array of tokens:
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ *
+ * const myCSS = `@media only screen and (min-width: 768rem) {
+ * .foo {
+ * content: 'Some content!' !important;
+ * }
+ * }
+ * `;
+ *
+ * const tokens = tokenize({
+ * css: myCSS,
+ * });
+ *
+ * console.log(tokens);
+ * ```
+ *
+ * @packageDocumentation
+ */
+
+/**
+ * Deep clone a list of tokens.
+ * Useful for mutations without altering the original list.
+ */
export declare function cloneTokens(tokens: Array<CSSToken>): Array<CSSToken>;
+/**
+ * @internal
+ */
export declare type CodePointReader = {
representationStart: number;
representationEnd: number;
@@ -13,26 +52,84 @@ export declare type CodePointReader = {
resetRepresentation(): void;
};
+/**
+ * The union of all possible CSS tokens
+ */
export declare type CSSToken = TokenAtKeyword | TokenBadString | TokenBadURL | TokenCDC | TokenCDO | TokenColon | TokenComma | TokenComment | TokenDelim | TokenDimension | TokenEOF | TokenFunction | TokenHash | TokenIdent | TokenNumber | TokenPercentage | TokenSemicolon | TokenString | TokenURL | TokenWhitespace | TokenOpenParen | TokenCloseParen | TokenOpenSquare | TokenCloseSquare | TokenOpenCurly | TokenCloseCurly | TokenUnicodeRange;
+/**
+ * The type of hash token
+ */
export declare enum HashType {
+ /**
+ * The hash token did not start with an ident sequence (e.g. `#-2`)
+ */
Unrestricted = "unrestricted",
+ /**
+ * The hash token started with an ident sequence (e.g. `#foo`)
+ * Only hash tokens with the "id" type are valid ID selectors.
+ */
ID = "id"
}
+/**
+ * Assert that a given value has the general structure of a CSS token:
+ * 1. is an array.
+ * 2. has at least four items.
+ * 3. has a known token type.
+ * 4. has a string representation.
+ * 5. has a start position.
+ * 6. has an end position.
+ */
export declare function isToken(x: any): x is CSSToken;
+/**
+ * Get the mirror variant of a given token
+ *
+ * @example
+ *
+ * ```js
+ * const input = [TokenType.OpenParen, '(', 0, 1, undefined];
+ * const output = mirrorVariant(input);
+ *
+ * console.log(output); // [TokenType.CloseParen, ')', -1, -1, undefined]
+ * ```
+ */
export declare function mirrorVariant(token: CSSToken): CSSToken | null;
+/**
+ * Get the mirror variant type of a given token type
+ *
+ * @example
+ *
+ * ```js
+ * const input = TokenType.OpenParen;
+ * const output = mirrorVariantType(input);
+ *
+ * console.log(output); // TokenType.CloseParen
+ * ```
+ */
export declare function mirrorVariantType(type: TokenType): TokenType | null;
+/**
+ * Set the ident value and update the string representation.
+ * This handles escaping.
+ */
export declare function mutateIdent(ident: TokenIdent, newValue: string): void;
+/**
+ * The type of number token
+ * Either `integer` or `number`
+ */
export declare enum NumberType {
Integer = "integer",
Number = "number"
}
+/**
+ * The CSS Tokenizer is forgiving and will never throw on invalid input.
+ * Any errors are reported through the `onParseError` callback.
+ */
export declare class ParseError extends Error {
/** The index of the start character of the current token. */
sourceStart: number;
@@ -43,6 +140,9 @@ export declare class ParseError extends Error {
constructor(message: string, sourceStart: number, sourceEnd: number, parserState: Array<string>);
}
+/**
+ * @internal
+ */
export declare class Reader implements CodePointReader {
cursor: number;
source: string;
@@ -58,71 +158,161 @@ export declare class Reader implements CodePointReader {
resetRepresentation(): void;
}
+/**
+ * Concatenate the string representation of a list of tokens.
+ * This is not a proper serializer that will handle escaping and whitespace.
+ * It only produces valid CSS for a token list that is also valid.
+ */
export declare function stringify(...tokens: Array<CSSToken>): string;
-export declare type Token<T extends TokenType, U> = [
-/** The type of token */
-T,
-/** The token representation */
-string,
-/** Start position of representation */
-number,
-/** End position of representation */
-number,
-/** Extra data */
-U
-];
-
-export declare type TokenAtKeyword = Token<TokenType.AtKeyword, {
+/**
+ * The CSS Token interface
+ *
+ * @remarks
+ * CSS Tokens are fully typed and have a strict structure.
+ * This makes it easier to iterate and analyze a token stream.
+ *
+ * The string representation and the parsed value are stored separately for many token types.
+ * It is always assumed that the string representation will be used when stringifying, while the parsed value should be used when analyzing tokens.
+ */
+export declare interface Token<T extends TokenType, U> extends Array<T | string | number | U> {
+ /**
+ * The type of token
+ */
+ 0: T;
+ /**
+ * The token representation
+ *
+ * @remarks
+ * This field will be used when stringifying the token.
+ * Any stored value is assumed to be valid CSS.
+ *
+ * You should never use this field when analyzing the token when there is a parsed value available.
+ * But you must store mutated values here.
+ */
+ 1: string;
+ /**
+ * Start position of representation
+ */
+ 2: number;
+ /**
+ * End position of representation
+ */
+ 3: number;
+ /**
+ * Extra data
+ *
+ * @remarks
+ * This holds the parsed value of each token.
+ * These values are unescaped, unquoted, converted to numbers, etc.
+ *
+ * You should always use this field when analyzing the token.
+ * But you must not assume that mutating only this field will have any effect.
+ */
+ 4: U;
+}
+
+export declare interface TokenAtKeyword extends Token<TokenType.AtKeyword, {
+ /**
+ * The unescaped at-keyword name without the leading `@`.
+ */
value: string;
-}>;
+}> {
+}
-export declare type TokenBadString = Token<TokenType.BadString, undefined>;
+export declare interface TokenBadString extends Token<TokenType.BadString, undefined> {
+}
-export declare type TokenBadURL = Token<TokenType.BadURL, undefined>;
+export declare interface TokenBadURL extends Token<TokenType.BadURL, undefined> {
+}
-export declare type TokenCDC = Token<TokenType.CDC, undefined>;
+export declare interface TokenCDC extends Token<TokenType.CDC, undefined> {
+}
-export declare type TokenCDO = Token<TokenType.CDO, undefined>;
+export declare interface TokenCDO extends Token<TokenType.CDO, undefined> {
+}
-export declare type TokenCloseCurly = Token<TokenType.CloseCurly, undefined>;
+export declare interface TokenCloseCurly extends Token<TokenType.CloseCurly, undefined> {
+}
-export declare type TokenCloseParen = Token<TokenType.CloseParen, undefined>;
+export declare interface TokenCloseParen extends Token<TokenType.CloseParen, undefined> {
+}
-export declare type TokenCloseSquare = Token<TokenType.CloseSquare, undefined>;
+export declare interface TokenCloseSquare extends Token<TokenType.CloseSquare, undefined> {
+}
-export declare type TokenColon = Token<TokenType.Colon, undefined>;
+export declare interface TokenColon extends Token<TokenType.Colon, undefined> {
+}
-export declare type TokenComma = Token<TokenType.Comma, undefined>;
+export declare interface TokenComma extends Token<TokenType.Comma, undefined> {
+}
-export declare type TokenComment = Token<TokenType.Comment, undefined>;
+export declare interface TokenComment extends Token<TokenType.Comment, undefined> {
+}
-export declare type TokenDelim = Token<TokenType.Delim, {
+export declare interface TokenDelim extends Token<TokenType.Delim, {
+ /**
+ * The delim character.
+ */
value: string;
-}>;
+}> {
+}
-export declare type TokenDimension = Token<TokenType.Dimension, {
+export declare interface TokenDimension extends Token<TokenType.Dimension, {
+ /**
+ * The numeric value.
+ */
value: number;
- signCharacter?: '+' | '-';
+ /**
+ * The unescaped unit name.
+ */
unit: string;
+ /**
+ * `integer` or `number`
+ */
type: NumberType;
-}>;
+ /**
+ * The sign character as it appeared in the source.
+ * This is only useful if you need to determine if a value was written as "2px" or "+2px".
+ */
+ signCharacter?: '+' | '-';
+}> {
+}
-export declare type TokenEOF = Token<TokenType.EOF, undefined>;
+export declare interface TokenEOF extends Token<TokenType.EOF, undefined> {
+}
-export declare type TokenFunction = Token<TokenType.Function, {
+export declare interface TokenFunction extends Token<TokenType.Function, {
+ /**
+ * The unescaped function name without the trailing `(`.
+ */
value: string;
-}>;
+}> {
+}
-export declare type TokenHash = Token<TokenType.Hash, {
+export declare interface TokenHash extends Token<TokenType.Hash, {
+ /**
+ * The unescaped hash value without the leading `#`.
+ */
value: string;
+ /**
+ * The hash type.
+ */
type: HashType;
-}>;
+}> {
+}
-export declare type TokenIdent = Token<TokenType.Ident, {
+export declare interface TokenIdent extends Token<TokenType.Ident, {
+ /**
+ * The unescaped ident value.
+ */
value: string;
-}>;
+}> {
+}
+/**
+ * Tokenize a CSS string into a list of tokens.
+ */
export declare function tokenize(input: {
css: {
valueOf(): string;
@@ -132,6 +322,9 @@ export declare function tokenize(input: {
onParseError?: (error: ParseError) => void;
}): Array<CSSToken>;
+/**
+ * Create a tokenizer for a CSS string.
+ */
export declare function tokenizer(input: {
css: {
valueOf(): string;
@@ -144,95 +337,199 @@ export declare function tokenizer(input: {
endOfFile: () => boolean;
};
-export declare type TokenNumber = Token<TokenType.Number, {
+export declare interface TokenNumber extends Token<TokenType.Number, {
+ /**
+ * The numeric value.
+ */
value: number;
- signCharacter?: '+' | '-';
+ /**
+ * `integer` or `number`
+ */
type: NumberType;
-}>;
+ /**
+ * The sign character as it appeared in the source.
+ * This is only useful if you need to determine if a value was written as "2" or "+2".
+ */
+ signCharacter?: '+' | '-';
+}> {
+}
-export declare type TokenOpenCurly = Token<TokenType.OpenCurly, undefined>;
+export declare interface TokenOpenCurly extends Token<TokenType.OpenCurly, undefined> {
+}
-export declare type TokenOpenParen = Token<TokenType.OpenParen, undefined>;
+export declare interface TokenOpenParen extends Token<TokenType.OpenParen, undefined> {
+}
-export declare type TokenOpenSquare = Token<TokenType.OpenSquare, undefined>;
+export declare interface TokenOpenSquare extends Token<TokenType.OpenSquare, undefined> {
+}
-export declare type TokenPercentage = Token<TokenType.Percentage, {
+export declare interface TokenPercentage extends Token<TokenType.Percentage, {
+ /**
+ * The numeric value.
+ */
value: number;
+ /**
+ * The sign character as it appeared in the source.
+ * This is only useful if you need to determine if a value was written as "2%" or "+2%".
+ */
signCharacter?: '+' | '-';
-}>;
+}> {
+}
-export declare type TokenSemicolon = Token<TokenType.Semicolon, undefined>;
+export declare interface TokenSemicolon extends Token<TokenType.Semicolon, undefined> {
+}
-export declare type TokenString = Token<TokenType.String, {
+export declare interface TokenString extends Token<TokenType.String, {
+ /**
+ * The unescaped string value without the leading and trailing quotes.
+ */
value: string;
-}>;
+}> {
+}
+/**
+ * All possible CSS token types
+ */
export declare enum TokenType {
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#comment-diagram */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#comment-diagram}
+ */
Comment = "comment",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-at-keyword-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-at-keyword-token}
+ */
AtKeyword = "at-keyword-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-string-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-string-token}
+ */
BadString = "bad-string-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-url-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-url-token}
+ */
BadURL = "bad-url-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdc-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdc-token}
+ */
CDC = "CDC-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdo-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdo-token}
+ */
CDO = "CDO-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-colon-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-colon-token}
+ */
Colon = "colon-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-comma-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-comma-token}
+ */
Comma = "comma-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-delim-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-delim-token}
+ */
Delim = "delim-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-dimension-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-dimension-token}
+ */
Dimension = "dimension-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-eof-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-eof-token}
+ */
EOF = "EOF-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-function-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-function-token}
+ */
Function = "function-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-hash-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-hash-token}
+ */
Hash = "hash-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-ident-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-ident-token}
+ */
Ident = "ident-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token}
+ */
Number = "number-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token}
+ */
Percentage = "percentage-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-semicolon-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-semicolon-token}
+ */
Semicolon = "semicolon-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-string-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-string-token}
+ */
String = "string-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-url-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-url-token}
+ */
URL = "url-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-whitespace-token */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-whitespace-token}
+ */
Whitespace = "whitespace-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-paren */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-paren}
+ */
OpenParen = "(-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-paren */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-paren}
+ */
CloseParen = ")-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-square */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-square}
+ */
OpenSquare = "[-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-square */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-square}
+ */
CloseSquare = "]-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-curly */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-curly}
+ */
OpenCurly = "{-token",
- /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-curly */
+ /**
+ * @see {@link https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-curly}
+ */
CloseCurly = "}-token",
- /** https://drafts.csswg.org/css-syntax/#typedef-unicode-range-token */
+ /**
+ * Only appears in the token stream when the `unicodeRangesAllowed` option is set to true.
+ *
+ * @example
+ * ```js
+ * import { tokenize } from '@csstools/css-tokenizer';
+ *
+ * const tokens = tokenize({
+ * css: `U+0025-00FF, U+4??`,
+ * unicodeRangesAllowed: true,
+ * });
+ *
+ * console.log(tokens);
+ * ```
+ *
+ * @see {@link https://drafts.csswg.org/css-syntax/#typedef-unicode-range-token}
+ */
UnicodeRange = "unicode-range-token"
}
-export declare type TokenUnicodeRange = Token<TokenType.UnicodeRange, {
+export declare interface TokenUnicodeRange extends Token<TokenType.UnicodeRange, {
startOfRange: number;
endOfRange: number;
-}>;
+}> {
+}
-export declare type TokenURL = Token<TokenType.URL, {
+export declare interface TokenURL extends Token<TokenType.URL, {
+ /**
+ * The unescaped URL value without the leading `url(` and trailing `)`.
+ */
value: string;
-}>;
+}> {
+}
-export declare type TokenWhitespace = Token<TokenType.Whitespace, undefined>;
+export declare interface TokenWhitespace extends Token<TokenType.Whitespace, undefined> {
+}
export { }
diff --git a/node_modules/@csstools/css-tokenizer/dist/index.mjs b/node_modules/@csstools/css-tokenizer/dist/index.mjs
index 855a5420..b0d518e2 100644
--- a/node_modules/@csstools/css-tokenizer/dist/index.mjs
+++ b/node_modules/@csstools/css-tokenizer/dist/index.mjs
@@ -1 +1 @@
-class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,n,o,r){super(e),this.name="ParseError",this.sourceStart=n,this.sourceEnd=o,this.parserState=r}}class Reader{cursor=0;source="";codePointSource=[];representationIndices=[-1];length=0;representationStart=0;representationEnd=-1;constructor(e){this.source=e;{let n=-1,o="";for(o of e)n+=o.length,this.codePointSource.push(o.codePointAt(0)),this.representationIndices.push(n)}this.length=this.codePointSource.length}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor]}readCodePoint(e=1){const n=this.codePointSource[this.cursor];return void 0!==n&&(this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor],n)}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.representationIndices[this.cursor]}resetRepresentation(){this.representationStart=this.representationIndices[this.cursor]+1,this.representationEnd=-1}}var e,n,o;function mirrorVariantType(n){switch(n){case e.OpenParen:return e.CloseParen;case e.CloseParen:return e.OpenParen;case e.OpenCurly:return e.CloseCurly;case e.CloseCurly:return e.OpenCurly;case e.OpenSquare:return e.CloseSquare;case e.CloseSquare:return e.OpenSquare;default:return null}}function mirrorVariant(n){switch(n[0]){case e.OpenParen:return[e.CloseParen,")",-1,-1,void 0];case e.CloseParen:return[e.OpenParen,"(",-1,-1,void 0];case e.OpenCurly:return[e.CloseCurly,"}",-1,-1,void 0];case e.CloseCurly:return[e.OpenCurly,"{",-1,-1,void 0];case e.OpenSquare:return[e.CloseSquare,"]",-1,-1,void 0];case e.CloseSquare:return[e.OpenSquare,"[",-1,-1,void 0];default:return null}}!function(e){e.Comment="comment",e.AtKeyword="at-keyword-token",e.BadString="bad-string-token",e.BadURL="bad-url-token",e.CDC="CDC-token",e.CDO="CDO-token",e.Colon="colon-token",e.Comma="comma-token",e.Delim="delim-token",e.Dimension="dimension-token",e.EOF="EOF-token",e.Function="function-token",e.Hash="hash-token",e.Ident="ident-token",e.Number="number-token",e.Percentage="percentage-token",e.Semicolon="semicolon-token",e.String="string-token",e.URL="url-token",e.Whitespace="whitespace-token",e.OpenParen="(-token",e.CloseParen=")-token",e.OpenSquare="[-token",e.CloseSquare="]-token",e.OpenCurly="{-token",e.CloseCurly="}-token",e.UnicodeRange="unicode-range-token"}(e||(e={})),function(e){e.Integer="integer",e.Number="number"}(n||(n={})),function(e){e.Unrestricted="unrestricted",e.ID="id"}(o||(o={}));const r=Object.values(e);function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!r.includes(e[0])&&("string"==typeof e[1]&&("number"==typeof e[2]&&"number"==typeof e[3]))))}function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))}function stringify(...e){let n="";for(let o=0;o<e.length;o++)n+=e[o][1];return n}const t=39,i=42,c=8,s=13,a=9,u=58,d=44,P=64,p=127,S=33,C=12,l=46,f=62,h=45,E=31,m=69,v=101,g=123,k=40,I=91,T=60,O=10,U=11,w=95,D=1114111,A=0,R=35,L=37,x=43,y=34,q=65533,W=92,N=125,b=41,F=93,H=59,V=14,B=47,z=32,K=117,M=85,$=114,J=82,_=108,j=76,Q=63,G=48,X=70;function checkIfFourCodePointsWouldStartCDO(e){return e.codePointSource[e.cursor]===T&&e.codePointSource[e.cursor+1]===S&&e.codePointSource[e.cursor+2]===h&&e.codePointSource[e.cursor+3]===h}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return isDigitCodePoint(e)||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||e===w}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===h}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===W&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.codePointSource[n.cursor]===h?n.codePointSource[n.cursor+1]===h||(!!isIdentStartCodePoint(n.codePointSource[n.cursor+1])||n.codePointSource[n.cursor+1]===W&&!isNewLine(n.codePointSource[n.cursor+2])):!!isIdentStartCodePoint(n.codePointSource[n.cursor])||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===x||e.codePointSource[e.cursor]===h?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===l&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===l?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===h&&e.codePointSource[e.cursor+1]===h&&e.codePointSource[e.cursor+2]===f}function consumeComment(n,o){for(o.advanceCodePoint(2);;){const e=o.readCodePoint();if(!1===e){n.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(e===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[e.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,n){const o=n.readCodePoint();if(!1===o)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",n.representationStart,n.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),q;if(isHexDigitCodePoint(o)){const e=[o];for(;void 0!==n.codePointSource[n.cursor]&&isHexDigitCodePoint(n.codePointSource[n.cursor])&&e.length<6;)e.push(n.codePointSource[n.cursor]),n.advanceCodePoint();isWhitespace(n.codePointSource[n.cursor])&&n.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?q:(r=t)>=55296&&r<=57343||t>D?q:t}var r;return o}function consumeIdentSequence(e,n){const o=[];for(;;)if(isIdentCodePoint(n.codePointSource[n.cursor]))o.push(n.codePointSource[n.cursor]),n.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(n))return o;n.advanceCodePoint(),o.push(consumeEscapedCodePoint(e,n))}}function consumeHashToken(n,r){if(r.advanceCodePoint(),void 0!==r.codePointSource[r.cursor]&&(isIdentCodePoint(r.codePointSource[r.cursor])||checkIfTwoCodePointsAreAValidEscape(r))){let t=o.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,r)&&(t=o.ID);const i=consumeIdentSequence(n,r);return[e.Hash,r.source.slice(r.representationStart,r.representationEnd+1),r.representationStart,r.representationEnd,{value:String.fromCodePoint(...i),type:t}]}return[e.Delim,"#",r.representationStart,r.representationEnd,{value:"#"}]}function consumeNumber(e,o){let r=n.Integer;for(o.codePointSource[o.cursor]!==x&&o.codePointSource[o.cursor]!==h||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===l&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===v||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==h&&o.codePointSource[o.cursor+1]!==x||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return r;o.advanceCodePoint(3)}for(r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return r}function consumeNumericToken(n,o){let r;{const e=o.codePointSource[o.cursor];e===h?r="-":e===x&&(r="+")}const t=consumeNumber(0,o),i=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const c=consumeIdentSequence(n,o);return[e.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t,unit:String.fromCodePoint(...c)}]}return o.codePointSource[o.cursor]===L?(o.advanceCodePoint(),[e.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r}]):[e.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t}]}function consumeWhiteSpace(n){for(;isWhitespace(n.codePointSource[n.cursor]);)n.advanceCodePoint();return[e.Whitespace,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,void 0]}function consumeStringToken(n,o){let r="";const t=o.readCodePoint();for(;;){const i=o.readCodePoint();if(!1===i)return n.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isNewLine(i))return n.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[e.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(i===t)return[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(i!==W)r+=String.fromCodePoint(i);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}r+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,n){for(;;){if(void 0===n.codePointSource[n.cursor])return;if(n.codePointSource[n.cursor]===b)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let r="";for(;;){if(void 0===o.codePointSource[o.cursor])return n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(o.codePointSource[o.cursor]===b)return o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):o.codePointSource[o.cursor]===b?(o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):(consumeBadURL(n,o),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===y||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===k||((i=o.codePointSource[o.cursor])===U||i===p||A<=i&&i<=c||V<=i&&i<=E))return consumeBadURL(n,o),n.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===W){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),r+=String.fromCodePoint(consumeEscapedCodePoint(n,o));continue}return consumeBadURL(n,o),n.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}r+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var i}function consumeIdentLikeToken(n,o){const r=consumeIdentSequence(n,o);if(o.codePointSource[o.cursor]!==k)return[e.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];if(checkIfCodePointsMatchURLIdent(r)){o.advanceCodePoint();let i=0;for(;;){const n=isWhitespace(o.codePointSource[o.cursor]),c=isWhitespace(o.codePointSource[o.cursor+1]);if(n&&c){i+=1,o.advanceCodePoint(1);continue}const s=n?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===y||s===t)return i>0&&o.unreadCodePoint(i),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];break}return consumeUrlToken(n,o)}return o.advanceCodePoint(),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==x||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(n,o){o.advanceCodePoint(2);const r=[],t=[];for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&o.codePointSource[o.cursor]===Q;)0===t.length&&t.push(...r),r.push(G),t.push(X),o.advanceCodePoint();if(!t.length&&o.codePointSource[o.cursor]===h&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&t.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)t.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!t.length){const n=parseInt(String.fromCodePoint(...r),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:n,endOfRange:n}]}const i=parseInt(String.fromCodePoint(...r),16),c=parseInt(String.fromCodePoint(...t),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:i,endOfRange:c}]}function tokenize(e,n){const o=tokenizer(e,n),r=[];{for(;!o.endOfFile();){const e=o.nextToken();e&&r.push(e)}const e=o.nextToken();e&&r.push(e)}return r}function tokenizer(n,o){const r=n.css.valueOf(),i=n.unicodeRangesAllowed??!1,c=new Reader(r),p={onParseError:o?.onParseError??(()=>{})};return{nextToken:function nextToken(){c.resetRepresentation();const n=c.codePointSource[c.cursor];if(void 0===n)return[e.EOF,"",-1,-1,void 0];if(n===B&&checkIfTwoCodePointsStartAComment(c))return consumeComment(p,c);if(i&&(n===K||n===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(c))return consumeUnicodeRangeToken(0,c);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,c);if(isDigitCodePoint(n))return consumeNumericToken(p,c);switch(n){case d:return c.advanceCodePoint(),[e.Comma,",",c.representationStart,c.representationEnd,void 0];case u:return c.advanceCodePoint(),[e.Colon,":",c.representationStart,c.representationEnd,void 0];case H:return c.advanceCodePoint(),[e.Semicolon,";",c.representationStart,c.representationEnd,void 0];case k:return c.advanceCodePoint(),[e.OpenParen,"(",c.representationStart,c.representationEnd,void 0];case b:return c.advanceCodePoint(),[e.CloseParen,")",c.representationStart,c.representationEnd,void 0];case I:return c.advanceCodePoint(),[e.OpenSquare,"[",c.representationStart,c.representationEnd,void 0];case F:return c.advanceCodePoint(),[e.CloseSquare,"]",c.representationStart,c.representationEnd,void 0];case g:return c.advanceCodePoint(),[e.OpenCurly,"{",c.representationStart,c.representationEnd,void 0];case N:return c.advanceCodePoint(),[e.CloseCurly,"}",c.representationStart,c.representationEnd,void 0];case t:case y:return consumeStringToken(p,c);case R:return consumeHashToken(p,c);case x:case l:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):(c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]);case O:case s:case C:case a:case z:return consumeWhiteSpace(c);case h:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):checkIfThreeCodePointsWouldStartCDC(c)?(c.advanceCodePoint(3),[e.CDC,"--\x3e",c.representationStart,c.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),[e.Delim,"-",c.representationStart,c.representationEnd,{value:"-"}]);case T:return checkIfFourCodePointsWouldStartCDO(c)?(c.advanceCodePoint(4),[e.CDO,"\x3c!--",c.representationStart,c.representationEnd,void 0]):(c.advanceCodePoint(),[e.Delim,"<",c.representationStart,c.representationEnd,{value:"<"}]);case P:if(c.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)){const n=consumeIdentSequence(p,c);return[e.AtKeyword,c.source.slice(c.representationStart,c.representationEnd+1),c.representationStart,c.representationEnd,{value:String.fromCodePoint(...n)}]}return[e.Delim,"@",c.representationStart,c.representationEnd,{value:"@"}];case W:return checkIfTwoCodePointsAreAValidEscape(c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),p.onParseError(new ParseError('Invalid escape sequence after "\\"',c.representationStart,c.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.Delim,"\\",c.representationStart,c.representationEnd,{value:"\\"}])}return c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]},endOfFile:function endOfFile(){return void 0===c.codePointSource[c.cursor]}}}function mutateIdent(e,n){let o="";const r=[];{let e="";for(e of n)r.push(e.codePointAt(0))}let t=0;r[0]===h&&r[1]===h?(o="--",t=2):r[0]===h&&r[1]?(o="-",t=2,isIdentStartCodePoint(r[1])?o+=n[1]:o+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(o=n[0],t=1):(o=`\\${r[0].toString(16)} `,t=1);for(let e=t;e<r.length;e++)isIdentCodePoint(r[e])?o+=n[e]:o+=`\\${r[e].toString(16)} `;e[1]=o,e[4].value=n}export{n as NumberType,ParseError,Reader,e as TokenType,cloneTokens,isToken,mirrorVariant,mirrorVariantType,mutateIdent,stringify,tokenize,tokenizer};
+class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,n,o,r){super(e),this.name="ParseError",this.sourceStart=n,this.sourceEnd=o,this.parserState=r}}class Reader{cursor=0;source="";codePointSource=[];representationIndices=[-1];length=0;representationStart=0;representationEnd=-1;constructor(e){this.source=e;{let n=-1,o="";for(o of e)n+=o.length,this.codePointSource.push(o.codePointAt(0)),this.representationIndices.push(n)}this.length=this.codePointSource.length}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor]}readCodePoint(e=1){const n=this.codePointSource[this.cursor];return void 0!==n&&(this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor],n)}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.representationIndices[this.cursor]}resetRepresentation(){this.representationStart=this.representationIndices[this.cursor]+1,this.representationEnd=-1}}var e,n,o;function mirrorVariantType(n){switch(n){case e.OpenParen:return e.CloseParen;case e.CloseParen:return e.OpenParen;case e.OpenCurly:return e.CloseCurly;case e.CloseCurly:return e.OpenCurly;case e.OpenSquare:return e.CloseSquare;case e.CloseSquare:return e.OpenSquare;default:return null}}function mirrorVariant(n){switch(n[0]){case e.OpenParen:return[e.CloseParen,")",-1,-1,void 0];case e.CloseParen:return[e.OpenParen,"(",-1,-1,void 0];case e.OpenCurly:return[e.CloseCurly,"}",-1,-1,void 0];case e.CloseCurly:return[e.OpenCurly,"{",-1,-1,void 0];case e.OpenSquare:return[e.CloseSquare,"]",-1,-1,void 0];case e.CloseSquare:return[e.OpenSquare,"[",-1,-1,void 0];default:return null}}!function(e){e.Comment="comment",e.AtKeyword="at-keyword-token",e.BadString="bad-string-token",e.BadURL="bad-url-token",e.CDC="CDC-token",e.CDO="CDO-token",e.Colon="colon-token",e.Comma="comma-token",e.Delim="delim-token",e.Dimension="dimension-token",e.EOF="EOF-token",e.Function="function-token",e.Hash="hash-token",e.Ident="ident-token",e.Number="number-token",e.Percentage="percentage-token",e.Semicolon="semicolon-token",e.String="string-token",e.URL="url-token",e.Whitespace="whitespace-token",e.OpenParen="(-token",e.CloseParen=")-token",e.OpenSquare="[-token",e.CloseSquare="]-token",e.OpenCurly="{-token",e.CloseCurly="}-token",e.UnicodeRange="unicode-range-token"}(e||(e={})),function(e){e.Integer="integer",e.Number="number"}(n||(n={})),function(e){e.Unrestricted="unrestricted",e.ID="id"}(o||(o={}));const r=Object.values(e);function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!r.includes(e[0])&&("string"==typeof e[1]&&("number"==typeof e[2]&&"number"==typeof e[3]))))}function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))}function stringify(...e){let n="";for(let o=0;o<e.length;o++)n+=e[o][1];return n}const t=39,i=42,c=8,s=13,a=9,u=58,d=44,P=64,p=127,S=33,C=12,l=46,f=62,h=45,E=31,m=69,v=101,g=123,k=40,I=91,T=60,O=10,U=11,w=95,D=1114111,A=0,R=35,L=37,x=43,y=34,q=65533,W=92,N=125,b=41,F=93,H=59,V=14,B=47,z=32,K=117,M=85,$=114,J=82,_=108,j=76,Q=63,G=48,X=70;function checkIfFourCodePointsWouldStartCDO(e){return e.codePointSource[e.cursor]===T&&e.codePointSource[e.cursor+1]===S&&e.codePointSource[e.cursor+2]===h&&e.codePointSource[e.cursor+3]===h}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return isDigitCodePoint(e)||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||e===w}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===h}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===W&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.codePointSource[n.cursor]===h?n.codePointSource[n.cursor+1]===h||(!!isIdentStartCodePoint(n.codePointSource[n.cursor+1])||n.codePointSource[n.cursor+1]===W&&!isNewLine(n.codePointSource[n.cursor+2])):!!isIdentStartCodePoint(n.codePointSource[n.cursor])||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===x||e.codePointSource[e.cursor]===h?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===l&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===l?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===h&&e.codePointSource[e.cursor+1]===h&&e.codePointSource[e.cursor+2]===f}function consumeComment(n,o){for(o.advanceCodePoint(2);;){const e=o.readCodePoint();if(!1===e){n.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(e===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[e.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,n){const o=n.readCodePoint();if(!1===o)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",n.representationStart,n.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),q;if(isHexDigitCodePoint(o)){const e=[o];for(;void 0!==n.codePointSource[n.cursor]&&isHexDigitCodePoint(n.codePointSource[n.cursor])&&e.length<6;)e.push(n.codePointSource[n.cursor]),n.advanceCodePoint();isWhitespace(n.codePointSource[n.cursor])&&n.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?q:(r=t)>=55296&&r<=57343||t>D?q:t}var r;return o}function consumeIdentSequence(e,n){const o=[];for(;;)if(isIdentCodePoint(n.codePointSource[n.cursor]))o.push(n.codePointSource[n.cursor]),n.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(n))return o;n.advanceCodePoint(),o.push(consumeEscapedCodePoint(e,n))}}function consumeHashToken(n,r){if(r.advanceCodePoint(),void 0!==r.codePointSource[r.cursor]&&(isIdentCodePoint(r.codePointSource[r.cursor])||checkIfTwoCodePointsAreAValidEscape(r))){let t=o.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,r)&&(t=o.ID);const i=consumeIdentSequence(n,r);return[e.Hash,r.source.slice(r.representationStart,r.representationEnd+1),r.representationStart,r.representationEnd,{value:String.fromCodePoint(...i),type:t}]}return[e.Delim,"#",r.representationStart,r.representationEnd,{value:"#"}]}function consumeNumber(e,o){let r=n.Integer;for(o.codePointSource[o.cursor]!==x&&o.codePointSource[o.cursor]!==h||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===l&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===v||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==h&&o.codePointSource[o.cursor+1]!==x||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return r;o.advanceCodePoint(3)}for(r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return r}function consumeNumericToken(n,o){let r;{const e=o.codePointSource[o.cursor];e===h?r="-":e===x&&(r="+")}const t=consumeNumber(0,o),i=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const c=consumeIdentSequence(n,o);return[e.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t,unit:String.fromCodePoint(...c)}]}return o.codePointSource[o.cursor]===L?(o.advanceCodePoint(),[e.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r}]):[e.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t}]}function consumeWhiteSpace(n){for(;isWhitespace(n.codePointSource[n.cursor]);)n.advanceCodePoint();return[e.Whitespace,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,void 0]}function consumeStringToken(n,o){let r="";const t=o.readCodePoint();for(;;){const i=o.readCodePoint();if(!1===i)return n.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isNewLine(i))return n.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[e.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(i===t)return[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(i!==W)r+=String.fromCodePoint(i);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}r+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,n){for(;;){if(void 0===n.codePointSource[n.cursor])return;if(n.codePointSource[n.cursor]===b)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let r="";for(;;){if(void 0===o.codePointSource[o.cursor])return n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(o.codePointSource[o.cursor]===b)return o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):o.codePointSource[o.cursor]===b?(o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):(consumeBadURL(n,o),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===y||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===k||((i=o.codePointSource[o.cursor])===U||i===p||A<=i&&i<=c||V<=i&&i<=E))return consumeBadURL(n,o),n.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===W){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),r+=String.fromCodePoint(consumeEscapedCodePoint(n,o));continue}return consumeBadURL(n,o),n.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}r+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var i}function consumeIdentLikeToken(n,o){const r=consumeIdentSequence(n,o);if(o.codePointSource[o.cursor]!==k)return[e.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];if(checkIfCodePointsMatchURLIdent(r)){o.advanceCodePoint();let i=0;for(;;){const n=isWhitespace(o.codePointSource[o.cursor]),c=isWhitespace(o.codePointSource[o.cursor+1]);if(n&&c){i+=1,o.advanceCodePoint(1);continue}const s=n?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===y||s===t)return i>0&&o.unreadCodePoint(i),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];break}return consumeUrlToken(n,o)}return o.advanceCodePoint(),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==x||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(n,o){o.advanceCodePoint(2);const r=[],t=[];for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&o.codePointSource[o.cursor]===Q;)0===t.length&&t.push(...r),r.push(G),t.push(X),o.advanceCodePoint();if(!t.length&&o.codePointSource[o.cursor]===h&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&t.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)t.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!t.length){const n=parseInt(String.fromCodePoint(...r),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:n,endOfRange:n}]}const i=parseInt(String.fromCodePoint(...r),16),c=parseInt(String.fromCodePoint(...t),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:i,endOfRange:c}]}function tokenize(e,n){const o=tokenizer(e,n),r=[];{for(;!o.endOfFile();){const e=o.nextToken();e&&r.push(e)}const e=o.nextToken();e&&r.push(e)}return r}function tokenizer(n,o){const r=n.css.valueOf(),i=n.unicodeRangesAllowed??!1,c=new Reader(r),p={onParseError:o?.onParseError??noop};return{nextToken:function nextToken(){c.resetRepresentation();const n=c.codePointSource[c.cursor];if(void 0===n)return[e.EOF,"",-1,-1,void 0];if(n===B&&checkIfTwoCodePointsStartAComment(c))return consumeComment(p,c);if(i&&(n===K||n===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(c))return consumeUnicodeRangeToken(0,c);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,c);if(isDigitCodePoint(n))return consumeNumericToken(p,c);switch(n){case d:return c.advanceCodePoint(),[e.Comma,",",c.representationStart,c.representationEnd,void 0];case u:return c.advanceCodePoint(),[e.Colon,":",c.representationStart,c.representationEnd,void 0];case H:return c.advanceCodePoint(),[e.Semicolon,";",c.representationStart,c.representationEnd,void 0];case k:return c.advanceCodePoint(),[e.OpenParen,"(",c.representationStart,c.representationEnd,void 0];case b:return c.advanceCodePoint(),[e.CloseParen,")",c.representationStart,c.representationEnd,void 0];case I:return c.advanceCodePoint(),[e.OpenSquare,"[",c.representationStart,c.representationEnd,void 0];case F:return c.advanceCodePoint(),[e.CloseSquare,"]",c.representationStart,c.representationEnd,void 0];case g:return c.advanceCodePoint(),[e.OpenCurly,"{",c.representationStart,c.representationEnd,void 0];case N:return c.advanceCodePoint(),[e.CloseCurly,"}",c.representationStart,c.representationEnd,void 0];case t:case y:return consumeStringToken(p,c);case R:return consumeHashToken(p,c);case x:case l:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):(c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]);case O:case s:case C:case a:case z:return consumeWhiteSpace(c);case h:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):checkIfThreeCodePointsWouldStartCDC(c)?(c.advanceCodePoint(3),[e.CDC,"--\x3e",c.representationStart,c.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),[e.Delim,"-",c.representationStart,c.representationEnd,{value:"-"}]);case T:return checkIfFourCodePointsWouldStartCDO(c)?(c.advanceCodePoint(4),[e.CDO,"\x3c!--",c.representationStart,c.representationEnd,void 0]):(c.advanceCodePoint(),[e.Delim,"<",c.representationStart,c.representationEnd,{value:"<"}]);case P:if(c.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)){const n=consumeIdentSequence(p,c);return[e.AtKeyword,c.source.slice(c.representationStart,c.representationEnd+1),c.representationStart,c.representationEnd,{value:String.fromCodePoint(...n)}]}return[e.Delim,"@",c.representationStart,c.representationEnd,{value:"@"}];case W:return checkIfTwoCodePointsAreAValidEscape(c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),p.onParseError(new ParseError('Invalid escape sequence after "\\"',c.representationStart,c.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.Delim,"\\",c.representationStart,c.representationEnd,{value:"\\"}])}return c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]},endOfFile:function endOfFile(){return void 0===c.codePointSource[c.cursor]}}}function noop(){}function mutateIdent(e,n){let o="";const r=[];for(const e of n)r.push(e.codePointAt(0));let t=0;r[0]===h&&r[1]===h?(o="--",t=2):r[0]===h&&r[1]?(o="-",t=2,isIdentStartCodePoint(r[1])?o+=n[1]:o+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(o=n[0],t=1):(o=`\\${r[0].toString(16)} `,t=1);for(let e=t;e<r.length;e++)isIdentCodePoint(r[e])?o+=n[e]:o+=`\\${r[e].toString(16)} `;e[1]=o,e[4].value=n}export{n as NumberType,ParseError,Reader,e as TokenType,cloneTokens,isToken,mirrorVariant,mirrorVariantType,mutateIdent,stringify,tokenize,tokenizer};
diff --git a/node_modules/@csstools/css-tokenizer/package.json b/node_modules/@csstools/css-tokenizer/package.json
index c438c3ee..e050098e 100644
--- a/node_modules/@csstools/css-tokenizer/package.json
+++ b/node_modules/@csstools/css-tokenizer/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/css-tokenizer",
"description": "Tokenize CSS",
- "version": "2.2.2",
+ "version": "2.2.3",
"contributors": [
{
"name": "Antonio Laguna",
diff --git a/node_modules/@csstools/media-query-list-parser/CHANGELOG.md b/node_modules/@csstools/media-query-list-parser/CHANGELOG.md
index 70fce09b..6ce1c871 100644
--- a/node_modules/@csstools/media-query-list-parser/CHANGELOG.md
+++ b/node_modules/@csstools/media-query-list-parser/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changes to Media Query List Parser
+### 2.1.7
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+
### 2.1.6
_December 15, 2023_
@@ -17,10 +24,4 @@ _September 24, 2023_
- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch)
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
-### 2.1.4
-
-_August 5, 2023_
-
-- Do not allow keywords as media feature values in range context queries.
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md)
diff --git a/node_modules/@csstools/media-query-list-parser/dist/index.d.ts b/node_modules/@csstools/media-query-list-parser/dist/index.d.ts
index 36188a6b..69738ea8 100644
--- a/node_modules/@csstools/media-query-list-parser/dist/index.d.ts
+++ b/node_modules/@csstools/media-query-list-parser/dist/index.d.ts
@@ -23,6 +23,9 @@ export declare class CustomMedia {
hasFalseKeyword(): boolean;
tokens(): Array<CSSToken>;
toString(): string;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
string: string;
@@ -48,6 +51,9 @@ export declare class CustomMedia {
media: ComponentValue[];
})[] | undefined;
};
+ /**
+ * @internal
+ */
isCustomMedia(): this is CustomMedia;
static isCustomMedia(x: unknown): x is CustomMedia;
}
@@ -65,10 +71,16 @@ export declare class GeneralEnclosed {
parent: GeneralEnclosedWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isGeneralEnclosed(): this is GeneralEnclosed;
static isGeneralEnclosed(x: unknown): x is GeneralEnclosed;
}
@@ -145,7 +157,13 @@ export declare class MediaAnd {
parent: MediaAndWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): unknown;
+ /**
+ * @internal
+ */
isMediaAnd(): this is MediaAnd;
static isMediaAnd(x: unknown): x is MediaAnd;
}
@@ -167,7 +185,13 @@ export declare class MediaCondition {
parent: MediaConditionWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): unknown;
+ /**
+ * @internal
+ */
isMediaCondition(): this is MediaCondition;
static isMediaCondition(x: unknown): x is MediaCondition;
}
@@ -215,7 +239,13 @@ export declare class MediaConditionListWithOr {
parent: MediaConditionListWithOrWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): unknown;
+ /**
+ * @internal
+ */
isMediaConditionListWithOr(): this is MediaConditionListWithOr;
static isMediaConditionListWithOr(x: unknown): x is MediaConditionListWithOr;
}
@@ -245,6 +275,9 @@ export declare class MediaFeature {
parent: MediaFeatureWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
feature: {
@@ -259,6 +292,9 @@ export declare class MediaFeature {
before: CSSToken[];
after: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeature(): this is MediaFeature;
static isMediaFeature(x: unknown): x is MediaFeature;
}
@@ -273,6 +309,9 @@ export declare class MediaFeatureBoolean {
toString(): string;
indexOf(item: MediaFeatureName): number | string;
at(index: number | string): MediaFeatureName | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: {
@@ -282,6 +321,9 @@ export declare class MediaFeatureBoolean {
};
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureBoolean(): this is MediaFeatureBoolean;
static isMediaFeatureBoolean(x: unknown): x is MediaFeatureBoolean;
}
@@ -314,11 +356,17 @@ export declare class MediaFeatureName {
toString(): string;
indexOf(item: ComponentValue): number | string;
at(index: number | string): ComponentValue | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: string;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureName(): this is MediaFeatureName;
static isMediaFeatureName(x: unknown): x is MediaFeatureName;
}
@@ -340,6 +388,9 @@ export declare class MediaFeaturePlain {
parent: MediaFeaturePlainWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: {
@@ -354,6 +405,9 @@ export declare class MediaFeaturePlain {
};
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeaturePlain(): this is MediaFeaturePlain;
static isMediaFeaturePlain(x: unknown): x is MediaFeaturePlain;
}
@@ -382,6 +436,9 @@ export declare class MediaFeatureRangeNameValue {
parent: MediaFeatureRangeWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: {
@@ -396,6 +453,9 @@ export declare class MediaFeatureRangeNameValue {
};
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureRangeNameValue(): this is MediaFeatureRangeNameValue;
static isMediaFeatureRangeNameValue(x: unknown): x is MediaFeatureRangeNameValue;
}
@@ -418,6 +478,9 @@ export declare class MediaFeatureRangeValueName {
parent: MediaFeatureRangeWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: {
@@ -432,6 +495,9 @@ export declare class MediaFeatureRangeValueName {
};
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureRangeValueName(): this is MediaFeatureRangeValueName;
static isMediaFeatureRangeValueName(x: unknown): x is MediaFeatureRangeValueName;
}
@@ -457,6 +523,9 @@ export declare class MediaFeatureRangeValueNameValue {
parent: MediaFeatureRangeWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
name: {
@@ -476,6 +545,9 @@ export declare class MediaFeatureRangeValueNameValue {
};
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureRangeValueNameValue(): this is MediaFeatureRangeValueNameValue;
static isMediaFeatureRangeValueNameValue(x: unknown): x is MediaFeatureRangeValueNameValue;
}
@@ -499,11 +571,17 @@ export declare class MediaFeatureValue {
parent: MediaFeatureValueWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
value: unknown;
tokens: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaFeatureValue(): this is MediaFeatureValue;
static isMediaFeatureValue(x: unknown): x is MediaFeatureValue;
}
@@ -531,12 +609,18 @@ export declare class MediaInParens {
parent: MediaInParensWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
media: unknown;
before: CSSToken[];
after: CSSToken[];
};
+ /**
+ * @internal
+ */
isMediaInParens(): this is MediaInParens;
static isMediaInParens(x: unknown): x is MediaInParens;
}
@@ -559,6 +643,9 @@ export declare class MediaNot {
parent: MediaNotWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
modifier: CSSToken[];
@@ -569,6 +656,9 @@ export declare class MediaNot {
after: CSSToken[];
};
};
+ /**
+ * @internal
+ */
isMediaNot(): this is MediaNot;
static isMediaNot(x: unknown): x is MediaNot;
}
@@ -591,6 +681,9 @@ export declare class MediaOr {
parent: MediaOrWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
modifier: CSSToken[];
@@ -601,6 +694,9 @@ export declare class MediaOr {
after: CSSToken[];
};
};
+ /**
+ * @internal
+ */
isMediaOr(): this is MediaOr;
static isMediaOr(x: unknown): x is MediaOr;
}
@@ -623,11 +719,17 @@ export declare class MediaQueryInvalid {
parent: MediaQueryInvalidWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
string: string;
media: ComponentValue[];
};
+ /**
+ * @internal
+ */
isMediaQueryInvalid(): this is MediaQueryInvalid;
static isMediaQueryInvalid(x: unknown): x is MediaQueryInvalid;
}
@@ -655,11 +757,17 @@ export declare class MediaQueryWithoutType {
parent: MediaQueryWithoutTypeWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
string: string;
media: MediaCondition;
};
+ /**
+ * @internal
+ */
isMediaQueryWithoutType(): this is MediaQueryWithoutType;
static isMediaQueryWithoutType(x: unknown): x is MediaQueryWithoutType;
}
@@ -687,6 +795,9 @@ export declare class MediaQueryWithType {
parent: MediaQueryWithTypeWalkerParent;
state?: T;
}, index: number | string) => boolean | void, state?: T): false | undefined;
+ /**
+ * @internal
+ */
toJSON(): {
type: NodeType;
string: string;
@@ -695,6 +806,9 @@ export declare class MediaQueryWithType {
and: CSSToken[] | undefined;
media: MediaCondition | undefined;
};
+ /**
+ * @internal
+ */
isMediaQueryWithType(): this is MediaQueryWithType;
static isMediaQueryWithType(x: unknown): x is MediaQueryWithType;
}
diff --git a/node_modules/@csstools/media-query-list-parser/package.json b/node_modules/@csstools/media-query-list-parser/package.json
index c8d05288..7e08ead0 100644
--- a/node_modules/@csstools/media-query-list-parser/package.json
+++ b/node_modules/@csstools/media-query-list-parser/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/media-query-list-parser",
"description": "Parse CSS media query lists.",
- "version": "2.1.6",
+ "version": "2.1.7",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,8 +48,8 @@
"dist"
],
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser#readme",
"repository": {
diff --git a/node_modules/@csstools/postcss-color-function/CHANGELOG.md b/node_modules/@csstools/postcss-color-function/CHANGELOG.md
index 774ddfe0..65d1ad39 100644
--- a/node_modules/@csstools/postcss-color-function/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-color-function/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Color Function
+### 3.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 3.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 3.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-function/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-color-function/README.md b/node_modules/@csstools/postcss-color-function/README.md
index 0470c54f..61f51b92 100644
--- a/node_modules/@csstools/postcss-color-function/README.md
+++ b/node_modules/@csstools/postcss-color-function/README.md
@@ -1,6 +1,6 @@
# PostCSS Color Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-color-function.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/color-function.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-color-function.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/color-function.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/color-function.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-color-function --save-dev
@@ -103,7 +103,8 @@ The `enableProgressiveCustomProperties` option determines whether the original n
is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
> [!NOTE]
-> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties.
+> See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
```js
postcssColorFunction({ enableProgressiveCustomProperties: false })
diff --git a/node_modules/@csstools/postcss-color-function/dist/index.cjs b/node_modules/@csstools/postcss-color-function/dist/index.cjs
index 9e08190c..31619c18 100644
--- a/node_modules/@csstools/postcss-color-function/dist/index.cjs
+++ b/node_modules/@csstools/postcss-color-function/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name&&-1!==s.params.indexOf("color("))return!0;s=s.parent}else s=s.parent;return!1}const o=/(color)\(/i,n=/^(color)$/i,basePlugin=e=>({postcssPlugin:"postcss-color-function",Declaration:a=>{const i=a.value;if(!o.test(i))return;if(hasFallback(a))return;if(hasSupportsAtRuleAncestor(a))return;const c=s.tokenize({css:i}),l=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(c),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.Experimental))return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(l);p!==i&&(a.cloneBefore({value:p}),e?.preserve||a.remove())}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},s);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-color-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var s=require("@csstools/postcss-progressive-custom-properties"),e=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name&&-1!==e.params.indexOf("color("))return!0;e=e.parent}else e=e.parent;return!1}const o=/(color)\(/i,n=/^(color)$/i,basePlugin=s=>({postcssPlugin:"postcss-color-function",Declaration:a=>{const c=a.value;if(!o.test(c))return;if(hasFallback(a))return;if(hasSupportsAtRuleAncestor(a))return;const l=e.tokenize({css:c}),i=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(s=>{if(!t.isFunctionNode(s)||!n.test(s.getName()))return;const e=r.color(s);return e&&!(e.syntaxFlags.has(r.SyntaxFlag.Experimental)||e.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords)||e.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))?r.serializeRGB(e):void 0})),p=t.stringify(i);p!==c&&(a.cloneBefore({value:p}),s?.preserve||a.remove())}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},e);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-color-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/@csstools/postcss-color-function/dist/index.mjs b/node_modules/@csstools/postcss-color-function/dist/index.mjs
index 49c7c620..a5b645da 100644
--- a/node_modules/@csstools/postcss-color-function/dist/index.mjs
+++ b/node_modules/@csstools/postcss-color-function/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as r}from"@csstools/css-tokenizer";import{color as e,SyntaxFlag as t,serializeRGB as o}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as a,isFunctionNode as c,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const r=s.parent;if(!r)return!1;const e=s.prop.toLowerCase(),t=r.index(s);for(let s=0;s<t;s++){const t=r.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===e)return!0}return!1}function hasSupportsAtRuleAncestor(s){let r=s.parent;for(;r;)if("atrule"===r.type){if("supports"===r.name&&-1!==r.params.indexOf("color("))return!0;r=r.parent}else r=r.parent;return!1}const i=/(color)\(/i,l=/^(color)$/i,basePlugin=s=>({postcssPlugin:"postcss-color-function",Declaration:u=>{const f=u.value;if(!i.test(f))return;if(hasFallback(u))return;if(hasSupportsAtRuleAncestor(u))return;const m=r({css:f}),g=n(a(m),(s=>{if(c(s)&&l.test(s.getName())){const r=e(s);if(!r)return;if(r.syntaxFlags.has(t.Experimental))return;if(r.syntaxFlags.has(t.HasNoneKeywords))return;if(r.syntaxFlags.has(t.RelativeColorSyntax))return;return o(r)}})),v=p(g);v!==f&&(u.cloneBefore({value:v}),s?.preserve||u.remove())}});basePlugin.postcss=!0;const postcssPlugin=r=>{const e=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},r);return e.enableProgressiveCustomProperties&&e.preserve?{postcssPlugin:"postcss-color-function",plugins:[s(),basePlugin(e)]}:basePlugin(e)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as o,serializeRGB as t}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as a,isFunctionNode as c,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),o=e.index(s);for(let s=0;s<o;s++){const o=e.nodes[s];if("decl"===o.type&&o.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name&&-1!==e.params.indexOf("color("))return!0;e=e.parent}else e=e.parent;return!1}const l=/(color)\(/i,i=/^(color)$/i,basePlugin=s=>({postcssPlugin:"postcss-color-function",Declaration:u=>{const f=u.value;if(!l.test(f))return;if(hasFallback(u))return;if(hasSupportsAtRuleAncestor(u))return;const m=e({css:f}),g=n(a(m),(s=>{if(!c(s)||!i.test(s.getName()))return;const e=r(s);return e&&!(e.syntaxFlags.has(o.Experimental)||e.syntaxFlags.has(o.HasNoneKeywords)||e.syntaxFlags.has(o.RelativeColorSyntax))?t(e):void 0})),v=p(g);v!==f&&(u.cloneBefore({value:v}),s?.preserve||u.remove())}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},e);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-color-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/@csstools/postcss-color-function/package.json b/node_modules/@csstools/postcss-color-function/package.json
index 0fa8fe31..68235e7f 100644
--- a/node_modules/@csstools/postcss-color-function/package.json
+++ b/node_modules/@csstools/postcss-color-function/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-color-function",
"description": "Use the color() function in CSS",
- "version": "3.0.8",
+ "version": "3.0.9",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -38,9 +38,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md b/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md
index fffe7b5d..e71587b7 100644
--- a/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Color Mix Function
+### 2.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 2.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 2.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-mix-function/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-color-mix-function/README.md b/node_modules/@csstools/postcss-color-mix-function/README.md
index e7c54e48..70f56445 100644
--- a/node_modules/@csstools/postcss-color-mix-function/README.md
+++ b/node_modules/@csstools/postcss-color-mix-function/README.md
@@ -1,6 +1,6 @@
# PostCSS Color Mix Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-color-mix-function.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/color-mix.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-color-mix-function.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/color-mix.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/color-mix.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-color-mix-function --save-dev
@@ -20,6 +20,9 @@ npm install @csstools/postcss-color-mix-function --save-dev
}
```
+> [!NOTE]
+> We can not dynamically resolve `var()` arguments in `color-mix()`, only static values will work.
+
## Usage
Add [PostCSS Color Mix Function] to your project:
diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs b/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs
index 8e43b99b..70944027 100644
--- a/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs
+++ b/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()&&-1!==s.params.toLowerCase().indexOf("color-mix("))return!0;s=s.parent}else s=s.parent;return!1}const o=/(color-mix)\(/i,a=/^(color-mix)$/i,basePlugin=e=>({postcssPlugin:"postcss-color-mix-function",Declaration:n=>{const i=n.value;if(!o.test(i))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const u=s.tokenize({css:i}),l=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.Experimental))return;return r.serializeRGB(s)}})),c=t.stringify(l);if(c===i)return;let p=c;e?.subFeatures.displayP3&&(p=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),n.cloneBefore({value:c}),e?.subFeatures.displayP3&&p!==c&&n.cloneBefore({value:p}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()&&-1!==s.params.toLowerCase().indexOf("color-mix("))return!0;s=s.parent}else s=s.parent;return!1}const o=/(color-mix)\(/i,a=/^(color-mix)$/i,basePlugin=e=>({postcssPlugin:"postcss-color-mix-function",Declaration:n=>{const i=n.value;if(!o.test(i))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const l=s.tokenize({css:i}),u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(!t.isFunctionNode(e)||!a.test(e.getName()))return;const s=r.color(e);return s&&!s.syntaxFlags.has(r.SyntaxFlag.Experimental)?r.serializeRGB(s):void 0})),c=t.stringify(u);if(c===i)return;let p=c;e?.subFeatures.displayP3&&(p=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(!t.isFunctionNode(e)||!a.test(e.getName()))return;const s=r.color(e);return s&&!s.syntaxFlags.has(r.SyntaxFlag.Experimental)?r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s):void 0})))),n.cloneBefore({value:c}),e?.subFeatures.displayP3&&p!==c&&n.cloneBefore({value:p}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs b/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs
index 14690269..871d81a9 100644
--- a/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs
+++ b/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as n,serializeP3 as a}from"@csstools/css-color-parser";import{replaceComponentValues as i,parseCommaSeparatedListOfComponentValues as u,isFunctionNode as c,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&-1!==e.params.toLowerCase().indexOf("color-mix("))return!0;e=e.parent}else e=e.parent;return!1}const l=/(color-mix)\(/i,f=/^(color-mix)$/i,basePlugin=s=>({postcssPlugin:"postcss-color-mix-function",Declaration:m=>{const b=m.value;if(!l.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),P=i(u(g),(s=>{if(c(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.Experimental))return;return o(e)}})),d=p(P);if(d===b)return;let v=d;s?.subFeatures.displayP3&&(v=p(i(u(g),(s=>{if(c(s)&&f.test(s.getName())){const e=r(s);if(!e)return;return n(e)?o(e):a(e)}})))),m.cloneBefore({value:d}),s?.subFeatures.displayP3&&v!==d&&m.cloneBefore({value:v}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as n,serializeP3 as a}from"@csstools/css-color-parser";import{replaceComponentValues as i,parseCommaSeparatedListOfComponentValues as p,isFunctionNode as c,stringify as u}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&-1!==e.params.toLowerCase().indexOf("color-mix("))return!0;e=e.parent}else e=e.parent;return!1}const l=/(color-mix)\(/i,f=/^(color-mix)$/i,basePlugin=s=>({postcssPlugin:"postcss-color-mix-function",Declaration:m=>{const g=m.value;if(!l.test(g))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const b=e({css:g}),d=i(p(b),(s=>{if(!c(s)||!f.test(s.getName()))return;const e=r(s);return e&&!e.syntaxFlags.has(t.Experimental)?o(e):void 0})),v=u(d);if(v===g)return;let x=v;s?.subFeatures.displayP3&&(x=u(i(p(b),(s=>{if(!c(s)||!f.test(s.getName()))return;const e=r(s);return e&&!e.syntaxFlags.has(t.Experimental)?n(e)?o(e):a(e):void 0})))),m.cloneBefore({value:v}),s?.subFeatures.displayP3&&x!==v&&m.cloneBefore({value:x}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/@csstools/postcss-color-mix-function/package.json b/node_modules/@csstools/postcss-color-mix-function/package.json
index 7be8407b..603d7005 100644
--- a/node_modules/@csstools/postcss-color-mix-function/package.json
+++ b/node_modules/@csstools/postcss-color-mix-function/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-color-mix-function",
"description": "Use the color-mix function in CSS",
- "version": "2.0.8",
+ "version": "2.0.9",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md b/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md
index d937ae32..d89e4509 100644
--- a/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Exponential Functions
+### 1.0.3
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.6`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#116) (patch)
+
### 1.0.2
_December 15, 2023_
@@ -17,11 +25,4 @@ _September 24, 2023_
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch)
-### 1.0.0
-
-_July 24, 2023_
-
-- Initial version
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch)
-- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch)
+[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-exponential-functions/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-exponential-functions/README.md b/node_modules/@csstools/postcss-exponential-functions/README.md
index f09493e6..85db3f95 100644
--- a/node_modules/@csstools/postcss-exponential-functions/README.md
+++ b/node_modules/@csstools/postcss-exponential-functions/README.md
@@ -1,6 +1,6 @@
# PostCSS Exponential Functions [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-exponential-functions.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/exponential-functions.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-exponential-functions.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/exponential-functions.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/exponential-functions.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-exponential-functions --save-dev
diff --git a/node_modules/@csstools/postcss-exponential-functions/package.json b/node_modules/@csstools/postcss-exponential-functions/package.json
index 77d3bd3f..decb8014 100644
--- a/node_modules/@csstools/postcss-exponential-functions/package.json
+++ b/node_modules/@csstools/postcss-exponential-functions/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-exponential-functions",
"description": "Use pow(), sqrt(), hypot(), log(), exp() exponential functions in CSS",
- "version": "1.0.2",
+ "version": "1.0.3",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-calc": "^1.1.5",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-calc": "^1.1.6",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md b/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md
index 966c92c7..c03cc700 100644
--- a/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS gamut-mapping
+### 1.0.2
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 1.0.1
_December 15, 2023_
diff --git a/node_modules/@csstools/postcss-gamut-mapping/README.md b/node_modules/@csstools/postcss-gamut-mapping/README.md
index a5edb31c..874c5c89 100644
--- a/node_modules/@csstools/postcss-gamut-mapping/README.md
+++ b/node_modules/@csstools/postcss-gamut-mapping/README.md
@@ -1,6 +1,6 @@
# PostCSS Gamut Mapping [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-gamut-mapping.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/gamut-mapping.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-gamut-mapping.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/gamut-mapping.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/gamut-mapping.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-gamut-mapping --save-dev
diff --git a/node_modules/@csstools/postcss-gamut-mapping/package.json b/node_modules/@csstools/postcss-gamut-mapping/package.json
index 6e5e4c14..49890eee 100644
--- a/node_modules/@csstools/postcss-gamut-mapping/package.json
+++ b/node_modules/@csstools/postcss-gamut-mapping/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-gamut-mapping",
"description": "Gamut map css colors to fit display specific gamuts",
- "version": "1.0.1",
+ "version": "1.0.2",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md b/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md
index b952a1fe..a082903c 100644
--- a/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Gradients Interpolation Method
+### 4.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 4.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 4.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gradients-interpolation-method/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/README.md b/node_modules/@csstools/postcss-gradients-interpolation-method/README.md
index 6ac7234b..a9badbb3 100644
--- a/node_modules/@csstools/postcss-gradients-interpolation-method/README.md
+++ b/node_modules/@csstools/postcss-gradients-interpolation-method/README.md
@@ -1,6 +1,6 @@
# PostCSS Gradients Interpolation Method [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-gradients-interpolation-method.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/gradients-interpolation-method.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-gradients-interpolation-method.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/gradients-interpolation-method.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/gradients-interpolation-method.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-gradients-interpolation-method --save-dev
@@ -132,7 +132,8 @@ The `enableProgressiveCustomProperties` option determines whether the original n
is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
> [!NOTE]
-> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties.
+> See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
```js
postcssGradientsInterpolationMethod({ enableProgressiveCustomProperties: false })
diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/package.json b/node_modules/@csstools/postcss-gradients-interpolation-method/package.json
index 94c16663..740f20eb 100644
--- a/node_modules/@csstools/postcss-gradients-interpolation-method/package.json
+++ b/node_modules/@csstools/postcss-gradients-interpolation-method/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-gradients-interpolation-method",
"description": "Use interpolation methods in CSS gradient functions",
- "version": "4.0.8",
+ "version": "4.0.9",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -38,9 +38,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md b/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md
index ef182ca8..b5ae4f99 100644
--- a/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS HWB Function
+### 3.0.8
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 3.0.7
_December 15, 2023_
@@ -15,10 +23,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
-### 3.0.5
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-hwb-function/README.md b/node_modules/@csstools/postcss-hwb-function/README.md
index 1d20d6da..3f068a4c 100644
--- a/node_modules/@csstools/postcss-hwb-function/README.md
+++ b/node_modules/@csstools/postcss-hwb-function/README.md
@@ -1,10 +1,11 @@
# PostCSS HWB Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-hwb-function.svg" height="20">][npm-url]
-[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/hwb-function.svg" height="20">][css-url]
[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url]
[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
-
+<br><br>
+[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/hwb-function.svg" height="20">][css-url]
+[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/hwb-function.svg" height="20">][css-url]
[PostCSS HWB Function] lets you use `hwb` color functions in
CSS, following the [CSS Color] specification.
diff --git a/node_modules/@csstools/postcss-hwb-function/dist/index.cjs b/node_modules/@csstools/postcss-hwb-function/dist/index.cjs
index 9e4a79aa..f5aa6511 100644
--- a/node_modules/@csstools/postcss-hwb-function/dist/index.cjs
+++ b/node_modules/@csstools/postcss-hwb-function/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms"),r=require("@csstools/css-tokenizer");const s="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(s))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e<s;e++){const s=t.nodes[e];if("decl"===s.type&&s.prop.toLowerCase()===r)return!0}return!1}const o=/hwb\(/i,n=/^hwb$/i,postcssPlugin=a=>{const l="preserve"in Object(a)&&Boolean(a?.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(a,{postcss:p})=>{const c=a.value;if(!o.test(c))return;if(l&&hasSupportsAtRuleAncestor(a))return;if(hasFallback(a))return;const u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(r.tokenize({css:c})),(r=>{if(t.isFunctionNode(r)&&n.test(r.getName())){const t=e.color(r);if(!t)return;if(t.syntaxFlags.has(e.SyntaxFlag.Experimental))return;if(t.syntaxFlags.has(e.SyntaxFlag.HasNoneKeywords))return;if(t.syntaxFlags.has(e.SyntaxFlag.RelativeColorSyntax))return;return e.serializeRGB(t)}})),i=t.stringify(u);if(i!==c)if(a.variable&&l&&a.parent){const e=a.parent,t=p.atRule({name:"supports",params:s,source:a.source}),r=e.clone();r.removeAll(),r.append(a.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,s),a.replaceWith(a.clone({value:i}))}else l?a.cloneBefore({value:i}):a.replaceWith(a.clone({value:i}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var e=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms"),r=require("@csstools/css-tokenizer");const s="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(s))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e<s;e++){const s=t.nodes[e];if("decl"===s.type&&s.prop.toLowerCase()===r)return!0}return!1}const o=/hwb\(/i,a=/^hwb$/i,postcssPlugin=n=>{const l="preserve"in Object(n)&&Boolean(n?.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(n,{postcss:p})=>{const c=n.value;if(!o.test(c))return;if(l&&hasSupportsAtRuleAncestor(n))return;if(hasFallback(n))return;const u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(r.tokenize({css:c})),(r=>{if(!t.isFunctionNode(r)||!a.test(r.getName()))return;const s=e.color(r);return s&&!(s.syntaxFlags.has(e.SyntaxFlag.Experimental)||s.syntaxFlags.has(e.SyntaxFlag.HasNoneKeywords)||s.syntaxFlags.has(e.SyntaxFlag.RelativeColorSyntax))?e.serializeRGB(s):void 0})),i=t.stringify(u);if(i!==c)if(n.variable&&l&&n.parent){const e=n.parent,t=p.atRule({name:"supports",params:s,source:n.source}),r=e.clone();r.removeAll(),r.append(n.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,s),n.replaceWith(n.clone({value:i}))}else l?n.cloneBefore({value:i}):n.replaceWith(n.clone({value:i}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/@csstools/postcss-hwb-function/dist/index.mjs b/node_modules/@csstools/postcss-hwb-function/dist/index.mjs
index a8603a7a..157f55fb 100644
--- a/node_modules/@csstools/postcss-hwb-function/dist/index.mjs
+++ b/node_modules/@csstools/postcss-hwb-function/dist/index.mjs
@@ -1 +1 @@
-import{color as e,SyntaxFlag as t,serializeRGB as r}from"@csstools/css-color-parser";import{replaceComponentValues as s,parseCommaSeparatedListOfComponentValues as o,isFunctionNode as n,stringify as a}from"@csstools/css-parser-algorithms";import{tokenize as p}from"@csstools/css-tokenizer";const l="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(l))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e<s;e++){const s=t.nodes[e];if("decl"===s.type&&s.prop.toLowerCase()===r)return!0}return!1}const c=/hwb\(/i,u=/^hwb$/i,postcssPlugin=i=>{const f="preserve"in Object(i)&&Boolean(i?.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(i,{postcss:m})=>{const h=i.value;if(!c.test(h))return;if(f&&hasSupportsAtRuleAncestor(i))return;if(hasFallback(i))return;const v=s(o(p({css:h})),(s=>{if(n(s)&&u.test(s.getName())){const o=e(s);if(!o)return;if(o.syntaxFlags.has(t.Experimental))return;if(o.syntaxFlags.has(t.HasNoneKeywords))return;if(o.syntaxFlags.has(t.RelativeColorSyntax))return;return r(o)}})),w=a(v);if(w!==h)if(i.variable&&f&&i.parent){const e=i.parent,t=m.atRule({name:"supports",params:l,source:i.source}),r=e.clone();r.removeAll(),r.append(i.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,l),i.replaceWith(i.clone({value:w}))}else f?i.cloneBefore({value:w}):i.replaceWith(i.clone({value:w}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import{color as e,SyntaxFlag as t,serializeRGB as r}from"@csstools/css-color-parser";import{replaceComponentValues as s,parseCommaSeparatedListOfComponentValues as o,isFunctionNode as n,stringify as a}from"@csstools/css-parser-algorithms";import{tokenize as p}from"@csstools/css-tokenizer";const l="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(l))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e<s;e++){const s=t.nodes[e];if("decl"===s.type&&s.prop.toLowerCase()===r)return!0}return!1}const c=/hwb\(/i,u=/^hwb$/i,postcssPlugin=i=>{const f="preserve"in Object(i)&&Boolean(i?.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(i,{postcss:m})=>{const h=i.value;if(!c.test(h))return;if(f&&hasSupportsAtRuleAncestor(i))return;if(hasFallback(i))return;const v=s(o(p({css:h})),(s=>{if(!n(s)||!u.test(s.getName()))return;const o=e(s);return o&&!(o.syntaxFlags.has(t.Experimental)||o.syntaxFlags.has(t.HasNoneKeywords)||o.syntaxFlags.has(t.RelativeColorSyntax))?r(o):void 0})),d=a(v);if(d!==h)if(i.variable&&f&&i.parent){const e=i.parent,t=m.atRule({name:"supports",params:l,source:i.source}),r=e.clone();r.removeAll(),r.append(i.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,l),i.replaceWith(i.clone({value:d}))}else f?i.cloneBefore({value:d}):i.replaceWith(i.clone({value:d}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/@csstools/postcss-hwb-function/package.json b/node_modules/@csstools/postcss-hwb-function/package.json
index 89ace0bb..72c9d389 100644
--- a/node_modules/@csstools/postcss-hwb-function/package.json
+++ b/node_modules/@csstools/postcss-hwb-function/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-hwb-function",
"description": "Use hwb() color functions in CSS",
- "version": "3.0.7",
+ "version": "3.0.8",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -39,9 +39,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md b/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md
index 4a51e4a4..91c1fddc 100644
--- a/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changes to PostCSS Logical Viewport Units
+### 2.0.5
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+
### 2.0.4
_December 15, 2023_
@@ -13,10 +19,4 @@ _September 24, 2023_
- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch)
-### 2.0.2
-
-_September 18, 2023_
-
-- Improve performance
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-viewport-units/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-logical-viewport-units/README.md b/node_modules/@csstools/postcss-logical-viewport-units/README.md
index 622864c0..4a575981 100644
--- a/node_modules/@csstools/postcss-logical-viewport-units/README.md
+++ b/node_modules/@csstools/postcss-logical-viewport-units/README.md
@@ -1,6 +1,6 @@
# PostCSS Logical Viewport Units [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-logical-viewport-units.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/logical-viewport-units.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-logical-viewport-units.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/logical-viewport-units.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/logical-viewport-units.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-logical-viewport-units --save-dev
diff --git a/node_modules/@csstools/postcss-logical-viewport-units/package.json b/node_modules/@csstools/postcss-logical-viewport-units/package.json
index c3626fe4..f8b333d8 100644
--- a/node_modules/@csstools/postcss-logical-viewport-units/package.json
+++ b/node_modules/@csstools/postcss-logical-viewport-units/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-logical-viewport-units",
"description": "Use vb and vi length units in CSS",
- "version": "2.0.4",
+ "version": "2.0.5",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,7 +48,7 @@
"dist"
],
"dependencies": {
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md b/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md
index 09166d6d..412ead85 100644
--- a/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changes to PostCSS Media MinMax
+### 1.1.2
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.6`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#116) (patch)
+- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.7`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#217) (patch)
+
### 1.1.1
_December 15, 2023_
@@ -20,10 +29,4 @@ _September 24, 2023_
- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch)
- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#215) (patch)
-### 1.0.7
-
-_August 5, 2023_
-
-- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#214) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-minmax/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-media-minmax/README.md b/node_modules/@csstools/postcss-media-minmax/README.md
index 6129f0ab..7c997a48 100644
--- a/node_modules/@csstools/postcss-media-minmax/README.md
+++ b/node_modules/@csstools/postcss-media-minmax/README.md
@@ -1,6 +1,6 @@
# PostCSS Media MinMax [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-media-minmax.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/media-query-ranges.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-media-minmax.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/media-query-ranges.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/media-query-ranges.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-media-minmax --save-dev
diff --git a/node_modules/@csstools/postcss-media-minmax/package.json b/node_modules/@csstools/postcss-media-minmax/package.json
index b4435755..d4f0e0c3 100644
--- a/node_modules/@csstools/postcss-media-minmax/package.json
+++ b/node_modules/@csstools/postcss-media-minmax/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-media-minmax",
"description": "Use the range notation in CSS media queries",
- "version": "1.1.1",
+ "version": "1.1.2",
"contributors": [
{
"name": "Antonio Laguna",
@@ -51,10 +51,10 @@
"dist"
],
"dependencies": {
- "@csstools/css-calc": "^1.1.5",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
- "@csstools/media-query-list-parser": "^2.1.6"
+ "@csstools/css-calc": "^1.1.6",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
+ "@csstools/media-query-list-parser": "^2.1.7"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md
index ff2b6f9e..24d1557f 100644
--- a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Media Queries Aspect-Ratio Number Values
+### 2.0.5
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.7`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#217) (patch)
+
### 2.0.4
_December 15, 2023_
@@ -17,10 +25,4 @@ _September 24, 2023_
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#215) (patch)
-### 2.0.2
-
-_August 5, 2023_
-
-- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#214) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md
index 8ed8ca89..6a29ea87 100644
--- a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md
+++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md
@@ -1,6 +1,6 @@
# PostCSS Media Queries Aspect-Ratio Number Values [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-media-queries-aspect-ratio-number-values.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/media-queries-aspect-ratio-number-values.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-media-queries-aspect-ratio-number-values.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/media-queries-aspect-ratio-number-values.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/media-queries-aspect-ratio-number-values.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-media-queries-aspect-ratio-number-values --save-dev
diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json
index f515fa3c..a2c2b76c 100644
--- a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json
+++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-media-queries-aspect-ratio-number-values",
"description": "Use number values in aspect-ratio media queries.",
- "version": "2.0.4",
+ "version": "2.0.5",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
- "@csstools/media-query-list-parser": "^2.1.6"
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
+ "@csstools/media-query-list-parser": "^2.1.7"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md b/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md
index fc173d0e..ff39dec0 100644
--- a/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS OKLab Function
+### 3.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 3.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 3.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-oklab-function/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-oklab-function/README.md b/node_modules/@csstools/postcss-oklab-function/README.md
index 6ee6fb54..a99e31f5 100644
--- a/node_modules/@csstools/postcss-oklab-function/README.md
+++ b/node_modules/@csstools/postcss-oklab-function/README.md
@@ -1,9 +1,11 @@
# PostCSS OKLab Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-oklab-function.svg" height="20">][npm-url]
-[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/oklab-function.svg" height="20">][css-url]
[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url]
[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+<br><br>
+[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/oklab-function.svg" height="20">][css-url]
+[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/oklab-function.svg" height="20">][css-url]
[PostCSS OKLab Function] lets you use `oklab` and `oklch` color functions in
CSS, following the [CSS Color] specification.
@@ -96,7 +98,8 @@ The `enableProgressiveCustomProperties` option determines whether the original n
is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
> [!NOTE]
-> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties.
+> See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
```js
postcssOKLabFunction({ enableProgressiveCustomProperties: false })
diff --git a/node_modules/@csstools/postcss-oklab-function/dist/index.cjs b/node_modules/@csstools/postcss-oklab-function/dist/index.cjs
index b93e4cd1..bf1fe995 100644
--- a/node_modules/@csstools/postcss-oklab-function/dist/index.cjs
+++ b/node_modules/@csstools/postcss-oklab-function/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()){if(-1!==s.params.toLowerCase().indexOf("oklab("))return!0;if(-1!==s.params.toLowerCase().indexOf("oklch("))return!0}s=s.parent}else s=s.parent;return!1}const o=/(oklab|oklch)\(/i,a=/^(oklab|oklch)$/i,basePlugin=e=>({postcssPlugin:"postcss-oklab-function",Declaration:n=>{const i=n.value;if(!o.test(i))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const l=s.tokenize({css:i}),u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.Experimental))return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(u);if(p===i)return;let c=p;e?.subFeatures.displayP3&&(c=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),n.cloneBefore({value:p}),e?.subFeatures.displayP3&&c!==p&&n.cloneBefore({value:c}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),t=require("@csstools/css-color-parser"),r=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const t=e.prop.toLowerCase(),r=s.index(e);for(let e=0;e<r;e++){const r=s.nodes[e];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()){if(-1!==s.params.toLowerCase().indexOf("oklab("))return!0;if(-1!==s.params.toLowerCase().indexOf("oklch("))return!0}s=s.parent}else s=s.parent;return!1}const a=/(oklab|oklch)\(/i,o=/^(oklab|oklch)$/i,basePlugin=e=>({postcssPlugin:"postcss-oklab-function",Declaration:n=>{const l=n.value;if(!a.test(l))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const i=s.tokenize({css:l}),u=r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(i),(e=>{if(!r.isFunctionNode(e)||!o.test(e.getName()))return;const s=t.color(e);return s&&!(s.syntaxFlags.has(t.SyntaxFlag.Experimental)||s.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)||s.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax))?t.serializeRGB(s):void 0})),p=r.stringify(u);if(p===l)return;let c=p;e?.subFeatures.displayP3&&(c=r.stringify(r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(i),(e=>{if(!r.isFunctionNode(e)||!o.test(e.getName()))return;const s=t.color(e);return s&&!(s.syntaxFlags.has(t.SyntaxFlag.Experimental)||s.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)||s.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax))?t.colorDataFitsRGB_Gamut(s)?t.serializeRGB(s):t.serializeP3(s):void 0})))),n.cloneBefore({value:p}),e?.subFeatures.displayP3&&c!==p&&n.cloneBefore({value:c}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[e(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/@csstools/postcss-oklab-function/dist/index.mjs b/node_modules/@csstools/postcss-oklab-function/dist/index.mjs
index 194eaeda..935e4ebe 100644
--- a/node_modules/@csstools/postcss-oklab-function/dist/index.mjs
+++ b/node_modules/@csstools/postcss-oklab-function/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as i,parseCommaSeparatedListOfComponentValues as l,isFunctionNode as u,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()){if(-1!==e.params.toLowerCase().indexOf("oklab("))return!0;if(-1!==e.params.toLowerCase().indexOf("oklch("))return!0}e=e.parent}else e=e.parent;return!1}const c=/(oklab|oklch)\(/i,f=/^(oklab|oklch)$/i,basePlugin=s=>({postcssPlugin:"postcss-oklab-function",Declaration:m=>{const b=m.value;if(!c.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),y=i(l(g),(s=>{if(u(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.Experimental))return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return o(e)}})),d=p(y);if(d===b)return;let h=d;s?.subFeatures.displayP3&&(h=p(i(l(g),(s=>{if(u(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return a(e)?o(e):n(e)}})))),m.cloneBefore({value:d}),s?.subFeatures.displayP3&&h!==d&&m.cloneBefore({value:h}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as t,SyntaxFlag as r,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as l,parseCommaSeparatedListOfComponentValues as i,isFunctionNode as p,stringify as u}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()){if(-1!==e.params.toLowerCase().indexOf("oklab("))return!0;if(-1!==e.params.toLowerCase().indexOf("oklch("))return!0}e=e.parent}else e=e.parent;return!1}const c=/(oklab|oklch)\(/i,f=/^(oklab|oklch)$/i,basePlugin=s=>({postcssPlugin:"postcss-oklab-function",Declaration:m=>{const b=m.value;if(!c.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),y=l(i(g),(s=>{if(!p(s)||!f.test(s.getName()))return;const e=t(s);return e&&!(e.syntaxFlags.has(r.Experimental)||e.syntaxFlags.has(r.HasNoneKeywords)||e.syntaxFlags.has(r.RelativeColorSyntax))?o(e):void 0})),d=u(y);if(d===b)return;let h=d;s?.subFeatures.displayP3&&(h=u(l(i(g),(s=>{if(!p(s)||!f.test(s.getName()))return;const e=t(s);return e&&!(e.syntaxFlags.has(r.Experimental)||e.syntaxFlags.has(r.HasNoneKeywords)||e.syntaxFlags.has(r.RelativeColorSyntax))?a(e)?o(e):n(e):void 0})))),m.cloneBefore({value:d}),s?.subFeatures.displayP3&&h!==d&&m.cloneBefore({value:h}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/@csstools/postcss-oklab-function/package.json b/node_modules/@csstools/postcss-oklab-function/package.json
index da33f788..2d795cad 100644
--- a/node_modules/@csstools/postcss-oklab-function/package.json
+++ b/node_modules/@csstools/postcss-oklab-function/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-oklab-function",
"description": "Use oklab() and oklch() color functions in CSS",
- "version": "3.0.8",
+ "version": "3.0.9",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -38,9 +38,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md b/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md
index 908afed8..5361cc06 100644
--- a/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Relative Color Syntax
+### 2.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 2.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 2.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-relative-color-syntax/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-relative-color-syntax/README.md b/node_modules/@csstools/postcss-relative-color-syntax/README.md
index f61aaa14..679e33c1 100644
--- a/node_modules/@csstools/postcss-relative-color-syntax/README.md
+++ b/node_modules/@csstools/postcss-relative-color-syntax/README.md
@@ -1,6 +1,6 @@
# PostCSS Relative Color Syntax [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-relative-color-syntax.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/relative-color-syntax.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-relative-color-syntax.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/relative-color-syntax.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/relative-color-syntax.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-relative-color-syntax --save-dev
@@ -20,6 +20,9 @@ npm install @csstools/postcss-relative-color-syntax --save-dev
}
```
+> [!NOTE]
+> We can not dynamically resolve `var()` arguments in relative color syntax, only static values will work.
+
## Usage
Add [PostCSS Relative Color Syntax] to your project:
diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs
index c811e0be..80f0a93d 100644
--- a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs
+++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}const o=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(\s*?from/i;function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()&&o.test(s.params))return!0;s=s.parent}else s=s.parent;return!1}const a=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(/i,n=/^(rgb|hsl|hwb|lab|lch|oklch|oklab|color)$/i,l=/from/i,basePlugin=e=>({postcssPlugin:"postcss-relative-color-syntax",Declaration:o=>{const i=o.value;if(!a.test(i))return;if(!l.test(i))return;if(hasFallback(o))return;if(hasSupportsAtRuleAncestor(o))return;const u=s.tokenize({css:i}),c=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.Experimental))return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(!s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(c);if(p===i)return;let f=p;e?.subFeatures.displayP3&&(f=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(!s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),o.cloneBefore({value:p}),e?.subFeatures.displayP3&&f!==p&&o.cloneBefore({value:f}),e?.preserve||o.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var s=require("@csstools/postcss-progressive-custom-properties"),e=require("@csstools/css-tokenizer"),t=require("@csstools/css-color-parser"),r=require("@csstools/css-parser-algorithms");function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}const o=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(\s*?from/i;function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&o.test(e.params))return!0;e=e.parent}else e=e.parent;return!1}const a=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(/i,l=/^(rgb|hsl|hwb|lab|lch|oklch|oklab|color)$/i,n=/from/i,basePlugin=s=>({postcssPlugin:"postcss-relative-color-syntax",Declaration:o=>{const i=o.value;if(!a.test(i)||!n.test(i))return;if(hasFallback(o))return;if(hasSupportsAtRuleAncestor(o))return;const c=e.tokenize({css:i}),u=r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(c),(s=>{if(!r.isFunctionNode(s)||!l.test(s.getName()))return;const e=t.color(s);return e&&!e.syntaxFlags.has(t.SyntaxFlag.Experimental)&&!e.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)&&e.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax)?t.serializeRGB(e):void 0})),p=r.stringify(u);if(p===i)return;let g=p;s?.subFeatures.displayP3&&(g=r.stringify(r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(c),(s=>{if(!r.isFunctionNode(s)||!l.test(s.getName()))return;const e=t.color(s);return e&&!e.syntaxFlags.has(t.SyntaxFlag.Experimental)&&!e.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)&&e.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax)?t.colorDataFitsRGB_Gamut(e)?t.serializeRGB(e):t.serializeP3(e):void 0})))),o.cloneBefore({value:p}),s?.subFeatures.displayP3&&g!==p&&o.cloneBefore({value:g}),s?.preserve||o.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs
index 6da2bc63..08b26cb6 100644
--- a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs
+++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as l}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as i,isFunctionNode as c,stringify as u}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}const p=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(\s*?from/i;function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&p.test(e.params))return!0;e=e.parent}else e=e.parent;return!1}const f=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(/i,b=/^(rgb|hsl|hwb|lab|lch|oklch|oklab|color)$/i,h=/from/i,basePlugin=s=>({postcssPlugin:"postcss-relative-color-syntax",Declaration:p=>{const m=p.value;if(!f.test(m))return;if(!h.test(m))return;if(hasFallback(p))return;if(hasSupportsAtRuleAncestor(p))return;const g=e({css:m}),y=n(i(g),(s=>{if(c(s)&&b.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.Experimental))return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(!e.syntaxFlags.has(t.RelativeColorSyntax))return;return o(e)}})),v=u(y);if(v===m)return;let F=v;s?.subFeatures.displayP3&&(F=u(n(i(g),(s=>{if(c(s)&&b.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(!e.syntaxFlags.has(t.RelativeColorSyntax))return;return a(e)?o(e):l(e)}})))),p.cloneBefore({value:v}),s?.subFeatures.displayP3&&F!==v&&p.cloneBefore({value:F}),s?.preserve||p.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as t,SyntaxFlag as r,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as l}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as c,isFunctionNode as i,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}const u=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(\s*?from/i;function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&u.test(e.params))return!0;e=e.parent}else e=e.parent;return!1}const b=/(rgb|hsl|hwb|lab|lch|oklch|oklab|color)\(/i,f=/^(rgb|hsl|hwb|lab|lch|oklch|oklab|color)$/i,h=/from/i,basePlugin=s=>({postcssPlugin:"postcss-relative-color-syntax",Declaration:u=>{const m=u.value;if(!b.test(m)||!h.test(m))return;if(hasFallback(u))return;if(hasSupportsAtRuleAncestor(u))return;const g=e({css:m}),y=n(c(g),(s=>{if(!i(s)||!f.test(s.getName()))return;const e=t(s);return e&&!e.syntaxFlags.has(r.Experimental)&&!e.syntaxFlags.has(r.HasNoneKeywords)&&e.syntaxFlags.has(r.RelativeColorSyntax)?o(e):void 0})),v=p(y);if(v===m)return;let x=v;s?.subFeatures.displayP3&&(x=p(n(c(g),(s=>{if(!i(s)||!f.test(s.getName()))return;const e=t(s);return e&&!e.syntaxFlags.has(r.Experimental)&&!e.syntaxFlags.has(r.HasNoneKeywords)&&e.syntaxFlags.has(r.RelativeColorSyntax)?a(e)?o(e):l(e):void 0})))),u.cloneBefore({value:v}),s?.subFeatures.displayP3&&x!==v&&u.cloneBefore({value:x}),s?.preserve||u.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/@csstools/postcss-relative-color-syntax/package.json b/node_modules/@csstools/postcss-relative-color-syntax/package.json
index e872dffe..27e20edf 100644
--- a/node_modules/@csstools/postcss-relative-color-syntax/package.json
+++ b/node_modules/@csstools/postcss-relative-color-syntax/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-relative-color-syntax",
"description": "Use the relative color syntax in CSS",
- "version": "2.0.8",
+ "version": "2.0.9",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md b/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md
index 5dc30d6b..34548155 100644
--- a/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Stepped Value Functions
+### 3.0.4
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.6`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#116) (patch)
+
### 3.0.3
_December 15, 2023_
@@ -17,13 +25,4 @@ _September 24, 2023_
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch)
-### 3.0.1
-
-_July 24, 2023_
-
-- Use the latest utilities from `@csstools/css-tokenizer` to reduce the bundle size.
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch)
-- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-stepped-value-functions/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-stepped-value-functions/README.md b/node_modules/@csstools/postcss-stepped-value-functions/README.md
index 54a2a1c5..8185f204 100644
--- a/node_modules/@csstools/postcss-stepped-value-functions/README.md
+++ b/node_modules/@csstools/postcss-stepped-value-functions/README.md
@@ -1,6 +1,6 @@
# PostCSS Stepped Value Functions [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-stepped-value-functions.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/stepped-value-functions.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-stepped-value-functions.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/stepped-value-functions.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/stepped-value-functions.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-stepped-value-functions --save-dev
diff --git a/node_modules/@csstools/postcss-stepped-value-functions/package.json b/node_modules/@csstools/postcss-stepped-value-functions/package.json
index b0db70c0..b66c8895 100644
--- a/node_modules/@csstools/postcss-stepped-value-functions/package.json
+++ b/node_modules/@csstools/postcss-stepped-value-functions/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-stepped-value-functions",
"description": "Use round, rem and mod functions in CSS",
- "version": "3.0.3",
+ "version": "3.0.4",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-calc": "^1.1.5",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-calc": "^1.1.6",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md b/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md
index b337b22f..ba355eec 100644
--- a/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md
+++ b/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Trigonometric Functions
+### 3.0.4
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.6`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#116) (patch)
+
### 3.0.3
_December 15, 2023_
@@ -17,13 +25,4 @@ _September 24, 2023_
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch)
-### 3.0.1
-
-_July 24, 2023_
-
-- Use the latest utilities from `@csstools/css-tokenizer` to reduce the bundle size.
-- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor)
-- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch)
-- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-trigonometric-functions/CHANGELOG.md)
diff --git a/node_modules/@csstools/postcss-trigonometric-functions/README.md b/node_modules/@csstools/postcss-trigonometric-functions/README.md
index 2c1f3cc7..342c2525 100644
--- a/node_modules/@csstools/postcss-trigonometric-functions/README.md
+++ b/node_modules/@csstools/postcss-trigonometric-functions/README.md
@@ -1,6 +1,6 @@
# PostCSS Trigonometric Functions [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-trigonometric-functions.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/trigonometric-functions.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-trigonometric-functions.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/trigonometric-functions.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/trigonometric-functions.svg" height="20">][css-url]
```bash
npm install @csstools/postcss-trigonometric-functions --save-dev
diff --git a/node_modules/@csstools/postcss-trigonometric-functions/package.json b/node_modules/@csstools/postcss-trigonometric-functions/package.json
index 24a059dd..a3d0f898 100644
--- a/node_modules/@csstools/postcss-trigonometric-functions/package.json
+++ b/node_modules/@csstools/postcss-trigonometric-functions/package.json
@@ -1,7 +1,7 @@
{
"name": "@csstools/postcss-trigonometric-functions",
"description": "Use sin(), cos(), tan(), acos(), atan(), and atan2() to compute trigonometric relationships",
- "version": "3.0.3",
+ "version": "3.0.4",
"contributors": [
{
"name": "Antonio Laguna",
@@ -48,9 +48,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-calc": "^1.1.5",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2"
+ "@csstools/css-calc": "^1.1.6",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3"
},
"peerDependencies": {
"postcss": "^8.4"
diff --git a/node_modules/cssnano-preset-default/package.json b/node_modules/cssnano-preset-default/package.json
index cc160e70..d8581ff3 100644
--- a/node_modules/cssnano-preset-default/package.json
+++ b/node_modules/cssnano-preset-default/package.json
@@ -1,6 +1,6 @@
{
"name": "cssnano-preset-default",
- "version": "6.0.2",
+ "version": "6.0.3",
"main": "src/index.js",
"types": "types/index.d.ts",
"description": "Safe defaults for cssnano which require minimal configuration.",
@@ -11,35 +11,35 @@
],
"license": "MIT",
"dependencies": {
- "css-declaration-sorter": "^7.0.0",
+ "css-declaration-sorter": "^7.1.1",
"postcss-calc": "^9.0.1",
"cssnano-utils": "^4.0.1",
- "postcss-convert-values": "^6.0.1",
+ "postcss-colormin": "^6.0.2",
+ "postcss-convert-values": "^6.0.2",
"postcss-discard-comments": "^6.0.1",
"postcss-discard-duplicates": "^6.0.1",
- "postcss-colormin": "^6.0.1",
"postcss-discard-empty": "^6.0.1",
"postcss-discard-overridden": "^6.0.1",
- "postcss-merge-longhand": "^6.0.1",
- "postcss-merge-rules": "^6.0.2",
+ "postcss-merge-longhand": "^6.0.2",
+ "postcss-merge-rules": "^6.0.3",
"postcss-minify-font-values": "^6.0.1",
"postcss-minify-gradients": "^6.0.1",
- "postcss-minify-params": "^6.0.1",
- "postcss-minify-selectors": "^6.0.1",
+ "postcss-minify-params": "^6.0.2",
+ "postcss-minify-selectors": "^6.0.2",
"postcss-normalize-charset": "^6.0.1",
"postcss-normalize-display-values": "^6.0.1",
"postcss-normalize-positions": "^6.0.1",
"postcss-normalize-repeat-style": "^6.0.1",
"postcss-normalize-string": "^6.0.1",
"postcss-normalize-timing-functions": "^6.0.1",
- "postcss-normalize-unicode": "^6.0.1",
+ "postcss-normalize-unicode": "^6.0.2",
"postcss-normalize-url": "^6.0.1",
- "postcss-reduce-initial": "^6.0.1",
- "postcss-svgo": "^6.0.1",
- "postcss-unique-selectors": "^6.0.1",
- "postcss-reduce-transforms": "^6.0.1",
+ "postcss-normalize-whitespace": "^6.0.1",
"postcss-ordered-values": "^6.0.1",
- "postcss-normalize-whitespace": "^6.0.1"
+ "postcss-reduce-initial": "^6.0.2",
+ "postcss-reduce-transforms": "^6.0.1",
+ "postcss-svgo": "^6.0.2",
+ "postcss-unique-selectors": "^6.0.2"
},
"author": {
"name": "Ben Briggs",
diff --git a/node_modules/cssnano/package.json b/node_modules/cssnano/package.json
index 1b42081d..d8c4bcc2 100644
--- a/node_modules/cssnano/package.json
+++ b/node_modules/cssnano/package.json
@@ -1,6 +1,6 @@
{
"name": "cssnano",
- "version": "6.0.2",
+ "version": "6.0.3",
"description": "A modular minifier, built on top of the PostCSS ecosystem.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -20,7 +20,7 @@
"license": "MIT",
"dependencies": {
"lilconfig": "^3.0.0",
- "cssnano-preset-default": "^6.0.2"
+ "cssnano-preset-default": "^6.0.3"
},
"homepage": "https://github.com/cssnano/cssnano",
"author": {
@@ -41,9 +41,9 @@
"node": "^14 || ^16 || >=18.0"
},
"devDependencies": {
- "autoprefixer": "^10.4.12",
+ "autoprefixer": "^10.4.16",
"postcss": "^8.4.32",
- "cssnano-preset-advanced": "^6.0.2",
+ "cssnano-preset-advanced": "^6.0.3",
"cssnano-preset-lite": "^3.0.1"
},
"peerDependencies": {
diff --git a/node_modules/electron-to-chromium/full-chromium-versions.js b/node_modules/electron-to-chromium/full-chromium-versions.js
index 9e8d4f7e..5afa2142 100644
--- a/node_modules/electron-to-chromium/full-chromium-versions.js
+++ b/node_modules/electron-to-chromium/full-chromium-versions.js
@@ -2936,7 +2936,8 @@ module.exports = {
"28.0.0"
],
"120.0.6099.109": [
- "28.1.0"
+ "28.1.0",
+ "28.1.1"
],
"121.0.6147.0": [
"29.0.0-alpha.1",
@@ -2955,11 +2956,13 @@ module.exports = {
"121.0.6159.0": [
"29.0.0-alpha.4",
"29.0.0-alpha.5",
+ "29.0.0-alpha.6",
"30.0.0-nightly.20231212",
"30.0.0-nightly.20231213",
"30.0.0-nightly.20231214",
"30.0.0-nightly.20231215",
- "30.0.0-nightly.20231218"
+ "30.0.0-nightly.20231218",
+ "30.0.0-nightly.20240102"
],
"120.0.6078.0": [
"29.0.0-nightly.20231025",
@@ -2995,5 +2998,8 @@ module.exports = {
"29.0.0-nightly.20231124",
"29.0.0-nightly.20231127",
"29.0.0-nightly.20231128"
+ ],
+ "122.0.6194.0": [
+ "30.0.0-nightly.20240103"
]
}; \ No newline at end of file
diff --git a/node_modules/electron-to-chromium/full-chromium-versions.json b/node_modules/electron-to-chromium/full-chromium-versions.json
index 0d95a91c..61d3776e 100644
--- a/node_modules/electron-to-chromium/full-chromium-versions.json
+++ b/node_modules/electron-to-chromium/full-chromium-versions.json
@@ -1 +1 @@
-{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3","25.9.4","25.9.5","25.9.6","25.9.7","25.9.8"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2","26.4.3","26.5.0","26.6.0","26.6.1","26.6.2","26.6.3"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"118.0.5993.120":["27.0.3"],"118.0.5993.129":["27.0.4"],"118.0.5993.144":["27.1.0","27.1.2"],"118.0.5993.159":["27.1.3","27.2.0"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2","28.0.0-nightly.20231006","28.0.0-nightly.20231009","28.0.0-nightly.20231010","28.0.0-nightly.20231011","29.0.0-nightly.20231012","29.0.0-nightly.20231013","29.0.0-nightly.20231016","29.0.0-nightly.20231017","29.0.0-nightly.20231018","29.0.0-nightly.20231019","29.0.0-nightly.20231020","29.0.0-nightly.20231023","29.0.0-nightly.20231024"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6","28.0.0-alpha.7","28.0.0-beta.1"],"120.0.6099.0":["28.0.0-beta.2"],"120.0.6099.5":["28.0.0-beta.3","28.0.0-beta.4"],"120.0.6099.18":["28.0.0-beta.5","28.0.0-beta.6","28.0.0-beta.7","28.0.0-beta.8","28.0.0-beta.9","28.0.0-beta.10"],"120.0.6099.35":["28.0.0-beta.11"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929","28.0.0-nightly.20231002"],"119.0.6043.0":["28.0.0-nightly.20231003","28.0.0-nightly.20231004","28.0.0-nightly.20231005"],"120.0.6099.56":["28.0.0"],"120.0.6099.109":["28.1.0"],"121.0.6147.0":["29.0.0-alpha.1","29.0.0-alpha.2","29.0.0-alpha.3","29.0.0-nightly.20231129","29.0.0-nightly.20231130","29.0.0-nightly.20231201","29.0.0-nightly.20231204","29.0.0-nightly.20231205","29.0.0-nightly.20231206","30.0.0-nightly.20231207","30.0.0-nightly.20231208","30.0.0-nightly.20231211"],"121.0.6159.0":["29.0.0-alpha.4","29.0.0-alpha.5","30.0.0-nightly.20231212","30.0.0-nightly.20231213","30.0.0-nightly.20231214","30.0.0-nightly.20231215","30.0.0-nightly.20231218"],"120.0.6078.0":["29.0.0-nightly.20231025","29.0.0-nightly.20231026","29.0.0-nightly.20231027","29.0.0-nightly.20231030","29.0.0-nightly.20231031","29.0.0-nightly.20231101"],"121.0.6100.0":["29.0.0-nightly.20231102","29.0.0-nightly.20231103"],"121.0.6104.0":["29.0.0-nightly.20231106"],"121.0.6110.0":["29.0.0-nightly.20231107","29.0.0-nightly.20231108","29.0.0-nightly.20231109","29.0.0-nightly.20231110","29.0.0-nightly.20231113","29.0.0-nightly.20231114"],"121.0.6116.0":["29.0.0-nightly.20231115","29.0.0-nightly.20231116","29.0.0-nightly.20231117","29.0.0-nightly.20231120","29.0.0-nightly.20231121","29.0.0-nightly.20231122","29.0.0-nightly.20231123","29.0.0-nightly.20231124","29.0.0-nightly.20231127","29.0.0-nightly.20231128"]} \ No newline at end of file
+{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11","22.3.12","22.3.13","22.3.14","22.3.15","22.3.16","22.3.17","22.3.18","22.3.20","22.3.21","22.3.22","22.3.23","22.3.24","22.3.25","22.3.26","22.3.27"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4","23.3.5","23.3.6","23.3.7","23.3.8","23.3.9","23.3.10","23.3.11","23.3.12","23.3.13"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1","24.5.0","24.5.1","24.6.0","24.6.1","24.6.2","24.6.3","24.6.4","24.6.5","24.7.0","24.7.1","24.8.0","24.8.1","24.8.2","24.8.3","24.8.4","24.8.5","24.8.6","24.8.7","24.8.8"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0","25.0.1"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5735.106":["25.1.0","25.1.1"],"114.0.5735.134":["25.2.0"],"114.0.5735.199":["25.3.0"],"114.0.5735.243":["25.3.1"],"114.0.5735.248":["25.3.2","25.4.0"],"114.0.5735.289":["25.5.0","25.6.0","25.7.0","25.8.0","25.8.1","25.8.2","25.8.3","25.8.4","25.9.0","25.9.1","25.9.2","25.9.3","25.9.4","25.9.5","25.9.6","25.9.7","25.9.8"],"116.0.5791.0":["26.0.0-alpha.1","26.0.0-alpha.2","26.0.0-alpha.3","26.0.0-alpha.4","26.0.0-alpha.5","26.0.0-nightly.20230526","26.0.0-nightly.20230529","26.0.0-nightly.20230530","26.0.0-nightly.20230531","27.0.0-nightly.20230601","27.0.0-nightly.20230602","27.0.0-nightly.20230605","27.0.0-nightly.20230606","27.0.0-nightly.20230607","27.0.0-nightly.20230609"],"116.0.5815.0":["26.0.0-alpha.6","27.0.0-nightly.20230612","27.0.0-nightly.20230613"],"116.0.5831.0":["26.0.0-alpha.7","27.0.0-nightly.20230615"],"116.0.5845.0":["26.0.0-alpha.8","26.0.0-beta.1","27.0.0-nightly.20230622","27.0.0-nightly.20230623","27.0.0-nightly.20230626","27.0.0-nightly.20230627","27.0.0-nightly.20230628","27.0.0-nightly.20230629","27.0.0-nightly.20230630"],"116.0.5845.14":["26.0.0-beta.2","26.0.0-beta.3","26.0.0-beta.4","26.0.0-beta.5","26.0.0-beta.6","26.0.0-beta.7"],"116.0.5845.42":["26.0.0-beta.8","26.0.0-beta.9"],"116.0.5845.49":["26.0.0-beta.10","26.0.0-beta.11"],"116.0.5845.62":["26.0.0-beta.12"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5845.82":["26.0.0"],"116.0.5845.97":["26.1.0"],"116.0.5845.179":["26.2.0"],"116.0.5845.188":["26.2.1"],"116.0.5845.190":["26.2.2","26.2.3","26.2.4"],"116.0.5845.228":["26.3.0","26.4.0","26.4.1","26.4.2","26.4.3","26.5.0","26.6.0","26.6.1","26.6.2","26.6.3"],"118.0.5949.0":["27.0.0-alpha.1","27.0.0-alpha.2","27.0.0-alpha.3","27.0.0-alpha.4","27.0.0-alpha.5","27.0.0-alpha.6","27.0.0-nightly.20230816","28.0.0-nightly.20230817","28.0.0-nightly.20230818","28.0.0-nightly.20230821","28.0.0-nightly.20230822","28.0.0-nightly.20230823","28.0.0-nightly.20230824","28.0.0-nightly.20230825","28.0.0-nightly.20230828","28.0.0-nightly.20230829","28.0.0-nightly.20230830","28.0.0-nightly.20230831"],"118.0.5993.5":["27.0.0-beta.1","27.0.0-beta.2","27.0.0-beta.3"],"118.0.5993.11":["27.0.0-beta.4"],"118.0.5993.18":["27.0.0-beta.5","27.0.0-beta.6","27.0.0-beta.7","27.0.0-beta.8","27.0.0-beta.9"],"116.0.5829.0":["27.0.0-nightly.20230614"],"116.0.5833.0":["27.0.0-nightly.20230616","27.0.0-nightly.20230619","27.0.0-nightly.20230620","27.0.0-nightly.20230621"],"117.0.5852.0":["27.0.0-nightly.20230703","27.0.0-nightly.20230704","27.0.0-nightly.20230705","27.0.0-nightly.20230706","27.0.0-nightly.20230707","27.0.0-nightly.20230710","27.0.0-nightly.20230711","27.0.0-nightly.20230712","27.0.0-nightly.20230713","27.0.0-nightly.20230714"],"117.0.5884.1":["27.0.0-nightly.20230717","27.0.0-nightly.20230718"],"117.0.5892.0":["27.0.0-nightly.20230719"],"117.0.5897.0":["27.0.0-nightly.20230720","27.0.0-nightly.20230721","27.0.0-nightly.20230724","27.0.0-nightly.20230725","27.0.0-nightly.20230726","27.0.0-nightly.20230727","27.0.0-nightly.20230728","27.0.0-nightly.20230731"],"117.0.5911.0":["27.0.0-nightly.20230801","27.0.0-nightly.20230802","27.0.0-nightly.20230803"],"117.0.5921.0":["27.0.0-nightly.20230804","27.0.0-nightly.20230807","27.0.0-nightly.20230808","27.0.0-nightly.20230814","27.0.0-nightly.20230815"],"118.0.5993.54":["27.0.0"],"118.0.5993.89":["27.0.1","27.0.2"],"118.0.5993.120":["27.0.3"],"118.0.5993.129":["27.0.4"],"118.0.5993.144":["27.1.0","27.1.2"],"118.0.5993.159":["27.1.3","27.2.0"],"119.0.6045.0":["28.0.0-alpha.1","28.0.0-alpha.2","28.0.0-nightly.20231006","28.0.0-nightly.20231009","28.0.0-nightly.20231010","28.0.0-nightly.20231011","29.0.0-nightly.20231012","29.0.0-nightly.20231013","29.0.0-nightly.20231016","29.0.0-nightly.20231017","29.0.0-nightly.20231018","29.0.0-nightly.20231019","29.0.0-nightly.20231020","29.0.0-nightly.20231023","29.0.0-nightly.20231024"],"119.0.6045.21":["28.0.0-alpha.3","28.0.0-alpha.4"],"119.0.6045.33":["28.0.0-alpha.5","28.0.0-alpha.6","28.0.0-alpha.7","28.0.0-beta.1"],"120.0.6099.0":["28.0.0-beta.2"],"120.0.6099.5":["28.0.0-beta.3","28.0.0-beta.4"],"120.0.6099.18":["28.0.0-beta.5","28.0.0-beta.6","28.0.0-beta.7","28.0.0-beta.8","28.0.0-beta.9","28.0.0-beta.10"],"120.0.6099.35":["28.0.0-beta.11"],"118.0.5991.0":["28.0.0-nightly.20230906"],"118.0.5993.0":["28.0.0-nightly.20230907","28.0.0-nightly.20230908","28.0.0-nightly.20230911","28.0.0-nightly.20230912","28.0.0-nightly.20230913","28.0.0-nightly.20230914","28.0.0-nightly.20230915"],"119.0.6006.0":["28.0.0-nightly.20230919"],"119.0.6017.0":["28.0.0-nightly.20230920"],"119.0.6019.2":["28.0.0-nightly.20230921","28.0.0-nightly.20230925","28.0.0-nightly.20230926","28.0.0-nightly.20230927","28.0.0-nightly.20230928"],"119.0.6029.0":["28.0.0-nightly.20230929","28.0.0-nightly.20231002"],"119.0.6043.0":["28.0.0-nightly.20231003","28.0.0-nightly.20231004","28.0.0-nightly.20231005"],"120.0.6099.56":["28.0.0"],"120.0.6099.109":["28.1.0","28.1.1"],"121.0.6147.0":["29.0.0-alpha.1","29.0.0-alpha.2","29.0.0-alpha.3","29.0.0-nightly.20231129","29.0.0-nightly.20231130","29.0.0-nightly.20231201","29.0.0-nightly.20231204","29.0.0-nightly.20231205","29.0.0-nightly.20231206","30.0.0-nightly.20231207","30.0.0-nightly.20231208","30.0.0-nightly.20231211"],"121.0.6159.0":["29.0.0-alpha.4","29.0.0-alpha.5","29.0.0-alpha.6","30.0.0-nightly.20231212","30.0.0-nightly.20231213","30.0.0-nightly.20231214","30.0.0-nightly.20231215","30.0.0-nightly.20231218","30.0.0-nightly.20240102"],"120.0.6078.0":["29.0.0-nightly.20231025","29.0.0-nightly.20231026","29.0.0-nightly.20231027","29.0.0-nightly.20231030","29.0.0-nightly.20231031","29.0.0-nightly.20231101"],"121.0.6100.0":["29.0.0-nightly.20231102","29.0.0-nightly.20231103"],"121.0.6104.0":["29.0.0-nightly.20231106"],"121.0.6110.0":["29.0.0-nightly.20231107","29.0.0-nightly.20231108","29.0.0-nightly.20231109","29.0.0-nightly.20231110","29.0.0-nightly.20231113","29.0.0-nightly.20231114"],"121.0.6116.0":["29.0.0-nightly.20231115","29.0.0-nightly.20231116","29.0.0-nightly.20231117","29.0.0-nightly.20231120","29.0.0-nightly.20231121","29.0.0-nightly.20231122","29.0.0-nightly.20231123","29.0.0-nightly.20231124","29.0.0-nightly.20231127","29.0.0-nightly.20231128"],"122.0.6194.0":["30.0.0-nightly.20240103"]} \ No newline at end of file
diff --git a/node_modules/electron-to-chromium/full-versions.js b/node_modules/electron-to-chromium/full-versions.js
index 09b999f7..7fa94af7 100644
--- a/node_modules/electron-to-chromium/full-versions.js
+++ b/node_modules/electron-to-chromium/full-versions.js
@@ -2129,11 +2129,13 @@ module.exports = {
"28.0.0-nightly.20231011": "119.0.6045.0",
"28.0.0": "120.0.6099.56",
"28.1.0": "120.0.6099.109",
+ "28.1.1": "120.0.6099.109",
"29.0.0-alpha.1": "121.0.6147.0",
"29.0.0-alpha.2": "121.0.6147.0",
"29.0.0-alpha.3": "121.0.6147.0",
"29.0.0-alpha.4": "121.0.6159.0",
"29.0.0-alpha.5": "121.0.6159.0",
+ "29.0.0-alpha.6": "121.0.6159.0",
"29.0.0-nightly.20231012": "119.0.6045.0",
"29.0.0-nightly.20231013": "119.0.6045.0",
"29.0.0-nightly.20231016": "119.0.6045.0",
@@ -2181,5 +2183,7 @@ module.exports = {
"30.0.0-nightly.20231213": "121.0.6159.0",
"30.0.0-nightly.20231214": "121.0.6159.0",
"30.0.0-nightly.20231215": "121.0.6159.0",
- "30.0.0-nightly.20231218": "121.0.6159.0"
+ "30.0.0-nightly.20231218": "121.0.6159.0",
+ "30.0.0-nightly.20240102": "121.0.6159.0",
+ "30.0.0-nightly.20240103": "122.0.6194.0"
}; \ No newline at end of file
diff --git a/node_modules/electron-to-chromium/full-versions.json b/node_modules/electron-to-chromium/full-versions.json
index 9ebd6e4f..c62da558 100644
--- a/node_modules/electron-to-chromium/full-versions.json
+++ b/node_modules/electron-to-chromium/full-versions.json
@@ -1 +1 @@
-{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","25.9.4":"114.0.5735.289","25.9.5":"114.0.5735.289","25.9.6":"114.0.5735.289","25.9.7":"114.0.5735.289","25.9.8":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","26.4.3":"116.0.5845.228","26.5.0":"116.0.5845.228","26.6.0":"116.0.5845.228","26.6.1":"116.0.5845.228","26.6.2":"116.0.5845.228","26.6.3":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","27.0.3":"118.0.5993.120","27.0.4":"118.0.5993.129","27.1.0":"118.0.5993.144","27.1.2":"118.0.5993.144","27.1.3":"118.0.5993.159","27.2.0":"118.0.5993.159","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-alpha.7":"119.0.6045.33","28.0.0-beta.1":"119.0.6045.33","28.0.0-beta.2":"120.0.6099.0","28.0.0-beta.3":"120.0.6099.5","28.0.0-beta.4":"120.0.6099.5","28.0.0-beta.5":"120.0.6099.18","28.0.0-beta.6":"120.0.6099.18","28.0.0-beta.7":"120.0.6099.18","28.0.0-beta.8":"120.0.6099.18","28.0.0-beta.9":"120.0.6099.18","28.0.0-beta.10":"120.0.6099.18","28.0.0-beta.11":"120.0.6099.35","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0","28.0.0-nightly.20231002":"119.0.6029.0","28.0.0-nightly.20231003":"119.0.6043.0","28.0.0-nightly.20231004":"119.0.6043.0","28.0.0-nightly.20231005":"119.0.6043.0","28.0.0-nightly.20231006":"119.0.6045.0","28.0.0-nightly.20231009":"119.0.6045.0","28.0.0-nightly.20231010":"119.0.6045.0","28.0.0-nightly.20231011":"119.0.6045.0","28.0.0":"120.0.6099.56","28.1.0":"120.0.6099.109","29.0.0-alpha.1":"121.0.6147.0","29.0.0-alpha.2":"121.0.6147.0","29.0.0-alpha.3":"121.0.6147.0","29.0.0-alpha.4":"121.0.6159.0","29.0.0-alpha.5":"121.0.6159.0","29.0.0-nightly.20231012":"119.0.6045.0","29.0.0-nightly.20231013":"119.0.6045.0","29.0.0-nightly.20231016":"119.0.6045.0","29.0.0-nightly.20231017":"119.0.6045.0","29.0.0-nightly.20231018":"119.0.6045.0","29.0.0-nightly.20231019":"119.0.6045.0","29.0.0-nightly.20231020":"119.0.6045.0","29.0.0-nightly.20231023":"119.0.6045.0","29.0.0-nightly.20231024":"119.0.6045.0","29.0.0-nightly.20231025":"120.0.6078.0","29.0.0-nightly.20231026":"120.0.6078.0","29.0.0-nightly.20231027":"120.0.6078.0","29.0.0-nightly.20231030":"120.0.6078.0","29.0.0-nightly.20231031":"120.0.6078.0","29.0.0-nightly.20231101":"120.0.6078.0","29.0.0-nightly.20231102":"121.0.6100.0","29.0.0-nightly.20231103":"121.0.6100.0","29.0.0-nightly.20231106":"121.0.6104.0","29.0.0-nightly.20231107":"121.0.6110.0","29.0.0-nightly.20231108":"121.0.6110.0","29.0.0-nightly.20231109":"121.0.6110.0","29.0.0-nightly.20231110":"121.0.6110.0","29.0.0-nightly.20231113":"121.0.6110.0","29.0.0-nightly.20231114":"121.0.6110.0","29.0.0-nightly.20231115":"121.0.6116.0","29.0.0-nightly.20231116":"121.0.6116.0","29.0.0-nightly.20231117":"121.0.6116.0","29.0.0-nightly.20231120":"121.0.6116.0","29.0.0-nightly.20231121":"121.0.6116.0","29.0.0-nightly.20231122":"121.0.6116.0","29.0.0-nightly.20231123":"121.0.6116.0","29.0.0-nightly.20231124":"121.0.6116.0","29.0.0-nightly.20231127":"121.0.6116.0","29.0.0-nightly.20231128":"121.0.6116.0","29.0.0-nightly.20231129":"121.0.6147.0","29.0.0-nightly.20231130":"121.0.6147.0","29.0.0-nightly.20231201":"121.0.6147.0","29.0.0-nightly.20231204":"121.0.6147.0","29.0.0-nightly.20231205":"121.0.6147.0","29.0.0-nightly.20231206":"121.0.6147.0","30.0.0-nightly.20231207":"121.0.6147.0","30.0.0-nightly.20231208":"121.0.6147.0","30.0.0-nightly.20231211":"121.0.6147.0","30.0.0-nightly.20231212":"121.0.6159.0","30.0.0-nightly.20231213":"121.0.6159.0","30.0.0-nightly.20231214":"121.0.6159.0","30.0.0-nightly.20231215":"121.0.6159.0","30.0.0-nightly.20231218":"121.0.6159.0"} \ No newline at end of file
+{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","22.3.12":"108.0.5359.215","22.3.13":"108.0.5359.215","22.3.14":"108.0.5359.215","22.3.15":"108.0.5359.215","22.3.16":"108.0.5359.215","22.3.17":"108.0.5359.215","22.3.18":"108.0.5359.215","22.3.20":"108.0.5359.215","22.3.21":"108.0.5359.215","22.3.22":"108.0.5359.215","22.3.23":"108.0.5359.215","22.3.24":"108.0.5359.215","22.3.25":"108.0.5359.215","22.3.26":"108.0.5359.215","22.3.27":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","23.3.5":"110.0.5481.208","23.3.6":"110.0.5481.208","23.3.7":"110.0.5481.208","23.3.8":"110.0.5481.208","23.3.9":"110.0.5481.208","23.3.10":"110.0.5481.208","23.3.11":"110.0.5481.208","23.3.12":"110.0.5481.208","23.3.13":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","24.5.0":"112.0.5615.204","24.5.1":"112.0.5615.204","24.6.0":"112.0.5615.204","24.6.1":"112.0.5615.204","24.6.2":"112.0.5615.204","24.6.3":"112.0.5615.204","24.6.4":"112.0.5615.204","24.6.5":"112.0.5615.204","24.7.0":"112.0.5615.204","24.7.1":"112.0.5615.204","24.8.0":"112.0.5615.204","24.8.1":"112.0.5615.204","24.8.2":"112.0.5615.204","24.8.3":"112.0.5615.204","24.8.4":"112.0.5615.204","24.8.5":"112.0.5615.204","24.8.6":"112.0.5615.204","24.8.7":"112.0.5615.204","24.8.8":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","25.0.1":"114.0.5735.45","25.1.0":"114.0.5735.106","25.1.1":"114.0.5735.106","25.2.0":"114.0.5735.134","25.3.0":"114.0.5735.199","25.3.1":"114.0.5735.243","25.3.2":"114.0.5735.248","25.4.0":"114.0.5735.248","25.5.0":"114.0.5735.289","25.6.0":"114.0.5735.289","25.7.0":"114.0.5735.289","25.8.0":"114.0.5735.289","25.8.1":"114.0.5735.289","25.8.2":"114.0.5735.289","25.8.3":"114.0.5735.289","25.8.4":"114.0.5735.289","25.9.0":"114.0.5735.289","25.9.1":"114.0.5735.289","25.9.2":"114.0.5735.289","25.9.3":"114.0.5735.289","25.9.4":"114.0.5735.289","25.9.5":"114.0.5735.289","25.9.6":"114.0.5735.289","25.9.7":"114.0.5735.289","25.9.8":"114.0.5735.289","26.0.0-alpha.1":"116.0.5791.0","26.0.0-alpha.2":"116.0.5791.0","26.0.0-alpha.3":"116.0.5791.0","26.0.0-alpha.4":"116.0.5791.0","26.0.0-alpha.5":"116.0.5791.0","26.0.0-alpha.6":"116.0.5815.0","26.0.0-alpha.7":"116.0.5831.0","26.0.0-alpha.8":"116.0.5845.0","26.0.0-beta.1":"116.0.5845.0","26.0.0-beta.2":"116.0.5845.14","26.0.0-beta.3":"116.0.5845.14","26.0.0-beta.4":"116.0.5845.14","26.0.0-beta.5":"116.0.5845.14","26.0.0-beta.6":"116.0.5845.14","26.0.0-beta.7":"116.0.5845.14","26.0.0-beta.8":"116.0.5845.42","26.0.0-beta.9":"116.0.5845.42","26.0.0-beta.10":"116.0.5845.49","26.0.0-beta.11":"116.0.5845.49","26.0.0-beta.12":"116.0.5845.62","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0","26.0.0-nightly.20230530":"116.0.5791.0","26.0.0-nightly.20230531":"116.0.5791.0","26.0.0":"116.0.5845.82","26.1.0":"116.0.5845.97","26.2.0":"116.0.5845.179","26.2.1":"116.0.5845.188","26.2.2":"116.0.5845.190","26.2.3":"116.0.5845.190","26.2.4":"116.0.5845.190","26.3.0":"116.0.5845.228","26.4.0":"116.0.5845.228","26.4.1":"116.0.5845.228","26.4.2":"116.0.5845.228","26.4.3":"116.0.5845.228","26.5.0":"116.0.5845.228","26.6.0":"116.0.5845.228","26.6.1":"116.0.5845.228","26.6.2":"116.0.5845.228","26.6.3":"116.0.5845.228","27.0.0-alpha.1":"118.0.5949.0","27.0.0-alpha.2":"118.0.5949.0","27.0.0-alpha.3":"118.0.5949.0","27.0.0-alpha.4":"118.0.5949.0","27.0.0-alpha.5":"118.0.5949.0","27.0.0-alpha.6":"118.0.5949.0","27.0.0-beta.1":"118.0.5993.5","27.0.0-beta.2":"118.0.5993.5","27.0.0-beta.3":"118.0.5993.5","27.0.0-beta.4":"118.0.5993.11","27.0.0-beta.5":"118.0.5993.18","27.0.0-beta.6":"118.0.5993.18","27.0.0-beta.7":"118.0.5993.18","27.0.0-beta.8":"118.0.5993.18","27.0.0-beta.9":"118.0.5993.18","27.0.0-nightly.20230601":"116.0.5791.0","27.0.0-nightly.20230602":"116.0.5791.0","27.0.0-nightly.20230605":"116.0.5791.0","27.0.0-nightly.20230606":"116.0.5791.0","27.0.0-nightly.20230607":"116.0.5791.0","27.0.0-nightly.20230609":"116.0.5791.0","27.0.0-nightly.20230612":"116.0.5815.0","27.0.0-nightly.20230613":"116.0.5815.0","27.0.0-nightly.20230614":"116.0.5829.0","27.0.0-nightly.20230615":"116.0.5831.0","27.0.0-nightly.20230616":"116.0.5833.0","27.0.0-nightly.20230619":"116.0.5833.0","27.0.0-nightly.20230620":"116.0.5833.0","27.0.0-nightly.20230621":"116.0.5833.0","27.0.0-nightly.20230622":"116.0.5845.0","27.0.0-nightly.20230623":"116.0.5845.0","27.0.0-nightly.20230626":"116.0.5845.0","27.0.0-nightly.20230627":"116.0.5845.0","27.0.0-nightly.20230628":"116.0.5845.0","27.0.0-nightly.20230629":"116.0.5845.0","27.0.0-nightly.20230630":"116.0.5845.0","27.0.0-nightly.20230703":"117.0.5852.0","27.0.0-nightly.20230704":"117.0.5852.0","27.0.0-nightly.20230705":"117.0.5852.0","27.0.0-nightly.20230706":"117.0.5852.0","27.0.0-nightly.20230707":"117.0.5852.0","27.0.0-nightly.20230710":"117.0.5852.0","27.0.0-nightly.20230711":"117.0.5852.0","27.0.0-nightly.20230712":"117.0.5852.0","27.0.0-nightly.20230713":"117.0.5852.0","27.0.0-nightly.20230714":"117.0.5852.0","27.0.0-nightly.20230717":"117.0.5884.1","27.0.0-nightly.20230718":"117.0.5884.1","27.0.0-nightly.20230719":"117.0.5892.0","27.0.0-nightly.20230720":"117.0.5897.0","27.0.0-nightly.20230721":"117.0.5897.0","27.0.0-nightly.20230724":"117.0.5897.0","27.0.0-nightly.20230725":"117.0.5897.0","27.0.0-nightly.20230726":"117.0.5897.0","27.0.0-nightly.20230727":"117.0.5897.0","27.0.0-nightly.20230728":"117.0.5897.0","27.0.0-nightly.20230731":"117.0.5897.0","27.0.0-nightly.20230801":"117.0.5911.0","27.0.0-nightly.20230802":"117.0.5911.0","27.0.0-nightly.20230803":"117.0.5911.0","27.0.0-nightly.20230804":"117.0.5921.0","27.0.0-nightly.20230807":"117.0.5921.0","27.0.0-nightly.20230808":"117.0.5921.0","27.0.0-nightly.20230814":"117.0.5921.0","27.0.0-nightly.20230815":"117.0.5921.0","27.0.0-nightly.20230816":"118.0.5949.0","27.0.0":"118.0.5993.54","27.0.1":"118.0.5993.89","27.0.2":"118.0.5993.89","27.0.3":"118.0.5993.120","27.0.4":"118.0.5993.129","27.1.0":"118.0.5993.144","27.1.2":"118.0.5993.144","27.1.3":"118.0.5993.159","27.2.0":"118.0.5993.159","28.0.0-alpha.1":"119.0.6045.0","28.0.0-alpha.2":"119.0.6045.0","28.0.0-alpha.3":"119.0.6045.21","28.0.0-alpha.4":"119.0.6045.21","28.0.0-alpha.5":"119.0.6045.33","28.0.0-alpha.6":"119.0.6045.33","28.0.0-alpha.7":"119.0.6045.33","28.0.0-beta.1":"119.0.6045.33","28.0.0-beta.2":"120.0.6099.0","28.0.0-beta.3":"120.0.6099.5","28.0.0-beta.4":"120.0.6099.5","28.0.0-beta.5":"120.0.6099.18","28.0.0-beta.6":"120.0.6099.18","28.0.0-beta.7":"120.0.6099.18","28.0.0-beta.8":"120.0.6099.18","28.0.0-beta.9":"120.0.6099.18","28.0.0-beta.10":"120.0.6099.18","28.0.0-beta.11":"120.0.6099.35","28.0.0-nightly.20230817":"118.0.5949.0","28.0.0-nightly.20230818":"118.0.5949.0","28.0.0-nightly.20230821":"118.0.5949.0","28.0.0-nightly.20230822":"118.0.5949.0","28.0.0-nightly.20230823":"118.0.5949.0","28.0.0-nightly.20230824":"118.0.5949.0","28.0.0-nightly.20230825":"118.0.5949.0","28.0.0-nightly.20230828":"118.0.5949.0","28.0.0-nightly.20230829":"118.0.5949.0","28.0.0-nightly.20230830":"118.0.5949.0","28.0.0-nightly.20230831":"118.0.5949.0","28.0.0-nightly.20230906":"118.0.5991.0","28.0.0-nightly.20230907":"118.0.5993.0","28.0.0-nightly.20230908":"118.0.5993.0","28.0.0-nightly.20230911":"118.0.5993.0","28.0.0-nightly.20230912":"118.0.5993.0","28.0.0-nightly.20230913":"118.0.5993.0","28.0.0-nightly.20230914":"118.0.5993.0","28.0.0-nightly.20230915":"118.0.5993.0","28.0.0-nightly.20230919":"119.0.6006.0","28.0.0-nightly.20230920":"119.0.6017.0","28.0.0-nightly.20230921":"119.0.6019.2","28.0.0-nightly.20230925":"119.0.6019.2","28.0.0-nightly.20230926":"119.0.6019.2","28.0.0-nightly.20230927":"119.0.6019.2","28.0.0-nightly.20230928":"119.0.6019.2","28.0.0-nightly.20230929":"119.0.6029.0","28.0.0-nightly.20231002":"119.0.6029.0","28.0.0-nightly.20231003":"119.0.6043.0","28.0.0-nightly.20231004":"119.0.6043.0","28.0.0-nightly.20231005":"119.0.6043.0","28.0.0-nightly.20231006":"119.0.6045.0","28.0.0-nightly.20231009":"119.0.6045.0","28.0.0-nightly.20231010":"119.0.6045.0","28.0.0-nightly.20231011":"119.0.6045.0","28.0.0":"120.0.6099.56","28.1.0":"120.0.6099.109","28.1.1":"120.0.6099.109","29.0.0-alpha.1":"121.0.6147.0","29.0.0-alpha.2":"121.0.6147.0","29.0.0-alpha.3":"121.0.6147.0","29.0.0-alpha.4":"121.0.6159.0","29.0.0-alpha.5":"121.0.6159.0","29.0.0-alpha.6":"121.0.6159.0","29.0.0-nightly.20231012":"119.0.6045.0","29.0.0-nightly.20231013":"119.0.6045.0","29.0.0-nightly.20231016":"119.0.6045.0","29.0.0-nightly.20231017":"119.0.6045.0","29.0.0-nightly.20231018":"119.0.6045.0","29.0.0-nightly.20231019":"119.0.6045.0","29.0.0-nightly.20231020":"119.0.6045.0","29.0.0-nightly.20231023":"119.0.6045.0","29.0.0-nightly.20231024":"119.0.6045.0","29.0.0-nightly.20231025":"120.0.6078.0","29.0.0-nightly.20231026":"120.0.6078.0","29.0.0-nightly.20231027":"120.0.6078.0","29.0.0-nightly.20231030":"120.0.6078.0","29.0.0-nightly.20231031":"120.0.6078.0","29.0.0-nightly.20231101":"120.0.6078.0","29.0.0-nightly.20231102":"121.0.6100.0","29.0.0-nightly.20231103":"121.0.6100.0","29.0.0-nightly.20231106":"121.0.6104.0","29.0.0-nightly.20231107":"121.0.6110.0","29.0.0-nightly.20231108":"121.0.6110.0","29.0.0-nightly.20231109":"121.0.6110.0","29.0.0-nightly.20231110":"121.0.6110.0","29.0.0-nightly.20231113":"121.0.6110.0","29.0.0-nightly.20231114":"121.0.6110.0","29.0.0-nightly.20231115":"121.0.6116.0","29.0.0-nightly.20231116":"121.0.6116.0","29.0.0-nightly.20231117":"121.0.6116.0","29.0.0-nightly.20231120":"121.0.6116.0","29.0.0-nightly.20231121":"121.0.6116.0","29.0.0-nightly.20231122":"121.0.6116.0","29.0.0-nightly.20231123":"121.0.6116.0","29.0.0-nightly.20231124":"121.0.6116.0","29.0.0-nightly.20231127":"121.0.6116.0","29.0.0-nightly.20231128":"121.0.6116.0","29.0.0-nightly.20231129":"121.0.6147.0","29.0.0-nightly.20231130":"121.0.6147.0","29.0.0-nightly.20231201":"121.0.6147.0","29.0.0-nightly.20231204":"121.0.6147.0","29.0.0-nightly.20231205":"121.0.6147.0","29.0.0-nightly.20231206":"121.0.6147.0","30.0.0-nightly.20231207":"121.0.6147.0","30.0.0-nightly.20231208":"121.0.6147.0","30.0.0-nightly.20231211":"121.0.6147.0","30.0.0-nightly.20231212":"121.0.6159.0","30.0.0-nightly.20231213":"121.0.6159.0","30.0.0-nightly.20231214":"121.0.6159.0","30.0.0-nightly.20231215":"121.0.6159.0","30.0.0-nightly.20231218":"121.0.6159.0","30.0.0-nightly.20240102":"121.0.6159.0","30.0.0-nightly.20240103":"122.0.6194.0"} \ No newline at end of file
diff --git a/node_modules/electron-to-chromium/package.json b/node_modules/electron-to-chromium/package.json
index 5c4e2c77..1e86ba0b 100644
--- a/node_modules/electron-to-chromium/package.json
+++ b/node_modules/electron-to-chromium/package.json
@@ -1,6 +1,6 @@
{
"name": "electron-to-chromium",
- "version": "1.4.616",
+ "version": "1.4.619",
"description": "Provides a list of electron-to-chromium version mappings",
"main": "index.js",
"files": [
diff --git a/node_modules/postcss-color-functional-notation/CHANGELOG.md b/node_modules/postcss-color-functional-notation/CHANGELOG.md
index ec0f6f17..dd1eee69 100644
--- a/node_modules/postcss-color-functional-notation/CHANGELOG.md
+++ b/node_modules/postcss-color-functional-notation/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Color Functional Notation
+### 6.0.4
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 6.0.3
_December 15, 2023_
@@ -16,11 +24,4 @@ _October 9, 2023_
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 6.0.1
-
-_September 18, 2023_
-
-- Improve performance
-- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-functional-notation/CHANGELOG.md)
diff --git a/node_modules/postcss-color-functional-notation/README.md b/node_modules/postcss-color-functional-notation/README.md
index 7091fb20..6acc35c3 100644
--- a/node_modules/postcss-color-functional-notation/README.md
+++ b/node_modules/postcss-color-functional-notation/README.md
@@ -1,28 +1,29 @@
-# PostCSS Color Functional Notation [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
+# PostCSS Color Functional Notation [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="NPM Version" src="https://img.shields.io/npm/v/postcss-color-functional-notation.svg" height="20">][npm-url]
-[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/lab-function.svg" height="20">][css-url]
-[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url]
-[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/postcss-color-functional-notation.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/color-functional-notation.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/color-functional-notation.svg" height="20">][css-url]
+
+```bash
+npm install postcss-color-functional-notation --save-dev
+```
[PostCSS Color Functional Notation] lets you use space and slash separated
color notation in CSS, following the [CSS Color] specification.
```pcss
:root {
- --firebrick: rgb(178 34 34);
- --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
- --firebrick-hsl: hsla(0 68% 42%);
- --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+ --firebrick: rgb(178 34 34);
+ --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
+ --firebrick-hsl: hsla(0 68% 42%);
+ --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
}
/* becomes */
:root {
- --firebrick: rgb(178, 34, 34);
- --firebrick-a50: rgba(178, 34, 34, .5);
- --firebrick-hsl: hsl(0, 68%, 42%);
- --firebrick-hsl-a50: hsla(0, 68%, 42%, .5);
+ --firebrick: rgb(178, 34, 34);
+ --firebrick-a50: rgba(179, 34, 34, 0.5);
+ --firebrick-hsl: hsl(0, 68%, 42%);
+ --firebrick-hsl-a50: hsla(0, 68%, 42%, 0.5);
}
```
@@ -31,30 +32,36 @@ color notation in CSS, following the [CSS Color] specification.
Add [PostCSS Color Functional Notation] to your project:
```bash
-npm install postcss-color-functional-notation --save-dev
+npm install postcss postcss-color-functional-notation --save-dev
```
-Use [PostCSS Color Functional Notation] to process your CSS:
+Use it as a [PostCSS] plugin:
```js
const postcss = require('postcss');
const postcssColorFunctionalNotation = require('postcss-color-functional-notation');
postcss([
- postcssColorFunctionalNotation(/* pluginOptions */)
+ postcssColorFunctionalNotation(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
```
-[PostCSS Color Functional Notation] runs in all Node environments, with special instructions for:
+[PostCSS Color Functional Notation] runs in all Node environments, with special
+instructions for:
-| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) |
-| --- | --- | --- | --- | --- |
+- [Node](INSTALL.md#node)
+- [PostCSS CLI](INSTALL.md#postcss-cli)
+- [PostCSS Load Config](INSTALL.md#postcss-load-config)
+- [Webpack](INSTALL.md#webpack)
+- [Next.js](INSTALL.md#nextjs)
+- [Gulp](INSTALL.md#gulp)
+- [Grunt](INSTALL.md#grunt)
## Options
### preserve
-The `preserve` option determines whether the original functional color notation
+The `preserve` option determines whether the original notation
is preserved. By default, it is not preserved.
```js
@@ -63,23 +70,33 @@ postcssColorFunctionalNotation({ preserve: true })
```pcss
:root {
- --firebrick: rgb(178 34 34);
- --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
- --firebrick-hsl: hsla(0 68% 42%);
- --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+ --firebrick: rgb(178 34 34);
+ --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
+ --firebrick-hsl: hsla(0 68% 42%);
+ --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
}
/* becomes */
:root {
- --firebrick: rgb(178, 34, 34);
- --firebrick: rgb(178 34 34);
- --firebrick-a50: rgba(178, 34, 34, .5);
- --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
- --firebrick-hsl: hsl(0, 68%, 42%);
- --firebrick-hsl: hsla(0 68% 42%);
- --firebrick-hsl-a50: hsla(0, 68%, 42%, .5);
- --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+ --firebrick: rgb(178, 34, 34);
+ --firebrick-a50: rgba(179, 34, 34, 0.5);
+ --firebrick-hsl: hsl(0, 68%, 42%);
+ --firebrick-hsl: hsla(0 68% 42%);
+ --firebrick-hsl-a50: hsla(0, 68%, 42%, 0.5);
+}
+
+@supports (color: rgb(0 0 0 / 0)) {
+:root {
+ --firebrick: rgb(178 34 34);
+ --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
+}
+}
+
+@supports (color: hsl(0 0% 0% / 0)) {
+:root {
+ --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+}
}
```
@@ -89,20 +106,42 @@ The `enableProgressiveCustomProperties` option determines whether the original n
is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
> [!NOTE]
-> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties.
+> See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
```js
postcssColorFunctionalNotation({ enableProgressiveCustomProperties: false })
```
+```pcss
+:root {
+ --firebrick: rgb(178 34 34);
+ --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
+ --firebrick-hsl: hsla(0 68% 42%);
+ --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+}
+
+/* becomes */
+
+:root {
+ --firebrick: rgb(178, 34, 34);
+ --firebrick: rgb(178 34 34);
+ --firebrick-a50: rgba(179, 34, 34, 0.5);
+ --firebrick-a50: rgb(70% 13.5% 13.5% / 50%);
+ --firebrick-hsl: hsl(0, 68%, 42%);
+ --firebrick-hsl: hsla(0 68% 42%);
+ --firebrick-hsl-a50: hsla(0, 68%, 42%, 0.5);
+ --firebrick-hsl-a50: hsl(0 68% 42% / 50%);
+}
+```
+
+_Custom properties do not fallback to the previous declaration_
+
[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
[css-url]: https://cssdb.org/#color-functional-notation
[discord]: https://discord.gg/bUadyRwkJS
[npm-url]: https://www.npmjs.com/package/postcss-color-functional-notation
-[CSS Color]: https://drafts.csswg.org/css-color/#ref-for-funcdef-rgb%E2%91%A1%E2%91%A0
-[Gulp PostCSS]: https://github.com/postcss/gulp-postcss
-[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
[PostCSS]: https://github.com/postcss/postcss
-[PostCSS Loader]: https://github.com/postcss/postcss-loader
[PostCSS Color Functional Notation]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-functional-notation
+[CSS Color]: https://www.w3.org/TR/css-color-4/#funcdef-rgb
diff --git a/node_modules/postcss-color-functional-notation/dist/index.cjs b/node_modules/postcss-color-functional-notation/dist/index.cjs
index 45316a19..34abcae2 100644
--- a/node_modules/postcss-color-functional-notation/dist/index.cjs
+++ b/node_modules/postcss-color-functional-notation/dist/index.cjs
@@ -1 +1 @@
-"use strict";var s=require("@csstools/postcss-progressive-custom-properties"),e=require("@csstools/css-tokenizer"),t=require("@csstools/css-color-parser"),r=require("@csstools/css-parser-algorithms");function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}const o=/(?:rgb|hsl)a?\(/i;function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&o.test(e.params))return!0;e=e.parent}else e=e.parent;return!1}const a=/^(?:rgb|hsl)a?$/i,basePlugin=s=>({postcssPlugin:"postcss-color-functional-notation",Declaration:n=>{const l=n.value;if(!o.test(l))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const i=r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(e.tokenize({css:l})),(s=>{if(r.isFunctionNode(s)&&a.test(s.getName())){const e=t.color(s);if(!e)return;if(e.syntaxFlags.has(t.SyntaxFlag.Experimental))return;if(e.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords))return;if(e.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax))return;if((e.syntaxFlags.has(t.SyntaxFlag.LegacyRGB)||e.syntaxFlags.has(t.SyntaxFlag.LegacyHSL))&&!e.syntaxFlags.has(t.SyntaxFlag.HasPercentageAlpha))return;return"hsl"===e.colorNotation?t.serializeHSL(e):t.serializeRGB(e)}})),c=r.stringify(i);c!==l&&(n.cloneBefore({value:c}),s?.preserve||n.remove())}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},e);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-color-functional-notation",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var s=require("@csstools/postcss-progressive-custom-properties"),e=require("@csstools/css-tokenizer"),t=require("@csstools/css-color-parser"),r=require("@csstools/css-parser-algorithms");function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}const o=/(?:rgb|hsl)a?\(/i;function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&o.test(e.params))return!0;e=e.parent}else e=e.parent;return!1}const a=/^(?:rgb|hsl)a?$/i,basePlugin=s=>({postcssPlugin:"postcss-color-functional-notation",Declaration:n=>{const l=n.value;if(!o.test(l))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const c=r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(e.tokenize({css:l})),(s=>{if(!r.isFunctionNode(s)||!a.test(s.getName()))return;const e=t.color(s);return!e||e.syntaxFlags.has(t.SyntaxFlag.Experimental)||e.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)||e.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax)||(e.syntaxFlags.has(t.SyntaxFlag.LegacyRGB)||e.syntaxFlags.has(t.SyntaxFlag.LegacyHSL))&&!e.syntaxFlags.has(t.SyntaxFlag.HasPercentageAlpha)?void 0:"hsl"===e.colorNotation?t.serializeHSL(e):t.serializeRGB(e)})),i=r.stringify(c);i!==l&&(n.cloneBefore({value:i}),s?.preserve||n.remove())}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},e);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-color-functional-notation",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/postcss-color-functional-notation/dist/index.mjs b/node_modules/postcss-color-functional-notation/dist/index.mjs
index 261f1b9d..432ff6bc 100644
--- a/node_modules/postcss-color-functional-notation/dist/index.mjs
+++ b/node_modules/postcss-color-functional-notation/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as t}from"@csstools/css-tokenizer";import{color as e,SyntaxFlag as r,serializeHSL as o,serializeRGB as a}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as c,isFunctionNode as l,stringify as i}from"@csstools/css-parser-algorithms";function hasFallback(s){const t=s.parent;if(!t)return!1;const e=s.prop.toLowerCase(),r=t.index(s);for(let s=0;s<r;s++){const r=t.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===e)return!0}return!1}const p=/(?:rgb|hsl)a?\(/i;function hasSupportsAtRuleAncestor(s){let t=s.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&p.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const u=/^(?:rgb|hsl)a?$/i,basePlugin=s=>({postcssPlugin:"postcss-color-functional-notation",Declaration:f=>{const g=f.value;if(!p.test(g))return;if(hasFallback(f))return;if(hasSupportsAtRuleAncestor(f))return;const m=n(c(t({css:g})),(s=>{if(l(s)&&u.test(s.getName())){const t=e(s);if(!t)return;if(t.syntaxFlags.has(r.Experimental))return;if(t.syntaxFlags.has(r.HasNoneKeywords))return;if(t.syntaxFlags.has(r.RelativeColorSyntax))return;if((t.syntaxFlags.has(r.LegacyRGB)||t.syntaxFlags.has(r.LegacyHSL))&&!t.syntaxFlags.has(r.HasPercentageAlpha))return;return"hsl"===t.colorNotation?o(t):a(t)}})),h=i(m);h!==g&&(f.cloneBefore({value:h}),s?.preserve||f.remove())}});basePlugin.postcss=!0;const postcssPlugin=t=>{const e=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},t);return e.enableProgressiveCustomProperties&&e.preserve?{postcssPlugin:"postcss-color-functional-notation",plugins:[s(),basePlugin(e)]}:basePlugin(e)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as t}from"@csstools/css-tokenizer";import{color as e,SyntaxFlag as o,serializeHSL as r,serializeRGB as a}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as c,isFunctionNode as l,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const t=s.parent;if(!t)return!1;const e=s.prop.toLowerCase(),o=t.index(s);for(let s=0;s<o;s++){const o=t.nodes[s];if("decl"===o.type&&o.prop.toLowerCase()===e)return!0}return!1}const i=/(?:rgb|hsl)a?\(/i;function hasSupportsAtRuleAncestor(s){let t=s.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&i.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const u=/^(?:rgb|hsl)a?$/i,basePlugin=s=>({postcssPlugin:"postcss-color-functional-notation",Declaration:f=>{const g=f.value;if(!i.test(g))return;if(hasFallback(f))return;if(hasSupportsAtRuleAncestor(f))return;const m=n(c(t({css:g})),(s=>{if(!l(s)||!u.test(s.getName()))return;const t=e(s);return!t||t.syntaxFlags.has(o.Experimental)||t.syntaxFlags.has(o.HasNoneKeywords)||t.syntaxFlags.has(o.RelativeColorSyntax)||(t.syntaxFlags.has(o.LegacyRGB)||t.syntaxFlags.has(o.LegacyHSL))&&!t.syntaxFlags.has(o.HasPercentageAlpha)?void 0:"hsl"===t.colorNotation?r(t):a(t)})),h=p(m);h!==g&&(f.cloneBefore({value:h}),s?.preserve||f.remove())}});basePlugin.postcss=!0;const postcssPlugin=t=>{const e=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},t);return e.enableProgressiveCustomProperties&&e.preserve?{postcssPlugin:"postcss-color-functional-notation",plugins:[s(),basePlugin(e)]}:basePlugin(e)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/postcss-color-functional-notation/package.json b/node_modules/postcss-color-functional-notation/package.json
index ab25e121..d7850e0a 100644
--- a/node_modules/postcss-color-functional-notation/package.json
+++ b/node_modules/postcss-color-functional-notation/package.json
@@ -1,7 +1,7 @@
{
"name": "postcss-color-functional-notation",
"description": "Use space and slash separated color notation in CSS",
- "version": "6.0.3",
+ "version": "6.0.4",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -38,9 +38,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/postcss-colormin/package.json b/node_modules/postcss-colormin/package.json
index 812a8408..a2d3d12c 100644
--- a/node_modules/postcss-colormin/package.json
+++ b/node_modules/postcss-colormin/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-colormin",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Minify colors in your CSS files with PostCSS.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -27,7 +27,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0",
"colord": "^2.9.1",
"postcss-value-parser": "^4.2.0"
@@ -39,7 +39,7 @@
"node": "^14 || ^16 || >=18.0"
},
"devDependencies": {
- "@types/caniuse-api": "^3.0.2",
+ "@types/caniuse-api": "^3.0.6",
"postcss": "^8.4.32"
},
"peerDependencies": {
diff --git a/node_modules/postcss-convert-values/package.json b/node_modules/postcss-convert-values/package.json
index 5a0bf006..5d62fca2 100644
--- a/node_modules/postcss-convert-values/package.json
+++ b/node_modules/postcss-convert-values/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-convert-values",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Convert values with PostCSS (e.g. ms -> s)",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -24,7 +24,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"postcss-value-parser": "^4.2.0"
},
"bugs": {
diff --git a/node_modules/postcss-custom-properties/CHANGELOG.md b/node_modules/postcss-custom-properties/CHANGELOG.md
index 4b6d936d..0a510782 100644
--- a/node_modules/postcss-custom-properties/CHANGELOG.md
+++ b/node_modules/postcss-custom-properties/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Custom Properties
+### 13.3.4
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/cascade-layer-name-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser) to [`1.0.7`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md#107) (patch)
+
### 13.3.3
_December 15, 2023_
@@ -17,10 +25,4 @@ _September 24, 2023_
- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch)
- Updated [`@csstools/cascade-layer-name-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser) to [`1.0.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md#105) (patch)
-### 13.3.1
-
-_September 18, 2023_
-
-- Improve performance
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-properties/CHANGELOG.md)
diff --git a/node_modules/postcss-custom-properties/README.md b/node_modules/postcss-custom-properties/README.md
index ffd5a35e..bdf1a410 100644
--- a/node_modules/postcss-custom-properties/README.md
+++ b/node_modules/postcss-custom-properties/README.md
@@ -1,6 +1,6 @@
# PostCSS Custom Properties [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
-[<img alt="npm version" src="https://img.shields.io/npm/v/postcss-custom-properties.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/custom-properties.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+[<img alt="npm version" src="https://img.shields.io/npm/v/postcss-custom-properties.svg" height="20">][npm-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]<br><br>[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/custom-properties.svg" height="20">][css-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/custom-properties.svg" height="20">][css-url]
```bash
npm install postcss-custom-properties --save-dev
diff --git a/node_modules/postcss-custom-properties/dist/index.cjs b/node_modules/postcss-custom-properties/dist/index.cjs
index 24b50e03..61ed9f33 100644
--- a/node_modules/postcss-custom-properties/dist/index.cjs
+++ b/node_modules/postcss-custom-properties/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("postcss-value-parser"),t=require("@csstools/cascade-layer-name-parser");const r=t.parse("csstools-implicit-layer")[0];function collectCascadeLayerOrder(e){const n=new Map,o=new Map,s=[];e.walkAtRules((e=>{if("layer"!==e.name.toLowerCase())return;{let t=e.parent;for(;t;){if("atrule"!==t.type||"layer"!==t.name.toLowerCase()){if(t===e.root())break;return}t=t.parent}}let a;if(e.nodes)a=normalizeLayerName(e.params,1);else{if(!e.params.trim())return;a=e.params}let i=t.parse(a);if(i?.length){{let t=e.parent;for(;t&&"atrule"===t.type&&"layer"===t.name.toLowerCase();){const e=o.get(t);e?(i=i.map((t=>e.concat(t))),t=t.parent):t=t.parent}}if(t.addLayerToModel(s,i),e.nodes){const t=i[0].concat(r);n.set(e,t),o.set(e,i[0])}}}));for(const e of n.values())t.addLayerToModel(s,[e]);const a=new WeakMap;for(const[e,t]of n)a.set(e,s.findIndex((e=>t.equal(e))));return a}function normalizeLayerName(e,t){return e.trim()?e:"csstools-anon-layer--"+t++}const n=/(!\s*)?postcss-custom-properties:\s*off\b/i,o=new WeakMap;function isBlockIgnored(e){if(!e||!e.nodes)return!1;if(o.has(e))return o.get(e);const t=e.some((e=>isIgnoreComment(e,n)));return o.set(e,t),t}const s=/(!\s*)?postcss-custom-properties:\s*ignore\s+next\b/i;function isDeclarationIgnored(e){return!!e&&(!!isBlockIgnored(e.parent)||isIgnoreComment(e.prev(),s))}function isIgnoreComment(e,t){return!!e&&"comment"===e.type&&t.test(e.text)}const a=new Set(["layer"]);function isProcessableRule(e){let t=e.parent;for(;t;){if("atrule"===t.type&&!a.has(t.name.toLowerCase()))return!1;t=t.parent}return!0}const i=/^html$/i,l=/^:where\(html\)$/i,c=/^:root$/i,u=/^:where\(:root\)$/i,p=/(html|:root)/i,f=/^var$/i;function isVarFunction(e){return"function"===e.type&&f.test(e.value)&&Object(e.nodes).length>0}const d=/var\(/i;function removeCyclicReferences(e,t){const r=new Set;let n=t;for(;e.size>0;)try{toposort(Array.from(e.keys()),n);break}catch(t){if(!t._graphNode)throw t;e.delete(t._graphNode),r.add(t._graphNode),n=n.filter((e=>-1===e.indexOf(t._graphNode)))}return r}function toposort(e,t){let r=e.length;const n=new Array(r),o={};let s=r;const a=makeOutgoingEdges(t),i=makeNodesHash(e);for(;s--;)o[s]||visit(e[s],s,new Set);return n;function visit(e,t,s){if(s.has(e)){const t=new Error("Cyclic dependency"+JSON.stringify(e));throw t._graphNode=e,t}if(!i.has(e))return;if(o[t])return;o[t]=!0;let l=a.get(e)||new Set;if(l=Array.from(l),t=l.length){s.add(e);do{const e=l[--t];visit(e,i.get(e),s)}while(t);s.delete(e)}n[--r]=e}}function makeOutgoingEdges(e){const t=new Map;for(let r=0,n=e.length;r<n;r++){const n=e[r];t.has(n[0])||t.set(n[0],new Set),t.has(n[1])||t.set(n[1],new Set),t.get(n[0]).add(n[1])}return t}function makeNodesHash(e){const t=new Map;for(let r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}function parseOrCached(t,r){let n=r.get(t);return n||(n=e(t),r.set(t,n),n)}function getCustomPropertiesFromRoot(t,r){const n=new Map,o=new Map,s=collectCascadeLayerOrder(t);t.walkRules((e=>{p.test(e.selector)&&e.nodes?.length&&isProcessableRule(e)&&(isBlockIgnored(e)||e.selectors.forEach((t=>{let r=-1;if(l.test(t)||u.test(t))r=0;else if(i.test(t))r=1;else{if(!c.test(t))return;r=2}const a=(f=s,((p=e).parent&&"atrule"===p.parent.type&&"layer"===p.parent.name.toLowerCase()?f.has(p.parent)?f.get(p.parent)+1:0:1e7)+10+r);var p,f;e.each((e=>{if("decl"!==e.type)return;if(!e.variable||isDeclarationIgnored(e))return;if("initial"===e.value.toLowerCase().trim())return;const t=o.get(e.prop)??-1;a>=t&&(o.set(e.prop,a),n.set(e.prop,e.value))}))})))}));const a=[],f=new Map;for(const[t,o]of n.entries()){const n=parseOrCached(o,r);e.walk(n.nodes,(e=>{if(isVarFunction(e)){const[r]=e.nodes.filter((e=>"word"===e.type));a.push([r.value,t])}})),f.set(t,n)}return removeCyclicReferences(f,a),f}function transformValueAST(t,r,n){if(!t.nodes?.length)return"";const o=new Map;return t.nodes.forEach((e=>{o.set(e,t)})),e.walk(t.nodes,(e=>{"nodes"in e&&e.nodes.length&&e.nodes.forEach((t=>{o.set(t,e)}))})),e.walk(t.nodes,(t=>{if(!isVarFunction(t))return;const[s,...a]=t.nodes.filter((e=>"div"!==e.type)),{value:i}=s,l=o.get(t);if(!l)return;const c=l.nodes.indexOf(t);if(-1===c)return;let u=!1;a&&e.walk(a,(e=>{if(isVarFunction(e)){const[t]=e.nodes.filter((e=>"word"===e.type));if(r.has(t.value)||n.has(t.value))return;return u=!0,!1}}));let p=n.get(i)?.nodes??r.get(i)?.nodes;p||!a.length||u||(p=t.nodes.slice(t.nodes.indexOf(a[0]))),void 0!==p&&(p.length?(l.nodes.splice(c,1,...p),l.nodes.forEach((e=>o.set(e,l)))):(l.nodes.splice(c,1,{type:"comment",value:"",sourceIndex:t.sourceIndex,sourceEndIndex:t.sourceEndIndex}),l.nodes.forEach((e=>o.set(e,l)))))}),!0),e.stringify(t.nodes)}function transformProperties(t,r,n,o,s){if(isTransformableDecl(t)&&!isDeclarationIgnored(t)){const o=t.value;let a=transformValueAST(e(o),r,n);const i=new Set;for(;d.test(a)&&!i.has(a);){i.add(a);a=transformValueAST(e(a),r,n)}if(a!==o){if(parentHasExactFallback(t,a))return void(s.preserve||t.remove());if(s.preserve){const e=t.cloneBefore({value:a});hasTrailingComment(e)&&e.raws?.value&&(e.raws.value.value=e.value.replace(w,"$1"),e.raws.value.raw=e.raws.value.value+e.raws.value.raw.replace(w,"$2"))}else t.value=a,hasTrailingComment(t)&&t.raws?.value&&(t.raws.value.value=t.value.replace(w,"$1"),t.raws.value.raw=t.raws.value.value+t.raws.value.raw.replace(w,"$2"))}}}const isTransformableDecl=e=>!e.variable&&e.value.includes("--")&&e.value.toLowerCase().includes("var("),hasTrailingComment=e=>"value"in Object(Object(e.raws).value)&&"raw"in(e.raws?.value??{})&&w.test(e.raws.value?.raw??""),w=/^([\W\w]+)(\s*\/\*[\W\w]+?\*\/)$/;function parentHasExactFallback(e,t){if(!e||!e.parent)return!1;let r=!1;const n=e.parent.index(e);return e.parent.each(((o,s)=>o!==e&&(!(s>=n)&&void("decl"===o.type&&o.prop.toLowerCase()===e.prop.toLowerCase()&&o.value===t&&(r=!0))))),r}function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&/([^\w]var\()|(\(top: var\(--f\))/i.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const v=/^initial$/i,creator=e=>{const t=!("preserve"in Object(e))||Boolean(e?.preserve);if("importFrom"in Object(e))throw new Error('[postcss-custom-properties] "importFrom" is no longer supported');if("exportTo"in Object(e))throw new Error('[postcss-custom-properties] "exportTo" is no longer supported');return{postcssPlugin:"postcss-custom-properties",prepare:()=>{let e=new Map;const r=new Map;return{Once:t=>{e=getCustomPropertiesFromRoot(t,r)},Declaration:n=>{if(!d.test(n.value))return;if(hasSupportsAtRuleAncestor(n))return;const o=new Map;t&&n.parent&&n.parent.each((e=>{"decl"===e.type&&e.variable&&n!==e&&(isDeclarationIgnored(e)||(v.test(e.value)?o.delete(e.prop):o.set(e.prop,parseOrCached(e.value,r))))})),transformProperties(n,e,o,0,{preserve:t})}}}}};creator.postcss=!0,module.exports=creator;
+"use strict";var e=require("postcss-value-parser"),t=require("@csstools/cascade-layer-name-parser");const r=t.parse("csstools-implicit-layer")[0];function collectCascadeLayerOrder(e){const n=new Map,o=new Map,s=[];e.walkAtRules((e=>{if("layer"!==e.name.toLowerCase())return;{let t=e.parent;for(;t;){if("atrule"!==t.type||"layer"!==t.name.toLowerCase()){if(t===e.root())break;return}t=t.parent}}let a;if(e.nodes)a=normalizeLayerName(e.params,1);else{if(!e.params.trim())return;a=e.params}let i=t.parse(a);if(i?.length){{let t=e.parent;for(;t&&"atrule"===t.type&&"layer"===t.name.toLowerCase();){const e=o.get(t);e?(i=i.map((t=>e.concat(t))),t=t.parent):t=t.parent}}if(t.addLayerToModel(s,i),e.nodes){const t=i[0].concat(r);n.set(e,t),o.set(e,i[0])}}}));for(const e of n.values())t.addLayerToModel(s,[e]);const a=new WeakMap;for(const[e,t]of n)a.set(e,s.findIndex((e=>t.equal(e))));return a}function normalizeLayerName(e,t){return e.trim()?e:"csstools-anon-layer--"+t++}const n=/(!\s*)?postcss-custom-properties:\s*off\b/i,o=new WeakMap;function isBlockIgnored(e){if(!e||!e.nodes)return!1;if(o.has(e))return o.get(e);const t=e.some((e=>isIgnoreComment(e,n)));return o.set(e,t),t}const s=/(!\s*)?postcss-custom-properties:\s*ignore\s+next\b/i;function isDeclarationIgnored(e){return!!e&&(!!isBlockIgnored(e.parent)||isIgnoreComment(e.prev(),s))}function isIgnoreComment(e,t){return!!e&&"comment"===e.type&&t.test(e.text)}const a=new Set(["layer"]);function isProcessableRule(e){let t=e.parent;for(;t;){if("atrule"===t.type&&!a.has(t.name.toLowerCase()))return!1;t=t.parent}return!0}const i=/^html$/i,l=/^:where\(html\)$/i,c=/^:root$/i,u=/^:where\(:root\)$/i,p=/(html|:root)/i,f=/^var$/i;function isVarFunction(e){return"function"===e.type&&f.test(e.value)&&Object(e.nodes).length>0}const d=/var\(/i;function removeCyclicReferences(e,t){const r=new Set;let n=t;for(;e.size>0;)try{toposort(Array.from(e.keys()),n);break}catch(t){if(!t._graphNode)throw t;e.delete(t._graphNode),r.add(t._graphNode),n=n.filter((e=>-1===e.indexOf(t._graphNode)))}return r}function toposort(e,t){let r=e.length;const n=new Array(r),o={};let s=r;const a=makeOutgoingEdges(t),i=makeNodesHash(e);for(;s--;)o[s]||visit(e[s],s,new Set);return n;function visit(e,t,s){if(s.has(e)){const t=new Error("Cyclic dependency"+JSON.stringify(e));throw t._graphNode=e,t}if(!i.has(e))return;if(o[t])return;o[t]=!0;let l=a.get(e)||new Set;if(l=Array.from(l),t=l.length){s.add(e);do{const e=l[--t];visit(e,i.get(e),s)}while(t);s.delete(e)}n[--r]=e}}function makeOutgoingEdges(e){const t=new Map;for(let r=0,n=e.length;r<n;r++){const n=e[r];t.has(n[0])||t.set(n[0],new Set),t.has(n[1])||t.set(n[1],new Set),t.get(n[0]).add(n[1])}return t}function makeNodesHash(e){const t=new Map;for(let r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}function parseOrCached(t,r){let n=r.get(t);return n||(n=e(t),r.set(t,n),n)}function getCustomPropertiesFromRoot(t,r){const n=new Map,o=new Map,s=collectCascadeLayerOrder(t);t.walkRules((e=>{p.test(e.selector)&&e.nodes?.length&&isProcessableRule(e)&&(isBlockIgnored(e)||e.selectors.forEach((t=>{let r=-1;if(l.test(t)||u.test(t))r=0;else if(i.test(t))r=1;else{if(!c.test(t))return;r=2}const a=(f=s,((p=e).parent&&"atrule"===p.parent.type&&"layer"===p.parent.name.toLowerCase()?f.has(p.parent)?f.get(p.parent)+1:0:1e7)+10+r);var p,f;e.each((e=>{if("decl"!==e.type)return;if(!e.variable||isDeclarationIgnored(e))return;if("initial"===e.value.toLowerCase().trim())return;const t=o.get(e.prop)??-1;a>=t&&(o.set(e.prop,a),n.set(e.prop,e.value))}))})))}));const a=[],f=new Map;for(const[t,o]of n.entries()){const n=parseOrCached(o,r);e.walk(n.nodes,(e=>{if(isVarFunction(e)){const[r]=e.nodes.filter((e=>"word"===e.type));a.push([r.value,t])}})),f.set(t,n)}return removeCyclicReferences(f,a),f}function transformValueAST(t,r,n){if(!t.nodes?.length)return"";const o=new Map;return t.nodes.forEach((e=>{o.set(e,t)})),e.walk(t.nodes,(e=>{"nodes"in e&&e.nodes.length&&e.nodes.forEach((t=>{o.set(t,e)}))})),e.walk(t.nodes,(t=>{if(!isVarFunction(t))return;const[s,...a]=t.nodes.filter((e=>"div"!==e.type)),{value:i}=s,l=o.get(t);if(!l)return;const c=l.nodes.indexOf(t);if(-1===c)return;let u=!1;a&&e.walk(a,(e=>{if(isVarFunction(e)){const[t]=e.nodes.filter((e=>"word"===e.type));if(r.has(t.value)||n.has(t.value))return;return u=!0,!1}}));let p=n.get(i)?.nodes??r.get(i)?.nodes;p||!a.length||u||(p=t.nodes.slice(t.nodes.indexOf(a[0]))),void 0!==p&&(p.length?(l.nodes.splice(c,1,...p),l.nodes.forEach((e=>o.set(e,l)))):(l.nodes.splice(c,1,{type:"comment",value:"",sourceIndex:t.sourceIndex,sourceEndIndex:t.sourceEndIndex}),l.nodes.forEach((e=>o.set(e,l)))))}),!0),e.stringify(t.nodes)}function transformProperties(t,r,n,o,s){if(isTransformableDecl(t)&&!isDeclarationIgnored(t)){const o=t.value;let a=transformValueAST(e(o),r,n);const i=new Set;for(;d.test(a)&&!i.has(a);){i.add(a);a=transformValueAST(e(a),r,n)}if(a!==o){if(parentHasExactFallback(t,a))return void(s.preserve||t.remove());if(s.preserve){const e=t.cloneBefore({value:a});hasTrailingComment(e)&&e.raws?.value&&(e.raws.value.value=e.value.replace(w,"$1"),e.raws.value.raw=e.raws.value.value+e.raws.value.raw.replace(w,"$2"))}else t.value=a,hasTrailingComment(t)&&t.raws?.value&&(t.raws.value.value=t.value.replace(w,"$1"),t.raws.value.raw=t.raws.value.value+t.raws.value.raw.replace(w,"$2"))}}}const isTransformableDecl=e=>!e.variable&&e.value.includes("--")&&e.value.toLowerCase().includes("var("),hasTrailingComment=e=>"value"in Object(Object(e.raws).value)&&"raw"in(e.raws?.value??{})&&w.test(e.raws.value?.raw??""),w=/^([\W\w]+)(\s*\/\*[\W\w]+?\*\/)$/;function parentHasExactFallback(e,t){if(!e||!e.parent)return!1;let r=!1;const n=e.parent.index(e);return e.parent.each(((o,s)=>o!==e&&(!(s>=n)&&void("decl"===o.type&&o.prop.toLowerCase()===e.prop.toLowerCase()&&o.value===t&&(r=!0))))),r}const v=/([^\w]var\()|(\(top: var\(--f\))/i;function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&v.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const m=/^initial$/i,creator=e=>{const t=!("preserve"in Object(e))||Boolean(e?.preserve);if("importFrom"in Object(e))throw new Error('[postcss-custom-properties] "importFrom" is no longer supported');if("exportTo"in Object(e))throw new Error('[postcss-custom-properties] "exportTo" is no longer supported');return{postcssPlugin:"postcss-custom-properties",prepare:()=>{let e=new Map;const r=new Map;return{Once:t=>{e=getCustomPropertiesFromRoot(t,r)},Declaration:n=>{if(!d.test(n.value))return;if(hasSupportsAtRuleAncestor(n))return;const o=new Map;t&&n.parent&&n.parent.each((e=>{"decl"===e.type&&e.variable&&n!==e&&(isDeclarationIgnored(e)||(m.test(e.value)?o.delete(e.prop):o.set(e.prop,parseOrCached(e.value,r))))})),transformProperties(n,e,o,0,{preserve:t})}}}}};creator.postcss=!0,module.exports=creator;
diff --git a/node_modules/postcss-custom-properties/dist/index.mjs b/node_modules/postcss-custom-properties/dist/index.mjs
index a82df6d4..37ac50e6 100644
--- a/node_modules/postcss-custom-properties/dist/index.mjs
+++ b/node_modules/postcss-custom-properties/dist/index.mjs
@@ -1 +1 @@
-import e from"postcss-value-parser";import{parse as t,addLayerToModel as r}from"@csstools/cascade-layer-name-parser";const n=t("csstools-implicit-layer")[0];function collectCascadeLayerOrder(e){const o=new Map,s=new Map,a=[];e.walkAtRules((e=>{if("layer"!==e.name.toLowerCase())return;{let t=e.parent;for(;t;){if("atrule"!==t.type||"layer"!==t.name.toLowerCase()){if(t===e.root())break;return}t=t.parent}}let i;if(e.nodes)i=normalizeLayerName(e.params,1);else{if(!e.params.trim())return;i=e.params}let l=t(i);if(l?.length){{let t=e.parent;for(;t&&"atrule"===t.type&&"layer"===t.name.toLowerCase();){const e=s.get(t);e?(l=l.map((t=>e.concat(t))),t=t.parent):t=t.parent}}if(r(a,l),e.nodes){const t=l[0].concat(n);o.set(e,t),s.set(e,l[0])}}}));for(const e of o.values())r(a,[e]);const i=new WeakMap;for(const[e,t]of o)i.set(e,a.findIndex((e=>t.equal(e))));return i}function normalizeLayerName(e,t){return e.trim()?e:"csstools-anon-layer--"+t++}const o=/(!\s*)?postcss-custom-properties:\s*off\b/i,s=new WeakMap;function isBlockIgnored(e){if(!e||!e.nodes)return!1;if(s.has(e))return s.get(e);const t=e.some((e=>isIgnoreComment(e,o)));return s.set(e,t),t}const a=/(!\s*)?postcss-custom-properties:\s*ignore\s+next\b/i;function isDeclarationIgnored(e){return!!e&&(!!isBlockIgnored(e.parent)||isIgnoreComment(e.prev(),a))}function isIgnoreComment(e,t){return!!e&&"comment"===e.type&&t.test(e.text)}const i=new Set(["layer"]);function isProcessableRule(e){let t=e.parent;for(;t;){if("atrule"===t.type&&!i.has(t.name.toLowerCase()))return!1;t=t.parent}return!0}const l=/^html$/i,c=/^:where\(html\)$/i,u=/^:root$/i,p=/^:where\(:root\)$/i,f=/(html|:root)/i,d=/^var$/i;function isVarFunction(e){return"function"===e.type&&d.test(e.value)&&Object(e.nodes).length>0}const w=/var\(/i;function removeCyclicReferences(e,t){const r=new Set;let n=t;for(;e.size>0;)try{toposort(Array.from(e.keys()),n);break}catch(t){if(!t._graphNode)throw t;e.delete(t._graphNode),r.add(t._graphNode),n=n.filter((e=>-1===e.indexOf(t._graphNode)))}return r}function toposort(e,t){let r=e.length;const n=new Array(r),o={};let s=r;const a=makeOutgoingEdges(t),i=makeNodesHash(e);for(;s--;)o[s]||visit(e[s],s,new Set);return n;function visit(e,t,s){if(s.has(e)){const t=new Error("Cyclic dependency"+JSON.stringify(e));throw t._graphNode=e,t}if(!i.has(e))return;if(o[t])return;o[t]=!0;let l=a.get(e)||new Set;if(l=Array.from(l),t=l.length){s.add(e);do{const e=l[--t];visit(e,i.get(e),s)}while(t);s.delete(e)}n[--r]=e}}function makeOutgoingEdges(e){const t=new Map;for(let r=0,n=e.length;r<n;r++){const n=e[r];t.has(n[0])||t.set(n[0],new Set),t.has(n[1])||t.set(n[1],new Set),t.get(n[0]).add(n[1])}return t}function makeNodesHash(e){const t=new Map;for(let r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}function parseOrCached(t,r){let n=r.get(t);return n||(n=e(t),r.set(t,n),n)}function getCustomPropertiesFromRoot(t,r){const n=new Map,o=new Map,s=collectCascadeLayerOrder(t);t.walkRules((e=>{f.test(e.selector)&&e.nodes?.length&&isProcessableRule(e)&&(isBlockIgnored(e)||e.selectors.forEach((t=>{let r=-1;if(c.test(t)||p.test(t))r=0;else if(l.test(t))r=1;else{if(!u.test(t))return;r=2}const a=(f=s,((i=e).parent&&"atrule"===i.parent.type&&"layer"===i.parent.name.toLowerCase()?f.has(i.parent)?f.get(i.parent)+1:0:1e7)+10+r);var i,f;e.each((e=>{if("decl"!==e.type)return;if(!e.variable||isDeclarationIgnored(e))return;if("initial"===e.value.toLowerCase().trim())return;const t=o.get(e.prop)??-1;a>=t&&(o.set(e.prop,a),n.set(e.prop,e.value))}))})))}));const a=[],i=new Map;for(const[t,o]of n.entries()){const n=parseOrCached(o,r);e.walk(n.nodes,(e=>{if(isVarFunction(e)){const[r]=e.nodes.filter((e=>"word"===e.type));a.push([r.value,t])}})),i.set(t,n)}return removeCyclicReferences(i,a),i}function transformValueAST(t,r,n){if(!t.nodes?.length)return"";const o=new Map;return t.nodes.forEach((e=>{o.set(e,t)})),e.walk(t.nodes,(e=>{"nodes"in e&&e.nodes.length&&e.nodes.forEach((t=>{o.set(t,e)}))})),e.walk(t.nodes,(t=>{if(!isVarFunction(t))return;const[s,...a]=t.nodes.filter((e=>"div"!==e.type)),{value:i}=s,l=o.get(t);if(!l)return;const c=l.nodes.indexOf(t);if(-1===c)return;let u=!1;a&&e.walk(a,(e=>{if(isVarFunction(e)){const[t]=e.nodes.filter((e=>"word"===e.type));if(r.has(t.value)||n.has(t.value))return;return u=!0,!1}}));let p=n.get(i)?.nodes??r.get(i)?.nodes;p||!a.length||u||(p=t.nodes.slice(t.nodes.indexOf(a[0]))),void 0!==p&&(p.length?(l.nodes.splice(c,1,...p),l.nodes.forEach((e=>o.set(e,l)))):(l.nodes.splice(c,1,{type:"comment",value:"",sourceIndex:t.sourceIndex,sourceEndIndex:t.sourceEndIndex}),l.nodes.forEach((e=>o.set(e,l)))))}),!0),e.stringify(t.nodes)}function transformProperties(t,r,n,o,s){if(isTransformableDecl(t)&&!isDeclarationIgnored(t)){const o=t.value;let a=transformValueAST(e(o),r,n);const i=new Set;for(;w.test(a)&&!i.has(a);){i.add(a);a=transformValueAST(e(a),r,n)}if(a!==o){if(parentHasExactFallback(t,a))return void(s.preserve||t.remove());if(s.preserve){const e=t.cloneBefore({value:a});hasTrailingComment(e)&&e.raws?.value&&(e.raws.value.value=e.value.replace(m,"$1"),e.raws.value.raw=e.raws.value.value+e.raws.value.raw.replace(m,"$2"))}else t.value=a,hasTrailingComment(t)&&t.raws?.value&&(t.raws.value.value=t.value.replace(m,"$1"),t.raws.value.raw=t.raws.value.value+t.raws.value.raw.replace(m,"$2"))}}}const isTransformableDecl=e=>!e.variable&&e.value.includes("--")&&e.value.toLowerCase().includes("var("),hasTrailingComment=e=>"value"in Object(Object(e.raws).value)&&"raw"in(e.raws?.value??{})&&m.test(e.raws.value?.raw??""),m=/^([\W\w]+)(\s*\/\*[\W\w]+?\*\/)$/;function parentHasExactFallback(e,t){if(!e||!e.parent)return!1;let r=!1;const n=e.parent.index(e);return e.parent.each(((o,s)=>o!==e&&(!(s>=n)&&void("decl"===o.type&&o.prop.toLowerCase()===e.prop.toLowerCase()&&o.value===t&&(r=!0))))),r}function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&/([^\w]var\()|(\(top: var\(--f\))/i.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const v=/^initial$/i,creator=e=>{const t=!("preserve"in Object(e))||Boolean(e?.preserve);if("importFrom"in Object(e))throw new Error('[postcss-custom-properties] "importFrom" is no longer supported');if("exportTo"in Object(e))throw new Error('[postcss-custom-properties] "exportTo" is no longer supported');return{postcssPlugin:"postcss-custom-properties",prepare:()=>{let e=new Map;const r=new Map;return{Once:t=>{e=getCustomPropertiesFromRoot(t,r)},Declaration:n=>{if(!w.test(n.value))return;if(hasSupportsAtRuleAncestor(n))return;const o=new Map;t&&n.parent&&n.parent.each((e=>{"decl"===e.type&&e.variable&&n!==e&&(isDeclarationIgnored(e)||(v.test(e.value)?o.delete(e.prop):o.set(e.prop,parseOrCached(e.value,r))))})),transformProperties(n,e,o,0,{preserve:t})}}}}};creator.postcss=!0;export{creator as default};
+import e from"postcss-value-parser";import{parse as t,addLayerToModel as r}from"@csstools/cascade-layer-name-parser";const n=t("csstools-implicit-layer")[0];function collectCascadeLayerOrder(e){const o=new Map,s=new Map,a=[];e.walkAtRules((e=>{if("layer"!==e.name.toLowerCase())return;{let t=e.parent;for(;t;){if("atrule"!==t.type||"layer"!==t.name.toLowerCase()){if(t===e.root())break;return}t=t.parent}}let i;if(e.nodes)i=normalizeLayerName(e.params,1);else{if(!e.params.trim())return;i=e.params}let l=t(i);if(l?.length){{let t=e.parent;for(;t&&"atrule"===t.type&&"layer"===t.name.toLowerCase();){const e=s.get(t);e?(l=l.map((t=>e.concat(t))),t=t.parent):t=t.parent}}if(r(a,l),e.nodes){const t=l[0].concat(n);o.set(e,t),s.set(e,l[0])}}}));for(const e of o.values())r(a,[e]);const i=new WeakMap;for(const[e,t]of o)i.set(e,a.findIndex((e=>t.equal(e))));return i}function normalizeLayerName(e,t){return e.trim()?e:"csstools-anon-layer--"+t++}const o=/(!\s*)?postcss-custom-properties:\s*off\b/i,s=new WeakMap;function isBlockIgnored(e){if(!e||!e.nodes)return!1;if(s.has(e))return s.get(e);const t=e.some((e=>isIgnoreComment(e,o)));return s.set(e,t),t}const a=/(!\s*)?postcss-custom-properties:\s*ignore\s+next\b/i;function isDeclarationIgnored(e){return!!e&&(!!isBlockIgnored(e.parent)||isIgnoreComment(e.prev(),a))}function isIgnoreComment(e,t){return!!e&&"comment"===e.type&&t.test(e.text)}const i=new Set(["layer"]);function isProcessableRule(e){let t=e.parent;for(;t;){if("atrule"===t.type&&!i.has(t.name.toLowerCase()))return!1;t=t.parent}return!0}const l=/^html$/i,c=/^:where\(html\)$/i,u=/^:root$/i,p=/^:where\(:root\)$/i,f=/(html|:root)/i,d=/^var$/i;function isVarFunction(e){return"function"===e.type&&d.test(e.value)&&Object(e.nodes).length>0}const w=/var\(/i;function removeCyclicReferences(e,t){const r=new Set;let n=t;for(;e.size>0;)try{toposort(Array.from(e.keys()),n);break}catch(t){if(!t._graphNode)throw t;e.delete(t._graphNode),r.add(t._graphNode),n=n.filter((e=>-1===e.indexOf(t._graphNode)))}return r}function toposort(e,t){let r=e.length;const n=new Array(r),o={};let s=r;const a=makeOutgoingEdges(t),i=makeNodesHash(e);for(;s--;)o[s]||visit(e[s],s,new Set);return n;function visit(e,t,s){if(s.has(e)){const t=new Error("Cyclic dependency"+JSON.stringify(e));throw t._graphNode=e,t}if(!i.has(e))return;if(o[t])return;o[t]=!0;let l=a.get(e)||new Set;if(l=Array.from(l),t=l.length){s.add(e);do{const e=l[--t];visit(e,i.get(e),s)}while(t);s.delete(e)}n[--r]=e}}function makeOutgoingEdges(e){const t=new Map;for(let r=0,n=e.length;r<n;r++){const n=e[r];t.has(n[0])||t.set(n[0],new Set),t.has(n[1])||t.set(n[1],new Set),t.get(n[0]).add(n[1])}return t}function makeNodesHash(e){const t=new Map;for(let r=0,n=e.length;r<n;r++)t.set(e[r],r);return t}function parseOrCached(t,r){let n=r.get(t);return n||(n=e(t),r.set(t,n),n)}function getCustomPropertiesFromRoot(t,r){const n=new Map,o=new Map,s=collectCascadeLayerOrder(t);t.walkRules((e=>{f.test(e.selector)&&e.nodes?.length&&isProcessableRule(e)&&(isBlockIgnored(e)||e.selectors.forEach((t=>{let r=-1;if(c.test(t)||p.test(t))r=0;else if(l.test(t))r=1;else{if(!u.test(t))return;r=2}const a=(f=s,((i=e).parent&&"atrule"===i.parent.type&&"layer"===i.parent.name.toLowerCase()?f.has(i.parent)?f.get(i.parent)+1:0:1e7)+10+r);var i,f;e.each((e=>{if("decl"!==e.type)return;if(!e.variable||isDeclarationIgnored(e))return;if("initial"===e.value.toLowerCase().trim())return;const t=o.get(e.prop)??-1;a>=t&&(o.set(e.prop,a),n.set(e.prop,e.value))}))})))}));const a=[],i=new Map;for(const[t,o]of n.entries()){const n=parseOrCached(o,r);e.walk(n.nodes,(e=>{if(isVarFunction(e)){const[r]=e.nodes.filter((e=>"word"===e.type));a.push([r.value,t])}})),i.set(t,n)}return removeCyclicReferences(i,a),i}function transformValueAST(t,r,n){if(!t.nodes?.length)return"";const o=new Map;return t.nodes.forEach((e=>{o.set(e,t)})),e.walk(t.nodes,(e=>{"nodes"in e&&e.nodes.length&&e.nodes.forEach((t=>{o.set(t,e)}))})),e.walk(t.nodes,(t=>{if(!isVarFunction(t))return;const[s,...a]=t.nodes.filter((e=>"div"!==e.type)),{value:i}=s,l=o.get(t);if(!l)return;const c=l.nodes.indexOf(t);if(-1===c)return;let u=!1;a&&e.walk(a,(e=>{if(isVarFunction(e)){const[t]=e.nodes.filter((e=>"word"===e.type));if(r.has(t.value)||n.has(t.value))return;return u=!0,!1}}));let p=n.get(i)?.nodes??r.get(i)?.nodes;p||!a.length||u||(p=t.nodes.slice(t.nodes.indexOf(a[0]))),void 0!==p&&(p.length?(l.nodes.splice(c,1,...p),l.nodes.forEach((e=>o.set(e,l)))):(l.nodes.splice(c,1,{type:"comment",value:"",sourceIndex:t.sourceIndex,sourceEndIndex:t.sourceEndIndex}),l.nodes.forEach((e=>o.set(e,l)))))}),!0),e.stringify(t.nodes)}function transformProperties(t,r,n,o,s){if(isTransformableDecl(t)&&!isDeclarationIgnored(t)){const o=t.value;let a=transformValueAST(e(o),r,n);const i=new Set;for(;w.test(a)&&!i.has(a);){i.add(a);a=transformValueAST(e(a),r,n)}if(a!==o){if(parentHasExactFallback(t,a))return void(s.preserve||t.remove());if(s.preserve){const e=t.cloneBefore({value:a});hasTrailingComment(e)&&e.raws?.value&&(e.raws.value.value=e.value.replace(m,"$1"),e.raws.value.raw=e.raws.value.value+e.raws.value.raw.replace(m,"$2"))}else t.value=a,hasTrailingComment(t)&&t.raws?.value&&(t.raws.value.value=t.value.replace(m,"$1"),t.raws.value.raw=t.raws.value.value+t.raws.value.raw.replace(m,"$2"))}}}const isTransformableDecl=e=>!e.variable&&e.value.includes("--")&&e.value.toLowerCase().includes("var("),hasTrailingComment=e=>"value"in Object(Object(e.raws).value)&&"raw"in(e.raws?.value??{})&&m.test(e.raws.value?.raw??""),m=/^([\W\w]+)(\s*\/\*[\W\w]+?\*\/)$/;function parentHasExactFallback(e,t){if(!e||!e.parent)return!1;let r=!1;const n=e.parent.index(e);return e.parent.each(((o,s)=>o!==e&&(!(s>=n)&&void("decl"===o.type&&o.prop.toLowerCase()===e.prop.toLowerCase()&&o.value===t&&(r=!0))))),r}const v=/([^\w]var\()|(\(top: var\(--f\))/i;function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&v.test(t.params))return!0;t=t.parent}else t=t.parent;return!1}const h=/^initial$/i,creator=e=>{const t=!("preserve"in Object(e))||Boolean(e?.preserve);if("importFrom"in Object(e))throw new Error('[postcss-custom-properties] "importFrom" is no longer supported');if("exportTo"in Object(e))throw new Error('[postcss-custom-properties] "exportTo" is no longer supported');return{postcssPlugin:"postcss-custom-properties",prepare:()=>{let e=new Map;const r=new Map;return{Once:t=>{e=getCustomPropertiesFromRoot(t,r)},Declaration:n=>{if(!w.test(n.value))return;if(hasSupportsAtRuleAncestor(n))return;const o=new Map;t&&n.parent&&n.parent.each((e=>{"decl"===e.type&&e.variable&&n!==e&&(isDeclarationIgnored(e)||(h.test(e.value)?o.delete(e.prop):o.set(e.prop,parseOrCached(e.value,r))))})),transformProperties(n,e,o,0,{preserve:t})}}}}};creator.postcss=!0;export{creator as default};
diff --git a/node_modules/postcss-custom-properties/package.json b/node_modules/postcss-custom-properties/package.json
index d43febdd..c82c207e 100644
--- a/node_modules/postcss-custom-properties/package.json
+++ b/node_modules/postcss-custom-properties/package.json
@@ -1,7 +1,7 @@
{
"name": "postcss-custom-properties",
"description": "Use Custom Properties Queries in CSS",
- "version": "13.3.3",
+ "version": "13.3.4",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"contributors": [
"Maxime Thirouin"
@@ -42,9 +42,9 @@
"index.d.ts"
],
"dependencies": {
- "@csstools/cascade-layer-name-parser": "^1.0.6",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/cascade-layer-name-parser": "^1.0.7",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"postcss-value-parser": "^4.2.0"
},
"peerDependencies": {
diff --git a/node_modules/postcss-lab-function/CHANGELOG.md b/node_modules/postcss-lab-function/CHANGELOG.md
index 6f9c9e3d..502d5ea6 100644
--- a/node_modules/postcss-lab-function/CHANGELOG.md
+++ b/node_modules/postcss-lab-function/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changes to PostCSS Lab Function
+### 6.0.9
+
+_December 31, 2023_
+
+- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#223) (patch)
+- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.5.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#250) (minor)
+- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.5.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#151) (patch)
+
### 6.0.8
_December 15, 2023_
@@ -17,10 +25,4 @@ _October 9, 2023_
- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor)
- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch)
-### 6.0.6
-
-_October 2, 2023_
-
-- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch)
-
[Full CHANGELOG](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-function/CHANGELOG.md)
diff --git a/node_modules/postcss-lab-function/README.md b/node_modules/postcss-lab-function/README.md
index c1d67ed6..b9a2d4d4 100644
--- a/node_modules/postcss-lab-function/README.md
+++ b/node_modules/postcss-lab-function/README.md
@@ -1,10 +1,11 @@
# PostCSS Lab Function [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][postcss]
[<img alt="npm version" src="https://img.shields.io/npm/v/postcss-lab-function.svg" height="20">][npm-url]
-[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/lab-function.svg" height="20">][css-url]
[<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url]
[<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
-
+<br><br>
+[<img alt="Baseline Status" src="https://cssdb.org/images/badges-baseline/lab-function.svg" height="20">][css-url]
+[<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/lab-function.svg" height="20">][css-url]
[PostCSS Lab Function] lets you use `lab` and `lch` color functions in
CSS, following the [CSS Color] specification.
@@ -87,7 +88,8 @@ The `enableProgressiveCustomProperties` option determines whether the original n
is wrapped with `@supports` when used in Custom Properties. By default, it is enabled.
> [!NOTE]
-> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
+> We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties.
+> See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme).
```js
postcssLabFunction({ enableProgressiveCustomProperties: false })
diff --git a/node_modules/postcss-lab-function/dist/index.cjs b/node_modules/postcss-lab-function/dist/index.cjs
index 3693b63e..df5bd239 100644
--- a/node_modules/postcss-lab-function/dist/index.cjs
+++ b/node_modules/postcss-lab-function/dist/index.cjs
@@ -1 +1 @@
-"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e<t;e++){const t=s.nodes[e];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()){if(-1!==s.params.toLowerCase().indexOf("lab("))return!0;if(-1!==s.params.toLowerCase().indexOf("lch("))return!0}s=s.parent}else s=s.parent;return!1}const a=/(lab|lch)\(/i,o=/^(lab|lch)$/i,basePlugin=e=>({postcssPlugin:"postcss-lab-function",Declaration:n=>{const i=n.value;if(!a.test(i))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const l=s.tokenize({css:i}),u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(t.isFunctionNode(e)&&o.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.Experimental))return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(u);if(p===i)return;let c=p;e?.subFeatures.displayP3&&(c=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(l),(e=>{if(t.isFunctionNode(e)&&o.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),n.cloneBefore({value:p}),e?.subFeatures.displayP3&&c!==p&&n.cloneBefore({value:c}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
+"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),t=require("@csstools/css-color-parser"),r=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const t=e.prop.toLowerCase(),r=s.index(e);for(let e=0;e<r;e++){const r=s.nodes[e];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}function hasSupportsAtRuleAncestor(e){let s=e.parent;for(;s;)if("atrule"===s.type){if("supports"===s.name.toLowerCase()){if(-1!==s.params.toLowerCase().indexOf("lab("))return!0;if(-1!==s.params.toLowerCase().indexOf("lch("))return!0}s=s.parent}else s=s.parent;return!1}const a=/(lab|lch)\(/i,o=/^(lab|lch)$/i,basePlugin=e=>({postcssPlugin:"postcss-lab-function",Declaration:n=>{const l=n.value;if(!a.test(l))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const i=s.tokenize({css:l}),u=r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(i),(e=>{if(!r.isFunctionNode(e)||!o.test(e.getName()))return;const s=t.color(e);return s&&!(s.syntaxFlags.has(t.SyntaxFlag.Experimental)||s.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)||s.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax))?t.serializeRGB(s):void 0})),p=r.stringify(u);if(p===l)return;let c=p;e?.subFeatures.displayP3&&(c=r.stringify(r.replaceComponentValues(r.parseCommaSeparatedListOfComponentValues(i),(e=>{if(!r.isFunctionNode(e)||!o.test(e.getName()))return;const s=t.color(e);return s&&!(s.syntaxFlags.has(t.SyntaxFlag.Experimental)||s.syntaxFlags.has(t.SyntaxFlag.HasNoneKeywords)||s.syntaxFlags.has(t.SyntaxFlag.RelativeColorSyntax))?t.colorDataFitsRGB_Gamut(s)?t.serializeRGB(s):t.serializeP3(s):void 0})))),n.cloneBefore({value:p}),e?.subFeatures.displayP3&&c!==p&&n.cloneBefore({value:c}),e?.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[e(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin;
diff --git a/node_modules/postcss-lab-function/dist/index.mjs b/node_modules/postcss-lab-function/dist/index.mjs
index b5b9e2df..7cb9ea59 100644
--- a/node_modules/postcss-lab-function/dist/index.mjs
+++ b/node_modules/postcss-lab-function/dist/index.mjs
@@ -1 +1 @@
-import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as i,parseCommaSeparatedListOfComponentValues as l,isFunctionNode as u,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s<t;s++){const t=e.nodes[s];if("decl"===t.type&&t.prop.toLowerCase()===r)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()){if(-1!==e.params.toLowerCase().indexOf("lab("))return!0;if(-1!==e.params.toLowerCase().indexOf("lch("))return!0}e=e.parent}else e=e.parent;return!1}const c=/(lab|lch)\(/i,f=/^(lab|lch)$/i,basePlugin=s=>({postcssPlugin:"postcss-lab-function",Declaration:m=>{const b=m.value;if(!c.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),y=i(l(g),(s=>{if(u(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.Experimental))return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return o(e)}})),d=p(y);if(d===b)return;let h=d;s?.subFeatures.displayP3&&(h=p(i(l(g),(s=>{if(u(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return a(e)?o(e):n(e)}})))),m.cloneBefore({value:d}),s?.subFeatures.displayP3&&h!==d&&m.cloneBefore({value:h}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
+import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as t,SyntaxFlag as r,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as l,parseCommaSeparatedListOfComponentValues as i,isFunctionNode as p,stringify as u}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const t=s.prop.toLowerCase(),r=e.index(s);for(let s=0;s<r;s++){const r=e.nodes[s];if("decl"===r.type&&r.prop.toLowerCase()===t)return!0}return!1}function hasSupportsAtRuleAncestor(s){let e=s.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()){if(-1!==e.params.toLowerCase().indexOf("lab("))return!0;if(-1!==e.params.toLowerCase().indexOf("lch("))return!0}e=e.parent}else e=e.parent;return!1}const c=/(lab|lch)\(/i,f=/^(lab|lch)$/i,basePlugin=s=>({postcssPlugin:"postcss-lab-function",Declaration:m=>{const b=m.value;if(!c.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),y=l(i(g),(s=>{if(!p(s)||!f.test(s.getName()))return;const e=t(s);return e&&!(e.syntaxFlags.has(r.Experimental)||e.syntaxFlags.has(r.HasNoneKeywords)||e.syntaxFlags.has(r.RelativeColorSyntax))?o(e):void 0})),d=u(y);if(d===b)return;let h=d;s?.subFeatures.displayP3&&(h=u(l(i(g),(s=>{if(!p(s)||!f.test(s.getName()))return;const e=t(s);return e&&!(e.syntaxFlags.has(r.Experimental)||e.syntaxFlags.has(r.HasNoneKeywords)||e.syntaxFlags.has(r.RelativeColorSyntax))?a(e)?o(e):n(e):void 0})))),m.cloneBefore({value:d}),s?.subFeatures.displayP3&&h!==d&&m.cloneBefore({value:h}),s?.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return t.subFeatures=Object.assign({displayP3:!0},t.subFeatures),t.enableProgressiveCustomProperties&&(t.preserve||t.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[s(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0;export{postcssPlugin as default};
diff --git a/node_modules/postcss-lab-function/package.json b/node_modules/postcss-lab-function/package.json
index 7f6828a5..4b0347a1 100644
--- a/node_modules/postcss-lab-function/package.json
+++ b/node_modules/postcss-lab-function/package.json
@@ -1,7 +1,7 @@
{
"name": "postcss-lab-function",
"description": "Use lab() and lch() color functions in CSS",
- "version": "6.0.8",
+ "version": "6.0.9",
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
"license": "MIT-0",
"funding": [
@@ -38,9 +38,9 @@
"dist"
],
"dependencies": {
- "@csstools/css-color-parser": "^1.5.0",
- "@csstools/css-parser-algorithms": "^2.4.0",
- "@csstools/css-tokenizer": "^2.2.2",
+ "@csstools/css-color-parser": "^1.5.1",
+ "@csstools/css-parser-algorithms": "^2.5.0",
+ "@csstools/css-tokenizer": "^2.2.3",
"@csstools/postcss-progressive-custom-properties": "^3.0.3"
},
"peerDependencies": {
diff --git a/node_modules/postcss-merge-longhand/package.json b/node_modules/postcss-merge-longhand/package.json
index 1b12fe6e..2428bcac 100644
--- a/node_modules/postcss-merge-longhand/package.json
+++ b/node_modules/postcss-merge-longhand/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-merge-longhand",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Merge longhand properties into shorthand with PostCSS.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -26,7 +26,7 @@
"repository": "cssnano/cssnano",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^6.0.1"
+ "stylehacks": "^6.0.2"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
diff --git a/node_modules/postcss-merge-rules/package.json b/node_modules/postcss-merge-rules/package.json
index 6fe7637b..41e77f33 100644
--- a/node_modules/postcss-merge-rules/package.json
+++ b/node_modules/postcss-merge-rules/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-merge-rules",
- "version": "6.0.2",
+ "version": "6.0.3",
"description": "Merge CSS rules with PostCSS.",
"types": "types/index.d.ts",
"main": "src/index.js",
@@ -24,9 +24,9 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0",
- "postcss-selector-parser": "^6.0.5",
+ "postcss-selector-parser": "^6.0.15",
"cssnano-utils": "^4.0.1"
},
"bugs": {
@@ -36,7 +36,7 @@
"node": "^14 || ^16 || >=18.0"
},
"devDependencies": {
- "@types/caniuse-api": "^3.0.2",
+ "@types/caniuse-api": "^3.0.6",
"postcss": "^8.4.32",
"postcss-simple-vars": "^7.0.1",
"postcss-discard-comments": "^6.0.1"
diff --git a/node_modules/postcss-minify-params/package.json b/node_modules/postcss-minify-params/package.json
index 6965233a..fab7fa64 100644
--- a/node_modules/postcss-minify-params/package.json
+++ b/node_modules/postcss-minify-params/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-minify-params",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Minify at-rule params with PostCSS",
"keywords": [
"postcss",
@@ -25,7 +25,7 @@
},
"homepage": "https://github.com/cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"postcss-value-parser": "^4.2.0",
"cssnano-utils": "^4.0.1"
},
diff --git a/node_modules/postcss-minify-selectors/package.json b/node_modules/postcss-minify-selectors/package.json
index 403761c9..a73444e9 100644
--- a/node_modules/postcss-minify-selectors/package.json
+++ b/node_modules/postcss-minify-selectors/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-minify-selectors",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Minify selectors with PostCSS.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -26,7 +26,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "postcss-selector-parser": "^6.0.5"
+ "postcss-selector-parser": "^6.0.15"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
diff --git a/node_modules/postcss-normalize-unicode/package.json b/node_modules/postcss-normalize-unicode/package.json
index 33b71fd3..26347735 100644
--- a/node_modules/postcss-normalize-unicode/package.json
+++ b/node_modules/postcss-normalize-unicode/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-normalize-unicode",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Normalize unicode-range descriptors, and can convert to wildcard ranges.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -23,7 +23,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"postcss-value-parser": "^4.2.0"
},
"bugs": {
diff --git a/node_modules/postcss-reduce-initial/package.json b/node_modules/postcss-reduce-initial/package.json
index d60406a8..915e8312 100644
--- a/node_modules/postcss-reduce-initial/package.json
+++ b/node_modules/postcss-reduce-initial/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-reduce-initial",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Reduce initial definitions to the actual initial value, where possible.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -23,7 +23,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
+ "browserslist": "^4.22.2",
"caniuse-api": "^3.0.0"
},
"bugs": {
@@ -33,9 +33,9 @@
"node": "^14 || ^16 || >=18.0"
},
"devDependencies": {
- "@types/caniuse-api": "^3.0.2",
- "html-to-text": "^8.2.0",
- "nanospy": "^0.5.0",
+ "@types/caniuse-api": "^3.0.6",
+ "html-to-text": "^9.0.5",
+ "nanospy": "^1.0.0",
"postcss": "^8.4.32"
},
"peerDependencies": {
diff --git a/node_modules/postcss-reduce-initial/src/data/fromInitial.json b/node_modules/postcss-reduce-initial/src/data/fromInitial.json
index d16d7676..459c965c 100644
--- a/node_modules/postcss-reduce-initial/src/data/fromInitial.json
+++ b/node_modules/postcss-reduce-initial/src/data/fromInitial.json
@@ -11,6 +11,8 @@
"animation-fill-mode": "none",
"animation-iteration-count": "1",
"animation-name": "none",
+ "animation-range-end": "normal",
+ "animation-range-start": "normal",
"animation-timing-function": "ease",
"animation-timeline": "auto",
"appearance": "none",
@@ -83,6 +85,8 @@
"contain-intrinsic-height": "none",
"contain-intrinsic-inline-size": "none",
"contain-intrinsic-width": "none",
+ "container-name": "none",
+ "container-type": "normal",
"content": "normal",
"counter-increment": "none",
"counter-reset": "none",
@@ -101,15 +105,21 @@
"font-kerning": "auto",
"font-language-override": "normal",
"font-optical-sizing": "auto",
+ "font-palette": "normal",
"font-variation-settings": "normal",
"font-size": "medium",
"font-size-adjust": "none",
"font-stretch": "normal",
"font-style": "normal",
+ "font-synthesis-position": "none",
+ "font-synthesis-small-caps": "auto",
+ "font-synthesis-style": "auto",
+ "font-synthesis-weight": "auto",
"font-variant": "normal",
"font-variant-alternates": "normal",
"font-variant-caps": "normal",
"font-variant-east-asian": "normal",
+ "font-variant-emoji": "normal",
"font-variant-ligatures": "normal",
"font-variant-numeric": "normal",
"font-variant-position": "normal",
@@ -130,6 +140,7 @@
"hanging-punctuation": "none",
"height": "auto",
"hyphenate-character": "auto",
+ "hyphenate-limit-chars": "auto",
"hyphens": "manual",
"image-rendering": "auto",
"image-resolution": "1dppx",
@@ -138,11 +149,8 @@
"initial-letter-align": "auto",
"inline-size": "auto",
"input-security": "auto",
- "inset": "auto",
- "inset-block": "auto",
"inset-block-end": "auto",
"inset-block-start": "auto",
- "inset-inline": "auto",
"inset-inline-end": "auto",
"inset-inline-start": "auto",
"isolation": "auto",
@@ -158,11 +166,9 @@
"line-height-step": "0",
"list-style-image": "none",
"list-style-type": "disc",
- "margin-block": "0",
"margin-block-end": "0",
"margin-block-start": "0",
"margin-bottom": "0",
- "margin-inline": "0",
"margin-inline-end": "0",
"margin-inline-start": "0",
"margin-left": "0",
@@ -210,27 +216,26 @@
"overflow-clip-margin": "0px",
"overflow-inline": "auto",
"overflow-wrap": "normal",
+ "overlay": "none",
"overscroll-behavior": "auto",
"overscroll-behavior-block": "auto",
"overscroll-behavior-inline": "auto",
"overscroll-behavior-x": "auto",
"overscroll-behavior-y": "auto",
- "padding-block": "0",
"padding-block-end": "0",
"padding-block-start": "0",
"padding-bottom": "0",
- "padding-inline": "0",
"padding-inline-end": "0",
"padding-inline-start": "0",
"padding-left": "0",
"padding-right": "0",
"padding-top": "0",
+ "page": "auto",
"page-break-after": "auto",
"page-break-before": "auto",
"page-break-inside": "auto",
"paint-order": "normal",
"perspective": "none",
- "place-content": "normal",
"pointer-events": "auto",
"position": "static",
"resize": "none",
@@ -242,23 +247,17 @@
"scrollbar-gutter": "auto",
"scrollbar-width": "auto",
"scroll-behavior": "auto",
- "scroll-margin": "0",
- "scroll-margin-block": "0",
"scroll-margin-block-start": "0",
"scroll-margin-block-end": "0",
"scroll-margin-bottom": "0",
- "scroll-margin-inline": "0",
"scroll-margin-inline-start": "0",
"scroll-margin-inline-end": "0",
"scroll-margin-left": "0",
"scroll-margin-right": "0",
"scroll-margin-top": "0",
- "scroll-padding": "auto",
- "scroll-padding-block": "auto",
"scroll-padding-block-start": "auto",
"scroll-padding-block-end": "auto",
"scroll-padding-bottom": "auto",
- "scroll-padding-inline": "auto",
"scroll-padding-inline-start": "auto",
"scroll-padding-inline-end": "auto",
"scroll-padding-left": "auto",
@@ -295,10 +294,13 @@
"text-transform": "none",
"text-underline-offset": "auto",
"text-underline-position": "auto",
+ "text-wrap": "wrap",
+ "timeline-scope": "none",
"top": "auto",
"touch-action": "auto",
"transform": "none",
"transform-style": "flat",
+ "transition-behavior": "normal",
"transition-delay": "0s",
"transition-duration": "0s",
"transition-property": "all",
@@ -306,7 +308,12 @@
"translate": "none",
"unicode-bidi": "normal",
"user-select": "auto",
+ "view-timeline-axis": "block",
+ "view-timeline-inset": "auto",
+ "view-timeline-name": "none",
+ "view-transition-name": "none",
"white-space": "normal",
+ "white-space-trim": "none",
"widows": "2",
"width": "auto",
"will-change": "auto",
diff --git a/node_modules/postcss-reduce-initial/src/data/toInitial.json b/node_modules/postcss-reduce-initial/src/data/toInitial.json
index f001cb6e..13d582ff 100644
--- a/node_modules/postcss-reduce-initial/src/data/toInitial.json
+++ b/node_modules/postcss-reduce-initial/src/data/toInitial.json
@@ -17,7 +17,7 @@
"box-sizing": "content-box",
"color": "canvastext",
"column-rule-color": "currentcolor",
- "font-synthesis": "weight style",
+ "font-synthesis": "weight style small-caps position",
"image-orientation": "from-image",
"mask-clip": "border-box",
"mask-mode": "match-source",
@@ -32,5 +32,6 @@
"transform-box": "view-box",
"transform-origin": "50% 50% 0",
"vertical-align": "baseline",
+ "white-space-collapse": "collapse",
"writing-mode": "horizontal-tb"
}
diff --git a/node_modules/postcss-selector-parser/CHANGELOG.md b/node_modules/postcss-selector-parser/CHANGELOG.md
index 888f63db..de3349ae 100644
--- a/node_modules/postcss-selector-parser/CHANGELOG.md
+++ b/node_modules/postcss-selector-parser/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 6.0.15
+
+- Fixed: Node#prev and Node#next type for the first/last node
+
# 6.0.14
- Fixed: type definitions
diff --git a/node_modules/postcss-selector-parser/package.json b/node_modules/postcss-selector-parser/package.json
index 49fc9960..d1f6be84 100644
--- a/node_modules/postcss-selector-parser/package.json
+++ b/node_modules/postcss-selector-parser/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-selector-parser",
- "version": "6.0.14",
+ "version": "6.0.15",
"devDependencies": {
"@babel/cli": "^7.11.6",
"@babel/core": "^7.11.6",
diff --git a/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
index 1d804269..fbf040e7 100644
--- a/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
+++ b/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts
@@ -164,8 +164,8 @@ declare namespace parser {
rawSpaceAfter: string;
remove(): Node;
replaceWith(...nodes: Node[]): Node;
- next(): Node;
- prev(): Node;
+ next(): Node | undefined;
+ prev(): Node | undefined;
clone(opts?: {[override: string]:any}): this;
/**
* Return whether this node includes the character at the position of the given line and column.
diff --git a/node_modules/postcss-svgo/package.json b/node_modules/postcss-svgo/package.json
index c7167d7d..eaf29180 100644
--- a/node_modules/postcss-svgo/package.json
+++ b/node_modules/postcss-svgo/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-svgo",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Optimise inline SVG with PostCSS.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -28,7 +28,7 @@
"repository": "cssnano/cssnano",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "svgo": "^3.0.5"
+ "svgo": "^3.2.0"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
diff --git a/node_modules/postcss-unique-selectors/package.json b/node_modules/postcss-unique-selectors/package.json
index 500742e2..36badef1 100644
--- a/node_modules/postcss-unique-selectors/package.json
+++ b/node_modules/postcss-unique-selectors/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-unique-selectors",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Ensure CSS selectors are unique.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -23,7 +23,7 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "postcss-selector-parser": "^6.0.5"
+ "postcss-selector-parser": "^6.0.15"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
diff --git a/node_modules/stylehacks/package.json b/node_modules/stylehacks/package.json
index eb8dda07..d8c6a071 100644
--- a/node_modules/stylehacks/package.json
+++ b/node_modules/stylehacks/package.json
@@ -1,6 +1,6 @@
{
"name": "stylehacks",
- "version": "6.0.1",
+ "version": "6.0.2",
"description": "Detect/remove browser hacks from CSS files.",
"main": "src/index.js",
"types": "types/index.d.ts",
@@ -28,8 +28,8 @@
},
"repository": "cssnano/cssnano",
"dependencies": {
- "browserslist": "^4.21.4",
- "postcss-selector-parser": "^6.0.4"
+ "browserslist": "^4.22.2",
+ "postcss-selector-parser": "^6.0.15"
},
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
diff --git a/node_modules/svgo/README.md b/node_modules/svgo/README.md
index 1ac3d59c..080a93c6 100644
--- a/node_modules/svgo/README.md
+++ b/node_modules/svgo/README.md
@@ -32,6 +32,7 @@ Process single files:
```sh
svgo one.svg two.svg -o one.min.svg two.min.svg
```
+
Process a directory of files recursively with `-f`/`--folder`:
```sh
@@ -51,13 +52,14 @@ SVGO has a plugin architecture. You can read more about all plugins in [Plugins
SVGO reads the configuration from `svgo.config.js` or the `--config path/to/config.js` command-line option. Some other parameters can be configured though command-line options too.
**`svgo.config.js`**
+
```js
module.exports = {
multipass: false, // boolean
datauri: 'base64', // 'base64'|'enc'|'unenc'
js2svg: {
indent: 4, // number
- pretty: false // boolean
+ pretty: false, // boolean
},
plugins: [
'preset-default', // built-in plugins enabled by default
@@ -67,17 +69,19 @@ module.exports = {
{
name: 'prefixIds',
params: {
- prefix: 'uwu'
- }
- }
- ]
+ prefix: 'uwu',
+ },
+ },
+ ],
};
```
+
### Default preset
Instead of configuring SVGO from scratch, you can tweak the default preset to suit your needs by configuring or disabling the respective plugin.
**`svgo.config.js`**
+
```js
module.exports = {
plugins: [
@@ -91,11 +95,11 @@ module.exports = {
// customize the params of a default plugin
inlineStyles: {
onlyMatchedOnce: false,
- }
- }
- }
- }
- ]
+ },
+ },
+ },
+ },
+ ],
};
```
@@ -106,6 +110,7 @@ You can find a list of the default plugins in the order they run in [Preset Defa
You can also specify custom plugins:
**`svgo.config.js`**
+
```js
const importedPlugin = require('./imported-plugin');
@@ -120,9 +125,9 @@ module.exports = {
params: {
paramName: 'paramValue',
},
- fn: (ast, params, info) => {}
- }
- ]
+ fn: (ast, params, info) => {},
+ },
+ ],
};
```
@@ -139,7 +144,7 @@ const { optimize } = require('svgo');
const result = optimize(svgString, {
path: 'path-to.svg', // recommended
- multipass: true // all other config fields are available here
+ multipass: true, // all other config fields are available here
});
const optimizedSvgString = result.data;
@@ -163,29 +168,29 @@ const config = await loadConfig(configFile, cwd);
## Other ways to use SVGO
-| Method | Reference |
-| --- | --- |
-| Web app | [SVGOMG](https://jakearchibald.github.io/svgomg/) |
-| Grunt task | [grunt-svgmin](https://github.com/sindresorhus/grunt-svgmin) |
-| Gulp task | [gulp-svgmin](https://github.com/ben-eb/gulp-svgmin) |
-| Webpack loader | [image-minimizer-webpack-plugin](https://github.com/webpack-contrib/image-minimizer-webpack-plugin/#optimize-with-svgo) |
-| PostCSS plugin | [postcss-svgo](https://github.com/cssnano/cssnano/tree/master/packages/postcss-svgo) |
-| Inkscape plugin | [inkscape-svgo](https://github.com/konsumer/inkscape-svgo) |
-| Sketch plugin | [svgo-compressor](https://github.com/BohemianCoding/svgo-compressor) |
-| Rollup plugin | [rollup-plugin-svgo](https://github.com/porsager/rollup-plugin-svgo) |
-| Visual Studio Code plugin | [vscode-svgo](https://github.com/1000ch/vscode-svgo) |
-| Atom plugin | [atom-svgo](https://github.com/1000ch/atom-svgo) |
-| Sublime plugin | [Sublime-svgo](https://github.com/1000ch/Sublime-svgo) |
-| Figma plugin | [Advanced SVG Export](https://www.figma.com/c/plugin/782713260363070260/Advanced-SVG-Export) |
-| Linux app | [Oh My SVG](https://github.com/sonnyp/OhMySVG) |
-| Browser extension | [SVG Gobbler](https://github.com/rossmoody/svg-gobbler) |
-| API | [Vector Express](https://github.com/smidyo/vectorexpress-api#convertor-svgo) |
+| Method | Reference |
+| ------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
+| Web app | [SVGOMG](https://jakearchibald.github.io/svgomg/) |
+| Grunt task | [grunt-svgmin](https://github.com/sindresorhus/grunt-svgmin) |
+| Gulp task | [gulp-svgmin](https://github.com/ben-eb/gulp-svgmin) |
+| Webpack loader | [image-minimizer-webpack-plugin](https://github.com/webpack-contrib/image-minimizer-webpack-plugin/#optimize-with-svgo) |
+| PostCSS plugin | [postcss-svgo](https://github.com/cssnano/cssnano/tree/master/packages/postcss-svgo) |
+| Inkscape plugin | [inkscape-svgo](https://github.com/konsumer/inkscape-svgo) |
+| Sketch plugin | [svgo-compressor](https://github.com/BohemianCoding/svgo-compressor) |
+| Rollup plugin | [rollup-plugin-svgo](https://github.com/porsager/rollup-plugin-svgo) |
+| Visual Studio Code plugin | [vscode-svgo](https://github.com/1000ch/vscode-svgo) |
+| Atom plugin | [atom-svgo](https://github.com/1000ch/atom-svgo) |
+| Sublime plugin | [Sublime-svgo](https://github.com/1000ch/Sublime-svgo) |
+| Figma plugin | [Advanced SVG Export](https://www.figma.com/c/plugin/782713260363070260/Advanced-SVG-Export) |
+| Linux app | [Oh My SVG](https://github.com/sonnyp/OhMySVG) |
+| Browser extension | [SVG Gobbler](https://github.com/rossmoody/svg-gobbler) |
+| API | [Vector Express](https://github.com/smidyo/vectorexpress-api#convertor-svgo) |
## Donors
| [<img src="https://sheetjs.com/sketch128.png" width="80">](https://sheetjs.com/) | [<img src="https://raw.githubusercontent.com/fontello/fontello/8.0.0/fontello-image.svg" width="80">](https://fontello.com/) |
-| :---: | :---: |
-| [SheetJS LLC](https://sheetjs.com/) | [Fontello](https://fontello.com/) |
+| :------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: |
+| [SheetJS LLC](https://sheetjs.com/) | [Fontello](https://fontello.com/) |
## License and Copyright
diff --git a/node_modules/svgo/bin/svgo b/node_modules/svgo/bin/svgo
index efa0a291..cbca2b04 100755
--- a/node_modules/svgo/bin/svgo
+++ b/node_modules/svgo/bin/svgo
@@ -4,7 +4,7 @@ const colors = require('picocolors');
const { program } = require('commander');
const makeProgram = require('../lib/svgo/coa');
makeProgram(program);
-program.parseAsync(process.argv).catch(error => {
+program.parseAsync(process.argv).catch((error) => {
console.error(colors.red(error.stack));
process.exit(1);
});
diff --git a/node_modules/svgo/dist/svgo.browser.js b/node_modules/svgo/dist/svgo.browser.js
index efd576b0..f16060ab 100644
--- a/node_modules/svgo/dist/svgo.browser.js
+++ b/node_modules/svgo/dist/svgo.browser.js
@@ -1 +1 @@
-var commonjsGlobal=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getAugmentedNamespace(n){var f=n.default;if(typeof f=="function"){var a=function(){return f.apply(this,arguments)};a.prototype=f.prototype}else a={};Object.defineProperty(a,"__esModule",{value:true});Object.keys(n).forEach((function(k){var d=Object.getOwnPropertyDescriptor(n,k);Object.defineProperty(a,k,d.get?d:{enumerable:true,get:function(){return n[k]}})}));return a}var svgo={};var parser$2={};var sax={};(function(exports){(function(sax){sax.parser=function(strict,opt){return new SAXParser(strict,opt)};sax.SAXParser=SAXParser;sax.MAX_BUFFER_LENGTH=64*1024;var buffers=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];sax.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function SAXParser(strict,opt){if(!(this instanceof SAXParser)){return new SAXParser(strict,opt)}var parser=this;clearBuffers(parser);parser.q=parser.c="";parser.bufferCheckPosition=sax.MAX_BUFFER_LENGTH;parser.opt=opt||{};parser.opt.lowercase=parser.opt.lowercase||parser.opt.lowercasetags;parser.looseCase=parser.opt.lowercase?"toLowerCase":"toUpperCase";parser.tags=[];parser.closed=parser.closedRoot=parser.sawRoot=false;parser.tag=parser.error=null;parser.strict=!!strict;parser.noscript=!!(strict||parser.opt.noscript);parser.state=S.BEGIN;parser.strictEntities=parser.opt.strictEntities;parser.ENTITIES=parser.strictEntities?Object.create(sax.XML_ENTITIES):Object.create(sax.ENTITIES);parser.attribList=[];if(parser.opt.xmlns){parser.ns=Object.create(rootNS)}parser.trackPosition=parser.opt.position!==false;if(parser.trackPosition){parser.position=parser.line=parser.column=0}emit(parser,"onready")}if(!Object.create){Object.create=function(o){function F(){}F.prototype=o;var newf=new F;return newf}}if(!Object.keys){Object.keys=function(o){var a=[];for(var i in o)if(o.hasOwnProperty(i))a.push(i);return a}}function checkBufferLength(parser){var maxAllowed=Math.max(sax.MAX_BUFFER_LENGTH,10);var maxActual=0;for(var i=0,l=buffers.length;i<l;i++){var len=parser[buffers[i]].length;if(len>maxAllowed){switch(buffers[i]){case"textNode":closeText(parser);break;case"cdata":emitNode(parser,"oncdata",parser.cdata);parser.cdata="";break;case"script":emitNode(parser,"onscript",parser.script);parser.script="";break;default:error(parser,"Max buffer length exceeded: "+buffers[i])}}maxActual=Math.max(maxActual,len)}var m=sax.MAX_BUFFER_LENGTH-maxActual;parser.bufferCheckPosition=m+parser.position}function clearBuffers(parser){for(var i=0,l=buffers.length;i<l;i++){parser[buffers[i]]=""}}function flushBuffers(parser){closeText(parser);if(parser.cdata!==""){emitNode(parser,"oncdata",parser.cdata);parser.cdata=""}if(parser.script!==""){emitNode(parser,"onscript",parser.script);parser.script=""}}SAXParser.prototype={end:function(){end(this)},write:write,resume:function(){this.error=null;return this},close:function(){return this.write(null)},flush:function(){flushBuffers(this)}};var CDATA="[CDATA[";var DOCTYPE="DOCTYPE";var XML_NAMESPACE="http://www.w3.org/XML/1998/namespace";var XMLNS_NAMESPACE="http://www.w3.org/2000/xmlns/";var rootNS={xml:XML_NAMESPACE,xmlns:XMLNS_NAMESPACE};var nameStart=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var nameBody=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;var entityStart=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var entityBody=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function isWhitespace(c){return c===" "||c==="\n"||c==="\r"||c==="\t"}function isQuote(c){return c==='"'||c==="'"}function isAttribEnd(c){return c===">"||isWhitespace(c)}function isMatch(regex,c){return regex.test(c)}function notMatch(regex,c){return!isMatch(regex,c)}var S=0;sax.STATE={BEGIN:S++,BEGIN_WHITESPACE:S++,TEXT:S++,TEXT_ENTITY:S++,OPEN_WAKA:S++,SGML_DECL:S++,SGML_DECL_QUOTED:S++,DOCTYPE:S++,DOCTYPE_QUOTED:S++,DOCTYPE_DTD:S++,DOCTYPE_DTD_QUOTED:S++,COMMENT_STARTING:S++,COMMENT:S++,COMMENT_ENDING:S++,COMMENT_ENDED:S++,CDATA:S++,CDATA_ENDING:S++,CDATA_ENDING_2:S++,PROC_INST:S++,PROC_INST_BODY:S++,PROC_INST_ENDING:S++,OPEN_TAG:S++,OPEN_TAG_SLASH:S++,ATTRIB:S++,ATTRIB_NAME:S++,ATTRIB_NAME_SAW_WHITE:S++,ATTRIB_VALUE:S++,ATTRIB_VALUE_QUOTED:S++,ATTRIB_VALUE_CLOSED:S++,ATTRIB_VALUE_UNQUOTED:S++,ATTRIB_VALUE_ENTITY_Q:S++,ATTRIB_VALUE_ENTITY_U:S++,CLOSE_TAG:S++,CLOSE_TAG_SAW_WHITE:S++,SCRIPT:S++,SCRIPT_ENDING:S++};sax.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"};sax.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830};Object.keys(sax.ENTITIES).forEach((function(key){var e=sax.ENTITIES[key];var s=typeof e==="number"?String.fromCharCode(e):e;sax.ENTITIES[key]=s}));for(var s in sax.STATE){sax.STATE[sax.STATE[s]]=s}S=sax.STATE;function emit(parser,event,data){parser[event]&&parser[event](data)}function emitNode(parser,nodeType,data){if(parser.textNode)closeText(parser);emit(parser,nodeType,data)}function closeText(parser){parser.textNode=textopts(parser.opt,parser.textNode);if(parser.textNode)emit(parser,"ontext",parser.textNode);parser.textNode=""}function textopts(opt,text){if(opt.trim)text=text.trim();if(opt.normalize)text=text.replace(/\s+/g," ");return text}function error(parser,reason){closeText(parser);const message=reason+"\nLine: "+parser.line+"\nColumn: "+parser.column+"\nChar: "+parser.c;const error=new Error(message);error.reason=reason;error.line=parser.line;error.column=parser.column;parser.error=error;emit(parser,"onerror",error);return parser}function end(parser){if(parser.sawRoot&&!parser.closedRoot)strictFail(parser,"Unclosed root tag");if(parser.state!==S.BEGIN&&parser.state!==S.BEGIN_WHITESPACE&&parser.state!==S.TEXT){error(parser,"Unexpected end")}closeText(parser);parser.c="";parser.closed=true;emit(parser,"onend");SAXParser.call(parser,parser.strict,parser.opt);return parser}function strictFail(parser,message){if(typeof parser!=="object"||!(parser instanceof SAXParser)){throw new Error("bad call to strictFail")}if(parser.strict){error(parser,message)}}function newTag(parser){if(!parser.strict)parser.tagName=parser.tagName[parser.looseCase]();var parent=parser.tags[parser.tags.length-1]||parser;var tag=parser.tag={name:parser.tagName,attributes:{}};if(parser.opt.xmlns){tag.ns=parent.ns}parser.attribList.length=0;emitNode(parser,"onopentagstart",tag)}function qname(name,attribute){var i=name.indexOf(":");var qualName=i<0?["",name]:name.split(":");var prefix=qualName[0];var local=qualName[1];if(attribute&&name==="xmlns"){prefix="xmlns";local=""}return{prefix:prefix,local:local}}function attrib(parser){if(!parser.strict){parser.attribName=parser.attribName[parser.looseCase]()}if(parser.attribList.indexOf(parser.attribName)!==-1||parser.tag.attributes.hasOwnProperty(parser.attribName)){parser.attribName=parser.attribValue="";return}if(parser.opt.xmlns){var qn=qname(parser.attribName,true);var prefix=qn.prefix;var local=qn.local;if(prefix==="xmlns"){if(local==="xml"&&parser.attribValue!==XML_NAMESPACE){strictFail(parser,"xml: prefix must be bound to "+XML_NAMESPACE+"\n"+"Actual: "+parser.attribValue)}else if(local==="xmlns"&&parser.attribValue!==XMLNS_NAMESPACE){strictFail(parser,"xmlns: prefix must be bound to "+XMLNS_NAMESPACE+"\n"+"Actual: "+parser.attribValue)}else{var tag=parser.tag;var parent=parser.tags[parser.tags.length-1]||parser;if(tag.ns===parent.ns){tag.ns=Object.create(parent.ns)}tag.ns[local]=parser.attribValue}}parser.attribList.push([parser.attribName,parser.attribValue])}else{parser.tag.attributes[parser.attribName]=parser.attribValue;emitNode(parser,"onattribute",{name:parser.attribName,value:parser.attribValue})}parser.attribName=parser.attribValue=""}function openTag(parser,selfClosing){if(parser.opt.xmlns){var tag=parser.tag;var qn=qname(parser.tagName);tag.prefix=qn.prefix;tag.local=qn.local;tag.uri=tag.ns[qn.prefix]||"";if(tag.prefix&&!tag.uri){strictFail(parser,"Unbound namespace prefix: "+JSON.stringify(parser.tagName));tag.uri=qn.prefix}var parent=parser.tags[parser.tags.length-1]||parser;if(tag.ns&&parent.ns!==tag.ns){Object.keys(tag.ns).forEach((function(p){emitNode(parser,"onopennamespace",{prefix:p,uri:tag.ns[p]})}))}for(var i=0,l=parser.attribList.length;i<l;i++){var nv=parser.attribList[i];var name=nv[0];var value=nv[1];var qualName=qname(name,true);var prefix=qualName.prefix;var local=qualName.local;var uri=prefix===""?"":tag.ns[prefix]||"";var a={name:name,value:value,prefix:prefix,local:local,uri:uri};if(prefix&&prefix!=="xmlns"&&!uri){strictFail(parser,"Unbound namespace prefix: "+JSON.stringify(prefix));a.uri=prefix}parser.tag.attributes[name]=a;emitNode(parser,"onattribute",a)}parser.attribList.length=0}parser.tag.isSelfClosing=!!selfClosing;parser.sawRoot=true;parser.tags.push(parser.tag);emitNode(parser,"onopentag",parser.tag);if(!selfClosing){if(!parser.noscript&&parser.tagName.toLowerCase()==="script"){parser.state=S.SCRIPT}else{parser.state=S.TEXT}parser.tag=null;parser.tagName=""}parser.attribName=parser.attribValue="";parser.attribList.length=0}function closeTag(parser){if(!parser.tagName){strictFail(parser,"Weird empty close tag.");parser.textNode+="</>";parser.state=S.TEXT;return}if(parser.script){if(parser.tagName!=="script"){parser.script+="</"+parser.tagName+">";parser.tagName="";parser.state=S.SCRIPT;return}emitNode(parser,"onscript",parser.script);parser.script=""}var t=parser.tags.length;var tagName=parser.tagName;if(!parser.strict){tagName=tagName[parser.looseCase]()}var closeTo=tagName;while(t--){var close=parser.tags[t];if(close.name!==closeTo){strictFail(parser,"Unexpected close tag")}else{break}}if(t<0){strictFail(parser,"Unmatched closing tag: "+parser.tagName);parser.textNode+="</"+parser.tagName+">";parser.state=S.TEXT;return}parser.tagName=tagName;var s=parser.tags.length;while(s-- >t){var tag=parser.tag=parser.tags.pop();parser.tagName=parser.tag.name;emitNode(parser,"onclosetag",parser.tagName);var x={};for(var i in tag.ns){x[i]=tag.ns[i]}var parent=parser.tags[parser.tags.length-1]||parser;if(parser.opt.xmlns&&tag.ns!==parent.ns){Object.keys(tag.ns).forEach((function(p){var n=tag.ns[p];emitNode(parser,"onclosenamespace",{prefix:p,uri:n})}))}}if(t===0)parser.closedRoot=true;parser.tagName=parser.attribValue=parser.attribName="";parser.attribList.length=0;parser.state=S.TEXT}function parseEntity(parser){var entity=parser.entity;var entityLC=entity.toLowerCase();var num;var numStr="";if(parser.ENTITIES[entity]){return parser.ENTITIES[entity]}if(parser.ENTITIES[entityLC]){return parser.ENTITIES[entityLC]}entity=entityLC;if(entity.charAt(0)==="#"){if(entity.charAt(1)==="x"){entity=entity.slice(2);num=parseInt(entity,16);numStr=num.toString(16)}else{entity=entity.slice(1);num=parseInt(entity,10);numStr=num.toString(10)}}entity=entity.replace(/^0+/,"");if(isNaN(num)||numStr.toLowerCase()!==entity){strictFail(parser,"Invalid character entity");return"&"+parser.entity+";"}return String.fromCodePoint(num)}function beginWhiteSpace(parser,c){if(c==="<"){parser.state=S.OPEN_WAKA;parser.startTagPosition=parser.position}else if(!isWhitespace(c)){strictFail(parser,"Non-whitespace before first tag.");parser.textNode=c;parser.state=S.TEXT}}function charAt(chunk,i){var result="";if(i<chunk.length){result=chunk.charAt(i)}return result}function write(chunk){var parser=this;if(this.error){throw this.error}if(parser.closed){return error(parser,"Cannot write after close. Assign an onready handler.")}if(chunk===null){return end(parser)}if(typeof chunk==="object"){chunk=chunk.toString()}var i=0;var c="";while(true){c=charAt(chunk,i++);parser.c=c;if(!c){break}if(parser.trackPosition){parser.position++;if(c==="\n"){parser.line++;parser.column=0}else{parser.column++}}switch(parser.state){case S.BEGIN:parser.state=S.BEGIN_WHITESPACE;if(c==="\ufeff"){continue}beginWhiteSpace(parser,c);continue;case S.BEGIN_WHITESPACE:beginWhiteSpace(parser,c);continue;case S.TEXT:if(parser.sawRoot&&!parser.closedRoot){var starti=i-1;while(c&&c!=="<"&&c!=="&"){c=charAt(chunk,i++);if(c&&parser.trackPosition){parser.position++;if(c==="\n"){parser.line++;parser.column=0}else{parser.column++}}}parser.textNode+=chunk.substring(starti,i-1)}if(c==="<"&&!(parser.sawRoot&&parser.closedRoot&&!parser.strict)){parser.state=S.OPEN_WAKA;parser.startTagPosition=parser.position}else{if(!isWhitespace(c)&&(!parser.sawRoot||parser.closedRoot)){strictFail(parser,"Text data outside of root node.")}if(c==="&"){parser.state=S.TEXT_ENTITY}else{parser.textNode+=c}}continue;case S.SCRIPT:if(c==="<"){parser.state=S.SCRIPT_ENDING}else{parser.script+=c}continue;case S.SCRIPT_ENDING:if(c==="/"){parser.state=S.CLOSE_TAG}else{parser.script+="<"+c;parser.state=S.SCRIPT}continue;case S.OPEN_WAKA:if(c==="!"){parser.state=S.SGML_DECL;parser.sgmlDecl=""}else if(isWhitespace(c));else if(isMatch(nameStart,c)){parser.state=S.OPEN_TAG;parser.tagName=c}else if(c==="/"){parser.state=S.CLOSE_TAG;parser.tagName=""}else if(c==="?"){parser.state=S.PROC_INST;parser.procInstName=parser.procInstBody=""}else{strictFail(parser,"Unencoded <");if(parser.startTagPosition+1<parser.position){var pad=parser.position-parser.startTagPosition;c=new Array(pad).join(" ")+c}parser.textNode+="<"+c;parser.state=S.TEXT}continue;case S.SGML_DECL:if((parser.sgmlDecl+c).toUpperCase()===CDATA){emitNode(parser,"onopencdata");parser.state=S.CDATA;parser.sgmlDecl="";parser.cdata=""}else if(parser.sgmlDecl+c==="--"){parser.state=S.COMMENT;parser.comment="";parser.sgmlDecl=""}else if((parser.sgmlDecl+c).toUpperCase()===DOCTYPE){parser.state=S.DOCTYPE;if(parser.doctype||parser.sawRoot){strictFail(parser,"Inappropriately located doctype declaration")}parser.doctype="";parser.sgmlDecl=""}else if(c===">"){emitNode(parser,"onsgmldeclaration",parser.sgmlDecl);parser.sgmlDecl="";parser.state=S.TEXT}else if(isQuote(c)){parser.state=S.SGML_DECL_QUOTED;parser.sgmlDecl+=c}else{parser.sgmlDecl+=c}continue;case S.SGML_DECL_QUOTED:if(c===parser.q){parser.state=S.SGML_DECL;parser.q=""}parser.sgmlDecl+=c;continue;case S.DOCTYPE:if(c===">"){parser.state=S.TEXT;emitNode(parser,"ondoctype",parser.doctype);parser.doctype=true}else{parser.doctype+=c;if(c==="["){parser.state=S.DOCTYPE_DTD}else if(isQuote(c)){parser.state=S.DOCTYPE_QUOTED;parser.q=c}}continue;case S.DOCTYPE_QUOTED:parser.doctype+=c;if(c===parser.q){parser.q="";parser.state=S.DOCTYPE}continue;case S.DOCTYPE_DTD:parser.doctype+=c;if(c==="]"){parser.state=S.DOCTYPE}else if(isQuote(c)){parser.state=S.DOCTYPE_DTD_QUOTED;parser.q=c}continue;case S.DOCTYPE_DTD_QUOTED:parser.doctype+=c;if(c===parser.q){parser.state=S.DOCTYPE_DTD;parser.q=""}continue;case S.COMMENT:if(c==="-"){parser.state=S.COMMENT_ENDING}else{parser.comment+=c}continue;case S.COMMENT_ENDING:if(c==="-"){parser.state=S.COMMENT_ENDED;parser.comment=textopts(parser.opt,parser.comment);if(parser.comment){emitNode(parser,"oncomment",parser.comment)}parser.comment=""}else{parser.comment+="-"+c;parser.state=S.COMMENT}continue;case S.COMMENT_ENDED:if(c!==">"){strictFail(parser,"Malformed comment");parser.comment+="--"+c;parser.state=S.COMMENT}else{parser.state=S.TEXT}continue;case S.CDATA:if(c==="]"){parser.state=S.CDATA_ENDING}else{parser.cdata+=c}continue;case S.CDATA_ENDING:if(c==="]"){parser.state=S.CDATA_ENDING_2}else{parser.cdata+="]"+c;parser.state=S.CDATA}continue;case S.CDATA_ENDING_2:if(c===">"){if(parser.cdata){emitNode(parser,"oncdata",parser.cdata)}emitNode(parser,"onclosecdata");parser.cdata="";parser.state=S.TEXT}else if(c==="]"){parser.cdata+="]"}else{parser.cdata+="]]"+c;parser.state=S.CDATA}continue;case S.PROC_INST:if(c==="?"){parser.state=S.PROC_INST_ENDING}else if(isWhitespace(c)){parser.state=S.PROC_INST_BODY}else{parser.procInstName+=c}continue;case S.PROC_INST_BODY:if(!parser.procInstBody&&isWhitespace(c)){continue}else if(c==="?"){parser.state=S.PROC_INST_ENDING}else{parser.procInstBody+=c}continue;case S.PROC_INST_ENDING:if(c===">"){emitNode(parser,"onprocessinginstruction",{name:parser.procInstName,body:parser.procInstBody});parser.procInstName=parser.procInstBody="";parser.state=S.TEXT}else{parser.procInstBody+="?"+c;parser.state=S.PROC_INST_BODY}continue;case S.OPEN_TAG:if(isMatch(nameBody,c)){parser.tagName+=c}else{newTag(parser);if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else{if(!isWhitespace(c)){strictFail(parser,"Invalid character in tag name")}parser.state=S.ATTRIB}}continue;case S.OPEN_TAG_SLASH:if(c===">"){openTag(parser,true);closeTag(parser)}else{strictFail(parser,"Forward-slash in opening tag not followed by >");parser.state=S.ATTRIB}continue;case S.ATTRIB:if(isWhitespace(c)){continue}else if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else if(isMatch(nameStart,c)){parser.attribName=c;parser.attribValue="";parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_NAME:if(c==="="){parser.state=S.ATTRIB_VALUE}else if(c===">"){strictFail(parser,"Attribute without value");parser.attribValue=parser.attribName;attrib(parser);openTag(parser)}else if(isWhitespace(c)){parser.state=S.ATTRIB_NAME_SAW_WHITE}else if(isMatch(nameBody,c)){parser.attribName+=c}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_NAME_SAW_WHITE:if(c==="="){parser.state=S.ATTRIB_VALUE}else if(isWhitespace(c)){continue}else{strictFail(parser,"Attribute without value");parser.tag.attributes[parser.attribName]="";parser.attribValue="";emitNode(parser,"onattribute",{name:parser.attribName,value:""});parser.attribName="";if(c===">"){openTag(parser)}else if(isMatch(nameStart,c)){parser.attribName=c;parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name");parser.state=S.ATTRIB}}continue;case S.ATTRIB_VALUE:if(isWhitespace(c)){continue}else if(isQuote(c)){parser.q=c;parser.state=S.ATTRIB_VALUE_QUOTED}else{strictFail(parser,"Unquoted attribute value");parser.state=S.ATTRIB_VALUE_UNQUOTED;parser.attribValue=c}continue;case S.ATTRIB_VALUE_QUOTED:if(c!==parser.q){if(c==="&"){parser.state=S.ATTRIB_VALUE_ENTITY_Q}else{parser.attribValue+=c}continue}attrib(parser);parser.q="";parser.state=S.ATTRIB_VALUE_CLOSED;continue;case S.ATTRIB_VALUE_CLOSED:if(isWhitespace(c)){parser.state=S.ATTRIB}else if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else if(isMatch(nameStart,c)){strictFail(parser,"No whitespace between attributes");parser.attribName=c;parser.attribValue="";parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_VALUE_UNQUOTED:if(!isAttribEnd(c)){if(c==="&"){parser.state=S.ATTRIB_VALUE_ENTITY_U}else{parser.attribValue+=c}continue}attrib(parser);if(c===">"){openTag(parser)}else{parser.state=S.ATTRIB}continue;case S.CLOSE_TAG:if(!parser.tagName){if(isWhitespace(c)){continue}else if(notMatch(nameStart,c)){if(parser.script){parser.script+="</"+c;parser.state=S.SCRIPT}else{strictFail(parser,"Invalid tagname in closing tag.")}}else{parser.tagName=c}}else if(c===">"){closeTag(parser)}else if(isMatch(nameBody,c)){parser.tagName+=c}else if(parser.script){parser.script+="</"+parser.tagName;parser.tagName="";parser.state=S.SCRIPT}else{if(!isWhitespace(c)){strictFail(parser,"Invalid tagname in closing tag")}parser.state=S.CLOSE_TAG_SAW_WHITE}continue;case S.CLOSE_TAG_SAW_WHITE:if(isWhitespace(c)){continue}if(c===">"){closeTag(parser)}else{strictFail(parser,"Invalid characters in closing tag")}continue;case S.TEXT_ENTITY:case S.ATTRIB_VALUE_ENTITY_Q:case S.ATTRIB_VALUE_ENTITY_U:var returnState;var buffer;switch(parser.state){case S.TEXT_ENTITY:returnState=S.TEXT;buffer="textNode";break;case S.ATTRIB_VALUE_ENTITY_Q:returnState=S.ATTRIB_VALUE_QUOTED;buffer="attribValue";break;case S.ATTRIB_VALUE_ENTITY_U:returnState=S.ATTRIB_VALUE_UNQUOTED;buffer="attribValue";break}if(c===";"){var parsedEntity=parseEntity(parser);if(parser.state===S.TEXT_ENTITY&&!sax.ENTITIES[parser.entity]&&parsedEntity!=="&"+parser.entity+";"){chunk=chunk.slice(0,i)+parsedEntity+chunk.slice(i)}else{parser[buffer]+=parsedEntity}parser.entity="";parser.state=returnState}else if(isMatch(parser.entity.length?entityBody:entityStart,c)){parser.entity+=c}else{strictFail(parser,"Invalid character in entity name");parser[buffer]+="&"+parser.entity+c;parser.entity="";parser.state=returnState}continue;default:throw new Error(parser,"Unknown state: "+parser.state)}}if(parser.position>=parser.bufferCheckPosition){checkBufferLength(parser)}return parser}})(exports)})(sax);var _collections={};(function(exports){exports.elemsGroups={animation:["animate","animateColor","animateMotion","animateTransform","set"],descriptive:["desc","metadata","title"],shape:["circle","ellipse","line","path","polygon","polyline","rect"],structural:["defs","g","svg","symbol","use"],paintServer:["solidColor","linearGradient","radialGradient","meshGradient","pattern","hatch"],nonRendering:["linearGradient","radialGradient","pattern","clipPath","mask","marker","symbol","filter","solidColor"],container:["a","defs","g","marker","mask","missing-glyph","pattern","svg","switch","symbol","foreignObject"],textContent:["altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","textPath","text","tref","tspan"],textContentChild:["altGlyph","textPath","tref","tspan"],lightSource:["feDiffuseLighting","feSpecularLighting","feDistantLight","fePointLight","feSpotLight"],filterPrimitive:["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence"]};exports.textElems=[...exports.elemsGroups.textContent,"title","pre"];exports.pathElems=["path","glyph","missing-glyph"];exports.attrsGroups={animationAddition:["additive","accumulate"],animationAttributeTarget:["attributeType","attributeName"],animationEvent:["onbegin","onend","onrepeat","onload"],animationTiming:["begin","dur","end","min","max","restart","repeatCount","repeatDur","fill"],animationValue:["calcMode","values","keyTimes","keySplines","from","to","by"],conditionalProcessing:["requiredFeatures","requiredExtensions","systemLanguage"],core:["id","tabindex","xml:base","xml:lang","xml:space"],graphicalEvent:["onfocusin","onfocusout","onactivate","onclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onload"],presentation:["alignment-baseline","baseline-shift","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","display","dominant-baseline","enable-background","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","transform-origin","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode"],xlink:["xlink:href","xlink:show","xlink:actuate","xlink:type","xlink:role","xlink:arcrole","xlink:title"],documentEvent:["onabort","onerror","onresize","onscroll","onunload","onzoom"],documentElementEvent:["oncopy","oncut","onpaste"],globalEvent:["oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting"],filterPrimitive:["x","y","width","height","result"],transferFunction:["type","tableValues","slope","intercept","amplitude","exponent","offset"]};exports.attrsGroupsDefaults={core:{"xml:space":"default"},presentation:{clip:"auto","clip-path":"none","clip-rule":"nonzero",mask:"none",opacity:"1","stop-color":"#000","stop-opacity":"1","fill-opacity":"1","fill-rule":"nonzero",fill:"#000",stroke:"none","stroke-width":"1","stroke-linecap":"butt","stroke-linejoin":"miter","stroke-miterlimit":"4","stroke-dasharray":"none","stroke-dashoffset":"0","stroke-opacity":"1","paint-order":"normal","vector-effect":"none",display:"inline",visibility:"visible","marker-start":"none","marker-mid":"none","marker-end":"none","color-interpolation":"sRGB","color-interpolation-filters":"linearRGB","color-rendering":"auto","shape-rendering":"auto","text-rendering":"auto","image-rendering":"auto","font-style":"normal","font-variant":"normal","font-weight":"normal","font-stretch":"normal","font-size":"medium","font-size-adjust":"none",kerning:"auto","letter-spacing":"normal","word-spacing":"normal","text-decoration":"none","text-anchor":"start","text-overflow":"clip","writing-mode":"lr-tb","glyph-orientation-vertical":"auto","glyph-orientation-horizontal":"0deg",direction:"ltr","unicode-bidi":"normal","dominant-baseline":"auto","alignment-baseline":"baseline","baseline-shift":"baseline"},transferFunction:{slope:"1",intercept:"0",amplitude:"1",exponent:"1",offset:"0"}};exports.elems={a:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation","xlink"],attrs:["class","style","externalResourcesRequired","transform","target"],defaults:{target:"_self"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view","tspan"]},altGlyph:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation","xlink"],attrs:["class","style","externalResourcesRequired","x","y","dx","dy","glyphRef","format","rotate"]},altGlyphDef:{attrsGroups:["core"],content:["glyphRef"]},altGlyphItem:{attrsGroups:["core"],content:["glyphRef","altGlyphItem"]},animate:{attrsGroups:["conditionalProcessing","core","animationAddition","animationAttributeTarget","animationEvent","animationTiming","animationValue","presentation","xlink"],attrs:["externalResourcesRequired"],contentGroups:["descriptive"]},animateColor:{attrsGroups:["conditionalProcessing","core","animationEvent","xlink","animationAttributeTarget","animationTiming","animationValue","animationAddition","presentation"],attrs:["externalResourcesRequired"],contentGroups:["descriptive"]},animateMotion:{attrsGroups:["conditionalProcessing","core","animationEvent","xlink","animationTiming","animationValue","animationAddition"],attrs:["externalResourcesRequired","path","keyPoints","rotate","origin"],defaults:{rotate:"0"},contentGroups:["descriptive"],content:["mpath"]},animateTransform:{attrsGroups:["conditionalProcessing","core","animationEvent","xlink","animationAttributeTarget","animationTiming","animationValue","animationAddition"],attrs:["externalResourcesRequired","type"],contentGroups:["descriptive"]},circle:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","cx","cy","r"],defaults:{cx:"0",cy:"0"},contentGroups:["animation","descriptive"]},clipPath:{attrsGroups:["conditionalProcessing","core","presentation"],attrs:["class","style","externalResourcesRequired","transform","clipPathUnits"],defaults:{clipPathUnits:"userSpaceOnUse"},contentGroups:["animation","descriptive","shape"],content:["text","use"]},"color-profile":{attrsGroups:["core","xlink"],attrs:["local","name","rendering-intent"],defaults:{name:"sRGB","rendering-intent":"auto"},contentGroups:["descriptive"]},cursor:{attrsGroups:["core","conditionalProcessing","xlink"],attrs:["externalResourcesRequired","x","y"],defaults:{x:"0",y:"0"},contentGroups:["descriptive"]},defs:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform"],contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},desc:{attrsGroups:["core"],attrs:["class","style"]},ellipse:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","cx","cy","rx","ry"],defaults:{cx:"0",cy:"0"},contentGroups:["animation","descriptive"]},feBlend:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","in2","mode"],defaults:{mode:"normal"},content:["animate","set"]},feColorMatrix:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","type","values"],defaults:{type:"matrix"},content:["animate","set"]},feComponentTransfer:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in"],content:["feFuncA","feFuncB","feFuncG","feFuncR"]},feComposite:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","in2","operator","k1","k2","k3","k4"],defaults:{operator:"over",k1:"0",k2:"0",k3:"0",k4:"0"},content:["animate","set"]},feConvolveMatrix:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","order","kernelMatrix","divisor","bias","targetX","targetY","edgeMode","kernelUnitLength","preserveAlpha"],defaults:{order:"3",bias:"0",edgeMode:"duplicate",preserveAlpha:"false"},content:["animate","set"]},feDiffuseLighting:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","surfaceScale","diffuseConstant","kernelUnitLength"],defaults:{surfaceScale:"1",diffuseConstant:"1"},contentGroups:["descriptive"],content:["feDistantLight","fePointLight","feSpotLight"]},feDisplacementMap:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","in2","scale","xChannelSelector","yChannelSelector"],defaults:{scale:"0",xChannelSelector:"A",yChannelSelector:"A"},content:["animate","set"]},feDistantLight:{attrsGroups:["core"],attrs:["azimuth","elevation"],defaults:{azimuth:"0",elevation:"0"},content:["animate","set"]},feFlood:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style"],content:["animate","animateColor","set"]},feFuncA:{attrsGroups:["core","transferFunction"],content:["set","animate"]},feFuncB:{attrsGroups:["core","transferFunction"],content:["set","animate"]},feFuncG:{attrsGroups:["core","transferFunction"],content:["set","animate"]},feFuncR:{attrsGroups:["core","transferFunction"],content:["set","animate"]},feGaussianBlur:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","stdDeviation"],defaults:{stdDeviation:"0"},content:["set","animate"]},feImage:{attrsGroups:["core","presentation","filterPrimitive","xlink"],attrs:["class","style","externalResourcesRequired","preserveAspectRatio","href","xlink:href"],defaults:{preserveAspectRatio:"xMidYMid meet"},content:["animate","animateTransform","set"]},feMerge:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style"],content:["feMergeNode"]},feMergeNode:{attrsGroups:["core"],attrs:["in"],content:["animate","set"]},feMorphology:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","operator","radius"],defaults:{operator:"erode",radius:"0"},content:["animate","set"]},feOffset:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","dx","dy"],defaults:{dx:"0",dy:"0"},content:["animate","set"]},fePointLight:{attrsGroups:["core"],attrs:["x","y","z"],defaults:{x:"0",y:"0",z:"0"},content:["animate","set"]},feSpecularLighting:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in","surfaceScale","specularConstant","specularExponent","kernelUnitLength"],defaults:{surfaceScale:"1",specularConstant:"1",specularExponent:"1"},contentGroups:["descriptive","lightSource"]},feSpotLight:{attrsGroups:["core"],attrs:["x","y","z","pointsAtX","pointsAtY","pointsAtZ","specularExponent","limitingConeAngle"],defaults:{x:"0",y:"0",z:"0",pointsAtX:"0",pointsAtY:"0",pointsAtZ:"0",specularExponent:"1"},content:["animate","set"]},feTile:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","in"],content:["animate","set"]},feTurbulence:{attrsGroups:["core","presentation","filterPrimitive"],attrs:["class","style","baseFrequency","numOctaves","seed","stitchTiles","type"],defaults:{baseFrequency:"0",numOctaves:"1",seed:"0",stitchTiles:"noStitch",type:"turbulence"},content:["animate","set"]},filter:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","externalResourcesRequired","x","y","width","height","filterRes","filterUnits","primitiveUnits","href","xlink:href"],defaults:{primitiveUnits:"userSpaceOnUse",x:"-10%",y:"-10%",width:"120%",height:"120%"},contentGroups:["descriptive","filterPrimitive"],content:["animate","set"]},font:{attrsGroups:["core","presentation"],attrs:["class","style","externalResourcesRequired","horiz-origin-x","horiz-origin-y","horiz-adv-x","vert-origin-x","vert-origin-y","vert-adv-y"],defaults:{"horiz-origin-x":"0","horiz-origin-y":"0"},contentGroups:["descriptive"],content:["font-face","glyph","hkern","missing-glyph","vkern"]},"font-face":{attrsGroups:["core"],attrs:["font-family","font-style","font-variant","font-weight","font-stretch","font-size","unicode-range","units-per-em","panose-1","stemv","stemh","slope","cap-height","x-height","accent-height","ascent","descent","widths","bbox","ideographic","alphabetic","mathematical","hanging","v-ideographic","v-alphabetic","v-mathematical","v-hanging","underline-position","underline-thickness","strikethrough-position","strikethrough-thickness","overline-position","overline-thickness"],defaults:{"font-style":"all","font-variant":"normal","font-weight":"all","font-stretch":"normal","unicode-range":"U+0-10FFFF","units-per-em":"1000","panose-1":"0 0 0 0 0 0 0 0 0 0",slope:"0"},contentGroups:["descriptive"],content:["font-face-src"]},"font-face-format":{attrsGroups:["core"],attrs:["string"]},"font-face-name":{attrsGroups:["core"],attrs:["name"]},"font-face-src":{attrsGroups:["core"],content:["font-face-name","font-face-uri"]},"font-face-uri":{attrsGroups:["core","xlink"],attrs:["href","xlink:href"],content:["font-face-format"]},foreignObject:{attrsGroups:["core","conditionalProcessing","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","x","y","width","height"],defaults:{x:"0",y:"0"}},g:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform"],contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},glyph:{attrsGroups:["core","presentation"],attrs:["class","style","d","horiz-adv-x","vert-origin-x","vert-origin-y","vert-adv-y","unicode","glyph-name","orientation","arabic-form","lang"],defaults:{"arabic-form":"initial"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},glyphRef:{attrsGroups:["core","presentation"],attrs:["class","style","d","horiz-adv-x","vert-origin-x","vert-origin-y","vert-adv-y"],contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},hatch:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","x","y","pitch","rotate","hatchUnits","hatchContentUnits","transform"],defaults:{hatchUnits:"objectBoundingBox",hatchContentUnits:"userSpaceOnUse",x:"0",y:"0",pitch:"0",rotate:"0"},contentGroups:["animation","descriptive"],content:["hatchPath"]},hatchPath:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","d","offset"],defaults:{offset:"0"},contentGroups:["animation","descriptive"]},hkern:{attrsGroups:["core"],attrs:["u1","g1","u2","g2","k"]},image:{attrsGroups:["core","conditionalProcessing","graphicalEvent","xlink","presentation"],attrs:["class","style","externalResourcesRequired","preserveAspectRatio","transform","x","y","width","height","href","xlink:href"],defaults:{x:"0",y:"0",preserveAspectRatio:"xMidYMid meet"},contentGroups:["animation","descriptive"]},line:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","x1","y1","x2","y2"],defaults:{x1:"0",y1:"0",x2:"0",y2:"0"},contentGroups:["animation","descriptive"]},linearGradient:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","externalResourcesRequired","x1","y1","x2","y2","gradientUnits","gradientTransform","spreadMethod","href","xlink:href"],defaults:{x1:"0",y1:"0",x2:"100%",y2:"0",spreadMethod:"pad"},contentGroups:["descriptive"],content:["animate","animateTransform","set","stop"]},marker:{attrsGroups:["core","presentation"],attrs:["class","style","externalResourcesRequired","viewBox","preserveAspectRatio","refX","refY","markerUnits","markerWidth","markerHeight","orient"],defaults:{markerUnits:"strokeWidth",refX:"0",refY:"0",markerWidth:"3",markerHeight:"3"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},mask:{attrsGroups:["conditionalProcessing","core","presentation"],attrs:["class","style","externalResourcesRequired","x","y","width","height","mask-type","maskUnits","maskContentUnits"],defaults:{maskUnits:"objectBoundingBox",maskContentUnits:"userSpaceOnUse",x:"-10%",y:"-10%",width:"120%",height:"120%"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},metadata:{attrsGroups:["core"]},"missing-glyph":{attrsGroups:["core","presentation"],attrs:["class","style","d","horiz-adv-x","vert-origin-x","vert-origin-y","vert-adv-y"],contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},mpath:{attrsGroups:["core","xlink"],attrs:["externalResourcesRequired","href","xlink:href"],contentGroups:["descriptive"]},path:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","d","pathLength"],contentGroups:["animation","descriptive"]},pattern:{attrsGroups:["conditionalProcessing","core","presentation","xlink"],attrs:["class","style","externalResourcesRequired","viewBox","preserveAspectRatio","x","y","width","height","patternUnits","patternContentUnits","patternTransform","href","xlink:href"],defaults:{patternUnits:"objectBoundingBox",patternContentUnits:"userSpaceOnUse",x:"0",y:"0",width:"0",height:"0",preserveAspectRatio:"xMidYMid meet"},contentGroups:["animation","descriptive","paintServer","shape","structural"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},polygon:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","points"],contentGroups:["animation","descriptive"]},polyline:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","points"],contentGroups:["animation","descriptive"]},radialGradient:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","externalResourcesRequired","cx","cy","r","fx","fy","fr","gradientUnits","gradientTransform","spreadMethod","href","xlink:href"],defaults:{gradientUnits:"objectBoundingBox",cx:"50%",cy:"50%",r:"50%"},contentGroups:["descriptive"],content:["animate","animateTransform","set","stop"]},meshGradient:{attrsGroups:["core","presentation","xlink"],attrs:["class","style","x","y","gradientUnits","transform"],contentGroups:["descriptive","paintServer","animation"],content:["meshRow"]},meshRow:{attrsGroups:["core","presentation"],attrs:["class","style"],contentGroups:["descriptive"],content:["meshPatch"]},meshPatch:{attrsGroups:["core","presentation"],attrs:["class","style"],contentGroups:["descriptive"],content:["stop"]},rect:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","x","y","width","height","rx","ry"],defaults:{x:"0",y:"0"},contentGroups:["animation","descriptive"]},script:{attrsGroups:["core","xlink"],attrs:["externalResourcesRequired","type","href","xlink:href"]},set:{attrsGroups:["conditionalProcessing","core","animation","xlink","animationAttributeTarget","animationTiming"],attrs:["externalResourcesRequired","to"],contentGroups:["descriptive"]},solidColor:{attrsGroups:["core","presentation"],attrs:["class","style"],contentGroups:["paintServer"]},stop:{attrsGroups:["core","presentation"],attrs:["class","style","offset","path"],content:["animate","animateColor","set"]},style:{attrsGroups:["core"],attrs:["type","media","title"],defaults:{type:"text/css"}},svg:{attrsGroups:["conditionalProcessing","core","documentEvent","graphicalEvent","presentation"],attrs:["class","style","x","y","width","height","viewBox","preserveAspectRatio","zoomAndPan","version","baseProfile","contentScriptType","contentStyleType"],defaults:{x:"0",y:"0",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",zoomAndPan:"magnify",version:"1.1",baseProfile:"none",contentScriptType:"application/ecmascript",contentStyleType:"text/css"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},switch:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform"],contentGroups:["animation","descriptive","shape"],content:["a","foreignObject","g","image","svg","switch","text","use"]},symbol:{attrsGroups:["core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","preserveAspectRatio","viewBox","refX","refY"],defaults:{refX:"0",refY:"0"},contentGroups:["animation","descriptive","shape","structural","paintServer"],content:["a","altGlyphDef","clipPath","color-profile","cursor","filter","font","font-face","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"]},text:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","transform","lengthAdjust","x","y","dx","dy","rotate","textLength"],defaults:{x:"0",y:"0",lengthAdjust:"spacing"},contentGroups:["animation","descriptive","textContentChild"],content:["a"]},textPath:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation","xlink"],attrs:["class","style","externalResourcesRequired","href","xlink:href","startOffset","method","spacing","d"],defaults:{startOffset:"0",method:"align",spacing:"exact"},contentGroups:["descriptive"],content:["a","altGlyph","animate","animateColor","set","tref","tspan"]},title:{attrsGroups:["core"],attrs:["class","style"]},tref:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation","xlink"],attrs:["class","style","externalResourcesRequired","href","xlink:href"],contentGroups:["descriptive"],content:["animate","animateColor","set"]},tspan:{attrsGroups:["conditionalProcessing","core","graphicalEvent","presentation"],attrs:["class","style","externalResourcesRequired","x","y","dx","dy","rotate","textLength","lengthAdjust"],contentGroups:["descriptive"],content:["a","altGlyph","animate","animateColor","set","tref","tspan"]},use:{attrsGroups:["core","conditionalProcessing","graphicalEvent","presentation","xlink"],attrs:["class","style","externalResourcesRequired","transform","x","y","width","height","href","xlink:href"],defaults:{x:"0",y:"0"},contentGroups:["animation","descriptive"]},view:{attrsGroups:["core"],attrs:["externalResourcesRequired","viewBox","preserveAspectRatio","zoomAndPan","viewTarget"],contentGroups:["descriptive"]},vkern:{attrsGroups:["core"],attrs:["u1","g1","u2","g2","k"]}};exports.editorNamespaces=["http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd","http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd","http://www.inkscape.org/namespaces/inkscape","http://www.bohemiancoding.com/sketch/ns","http://ns.adobe.com/AdobeIllustrator/10.0/","http://ns.adobe.com/Graphs/1.0/","http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/","http://ns.adobe.com/Variables/1.0/","http://ns.adobe.com/SaveForWeb/1.0/","http://ns.adobe.com/Extensibility/1.0/","http://ns.adobe.com/Flows/1.0/","http://ns.adobe.com/ImageReplacement/1.0/","http://ns.adobe.com/GenericCustomNamespace/1.0/","http://ns.adobe.com/XPath/1.0/","http://schemas.microsoft.com/visio/2003/SVGExtensions/","http://taptrix.com/vectorillustrator/svg_extensions","http://www.figma.com/figma/ns","http://purl.org/dc/elements/1.1/","http://creativecommons.org/ns#","http://www.w3.org/1999/02/22-rdf-syntax-ns#","http://www.serif.com/","http://www.vector.evaxdesign.sk"];exports.referencesProps=["clip-path","color-profile","fill","filter","marker-start","marker-mid","marker-end","mask","stroke","style"];exports.inheritableAttrs=["clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cursor","direction","dominant-baseline","fill","fill-opacity","fill-rule","font","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","letter-spacing","marker","marker-end","marker-mid","marker-start","paint-order","pointer-events","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-rendering","transform","visibility","word-spacing","writing-mode"];exports.presentationNonInheritableGroupAttrs=["display","clip-path","filter","mask","opacity","text-decoration","transform","unicode-bidi"];exports.colorsNames={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#639",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};exports.colorsShortNames={"#f0ffff":"azure","#f5f5dc":"beige","#ffe4c4":"bisque","#a52a2a":"brown","#ff7f50":"coral","#ffd700":"gold","#808080":"gray","#008000":"green","#4b0082":"indigo","#fffff0":"ivory","#f0e68c":"khaki","#faf0e6":"linen","#800000":"maroon","#000080":"navy","#808000":"olive","#ffa500":"orange","#da70d6":"orchid","#cd853f":"peru","#ffc0cb":"pink","#dda0dd":"plum","#800080":"purple","#f00":"red","#ff0000":"red","#fa8072":"salmon","#a0522d":"sienna","#c0c0c0":"silver","#fffafa":"snow","#d2b48c":"tan","#008080":"teal","#ff6347":"tomato","#ee82ee":"violet","#f5deb3":"wheat"};exports.colorsProps=["color","fill","stroke","stop-color","flood-color","lighting-color"];exports.pseudoClasses={displayState:["fullscreen","modal","picture-in-picture"],input:["autofill","enabled","disabled","read-only","read-write","placeholder-shown","default","checked","indetermined","blank","valid","invalid","in-range","out-of-range","required","optional","user-invalid"],linguistic:["dir","lang"],location:["any-link","link","visited","local-link","target","target-within","scope"],resourceState:["playing","paused"],timeDimensional:["current","past","future"],treeStructural:["root","empty","nth-child","nth-last-child","first-child","last-child","only-child","nth-of-type","nth-last-of-type","first-of-type","last-of-type","only-of-type"],userAction:["hover","active","focus","focus-visible","focus-within"],functional:["is","not","where","has"]}})(_collections);const SAX=sax;const{textElems:textElems$1}=_collections;class SvgoParserError extends Error{constructor(message,line,column,source,file){super(message);this.name="SvgoParserError";this.message=`${file||"<input>"}:${line}:${column}: ${message}`;this.reason=message;this.line=line;this.column=column;this.source=source;if(Error.captureStackTrace){Error.captureStackTrace(this,SvgoParserError)}}toString(){const lines=this.source.split(/\r?\n/);const startLine=Math.max(this.line-3,0);const endLine=Math.min(this.line+2,lines.length);const lineNumberWidth=String(endLine).length;const startColumn=Math.max(this.column-54,0);const endColumn=Math.max(this.column+20,80);const code=lines.slice(startLine,endLine).map(((line,index)=>{const lineSlice=line.slice(startColumn,endColumn);let ellipsisPrefix="";let ellipsisSuffix="";if(startColumn!==0){ellipsisPrefix=startColumn>line.length-1?" ":"…"}if(endColumn<line.length-1){ellipsisSuffix="…"}const number=startLine+1+index;const gutter=` ${number.toString().padStart(lineNumberWidth)} | `;if(number===this.line){const gutterSpacing=gutter.replace(/[^|]/g," ");const lineSpacing=(ellipsisPrefix+line.slice(startColumn,this.column-1)).replace(/[^\t]/g," ");const spacing=gutterSpacing+lineSpacing;return`>${gutter}${ellipsisPrefix}${lineSlice}${ellipsisSuffix}\n ${spacing}^`}return` ${gutter}${ellipsisPrefix}${lineSlice}${ellipsisSuffix}`})).join("\n");return`${this.name}: ${this.message}\n\n${code}\n`}}const entityDeclaration=/<!ENTITY\s+(\S+)\s+(?:'([^']+)'|"([^"]+)")\s*>/g;const config$2={strict:true,trim:false,normalize:false,lowercase:true,xmlns:true,position:true};const parseSvg$1=(data,from)=>{const sax=SAX.parser(config$2.strict,config$2);const root={type:"root",children:[]};let current=root;const stack=[root];const pushToContent=node=>{Object.defineProperty(node,"parentNode",{writable:true,value:current});current.children.push(node)};sax.ondoctype=doctype=>{const node={type:"doctype",name:"svg",data:{doctype:doctype}};pushToContent(node);const subsetStart=doctype.indexOf("[");if(subsetStart>=0){entityDeclaration.lastIndex=subsetStart;let entityMatch=entityDeclaration.exec(data);while(entityMatch!=null){sax.ENTITIES[entityMatch[1]]=entityMatch[2]||entityMatch[3];entityMatch=entityDeclaration.exec(data)}}};sax.onprocessinginstruction=data=>{const node={type:"instruction",name:data.name,value:data.body};pushToContent(node)};sax.oncomment=comment=>{const node={type:"comment",value:comment.trim()};pushToContent(node)};sax.oncdata=cdata=>{const node={type:"cdata",value:cdata};pushToContent(node)};sax.onopentag=data=>{let element={type:"element",name:data.name,attributes:{},children:[]};for(const[name,attr]of Object.entries(data.attributes)){element.attributes[name]=attr.value}pushToContent(element);current=element;stack.push(element)};sax.ontext=text=>{if(current.type==="element"){if(textElems$1.includes(current.name)){const node={type:"text",value:text};pushToContent(node)}else if(/\S/.test(text)){const node={type:"text",value:text.trim()};pushToContent(node)}}};sax.onclosetag=()=>{stack.pop();current=stack[stack.length-1]};sax.onerror=e=>{const error=new SvgoParserError(e.reason,e.line+1,e.column,data,from);if(e.message.indexOf("Unexpected end")===-1){throw error}};sax.write(data).close();return root};parser$2.parseSvg=parseSvg$1;var stringifier={};const{textElems:textElems}=_collections;const encodeEntity=char=>entities[char];const defaults={doctypeStart:"<!DOCTYPE",doctypeEnd:">",procInstStart:"<?",procInstEnd:"?>",tagOpenStart:"<",tagOpenEnd:">",tagCloseStart:"</",tagCloseEnd:">",tagShortStart:"<",tagShortEnd:"/>",attrStart:'="',attrEnd:'"',commentStart:"\x3c!--",commentEnd:"--\x3e",cdataStart:"<![CDATA[",cdataEnd:"]]>",textStart:"",textEnd:"",indent:4,regEntities:/[&'"<>]/g,regValEntities:/[&"<>]/g,encodeEntity:encodeEntity,pretty:false,useShortTags:true,eol:"lf",finalNewline:false};const entities={"&":"&amp;","'":"&apos;",'"':"&quot;",">":"&gt;","<":"&lt;"};const stringifySvg$1=(data,userOptions={})=>{const config={...defaults,...userOptions};const indent=config.indent;let newIndent=" ";if(typeof indent==="number"&&Number.isNaN(indent)===false){newIndent=indent<0?"\t":" ".repeat(indent)}else if(typeof indent==="string"){newIndent=indent}const state={indent:newIndent,textContext:null,indentLevel:0};const eol=config.eol==="crlf"?"\r\n":"\n";if(config.pretty){config.doctypeEnd+=eol;config.procInstEnd+=eol;config.commentEnd+=eol;config.cdataEnd+=eol;config.tagShortEnd+=eol;config.tagOpenEnd+=eol;config.tagCloseEnd+=eol;config.textEnd+=eol}let svg=stringifyNode(data,config,state);if(config.finalNewline&&svg.length>0&&!svg.endsWith("\n")){svg+=eol}return svg};stringifier.stringifySvg=stringifySvg$1;const stringifyNode=(data,config,state)=>{let svg="";state.indentLevel+=1;for(const item of data.children){if(item.type==="element"){svg+=stringifyElement(item,config,state)}if(item.type==="text"){svg+=stringifyText(item,config,state)}if(item.type==="doctype"){svg+=stringifyDoctype(item,config)}if(item.type==="instruction"){svg+=stringifyInstruction(item,config)}if(item.type==="comment"){svg+=stringifyComment(item,config)}if(item.type==="cdata"){svg+=stringifyCdata(item,config,state)}}state.indentLevel-=1;return svg};const createIndent=(config,state)=>{let indent="";if(config.pretty&&state.textContext==null){indent=state.indent.repeat(state.indentLevel-1)}return indent};const stringifyDoctype=(node,config)=>config.doctypeStart+node.data.doctype+config.doctypeEnd;const stringifyInstruction=(node,config)=>config.procInstStart+node.name+" "+node.value+config.procInstEnd;const stringifyComment=(node,config)=>config.commentStart+node.value+config.commentEnd;const stringifyCdata=(node,config,state)=>createIndent(config,state)+config.cdataStart+node.value+config.cdataEnd;const stringifyElement=(node,config,state)=>{if(node.children.length===0){if(config.useShortTags){return createIndent(config,state)+config.tagShortStart+node.name+stringifyAttributes(node,config)+config.tagShortEnd}else{return createIndent(config,state)+config.tagShortStart+node.name+stringifyAttributes(node,config)+config.tagOpenEnd+config.tagCloseStart+node.name+config.tagCloseEnd}}else{let tagOpenStart=config.tagOpenStart;let tagOpenEnd=config.tagOpenEnd;let tagCloseStart=config.tagCloseStart;let tagCloseEnd=config.tagCloseEnd;let openIndent=createIndent(config,state);let closeIndent=createIndent(config,state);if(state.textContext){tagOpenStart=defaults.tagOpenStart;tagOpenEnd=defaults.tagOpenEnd;tagCloseStart=defaults.tagCloseStart;tagCloseEnd=defaults.tagCloseEnd;openIndent=""}else if(textElems.includes(node.name)){tagOpenEnd=defaults.tagOpenEnd;tagCloseStart=defaults.tagCloseStart;closeIndent="";state.textContext=node}const children=stringifyNode(node,config,state);if(state.textContext===node){state.textContext=null}return openIndent+tagOpenStart+node.name+stringifyAttributes(node,config)+tagOpenEnd+children+closeIndent+tagCloseStart+node.name+tagCloseEnd}};const stringifyAttributes=(node,config)=>{let attrs="";for(const[name,value]of Object.entries(node.attributes)){if(value!==undefined){const encodedValue=value.toString().replace(config.regValEntities,config.encodeEntity);attrs+=" "+name+config.attrStart+encodedValue+config.attrEnd}else{attrs+=" "+name}}return attrs};const stringifyText=(node,config,state)=>createIndent(config,state)+config.textStart+node.value.replace(config.regEntities,config.encodeEntity)+(state.textContext?"":config.textEnd);var builtin$1={};var plugins={};var xast={};var lib$6={};var lib$5={};var stringify$1={};var lib$4={};var lib$3={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.Doctype=exports.CDATA=exports.Tag=exports.Style=exports.Script=exports.Comment=exports.Directive=exports.Text=exports.Root=exports.isTag=exports.ElementType=void 0;var ElementType;(function(ElementType){ElementType["Root"]="root";ElementType["Text"]="text";ElementType["Directive"]="directive";ElementType["Comment"]="comment";ElementType["Script"]="script";ElementType["Style"]="style";ElementType["Tag"]="tag";ElementType["CDATA"]="cdata";ElementType["Doctype"]="doctype"})(ElementType=exports.ElementType||(exports.ElementType={}));function isTag(elem){return elem.type===ElementType.Tag||elem.type===ElementType.Script||elem.type===ElementType.Style}exports.isTag=isTag;exports.Root=ElementType.Root;exports.Text=ElementType.Text;exports.Directive=ElementType.Directive;exports.Comment=ElementType.Comment;exports.Script=ElementType.Script;exports.Style=ElementType.Style;exports.Tag=ElementType.Tag;exports.CDATA=ElementType.CDATA;exports.Doctype=ElementType.Doctype})(lib$3);var node$1={};var __extends=commonjsGlobal&&commonjsGlobal.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(Object.prototype.hasOwnProperty.call(b,p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){if(typeof b!=="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign$1=commonjsGlobal&&commonjsGlobal.__assign||function(){__assign$1=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign$1.apply(this,arguments)};Object.defineProperty(node$1,"__esModule",{value:true});node$1.cloneNode=node$1.hasChildren=node$1.isDocument=node$1.isDirective=node$1.isComment=node$1.isText=node$1.isCDATA=node$1.isTag=node$1.Element=node$1.Document=node$1.CDATA=node$1.NodeWithChildren=node$1.ProcessingInstruction=node$1.Comment=node$1.Text=node$1.DataNode=node$1.Node=void 0;var domelementtype_1$1=lib$3;var Node=function(){function Node(){this.parent=null;this.prev=null;this.next=null;this.startIndex=null;this.endIndex=null}Object.defineProperty(Node.prototype,"parentNode",{get:function(){return this.parent},set:function(parent){this.parent=parent},enumerable:false,configurable:true});Object.defineProperty(Node.prototype,"previousSibling",{get:function(){return this.prev},set:function(prev){this.prev=prev},enumerable:false,configurable:true});Object.defineProperty(Node.prototype,"nextSibling",{get:function(){return this.next},set:function(next){this.next=next},enumerable:false,configurable:true});Node.prototype.cloneNode=function(recursive){if(recursive===void 0){recursive=false}return cloneNode(this,recursive)};return Node}();node$1.Node=Node;var DataNode=function(_super){__extends(DataNode,_super);function DataNode(data){var _this=_super.call(this)||this;_this.data=data;return _this}Object.defineProperty(DataNode.prototype,"nodeValue",{get:function(){return this.data},set:function(data){this.data=data},enumerable:false,configurable:true});return DataNode}(Node);node$1.DataNode=DataNode;var Text=function(_super){__extends(Text,_super);function Text(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Text;return _this}Object.defineProperty(Text.prototype,"nodeType",{get:function(){return 3},enumerable:false,configurable:true});return Text}(DataNode);node$1.Text=Text;var Comment$6=function(_super){__extends(Comment,_super);function Comment(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Comment;return _this}Object.defineProperty(Comment.prototype,"nodeType",{get:function(){return 8},enumerable:false,configurable:true});return Comment}(DataNode);node$1.Comment=Comment$6;var ProcessingInstruction=function(_super){__extends(ProcessingInstruction,_super);function ProcessingInstruction(name,data){var _this=_super.call(this,data)||this;_this.name=name;_this.type=domelementtype_1$1.ElementType.Directive;return _this}Object.defineProperty(ProcessingInstruction.prototype,"nodeType",{get:function(){return 1},enumerable:false,configurable:true});return ProcessingInstruction}(DataNode);node$1.ProcessingInstruction=ProcessingInstruction;var NodeWithChildren=function(_super){__extends(NodeWithChildren,_super);function NodeWithChildren(children){var _this=_super.call(this)||this;_this.children=children;return _this}Object.defineProperty(NodeWithChildren.prototype,"firstChild",{get:function(){var _a;return(_a=this.children[0])!==null&&_a!==void 0?_a:null},enumerable:false,configurable:true});Object.defineProperty(NodeWithChildren.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:false,configurable:true});Object.defineProperty(NodeWithChildren.prototype,"childNodes",{get:function(){return this.children},set:function(children){this.children=children},enumerable:false,configurable:true});return NodeWithChildren}(Node);node$1.NodeWithChildren=NodeWithChildren;var CDATA=function(_super){__extends(CDATA,_super);function CDATA(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.CDATA;return _this}Object.defineProperty(CDATA.prototype,"nodeType",{get:function(){return 4},enumerable:false,configurable:true});return CDATA}(NodeWithChildren);node$1.CDATA=CDATA;var Document=function(_super){__extends(Document,_super);function Document(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Root;return _this}Object.defineProperty(Document.prototype,"nodeType",{get:function(){return 9},enumerable:false,configurable:true});return Document}(NodeWithChildren);node$1.Document=Document;var Element=function(_super){__extends(Element,_super);function Element(name,attribs,children,type){if(children===void 0){children=[]}if(type===void 0){type=name==="script"?domelementtype_1$1.ElementType.Script:name==="style"?domelementtype_1$1.ElementType.Style:domelementtype_1$1.ElementType.Tag}var _this=_super.call(this,children)||this;_this.name=name;_this.attribs=attribs;_this.type=type;return _this}Object.defineProperty(Element.prototype,"nodeType",{get:function(){return 1},enumerable:false,configurable:true});Object.defineProperty(Element.prototype,"tagName",{get:function(){return this.name},set:function(name){this.name=name},enumerable:false,configurable:true});Object.defineProperty(Element.prototype,"attributes",{get:function(){var _this=this;return Object.keys(this.attribs).map((function(name){var _a,_b;return{name:name,value:_this.attribs[name],namespace:(_a=_this["x-attribsNamespace"])===null||_a===void 0?void 0:_a[name],prefix:(_b=_this["x-attribsPrefix"])===null||_b===void 0?void 0:_b[name]}}))},enumerable:false,configurable:true});return Element}(NodeWithChildren);node$1.Element=Element;function isTag$1(node){return(0,domelementtype_1$1.isTag)(node)}node$1.isTag=isTag$1;function isCDATA(node){return node.type===domelementtype_1$1.ElementType.CDATA}node$1.isCDATA=isCDATA;function isText(node){return node.type===domelementtype_1$1.ElementType.Text}node$1.isText=isText;function isComment(node){return node.type===domelementtype_1$1.ElementType.Comment}node$1.isComment=isComment;function isDirective(node){return node.type===domelementtype_1$1.ElementType.Directive}node$1.isDirective=isDirective;function isDocument(node){return node.type===domelementtype_1$1.ElementType.Root}node$1.isDocument=isDocument;function hasChildren(node){return Object.prototype.hasOwnProperty.call(node,"children")}node$1.hasChildren=hasChildren;function cloneNode(node,recursive){if(recursive===void 0){recursive=false}var result;if(isText(node)){result=new Text(node.data)}else if(isComment(node)){result=new Comment$6(node.data)}else if(isTag$1(node)){var children=recursive?cloneChildren(node.children):[];var clone_1=new Element(node.name,__assign$1({},node.attribs),children);children.forEach((function(child){return child.parent=clone_1}));if(node.namespace!=null){clone_1.namespace=node.namespace}if(node["x-attribsNamespace"]){clone_1["x-attribsNamespace"]=__assign$1({},node["x-attribsNamespace"])}if(node["x-attribsPrefix"]){clone_1["x-attribsPrefix"]=__assign$1({},node["x-attribsPrefix"])}result=clone_1}else if(isCDATA(node)){var children=recursive?cloneChildren(node.children):[];var clone_2=new CDATA(children);children.forEach((function(child){return child.parent=clone_2}));result=clone_2}else if(isDocument(node)){var children=recursive?cloneChildren(node.children):[];var clone_3=new Document(children);children.forEach((function(child){return child.parent=clone_3}));if(node["x-mode"]){clone_3["x-mode"]=node["x-mode"]}result=clone_3}else if(isDirective(node)){var instruction=new ProcessingInstruction(node.name,node.data);if(node["x-name"]!=null){instruction["x-name"]=node["x-name"];instruction["x-publicId"]=node["x-publicId"];instruction["x-systemId"]=node["x-systemId"]}result=instruction}else{throw new Error("Not implemented yet: ".concat(node.type))}result.startIndex=node.startIndex;result.endIndex=node.endIndex;if(node.sourceCodeLocation!=null){result.sourceCodeLocation=node.sourceCodeLocation}return result}node$1.cloneNode=cloneNode;function cloneChildren(childs){var children=childs.map((function(child){return cloneNode(child,true)}));for(var i=1;i<children.length;i++){children[i].prev=children[i-1];children[i-1].next=children[i]}return children}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __exportStar=commonjsGlobal&&commonjsGlobal.__exportStar||function(m,exports){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports,p))__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:true});exports.DomHandler=void 0;var domelementtype_1=lib$3;var node_js_1=node$1;__exportStar(node$1,exports);var defaultOpts={withStartIndices:false,withEndIndices:false,xmlMode:false};var DomHandler=function(){function DomHandler(callback,options,elementCB){this.dom=[];this.root=new node_js_1.Document(this.dom);this.done=false;this.tagStack=[this.root];this.lastNode=null;this.parser=null;if(typeof options==="function"){elementCB=options;options=defaultOpts}if(typeof callback==="object"){options=callback;callback=undefined}this.callback=callback!==null&&callback!==void 0?callback:null;this.options=options!==null&&options!==void 0?options:defaultOpts;this.elementCB=elementCB!==null&&elementCB!==void 0?elementCB:null}DomHandler.prototype.onparserinit=function(parser){this.parser=parser};DomHandler.prototype.onreset=function(){this.dom=[];this.root=new node_js_1.Document(this.dom);this.done=false;this.tagStack=[this.root];this.lastNode=null;this.parser=null};DomHandler.prototype.onend=function(){if(this.done)return;this.done=true;this.parser=null;this.handleCallback(null)};DomHandler.prototype.onerror=function(error){this.handleCallback(error)};DomHandler.prototype.onclosetag=function(){this.lastNode=null;var elem=this.tagStack.pop();if(this.options.withEndIndices){elem.endIndex=this.parser.endIndex}if(this.elementCB)this.elementCB(elem)};DomHandler.prototype.onopentag=function(name,attribs){var type=this.options.xmlMode?domelementtype_1.ElementType.Tag:undefined;var element=new node_js_1.Element(name,attribs,undefined,type);this.addNode(element);this.tagStack.push(element)};DomHandler.prototype.ontext=function(data){var lastNode=this.lastNode;if(lastNode&&lastNode.type===domelementtype_1.ElementType.Text){lastNode.data+=data;if(this.options.withEndIndices){lastNode.endIndex=this.parser.endIndex}}else{var node=new node_js_1.Text(data);this.addNode(node);this.lastNode=node}};DomHandler.prototype.oncomment=function(data){if(this.lastNode&&this.lastNode.type===domelementtype_1.ElementType.Comment){this.lastNode.data+=data;return}var node=new node_js_1.Comment(data);this.addNode(node);this.lastNode=node};DomHandler.prototype.oncommentend=function(){this.lastNode=null};DomHandler.prototype.oncdatastart=function(){var text=new node_js_1.Text("");var node=new node_js_1.CDATA([text]);this.addNode(node);text.parent=node;this.lastNode=text};DomHandler.prototype.oncdataend=function(){this.lastNode=null};DomHandler.prototype.onprocessinginstruction=function(name,data){var node=new node_js_1.ProcessingInstruction(name,data);this.addNode(node)};DomHandler.prototype.handleCallback=function(error){if(typeof this.callback==="function"){this.callback(error,this.dom)}else if(error){throw error}};DomHandler.prototype.addNode=function(node){var parent=this.tagStack[this.tagStack.length-1];var previousSibling=parent.children[parent.children.length-1];if(this.options.withStartIndices){node.startIndex=this.parser.startIndex}if(this.options.withEndIndices){node.endIndex=this.parser.endIndex}parent.children.push(node);if(previousSibling){node.prev=previousSibling;previousSibling.next=node}node.parent=parent;this.lastNode=null};return DomHandler}();exports.DomHandler=DomHandler;exports.default=DomHandler})(lib$4);var lib$2={};var lib$1={};var decode$3={};var decodeDataHtml={};Object.defineProperty(decodeDataHtml,"__esModule",{value:true});decodeDataHtml.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(c){return c.charCodeAt(0)})));var decodeDataXml={};Object.defineProperty(decodeDataXml,"__esModule",{value:true});decodeDataXml.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(c){return c.charCodeAt(0)})));var decode_codepoint={};(function(exports){var _a;Object.defineProperty(exports,"__esModule",{value:true});exports.replaceCodePoint=exports.fromCodePoint=void 0;var decodeMap=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);exports.fromCodePoint=(_a=String.fromCodePoint)!==null&&_a!==void 0?_a:function(codePoint){var output="";if(codePoint>65535){codePoint-=65536;output+=String.fromCharCode(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}output+=String.fromCharCode(codePoint);return output};function replaceCodePoint(codePoint){var _a;if(codePoint>=55296&&codePoint<=57343||codePoint>1114111){return 65533}return(_a=decodeMap.get(codePoint))!==null&&_a!==void 0?_a:codePoint}exports.replaceCodePoint=replaceCodePoint;function decodeCodePoint(codePoint){return(0,exports.fromCodePoint)(replaceCodePoint(codePoint))}exports.default=decodeCodePoint})(decode_codepoint);(function(exports){var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.decodeXML=exports.decodeHTMLStrict=exports.decodeHTML=exports.determineBranch=exports.BinTrieFlags=exports.fromCodePoint=exports.replaceCodePoint=exports.decodeCodePoint=exports.xmlDecodeTree=exports.htmlDecodeTree=void 0;var decode_data_html_js_1=__importDefault(decodeDataHtml);exports.htmlDecodeTree=decode_data_html_js_1.default;var decode_data_xml_js_1=__importDefault(decodeDataXml);exports.xmlDecodeTree=decode_data_xml_js_1.default;var decode_codepoint_js_1=__importDefault(decode_codepoint);exports.decodeCodePoint=decode_codepoint_js_1.default;var decode_codepoint_js_2=decode_codepoint;Object.defineProperty(exports,"replaceCodePoint",{enumerable:true,get:function(){return decode_codepoint_js_2.replaceCodePoint}});Object.defineProperty(exports,"fromCodePoint",{enumerable:true,get:function(){return decode_codepoint_js_2.fromCodePoint}});var CharCodes;(function(CharCodes){CharCodes[CharCodes["NUM"]=35]="NUM";CharCodes[CharCodes["SEMI"]=59]="SEMI";CharCodes[CharCodes["ZERO"]=48]="ZERO";CharCodes[CharCodes["NINE"]=57]="NINE";CharCodes[CharCodes["LOWER_A"]=97]="LOWER_A";CharCodes[CharCodes["LOWER_F"]=102]="LOWER_F";CharCodes[CharCodes["LOWER_X"]=120]="LOWER_X";CharCodes[CharCodes["To_LOWER_BIT"]=32]="To_LOWER_BIT"})(CharCodes||(CharCodes={}));var BinTrieFlags;(function(BinTrieFlags){BinTrieFlags[BinTrieFlags["VALUE_LENGTH"]=49152]="VALUE_LENGTH";BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"]=16256]="BRANCH_LENGTH";BinTrieFlags[BinTrieFlags["JUMP_TABLE"]=127]="JUMP_TABLE"})(BinTrieFlags=exports.BinTrieFlags||(exports.BinTrieFlags={}));function getDecoder(decodeTree){return function decodeHTMLBinary(str,strict){var ret="";var lastIdx=0;var strIdx=0;while((strIdx=str.indexOf("&",strIdx))>=0){ret+=str.slice(lastIdx,strIdx);lastIdx=strIdx;strIdx+=1;if(str.charCodeAt(strIdx)===CharCodes.NUM){var start=strIdx+1;var base=10;var cp=str.charCodeAt(start);if((cp|CharCodes.To_LOWER_BIT)===CharCodes.LOWER_X){base=16;strIdx+=1;start+=1}do{cp=str.charCodeAt(++strIdx)}while(cp>=CharCodes.ZERO&&cp<=CharCodes.NINE||base===16&&(cp|CharCodes.To_LOWER_BIT)>=CharCodes.LOWER_A&&(cp|CharCodes.To_LOWER_BIT)<=CharCodes.LOWER_F);if(start!==strIdx){var entity=str.substring(start,strIdx);var parsed=parseInt(entity,base);if(str.charCodeAt(strIdx)===CharCodes.SEMI){strIdx+=1}else if(strict){continue}ret+=(0,decode_codepoint_js_1.default)(parsed);lastIdx=strIdx}continue}var resultIdx=0;var excess=1;var treeIdx=0;var current=decodeTree[treeIdx];for(;strIdx<str.length;strIdx++,excess++){treeIdx=determineBranch(decodeTree,current,treeIdx+1,str.charCodeAt(strIdx));if(treeIdx<0)break;current=decodeTree[treeIdx];var masked=current&BinTrieFlags.VALUE_LENGTH;if(masked){if(!strict||str.charCodeAt(strIdx)===CharCodes.SEMI){resultIdx=treeIdx;excess=0}var valueLength=(masked>>14)-1;if(valueLength===0)break;treeIdx+=valueLength}}if(resultIdx!==0){var valueLength=(decodeTree[resultIdx]&BinTrieFlags.VALUE_LENGTH)>>14;ret+=valueLength===1?String.fromCharCode(decodeTree[resultIdx]&~BinTrieFlags.VALUE_LENGTH):valueLength===2?String.fromCharCode(decodeTree[resultIdx+1]):String.fromCharCode(decodeTree[resultIdx+1],decodeTree[resultIdx+2]);lastIdx=strIdx-excess+1}}return ret+str.slice(lastIdx)}}function determineBranch(decodeTree,current,nodeIdx,char){var branchCount=(current&BinTrieFlags.BRANCH_LENGTH)>>7;var jumpOffset=current&BinTrieFlags.JUMP_TABLE;if(branchCount===0){return jumpOffset!==0&&char===jumpOffset?nodeIdx:-1}if(jumpOffset){var value=char-jumpOffset;return value<0||value>=branchCount?-1:decodeTree[nodeIdx+value]-1}var lo=nodeIdx;var hi=lo+branchCount-1;while(lo<=hi){var mid=lo+hi>>>1;var midVal=decodeTree[mid];if(midVal<char){lo=mid+1}else if(midVal>char){hi=mid-1}else{return decodeTree[mid+branchCount]}}return-1}exports.determineBranch=determineBranch;var htmlDecoder=getDecoder(decode_data_html_js_1.default);var xmlDecoder=getDecoder(decode_data_xml_js_1.default);function decodeHTML(str){return htmlDecoder(str,false)}exports.decodeHTML=decodeHTML;function decodeHTMLStrict(str){return htmlDecoder(str,true)}exports.decodeHTMLStrict=decodeHTMLStrict;function decodeXML(str){return xmlDecoder(str,true)}exports.decodeXML=decodeXML})(decode$3);var encode$3={};var encodeHtml={};Object.defineProperty(encodeHtml,"__esModule",{value:true});function restoreDiff(arr){for(var i=1;i<arr.length;i++){arr[i][0]+=arr[i-1][0]+1}return arr}encodeHtml.default=new Map(restoreDiff([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(restoreDiff([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(restoreDiff([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(restoreDiff([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]]));var _escape={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.escapeText=exports.escapeAttribute=exports.escapeUTF8=exports.escape=exports.encodeXML=exports.getCodePoint=exports.xmlReplacer=void 0;exports.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var xmlCodeMap=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]);exports.getCodePoint=String.prototype.codePointAt!=null?function(str,index){return str.codePointAt(index)}:function(c,index){return(c.charCodeAt(index)&64512)===55296?(c.charCodeAt(index)-55296)*1024+c.charCodeAt(index+1)-56320+65536:c.charCodeAt(index)};function encodeXML(str){var ret="";var lastIdx=0;var match;while((match=exports.xmlReplacer.exec(str))!==null){var i=match.index;var char=str.charCodeAt(i);var next=xmlCodeMap.get(char);if(next!==undefined){ret+=str.substring(lastIdx,i)+next;lastIdx=i+1}else{ret+="".concat(str.substring(lastIdx,i),"&#x").concat((0,exports.getCodePoint)(str,i).toString(16),";");lastIdx=exports.xmlReplacer.lastIndex+=Number((char&64512)===55296)}}return ret+str.substr(lastIdx)}exports.encodeXML=encodeXML;exports.escape=encodeXML;function getEscaper(regex,map){return function escape(data){var match;var lastIdx=0;var result="";while(match=regex.exec(data)){if(lastIdx!==match.index){result+=data.substring(lastIdx,match.index)}result+=map.get(match[0].charCodeAt(0));lastIdx=match.index+1}return result+data.substring(lastIdx)}}exports.escapeUTF8=getEscaper(/[&<>'"]/g,xmlCodeMap);exports.escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]]));exports.escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]]))})(_escape);var __importDefault$4=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(encode$3,"__esModule",{value:true});encode$3.encodeNonAsciiHTML=encode$3.encodeHTML=void 0;var encode_html_js_1=__importDefault$4(encodeHtml);var escape_js_1=_escape;var htmlReplacer=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function encodeHTML(data){return encodeHTMLTrieRe(htmlReplacer,data)}encode$3.encodeHTML=encodeHTML;function encodeNonAsciiHTML(data){return encodeHTMLTrieRe(escape_js_1.xmlReplacer,data)}encode$3.encodeNonAsciiHTML=encodeNonAsciiHTML;function encodeHTMLTrieRe(regExp,str){var ret="";var lastIdx=0;var match;while((match=regExp.exec(str))!==null){var i=match.index;ret+=str.substring(lastIdx,i);var char=str.charCodeAt(i);var next=encode_html_js_1.default.get(char);if(typeof next==="object"){if(i+1<str.length){var nextChar=str.charCodeAt(i+1);var value=typeof next.n==="number"?next.n===nextChar?next.o:undefined:next.n.get(nextChar);if(value!==undefined){ret+=value;lastIdx=regExp.lastIndex+=1;continue}}next=next.v}if(next!==undefined){ret+=next;lastIdx=i+1}else{var cp=(0,escape_js_1.getCodePoint)(str,i);ret+="&#x".concat(cp.toString(16),";");lastIdx=regExp.lastIndex+=Number(cp!==char)}}return ret+str.substr(lastIdx)}(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.decodeXMLStrict=exports.decodeHTML5Strict=exports.decodeHTML4Strict=exports.decodeHTML5=exports.decodeHTML4=exports.decodeHTMLStrict=exports.decodeHTML=exports.decodeXML=exports.encodeHTML5=exports.encodeHTML4=exports.encodeNonAsciiHTML=exports.encodeHTML=exports.escapeText=exports.escapeAttribute=exports.escapeUTF8=exports.escape=exports.encodeXML=exports.encode=exports.decodeStrict=exports.decode=exports.EncodingMode=exports.DecodingMode=exports.EntityLevel=void 0;var decode_js_1=decode$3;var encode_js_1=encode$3;var escape_js_1=_escape;var EntityLevel;(function(EntityLevel){EntityLevel[EntityLevel["XML"]=0]="XML";EntityLevel[EntityLevel["HTML"]=1]="HTML"})(EntityLevel=exports.EntityLevel||(exports.EntityLevel={}));var DecodingMode;(function(DecodingMode){DecodingMode[DecodingMode["Legacy"]=0]="Legacy";DecodingMode[DecodingMode["Strict"]=1]="Strict"})(DecodingMode=exports.DecodingMode||(exports.DecodingMode={}));var EncodingMode;(function(EncodingMode){EncodingMode[EncodingMode["UTF8"]=0]="UTF8";EncodingMode[EncodingMode["ASCII"]=1]="ASCII";EncodingMode[EncodingMode["Extensive"]=2]="Extensive";EncodingMode[EncodingMode["Attribute"]=3]="Attribute";EncodingMode[EncodingMode["Text"]=4]="Text"})(EncodingMode=exports.EncodingMode||(exports.EncodingMode={}));function decode(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.level===EntityLevel.HTML){if(opts.mode===DecodingMode.Strict){return(0,decode_js_1.decodeHTMLStrict)(data)}return(0,decode_js_1.decodeHTML)(data)}return(0,decode_js_1.decodeXML)(data)}exports.decode=decode;function decodeStrict(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.level===EntityLevel.HTML){if(opts.mode===DecodingMode.Legacy){return(0,decode_js_1.decodeHTML)(data)}return(0,decode_js_1.decodeHTMLStrict)(data)}return(0,decode_js_1.decodeXML)(data)}exports.decodeStrict=decodeStrict;function encode(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.mode===EncodingMode.UTF8)return(0,escape_js_1.escapeUTF8)(data);if(opts.mode===EncodingMode.Attribute)return(0,escape_js_1.escapeAttribute)(data);if(opts.mode===EncodingMode.Text)return(0,escape_js_1.escapeText)(data);if(opts.level===EntityLevel.HTML){if(opts.mode===EncodingMode.ASCII){return(0,encode_js_1.encodeNonAsciiHTML)(data)}return(0,encode_js_1.encodeHTML)(data)}return(0,escape_js_1.encodeXML)(data)}exports.encode=encode;var escape_js_2=_escape;Object.defineProperty(exports,"encodeXML",{enumerable:true,get:function(){return escape_js_2.encodeXML}});Object.defineProperty(exports,"escape",{enumerable:true,get:function(){return escape_js_2.escape}});Object.defineProperty(exports,"escapeUTF8",{enumerable:true,get:function(){return escape_js_2.escapeUTF8}});Object.defineProperty(exports,"escapeAttribute",{enumerable:true,get:function(){return escape_js_2.escapeAttribute}});Object.defineProperty(exports,"escapeText",{enumerable:true,get:function(){return escape_js_2.escapeText}});var encode_js_2=encode$3;Object.defineProperty(exports,"encodeHTML",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});Object.defineProperty(exports,"encodeNonAsciiHTML",{enumerable:true,get:function(){return encode_js_2.encodeNonAsciiHTML}});Object.defineProperty(exports,"encodeHTML4",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});Object.defineProperty(exports,"encodeHTML5",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});var decode_js_2=decode$3;Object.defineProperty(exports,"decodeXML",{enumerable:true,get:function(){return decode_js_2.decodeXML}});Object.defineProperty(exports,"decodeHTML",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTMLStrict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeHTML4",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTML5",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTML4Strict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeHTML5Strict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeXMLStrict",{enumerable:true,get:function(){return decode_js_2.decodeXML}})})(lib$1);var foreignNames={};Object.defineProperty(foreignNames,"__esModule",{value:true});foreignNames.attributeNames=foreignNames.elementNames=void 0;foreignNames.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(val){return[val.toLowerCase(),val]})));foreignNames.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(val){return[val.toLowerCase(),val]})));var __assign=commonjsGlobal&&commonjsGlobal.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __createBinding$1=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault$1=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar$1=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding$1(result,mod,k);__setModuleDefault$1(result,mod);return result};Object.defineProperty(lib$2,"__esModule",{value:true});lib$2.render=void 0;var ElementType=__importStar$1(lib$3);var entities_1=lib$1;var foreignNames_js_1=foreignNames;var unencodedElements=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function replaceQuotes(value){return value.replace(/"/g,"&quot;")}function formatAttributes(attributes,opts){var _a;if(!attributes)return;var encode=((_a=opts.encodeEntities)!==null&&_a!==void 0?_a:opts.decodeEntities)===false?replaceQuotes:opts.xmlMode||opts.encodeEntities!=="utf8"?entities_1.encodeXML:entities_1.escapeAttribute;return Object.keys(attributes).map((function(key){var _a,_b;var value=(_a=attributes[key])!==null&&_a!==void 0?_a:"";if(opts.xmlMode==="foreign"){key=(_b=foreignNames_js_1.attributeNames.get(key))!==null&&_b!==void 0?_b:key}if(!opts.emptyAttrs&&!opts.xmlMode&&value===""){return key}return"".concat(key,'="').concat(encode(value),'"')})).join(" ")}var singleTag=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function render(node,options){if(options===void 0){options={}}var nodes="length"in node?node:[node];var output="";for(var i=0;i<nodes.length;i++){output+=renderNode(nodes[i],options)}return output}lib$2.render=render;lib$2.default=render;function renderNode(node,options){switch(node.type){case ElementType.Root:return render(node.children,options);case ElementType.Doctype:case ElementType.Directive:return renderDirective(node);case ElementType.Comment:return renderComment(node);case ElementType.CDATA:return renderCdata(node);case ElementType.Script:case ElementType.Style:case ElementType.Tag:return renderTag(node,options);case ElementType.Text:return renderText(node,options)}}var foreignModeIntegrationPoints=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]);var foreignElements=new Set(["svg","math"]);function renderTag(elem,opts){var _a;if(opts.xmlMode==="foreign"){elem.name=(_a=foreignNames_js_1.elementNames.get(elem.name))!==null&&_a!==void 0?_a:elem.name;if(elem.parent&&foreignModeIntegrationPoints.has(elem.parent.name)){opts=__assign(__assign({},opts),{xmlMode:false})}}if(!opts.xmlMode&&foreignElements.has(elem.name)){opts=__assign(__assign({},opts),{xmlMode:"foreign"})}var tag="<".concat(elem.name);var attribs=formatAttributes(elem.attribs,opts);if(attribs){tag+=" ".concat(attribs)}if(elem.children.length===0&&(opts.xmlMode?opts.selfClosingTags!==false:opts.selfClosingTags&&singleTag.has(elem.name))){if(!opts.xmlMode)tag+=" ";tag+="/>"}else{tag+=">";if(elem.children.length>0){tag+=render(elem.children,opts)}if(opts.xmlMode||!singleTag.has(elem.name)){tag+="</".concat(elem.name,">")}}return tag}function renderDirective(elem){return"<".concat(elem.data,">")}function renderText(elem,opts){var _a;var data=elem.data||"";if(((_a=opts.encodeEntities)!==null&&_a!==void 0?_a:opts.decodeEntities)!==false&&!(!opts.xmlMode&&elem.parent&&unencodedElements.has(elem.parent.name))){data=opts.xmlMode||opts.encodeEntities!=="utf8"?(0,entities_1.encodeXML)(data):(0,entities_1.escapeText)(data)}return data}function renderCdata(elem){return"<![CDATA[".concat(elem.children[0].data,"]]>")}function renderComment(elem){return"\x3c!--".concat(elem.data,"--\x3e")}var __importDefault$3=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(stringify$1,"__esModule",{value:true});stringify$1.innerText=stringify$1.textContent=stringify$1.getText=stringify$1.getInnerHTML=stringify$1.getOuterHTML=void 0;var domhandler_1$3=lib$4;var dom_serializer_1=__importDefault$3(lib$2);var domelementtype_1=lib$3;function getOuterHTML(node,options){return(0,dom_serializer_1.default)(node,options)}stringify$1.getOuterHTML=getOuterHTML;function getInnerHTML(node,options){return(0,domhandler_1$3.hasChildren)(node)?node.children.map((function(node){return getOuterHTML(node,options)})).join(""):""}stringify$1.getInnerHTML=getInnerHTML;function getText$1(node){if(Array.isArray(node))return node.map(getText$1).join("");if((0,domhandler_1$3.isTag)(node))return node.name==="br"?"\n":getText$1(node.children);if((0,domhandler_1$3.isCDATA)(node))return getText$1(node.children);if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.getText=getText$1;function textContent(node){if(Array.isArray(node))return node.map(textContent).join("");if((0,domhandler_1$3.hasChildren)(node)&&!(0,domhandler_1$3.isComment)(node)){return textContent(node.children)}if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.textContent=textContent;function innerText(node){if(Array.isArray(node))return node.map(innerText).join("");if((0,domhandler_1$3.hasChildren)(node)&&(node.type===domelementtype_1.ElementType.Tag||(0,domhandler_1$3.isCDATA)(node))){return innerText(node.children)}if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.innerText=innerText;var traversal={};Object.defineProperty(traversal,"__esModule",{value:true});traversal.prevElementSibling=traversal.nextElementSibling=traversal.getName=traversal.hasAttrib=traversal.getAttributeValue=traversal.getSiblings=traversal.getParent=traversal.getChildren=void 0;var domhandler_1$2=lib$4;function getChildren$1(elem){return(0,domhandler_1$2.hasChildren)(elem)?elem.children:[]}traversal.getChildren=getChildren$1;function getParent$1(elem){return elem.parent||null}traversal.getParent=getParent$1;function getSiblings$1(elem){var _a,_b;var parent=getParent$1(elem);if(parent!=null)return getChildren$1(parent);var siblings=[elem];var prev=elem.prev,next=elem.next;while(prev!=null){siblings.unshift(prev);_a=prev,prev=_a.prev}while(next!=null){siblings.push(next);_b=next,next=_b.next}return siblings}traversal.getSiblings=getSiblings$1;function getAttributeValue$1(elem,name){var _a;return(_a=elem.attribs)===null||_a===void 0?void 0:_a[name]}traversal.getAttributeValue=getAttributeValue$1;function hasAttrib$1(elem,name){return elem.attribs!=null&&Object.prototype.hasOwnProperty.call(elem.attribs,name)&&elem.attribs[name]!=null}traversal.hasAttrib=hasAttrib$1;function getName$1(elem){return elem.name}traversal.getName=getName$1;function nextElementSibling(elem){var _a;var next=elem.next;while(next!==null&&!(0,domhandler_1$2.isTag)(next))_a=next,next=_a.next;return next}traversal.nextElementSibling=nextElementSibling;function prevElementSibling(elem){var _a;var prev=elem.prev;while(prev!==null&&!(0,domhandler_1$2.isTag)(prev))_a=prev,prev=_a.prev;return prev}traversal.prevElementSibling=prevElementSibling;var manipulation={};Object.defineProperty(manipulation,"__esModule",{value:true});manipulation.prepend=manipulation.prependChild=manipulation.append=manipulation.appendChild=manipulation.replaceElement=manipulation.removeElement=void 0;function removeElement(elem){if(elem.prev)elem.prev.next=elem.next;if(elem.next)elem.next.prev=elem.prev;if(elem.parent){var childs=elem.parent.children;childs.splice(childs.lastIndexOf(elem),1)}}manipulation.removeElement=removeElement;function replaceElement(elem,replacement){var prev=replacement.prev=elem.prev;if(prev){prev.next=replacement}var next=replacement.next=elem.next;if(next){next.prev=replacement}var parent=replacement.parent=elem.parent;if(parent){var childs=parent.children;childs[childs.lastIndexOf(elem)]=replacement;elem.parent=null}}manipulation.replaceElement=replaceElement;function appendChild(elem,child){removeElement(child);child.next=null;child.parent=elem;if(elem.children.push(child)>1){var sibling=elem.children[elem.children.length-2];sibling.next=child;child.prev=sibling}else{child.prev=null}}manipulation.appendChild=appendChild;function append$1(elem,next){removeElement(next);var parent=elem.parent;var currNext=elem.next;next.next=currNext;next.prev=elem;elem.next=next;next.parent=parent;if(currNext){currNext.prev=next;if(parent){var childs=parent.children;childs.splice(childs.lastIndexOf(currNext),0,next)}}else if(parent){parent.children.push(next)}}manipulation.append=append$1;function prependChild(elem,child){removeElement(child);child.parent=elem;child.prev=null;if(elem.children.unshift(child)!==1){var sibling=elem.children[1];sibling.prev=child;child.next=sibling}else{child.next=null}}manipulation.prependChild=prependChild;function prepend(elem,prev){removeElement(prev);var parent=elem.parent;if(parent){var childs=parent.children;childs.splice(childs.indexOf(elem),0,prev)}if(elem.prev){elem.prev.next=prev}prev.parent=parent;prev.prev=elem.prev;prev.next=elem;elem.prev=prev}manipulation.prepend=prepend;var querying={};Object.defineProperty(querying,"__esModule",{value:true});querying.findAll=querying.existsOne=querying.findOne=querying.findOneChild=querying.find=querying.filter=void 0;var domhandler_1$1=lib$4;function filter(test,node,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}if(!Array.isArray(node))node=[node];return find$2(test,node,recurse,limit)}querying.filter=filter;function find$2(test,nodes,recurse,limit){var result=[];for(var _i=0,nodes_1=nodes;_i<nodes_1.length;_i++){var elem=nodes_1[_i];if(test(elem)){result.push(elem);if(--limit<=0)break}if(recurse&&(0,domhandler_1$1.hasChildren)(elem)&&elem.children.length>0){var children=find$2(test,elem.children,recurse,limit);result.push.apply(result,children);limit-=children.length;if(limit<=0)break}}return result}querying.find=find$2;function findOneChild(test,nodes){return nodes.find(test)}querying.findOneChild=findOneChild;function findOne$1(test,nodes,recurse){if(recurse===void 0){recurse=true}var elem=null;for(var i=0;i<nodes.length&&!elem;i++){var checked=nodes[i];if(!(0,domhandler_1$1.isTag)(checked)){continue}else if(test(checked)){elem=checked}else if(recurse&&checked.children.length>0){elem=findOne$1(test,checked.children,true)}}return elem}querying.findOne=findOne$1;function existsOne$1(test,nodes){return nodes.some((function(checked){return(0,domhandler_1$1.isTag)(checked)&&(test(checked)||checked.children.length>0&&existsOne$1(test,checked.children))}))}querying.existsOne=existsOne$1;function findAll$3(test,nodes){var _a;var result=[];var stack=nodes.filter(domhandler_1$1.isTag);var elem;while(elem=stack.shift()){var children=(_a=elem.children)===null||_a===void 0?void 0:_a.filter(domhandler_1$1.isTag);if(children&&children.length>0){stack.unshift.apply(stack,children)}if(test(elem))result.push(elem)}return result}querying.findAll=findAll$3;var legacy={};Object.defineProperty(legacy,"__esModule",{value:true});legacy.getElementsByTagType=legacy.getElementsByTagName=legacy.getElementById=legacy.getElements=legacy.testElement=void 0;var domhandler_1=lib$4;var querying_js_1=querying;var Checks={tag_name:function(name){if(typeof name==="function"){return function(elem){return(0,domhandler_1.isTag)(elem)&&name(elem.name)}}else if(name==="*"){return domhandler_1.isTag}return function(elem){return(0,domhandler_1.isTag)(elem)&&elem.name===name}},tag_type:function(type){if(typeof type==="function"){return function(elem){return type(elem.type)}}return function(elem){return elem.type===type}},tag_contains:function(data){if(typeof data==="function"){return function(elem){return(0,domhandler_1.isText)(elem)&&data(elem.data)}}return function(elem){return(0,domhandler_1.isText)(elem)&&elem.data===data}}};function getAttribCheck(attrib,value){if(typeof value==="function"){return function(elem){return(0,domhandler_1.isTag)(elem)&&value(elem.attribs[attrib])}}return function(elem){return(0,domhandler_1.isTag)(elem)&&elem.attribs[attrib]===value}}function combineFuncs(a,b){return function(elem){return a(elem)||b(elem)}}function compileTest(options){var funcs=Object.keys(options).map((function(key){var value=options[key];return Object.prototype.hasOwnProperty.call(Checks,key)?Checks[key](value):getAttribCheck(key,value)}));return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){var test=compileTest(options);return test?test(node):true}legacy.testElement=testElement;function getElements(options,nodes,recurse,limit){if(limit===void 0){limit=Infinity}var test=compileTest(options);return test?(0,querying_js_1.filter)(test,nodes,recurse,limit):[]}legacy.getElements=getElements;function getElementById(id,nodes,recurse){if(recurse===void 0){recurse=true}if(!Array.isArray(nodes))nodes=[nodes];return(0,querying_js_1.findOne)(getAttribCheck("id",id),nodes,recurse)}legacy.getElementById=getElementById;function getElementsByTagName(tagName,nodes,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}return(0,querying_js_1.filter)(Checks["tag_name"](tagName),nodes,recurse,limit)}legacy.getElementsByTagName=getElementsByTagName;function getElementsByTagType(type,nodes,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}return(0,querying_js_1.filter)(Checks["tag_type"](type),nodes,recurse,limit)}legacy.getElementsByTagType=getElementsByTagType;var helpers={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.uniqueSort=exports.compareDocumentPosition=exports.DocumentPosition=exports.removeSubsets=void 0;var domhandler_1=lib$4;function removeSubsets(nodes){var idx=nodes.length;while(--idx>=0){var node=nodes[idx];if(idx>0&&nodes.lastIndexOf(node,idx-1)>=0){nodes.splice(idx,1);continue}for(var ancestor=node.parent;ancestor;ancestor=ancestor.parent){if(nodes.includes(ancestor)){nodes.splice(idx,1);break}}}return nodes}exports.removeSubsets=removeSubsets;var DocumentPosition;(function(DocumentPosition){DocumentPosition[DocumentPosition["DISCONNECTED"]=1]="DISCONNECTED";DocumentPosition[DocumentPosition["PRECEDING"]=2]="PRECEDING";DocumentPosition[DocumentPosition["FOLLOWING"]=4]="FOLLOWING";DocumentPosition[DocumentPosition["CONTAINS"]=8]="CONTAINS";DocumentPosition[DocumentPosition["CONTAINED_BY"]=16]="CONTAINED_BY"})(DocumentPosition=exports.DocumentPosition||(exports.DocumentPosition={}));function compareDocumentPosition(nodeA,nodeB){var aParents=[];var bParents=[];if(nodeA===nodeB){return 0}var current=(0,domhandler_1.hasChildren)(nodeA)?nodeA:nodeA.parent;while(current){aParents.unshift(current);current=current.parent}current=(0,domhandler_1.hasChildren)(nodeB)?nodeB:nodeB.parent;while(current){bParents.unshift(current);current=current.parent}var maxIdx=Math.min(aParents.length,bParents.length);var idx=0;while(idx<maxIdx&&aParents[idx]===bParents[idx]){idx++}if(idx===0){return DocumentPosition.DISCONNECTED}var sharedParent=aParents[idx-1];var siblings=sharedParent.children;var aSibling=aParents[idx];var bSibling=bParents[idx];if(siblings.indexOf(aSibling)>siblings.indexOf(bSibling)){if(sharedParent===nodeB){return DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY}return DocumentPosition.FOLLOWING}if(sharedParent===nodeA){return DocumentPosition.PRECEDING|DocumentPosition.CONTAINS}return DocumentPosition.PRECEDING}exports.compareDocumentPosition=compareDocumentPosition;function uniqueSort(nodes){nodes=nodes.filter((function(node,i,arr){return!arr.includes(node,i+1)}));nodes.sort((function(a,b){var relative=compareDocumentPosition(a,b);if(relative&DocumentPosition.PRECEDING){return-1}else if(relative&DocumentPosition.FOLLOWING){return 1}return 0}));return nodes}exports.uniqueSort=uniqueSort})(helpers);var feeds={};Object.defineProperty(feeds,"__esModule",{value:true});feeds.getFeed=void 0;var stringify_js_1=stringify$1;var legacy_js_1=legacy;function getFeed(doc){var feedRoot=getOneElement(isValidFeed,doc);return!feedRoot?null:feedRoot.name==="feed"?getAtomFeed(feedRoot):getRssFeed(feedRoot)}feeds.getFeed=getFeed;function getAtomFeed(feedRoot){var _a;var childs=feedRoot.children;var feed={type:"atom",items:(0,legacy_js_1.getElementsByTagName)("entry",childs).map((function(item){var _a;var children=item.children;var entry={media:getMediaElements(children)};addConditionally(entry,"id","id",children);addConditionally(entry,"title","title",children);var href=(_a=getOneElement("link",children))===null||_a===void 0?void 0:_a.attribs["href"];if(href){entry.link=href}var description=fetch("summary",children)||fetch("content",children);if(description){entry.description=description}var pubDate=fetch("updated",children);if(pubDate){entry.pubDate=new Date(pubDate)}return entry}))};addConditionally(feed,"id","id",childs);addConditionally(feed,"title","title",childs);var href=(_a=getOneElement("link",childs))===null||_a===void 0?void 0:_a.attribs["href"];if(href){feed.link=href}addConditionally(feed,"description","subtitle",childs);var updated=fetch("updated",childs);if(updated){feed.updated=new Date(updated)}addConditionally(feed,"author","email",childs,true);return feed}function getRssFeed(feedRoot){var _a,_b;var childs=(_b=(_a=getOneElement("channel",feedRoot.children))===null||_a===void 0?void 0:_a.children)!==null&&_b!==void 0?_b:[];var feed={type:feedRoot.name.substr(0,3),id:"",items:(0,legacy_js_1.getElementsByTagName)("item",feedRoot.children).map((function(item){var children=item.children;var entry={media:getMediaElements(children)};addConditionally(entry,"id","guid",children);addConditionally(entry,"title","title",children);addConditionally(entry,"link","link",children);addConditionally(entry,"description","description",children);var pubDate=fetch("pubDate",children);if(pubDate)entry.pubDate=new Date(pubDate);return entry}))};addConditionally(feed,"title","title",childs);addConditionally(feed,"link","link",childs);addConditionally(feed,"description","description",childs);var updated=fetch("lastBuildDate",childs);if(updated){feed.updated=new Date(updated)}addConditionally(feed,"author","managingEditor",childs,true);return feed}var MEDIA_KEYS_STRING=["url","type","lang"];var MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function getMediaElements(where){return(0,legacy_js_1.getElementsByTagName)("media:content",where).map((function(elem){var attribs=elem.attribs;var media={medium:attribs["medium"],isDefault:!!attribs["isDefault"]};for(var _i=0,MEDIA_KEYS_STRING_1=MEDIA_KEYS_STRING;_i<MEDIA_KEYS_STRING_1.length;_i++){var attrib=MEDIA_KEYS_STRING_1[_i];if(attribs[attrib]){media[attrib]=attribs[attrib]}}for(var _a=0,MEDIA_KEYS_INT_1=MEDIA_KEYS_INT;_a<MEDIA_KEYS_INT_1.length;_a++){var attrib=MEDIA_KEYS_INT_1[_a];if(attribs[attrib]){media[attrib]=parseInt(attribs[attrib],10)}}if(attribs["expression"]){media.expression=attribs["expression"]}return media}))}function getOneElement(tagName,node){return(0,legacy_js_1.getElementsByTagName)(tagName,node,true,1)[0]}function fetch(tagName,where,recurse){if(recurse===void 0){recurse=false}return(0,stringify_js_1.textContent)((0,legacy_js_1.getElementsByTagName)(tagName,where,recurse,1)).trim()}function addConditionally(obj,prop,tagName,where,recurse){if(recurse===void 0){recurse=false}var val=fetch(tagName,where,recurse);if(val)obj[prop]=val}function isValidFeed(value){return value==="rss"||value==="feed"||value==="rdf:RDF"}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __exportStar=commonjsGlobal&&commonjsGlobal.__exportStar||function(m,exports){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports,p))__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:true});exports.hasChildren=exports.isDocument=exports.isComment=exports.isText=exports.isCDATA=exports.isTag=void 0;__exportStar(stringify$1,exports);__exportStar(traversal,exports);__exportStar(manipulation,exports);__exportStar(querying,exports);__exportStar(legacy,exports);__exportStar(helpers,exports);__exportStar(feeds,exports);var domhandler_1=lib$4;Object.defineProperty(exports,"isTag",{enumerable:true,get:function(){return domhandler_1.isTag}});Object.defineProperty(exports,"isCDATA",{enumerable:true,get:function(){return domhandler_1.isCDATA}});Object.defineProperty(exports,"isText",{enumerable:true,get:function(){return domhandler_1.isText}});Object.defineProperty(exports,"isComment",{enumerable:true,get:function(){return domhandler_1.isComment}});Object.defineProperty(exports,"isDocument",{enumerable:true,get:function(){return domhandler_1.isDocument}});Object.defineProperty(exports,"hasChildren",{enumerable:true,get:function(){return domhandler_1.hasChildren}})})(lib$5);var boolbase={trueFunc:function trueFunc(){return true},falseFunc:function falseFunc(){return false}};var compile$3={};var SelectorType;(function(SelectorType){SelectorType["Attribute"]="attribute";SelectorType["Pseudo"]="pseudo";SelectorType["PseudoElement"]="pseudo-element";SelectorType["Tag"]="tag";SelectorType["Universal"]="universal";SelectorType["Adjacent"]="adjacent";SelectorType["Child"]="child";SelectorType["Descendant"]="descendant";SelectorType["Parent"]="parent";SelectorType["Sibling"]="sibling";SelectorType["ColumnCombinator"]="column-combinator"})(SelectorType||(SelectorType={}));const IgnoreCaseMode={Unknown:null,QuirksMode:"quirks",IgnoreCase:true,CaseSensitive:false};var AttributeAction;(function(AttributeAction){AttributeAction["Any"]="any";AttributeAction["Element"]="element";AttributeAction["End"]="end";AttributeAction["Equals"]="equals";AttributeAction["Exists"]="exists";AttributeAction["Hyphen"]="hyphen";AttributeAction["Not"]="not";AttributeAction["Start"]="start"})(AttributeAction||(AttributeAction={}));const reName=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/;const reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi;const actionTypes=new Map([[126,AttributeAction.Element],[94,AttributeAction.Start],[36,AttributeAction.End],[42,AttributeAction.Any],[33,AttributeAction.Not],[124,AttributeAction.Hyphen]]);const unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]);function isTraversal$1(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return true;default:return false}}const stripQuotesFromPseudos=new Set(["contains","icontains"]);function funescape(_,escaped,escapedWhitespace){const high=parseInt(escaped,16)-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(str){return str.replace(reEscape,funescape)}function isQuote(c){return c===39||c===34}function isWhitespace(c){return c===32||c===9||c===10||c===12||c===13}function parse$O(selector){const subselects=[];const endIndex=parseSelector(subselects,`${selector}`,0);if(endIndex<selector.length){throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`)}return subselects}function parseSelector(subselects,selector,selectorIndex){let tokens=[];function getName(offset){const match=selector.slice(selectorIndex+offset).match(reName);if(!match){throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`)}const[name]=match;selectorIndex+=offset+name.length;return unescapeCSS(name)}function stripWhitespace(offset){selectorIndex+=offset;while(selectorIndex<selector.length&&isWhitespace(selector.charCodeAt(selectorIndex))){selectorIndex++}}function readValueWithParenthesis(){selectorIndex+=1;const start=selectorIndex;let counter=1;for(;counter>0&&selectorIndex<selector.length;selectorIndex++){if(selector.charCodeAt(selectorIndex)===40&&!isEscaped(selectorIndex)){counter++}else if(selector.charCodeAt(selectorIndex)===41&&!isEscaped(selectorIndex)){counter--}}if(counter){throw new Error("Parenthesis not matched")}return unescapeCSS(selector.slice(start,selectorIndex-1))}function isEscaped(pos){let slashCount=0;while(selector.charCodeAt(--pos)===92)slashCount++;return(slashCount&1)===1}function ensureNotTraversal(){if(tokens.length>0&&isTraversal$1(tokens[tokens.length-1])){throw new Error("Did not expect successive traversals.")}}function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal();tokens.push({type:type})}function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name:name,action:action,value:getName(1),namespace:null,ignoreCase:"quirks"})}function finalizeSubselector(){if(tokens.length&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens.pop()}if(tokens.length===0){throw new Error("Empty sub-selector")}subselects.push(tokens)}stripWhitespace(0);if(selector.length===selectorIndex){return selectorIndex}loop:while(selectorIndex<selector.length){const firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case 32:case 9:case 10:case 12:case 13:{if(tokens.length===0||tokens[0].type!==SelectorType.Descendant){ensureNotTraversal();tokens.push({type:SelectorType.Descendant})}stripWhitespace(1);break}case 62:{addTraversal(SelectorType.Child);stripWhitespace(1);break}case 60:{addTraversal(SelectorType.Parent);stripWhitespace(1);break}case 126:{addTraversal(SelectorType.Sibling);stripWhitespace(1);break}case 43:{addTraversal(SelectorType.Adjacent);stripWhitespace(1);break}case 46:{addSpecialAttribute("class",AttributeAction.Element);break}case 35:{addSpecialAttribute("id",AttributeAction.Equals);break}case 91:{stripWhitespace(1);let name;let namespace=null;if(selector.charCodeAt(selectorIndex)===124){name=getName(1)}else if(selector.startsWith("*|",selectorIndex)){namespace="*";name=getName(2)}else{name=getName(0);if(selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==61){namespace=name;name=getName(1)}}stripWhitespace(0);let action=AttributeAction.Exists;const possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){action=possibleAction;if(selector.charCodeAt(selectorIndex+1)!==61){throw new Error("Expected `=`")}stripWhitespace(2)}else if(selector.charCodeAt(selectorIndex)===61){action=AttributeAction.Equals;stripWhitespace(1)}let value="";let ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){const quote=selector.charCodeAt(selectorIndex);let sectionEnd=selectorIndex+1;while(sectionEnd<selector.length&&(selector.charCodeAt(sectionEnd)!==quote||isEscaped(sectionEnd))){sectionEnd+=1}if(selector.charCodeAt(sectionEnd)!==quote){throw new Error("Attribute value didn't end")}value=unescapeCSS(selector.slice(selectorIndex+1,sectionEnd));selectorIndex=sectionEnd+1}else{const valueStart=selectorIndex;while(selectorIndex<selector.length&&(!isWhitespace(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==93||isEscaped(selectorIndex))){selectorIndex+=1}value=unescapeCSS(selector.slice(valueStart,selectorIndex))}stripWhitespace(0);const forceIgnore=selector.charCodeAt(selectorIndex)|32;if(forceIgnore===115){ignoreCase=false;stripWhitespace(1)}else if(forceIgnore===105){ignoreCase=true;stripWhitespace(1)}}if(selector.charCodeAt(selectorIndex)!==93){throw new Error("Attribute selector didn't terminate")}selectorIndex+=1;const attributeSelector={type:SelectorType.Attribute,name:name,action:action,value:value,namespace:namespace,ignoreCase:ignoreCase};tokens.push(attributeSelector);break}case 58:{if(selector.charCodeAt(selectorIndex+1)===58){tokens.push({type:SelectorType.PseudoElement,name:getName(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===40?readValueWithParenthesis():null});continue}const name=getName(1).toLowerCase();let data=null;if(selector.charCodeAt(selectorIndex)===40){if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1))){throw new Error(`Pseudo-selector ${name} cannot be quoted`)}data=[];selectorIndex=parseSelector(data,selector,selectorIndex+1);if(selector.charCodeAt(selectorIndex)!==41){throw new Error(`Missing closing parenthesis in :${name} (${selector})`)}selectorIndex+=1}else{data=readValueWithParenthesis();if(stripQuotesFromPseudos.has(name)){const quot=data.charCodeAt(0);if(quot===data.charCodeAt(data.length-1)&&isQuote(quot)){data=data.slice(1,-1)}}data=unescapeCSS(data)}}tokens.push({type:SelectorType.Pseudo,name:name,data:data});break}case 44:{finalizeSubselector();tokens=[];stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){const endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex<0){throw new Error("Comment was not terminated")}selectorIndex=endIndex+2;if(tokens.length===0){stripWhitespace(0)}break}let namespace=null;let name;if(firstChar===42){selectorIndex+=1;name="*"}else if(firstChar===124){name="";if(selector.charCodeAt(selectorIndex+1)===124){addTraversal(SelectorType.ColumnCombinator);stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex))){name=getName(0)}else{break loop}if(selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==124){namespace=name;if(selector.charCodeAt(selectorIndex+1)===42){name="*";selectorIndex+=2}else{name=getName(1)}}tokens.push(name==="*"?{type:SelectorType.Universal,namespace:namespace}:{type:SelectorType.Tag,name:name,namespace:namespace})}}}finalizeSubselector();return selectorIndex}const attribValChars=["\\",'"'];const pseudoValChars=[...attribValChars,"(",")"];const charsToEscapeInAttributeValue=new Set(attribValChars.map((c=>c.charCodeAt(0))));const charsToEscapeInPseudoValue=new Set(pseudoValChars.map((c=>c.charCodeAt(0))));const charsToEscapeInName=new Set([...pseudoValChars,"~","^","$","*","+","!","|",":","[","]"," ","."].map((c=>c.charCodeAt(0))));function stringify(selector){return selector.map((token=>token.map(stringifyToken).join(""))).join(", ")}function stringifyToken(token,index,arr){switch(token.type){case SelectorType.Child:return index===0?"> ":" > ";case SelectorType.Parent:return index===0?"< ":" < ";case SelectorType.Sibling:return index===0?"~ ":" ~ ";case SelectorType.Adjacent:return index===0?"+ ":" + ";case SelectorType.Descendant:return" ";case SelectorType.ColumnCombinator:return index===0?"|| ":" || ";case SelectorType.Universal:return token.namespace==="*"&&index+1<arr.length&&"name"in arr[index+1]?"":`${getNamespace(token.namespace)}*`;case SelectorType.Tag:return getNamespacedName(token);case SelectorType.PseudoElement:return`::${escapeName(token.name,charsToEscapeInName)}${token.data===null?"":`(${escapeName(token.data,charsToEscapeInPseudoValue)})`}`;case SelectorType.Pseudo:return`:${escapeName(token.name,charsToEscapeInName)}${token.data===null?"":`(${typeof token.data==="string"?escapeName(token.data,charsToEscapeInPseudoValue):stringify(token.data)})`}`;case SelectorType.Attribute:{if(token.name==="id"&&token.action===AttributeAction.Equals&&token.ignoreCase==="quirks"&&!token.namespace){return`#${escapeName(token.value,charsToEscapeInName)}`}if(token.name==="class"&&token.action===AttributeAction.Element&&token.ignoreCase==="quirks"&&!token.namespace){return`.${escapeName(token.value,charsToEscapeInName)}`}const name=getNamespacedName(token);if(token.action===AttributeAction.Exists){return`[${name}]`}return`[${name}${getActionValue(token.action)}="${escapeName(token.value,charsToEscapeInAttributeValue)}"${token.ignoreCase===null?"":token.ignoreCase?" i":" s"}]`}}}function getActionValue(action){switch(action){case AttributeAction.Equals:return"";case AttributeAction.Element:return"~";case AttributeAction.Start:return"^";case AttributeAction.End:return"$";case AttributeAction.Any:return"*";case AttributeAction.Not:return"!";case AttributeAction.Hyphen:return"|";case AttributeAction.Exists:throw new Error("Shouldn't be here")}}function getNamespacedName(token){return`${getNamespace(token.namespace)}${escapeName(token.name,charsToEscapeInName)}`}function getNamespace(namespace){return namespace!==null?`${namespace==="*"?"*":escapeName(namespace,charsToEscapeInName)}|`:""}function escapeName(str,charsToEscape){let lastIdx=0;let ret="";for(let i=0;i<str.length;i++){if(charsToEscape.has(str.charCodeAt(i))){ret+=`${str.slice(lastIdx,i)}\\${str.charAt(i)}`;lastIdx=i+1}}return ret.length>0?ret+str.slice(lastIdx):str}var es=Object.freeze({__proto__:null,isTraversal:isTraversal$1,parse:parse$O,stringify:stringify,get SelectorType(){return SelectorType},IgnoreCaseMode:IgnoreCaseMode,get AttributeAction(){return AttributeAction}});var require$$1=getAugmentedNamespace(es);var sort={};Object.defineProperty(sort,"__esModule",{value:true});sort.isTraversal=void 0;var css_what_1$2=require$$1;var procedure=new Map([[css_what_1$2.SelectorType.Universal,50],[css_what_1$2.SelectorType.Tag,30],[css_what_1$2.SelectorType.Attribute,1],[css_what_1$2.SelectorType.Pseudo,0]]);function isTraversal(token){return!procedure.has(token.type)}sort.isTraversal=isTraversal;var attributes$1=new Map([[css_what_1$2.AttributeAction.Exists,10],[css_what_1$2.AttributeAction.Equals,8],[css_what_1$2.AttributeAction.Not,7],[css_what_1$2.AttributeAction.Start,6],[css_what_1$2.AttributeAction.End,6],[css_what_1$2.AttributeAction.Any,5]]);function sortByProcedure(arr){var procs=arr.map(getProcedure);for(var i=1;i<arr.length;i++){var procNew=procs[i];if(procNew<0)continue;for(var j=i-1;j>=0&&procNew<procs[j];j--){var token=arr[j+1];arr[j+1]=arr[j];arr[j]=token;procs[j+1]=procs[j];procs[j]=procNew}}}sort.default=sortByProcedure;function getProcedure(token){var _a,_b;var proc=(_a=procedure.get(token.type))!==null&&_a!==void 0?_a:-1;if(token.type===css_what_1$2.SelectorType.Attribute){proc=(_b=attributes$1.get(token.action))!==null&&_b!==void 0?_b:4;if(token.action===css_what_1$2.AttributeAction.Equals&&token.name==="id"){proc=9}if(token.ignoreCase){proc>>=1}}else if(token.type===css_what_1$2.SelectorType.Pseudo){if(!token.data){proc=3}else if(token.name==="has"||token.name==="contains"){proc=0}else if(Array.isArray(token.data)){proc=Math.min.apply(Math,token.data.map((function(d){return Math.min.apply(Math,d.map(getProcedure))})));if(proc<0){proc=0}}else{proc=2}}return proc}var general={};var attributes={};var __importDefault$2=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(attributes,"__esModule",{value:true});attributes.attributeRules=void 0;var boolbase_1$2=__importDefault$2(boolbase);var reChars=/[-[\]{}()*+?.,\\^$|#\s]/g;function escapeRegex(value){return value.replace(reChars,"\\$&")}var caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function shouldIgnoreCase(selector,options){return typeof selector.ignoreCase==="boolean"?selector.ignoreCase:selector.ignoreCase==="quirks"?!!options.quirksMode:!options.xmlMode&&caseInsensitiveAttributes.has(selector.name)}attributes.attributeRules={equals:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length===value.length&&attr.toLowerCase()===value&&next(elem)}}return function(elem){return adapter.getAttributeValue(elem,name)===value&&next(elem)}},hyphen:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=value.length;if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function hyphenIC(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&(attr.length===len||attr.charAt(len)==="-")&&attr.substr(0,len).toLowerCase()===value&&next(elem)}}return function hyphen(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&(attr.length===len||attr.charAt(len)==="-")&&attr.substr(0,len)===value&&next(elem)}},element:function(next,data,options){var adapter=options.adapter;var name=data.name,value=data.value;if(/\s/.test(value)){return boolbase_1$2.default.falseFunc}var regex=new RegExp("(?:^|\\s)".concat(escapeRegex(value),"(?:$|\\s)"),shouldIgnoreCase(data,options)?"i":"");return function element(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=value.length&&regex.test(attr)&&next(elem)}},exists:function(next,_a,_b){var name=_a.name;var adapter=_b.adapter;return function(elem){return adapter.hasAttrib(elem,name)&&next(elem)}},start:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=value.length;if(len===0){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=len&&attr.substr(0,len).toLowerCase()===value&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.startsWith(value))&&next(elem)}},end:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=-value.length;if(len===0){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var _a;return((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.substr(len).toLowerCase())===value&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.endsWith(value))&&next(elem)}},any:function(next,data,options){var adapter=options.adapter;var name=data.name,value=data.value;if(value===""){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){var regex_1=new RegExp(escapeRegex(value),"i");return function anyIC(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=value.length&&regex_1.test(attr)&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.includes(value))&&next(elem)}},not:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;if(value===""){return function(elem){return!!adapter.getAttributeValue(elem,name)&&next(elem)}}else if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return(attr==null||attr.length!==value.length||attr.toLowerCase()!==value)&&next(elem)}}return function(elem){return adapter.getAttributeValue(elem,name)!==value&&next(elem)}}};var pseudoSelectors={};var filters$1={};var lib={};var parse$N={};Object.defineProperty(parse$N,"__esModule",{value:true});parse$N.parse=void 0;var whitespace=new Set([9,10,12,13,32]);var ZERO="0".charCodeAt(0);var NINE="9".charCodeAt(0);function parse$M(formula){formula=formula.trim().toLowerCase();if(formula==="even"){return[2,0]}else if(formula==="odd"){return[2,1]}var idx=0;var a=0;var sign=readSign();var number=readNumber();if(idx<formula.length&&formula.charAt(idx)==="n"){idx++;a=sign*(number!==null&&number!==void 0?number:1);skipWhitespace();if(idx<formula.length){sign=readSign();skipWhitespace();number=readNumber()}else{sign=number=0}}if(number===null||idx<formula.length){throw new Error("n-th rule couldn't be parsed ('".concat(formula,"')"))}return[a,sign*number];function readSign(){if(formula.charAt(idx)==="-"){idx++;return-1}if(formula.charAt(idx)==="+"){idx++}return 1}function readNumber(){var start=idx;var value=0;while(idx<formula.length&&formula.charCodeAt(idx)>=ZERO&&formula.charCodeAt(idx)<=NINE){value=value*10+(formula.charCodeAt(idx)-ZERO);idx++}return idx===start?null:value}function skipWhitespace(){while(idx<formula.length&&whitespace.has(formula.charCodeAt(idx))){idx++}}}parse$N.parse=parse$M;var compile$2={};var __importDefault$1=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(compile$2,"__esModule",{value:true});compile$2.generate=compile$2.compile=void 0;var boolbase_1$1=__importDefault$1(boolbase);function compile$1(parsed){var a=parsed[0];var b=parsed[1]-1;if(b<0&&a<=0)return boolbase_1$1.default.falseFunc;if(a===-1)return function(index){return index<=b};if(a===0)return function(index){return index===b};if(a===1)return b<0?boolbase_1$1.default.trueFunc:function(index){return index>=b};var absA=Math.abs(a);var bMod=(b%absA+absA)%absA;return a>1?function(index){return index>=b&&index%absA===bMod}:function(index){return index<=b&&index%absA===bMod}}compile$2.compile=compile$1;function generate$M(parsed){var a=parsed[0];var b=parsed[1]-1;var n=0;if(a<0){var aPos_1=-a;var minValue_1=(b%aPos_1+aPos_1)%aPos_1;return function(){var val=minValue_1+aPos_1*n++;return val>b?null:val}}if(a===0)return b<0?function(){return null}:function(){return n++===0?b:null};if(b<0){b+=a*Math.ceil(-b/a)}return function(){return a*n+++b}}compile$2.generate=generate$M;(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.sequence=exports.generate=exports.compile=exports.parse=void 0;var parse_js_1=parse$N;Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return parse_js_1.parse}});var compile_js_1=compile$2;Object.defineProperty(exports,"compile",{enumerable:true,get:function(){return compile_js_1.compile}});Object.defineProperty(exports,"generate",{enumerable:true,get:function(){return compile_js_1.generate}});function nthCheck(formula){return(0,compile_js_1.compile)((0,parse_js_1.parse)(formula))}exports.default=nthCheck;function sequence(formula){return(0,compile_js_1.generate)((0,parse_js_1.parse)(formula))}exports.sequence=sequence})(lib);(function(exports){var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.filters=void 0;var nth_check_1=__importDefault(lib);var boolbase_1=__importDefault(boolbase);function getChildFunc(next,adapter){return function(elem){var parent=adapter.getParent(elem);return parent!=null&&adapter.isTag(parent)&&next(elem)}}exports.filters={contains:function(next,text,_a){var adapter=_a.adapter;return function contains(elem){return next(elem)&&adapter.getText(elem).includes(text)}},icontains:function(next,text,_a){var adapter=_a.adapter;var itext=text.toLowerCase();return function icontains(elem){return next(elem)&&adapter.getText(elem).toLowerCase().includes(itext)}},"nth-child":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthChild(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=0;i<siblings.length;i++){if(equals(elem,siblings[i]))break;if(adapter.isTag(siblings[i])){pos++}}return func(pos)&&next(elem)}},"nth-last-child":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthLastChild(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=siblings.length-1;i>=0;i--){if(equals(elem,siblings[i]))break;if(adapter.isTag(siblings[i])){pos++}}return func(pos)&&next(elem)}},"nth-of-type":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthOfType(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)){pos++}}return func(pos)&&next(elem)}},"nth-last-of-type":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthLastOfType(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=siblings.length-1;i>=0;i--){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)){pos++}}return func(pos)&&next(elem)}},root:function(next,_rule,_a){var adapter=_a.adapter;return function(elem){var parent=adapter.getParent(elem);return(parent==null||!adapter.isTag(parent))&&next(elem)}},scope:function(next,rule,options,context){var equals=options.equals;if(!context||context.length===0){return exports.filters["root"](next,rule,options)}if(context.length===1){return function(elem){return equals(context[0],elem)&&next(elem)}}return function(elem){return context.includes(elem)&&next(elem)}},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};function dynamicStatePseudo(name){return function dynamicPseudo(next,_rule,_a){var adapter=_a.adapter;var func=adapter[name];if(typeof func!=="function"){return boolbase_1.default.falseFunc}return function active(elem){return func(elem)&&next(elem)}}}})(filters$1);var pseudos={};Object.defineProperty(pseudos,"__esModule",{value:true});pseudos.verifyPseudoArgs=pseudos.pseudos=void 0;pseudos.pseudos={empty:function(elem,_a){var adapter=_a.adapter;return!adapter.getChildren(elem).some((function(elem){return adapter.isTag(elem)||adapter.getText(elem)!==""}))},"first-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;if(adapter.prevElementSibling){return adapter.prevElementSibling(elem)==null}var firstChild=adapter.getSiblings(elem).find((function(elem){return adapter.isTag(elem)}));return firstChild!=null&&equals(elem,firstChild)},"last-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);for(var i=siblings.length-1;i>=0;i--){if(equals(elem,siblings[i]))return true;if(adapter.isTag(siblings[i]))break}return false},"first-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);var elemName=adapter.getName(elem);for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))return true;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName){break}}return false},"last-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);var elemName=adapter.getName(elem);for(var i=siblings.length-1;i>=0;i--){var currentSibling=siblings[i];if(equals(elem,currentSibling))return true;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName){break}}return false},"only-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var elemName=adapter.getName(elem);return adapter.getSiblings(elem).every((function(sibling){return equals(elem,sibling)||!adapter.isTag(sibling)||adapter.getName(sibling)!==elemName}))},"only-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;return adapter.getSiblings(elem).every((function(sibling){return equals(elem,sibling)||!adapter.isTag(sibling)}))}};function verifyPseudoArgs(func,name,subselect,argIndex){if(subselect===null){if(func.length>argIndex){throw new Error("Pseudo-class :".concat(name," requires an argument"))}}else if(func.length===argIndex){throw new Error("Pseudo-class :".concat(name," doesn't have any arguments"))}}pseudos.verifyPseudoArgs=verifyPseudoArgs;var aliases={};Object.defineProperty(aliases,"__esModule",{value:true});aliases.aliases=void 0;aliases.aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"};var subselects={};(function(exports){var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++){if(ar||!(i in from)){if(!ar)ar=Array.prototype.slice.call(from,0,i);ar[i]=from[i]}}return to.concat(ar||Array.prototype.slice.call(from))};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.subselects=exports.getNextSiblings=exports.ensureIsTag=exports.PLACEHOLDER_ELEMENT=void 0;var boolbase_1=__importDefault(boolbase);var sort_js_1=sort;exports.PLACEHOLDER_ELEMENT={};function ensureIsTag(next,adapter){if(next===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;return function(elem){return adapter.isTag(elem)&&next(elem)}}exports.ensureIsTag=ensureIsTag;function getNextSiblings(elem,adapter){var siblings=adapter.getSiblings(elem);if(siblings.length<=1)return[];var elemIndex=siblings.indexOf(elem);if(elemIndex<0||elemIndex===siblings.length-1)return[];return siblings.slice(elemIndex+1).filter(adapter.isTag)}exports.getNextSiblings=getNextSiblings;function copyOptions(options){return{xmlMode:!!options.xmlMode,lowerCaseAttributeNames:!!options.lowerCaseAttributeNames,lowerCaseTags:!!options.lowerCaseTags,quirksMode:!!options.quirksMode,cacheResults:!!options.cacheResults,pseudos:options.pseudos,adapter:options.adapter,equals:options.equals}}var is=function(next,token,options,context,compileToken){var func=compileToken(token,copyOptions(options),context);return func===boolbase_1.default.trueFunc?next:func===boolbase_1.default.falseFunc?boolbase_1.default.falseFunc:function(elem){return func(elem)&&next(elem)}};exports.subselects={is:is,matches:is,where:is,not:function(next,token,options,context,compileToken){var func=compileToken(token,copyOptions(options),context);return func===boolbase_1.default.falseFunc?next:func===boolbase_1.default.trueFunc?boolbase_1.default.falseFunc:function(elem){return!func(elem)&&next(elem)}},has:function(next,subselect,options,_context,compileToken){var adapter=options.adapter;var opts=copyOptions(options);opts.relativeSelector=true;var context=subselect.some((function(s){return s.some(sort_js_1.isTraversal)}))?[exports.PLACEHOLDER_ELEMENT]:undefined;var compiled=compileToken(subselect,opts,context);if(compiled===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;var hasElement=ensureIsTag(compiled,adapter);if(context&&compiled!==boolbase_1.default.trueFunc){var _a=compiled.shouldTestNextSiblings,shouldTestNextSiblings_1=_a===void 0?false:_a;return function(elem){if(!next(elem))return false;context[0]=elem;var childs=adapter.getChildren(elem);var nextElements=shouldTestNextSiblings_1?__spreadArray(__spreadArray([],childs,true),getNextSiblings(elem,adapter),true):childs;return adapter.existsOne(hasElement,nextElements)}}return function(elem){return next(elem)&&adapter.existsOne(hasElement,adapter.getChildren(elem))}}}})(subselects);(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.compilePseudoSelector=exports.aliases=exports.pseudos=exports.filters=void 0;var css_what_1=require$$1;var filters_js_1=filters$1;Object.defineProperty(exports,"filters",{enumerable:true,get:function(){return filters_js_1.filters}});var pseudos_js_1=pseudos;Object.defineProperty(exports,"pseudos",{enumerable:true,get:function(){return pseudos_js_1.pseudos}});var aliases_js_1=aliases;Object.defineProperty(exports,"aliases",{enumerable:true,get:function(){return aliases_js_1.aliases}});var subselects_js_1=subselects;function compilePseudoSelector(next,selector,options,context,compileToken){var _a;var name=selector.name,data=selector.data;if(Array.isArray(data)){if(!(name in subselects_js_1.subselects)){throw new Error("Unknown pseudo-class :".concat(name,"(").concat(data,")"))}return subselects_js_1.subselects[name](next,data,options,context,compileToken)}var userPseudo=(_a=options.pseudos)===null||_a===void 0?void 0:_a[name];var stringPseudo=typeof userPseudo==="string"?userPseudo:aliases_js_1.aliases[name];if(typeof stringPseudo==="string"){if(data!=null){throw new Error("Pseudo ".concat(name," doesn't have any arguments"))}var alias=(0,css_what_1.parse)(stringPseudo);return subselects_js_1.subselects["is"](next,alias,options,context,compileToken)}if(typeof userPseudo==="function"){(0,pseudos_js_1.verifyPseudoArgs)(userPseudo,name,data,1);return function(elem){return userPseudo(elem,data)&&next(elem)}}if(name in filters_js_1.filters){return filters_js_1.filters[name](next,data,options,context)}if(name in pseudos_js_1.pseudos){var pseudo_1=pseudos_js_1.pseudos[name];(0,pseudos_js_1.verifyPseudoArgs)(pseudo_1,name,data,2);return function(elem){return pseudo_1(elem,options,data)&&next(elem)}}throw new Error("Unknown pseudo-class :".concat(name))}exports.compilePseudoSelector=compilePseudoSelector})(pseudoSelectors);Object.defineProperty(general,"__esModule",{value:true});general.compileGeneralSelector=void 0;var attributes_js_1=attributes;var index_js_1=pseudoSelectors;var css_what_1$1=require$$1;function getElementParent(node,adapter){var parent=adapter.getParent(node);if(parent&&adapter.isTag(parent)){return parent}return null}function compileGeneralSelector(next,selector,options,context,compileToken){var adapter=options.adapter,equals=options.equals;switch(selector.type){case css_what_1$1.SelectorType.PseudoElement:{throw new Error("Pseudo-elements are not supported by css-select")}case css_what_1$1.SelectorType.ColumnCombinator:{throw new Error("Column combinators are not yet supported by css-select")}case css_what_1$1.SelectorType.Attribute:{if(selector.namespace!=null){throw new Error("Namespaced attributes are not yet supported by css-select")}if(!options.xmlMode||options.lowerCaseAttributeNames){selector.name=selector.name.toLowerCase()}return attributes_js_1.attributeRules[selector.action](next,selector,options)}case css_what_1$1.SelectorType.Pseudo:{return(0,index_js_1.compilePseudoSelector)(next,selector,options,context,compileToken)}case css_what_1$1.SelectorType.Tag:{if(selector.namespace!=null){throw new Error("Namespaced tag names are not yet supported by css-select")}var name_1=selector.name;if(!options.xmlMode||options.lowerCaseTags){name_1=name_1.toLowerCase()}return function tag(elem){return adapter.getName(elem)===name_1&&next(elem)}}case css_what_1$1.SelectorType.Descendant:{if(options.cacheResults===false||typeof WeakSet==="undefined"){return function descendant(elem){var current=elem;while(current=getElementParent(current,adapter)){if(next(current)){return true}}return false}}var isFalseCache_1=new WeakSet;return function cachedDescendant(elem){var current=elem;while(current=getElementParent(current,adapter)){if(!isFalseCache_1.has(current)){if(adapter.isTag(current)&&next(current)){return true}isFalseCache_1.add(current)}}return false}}case"_flexibleDescendant":{return function flexibleDescendant(elem){var current=elem;do{if(next(current))return true}while(current=getElementParent(current,adapter));return false}}case css_what_1$1.SelectorType.Parent:{return function parent(elem){return adapter.getChildren(elem).some((function(elem){return adapter.isTag(elem)&&next(elem)}))}}case css_what_1$1.SelectorType.Child:{return function child(elem){var parent=adapter.getParent(elem);return parent!=null&&adapter.isTag(parent)&&next(parent)}}case css_what_1$1.SelectorType.Sibling:{return function sibling(elem){var siblings=adapter.getSiblings(elem);for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&next(currentSibling)){return true}}return false}}case css_what_1$1.SelectorType.Adjacent:{if(adapter.prevElementSibling){return function adjacent(elem){var previous=adapter.prevElementSibling(elem);return previous!=null&&next(previous)}}return function adjacent(elem){var siblings=adapter.getSiblings(elem);var lastElement;for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)){lastElement=currentSibling}}return!!lastElement&&next(lastElement)}}case css_what_1$1.SelectorType.Universal:{if(selector.namespace!=null&&selector.namespace!=="*"){throw new Error("Namespaced universal selectors are not yet supported by css-select")}return next}}}general.compileGeneralSelector=compileGeneralSelector;var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(compile$3,"__esModule",{value:true});compile$3.compileToken=compile$3.compileUnsafe=compile$3.compile=void 0;var css_what_1=require$$1;var boolbase_1=__importDefault(boolbase);var sort_js_1=__importStar(sort);var general_js_1=general;var subselects_js_1=subselects;function compile(selector,options,context){var next=compileUnsafe(selector,options,context);return(0,subselects_js_1.ensureIsTag)(next,options.adapter)}compile$3.compile=compile;function compileUnsafe(selector,options,context){var token=typeof selector==="string"?(0,css_what_1.parse)(selector):selector;return compileToken(token,options,context)}compile$3.compileUnsafe=compileUnsafe;function includesScopePseudo(t){return t.type===css_what_1.SelectorType.Pseudo&&(t.name==="scope"||Array.isArray(t.data)&&t.data.some((function(data){return data.some(includesScopePseudo)})))}var DESCENDANT_TOKEN={type:css_what_1.SelectorType.Descendant};var FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"};var SCOPE_TOKEN={type:css_what_1.SelectorType.Pseudo,name:"scope",data:null};function absolutize(token,_a,context){var adapter=_a.adapter;var hasContext=!!(context===null||context===void 0?void 0:context.every((function(e){var parent=adapter.isTag(e)&&adapter.getParent(e);return e===subselects_js_1.PLACEHOLDER_ELEMENT||parent&&adapter.isTag(parent)})));for(var _i=0,token_1=token;_i<token_1.length;_i++){var t=token_1[_i];if(t.length>0&&(0,sort_js_1.isTraversal)(t[0])&&t[0].type!==css_what_1.SelectorType.Descendant);else if(hasContext&&!t.some(includesScopePseudo)){t.unshift(DESCENDANT_TOKEN)}else{continue}t.unshift(SCOPE_TOKEN)}}function compileToken(token,options,context){var _a;token.forEach(sort_js_1.default);context=(_a=options.context)!==null&&_a!==void 0?_a:context;var isArrayContext=Array.isArray(context);var finalContext=context&&(Array.isArray(context)?context:[context]);if(options.relativeSelector!==false){absolutize(token,options,finalContext)}else if(token.some((function(t){return t.length>0&&(0,sort_js_1.isTraversal)(t[0])}))){throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled")}var shouldTestNextSiblings=false;var query=token.map((function(rules){if(rules.length>=2){var first=rules[0],second=rules[1];if(first.type!==css_what_1.SelectorType.Pseudo||first.name!=="scope");else if(isArrayContext&&second.type===css_what_1.SelectorType.Descendant){rules[1]=FLEXIBLE_DESCENDANT_TOKEN}else if(second.type===css_what_1.SelectorType.Adjacent||second.type===css_what_1.SelectorType.Sibling){shouldTestNextSiblings=true}}return compileRules(rules,options,finalContext)})).reduce(reduceRules,boolbase_1.default.falseFunc);query.shouldTestNextSiblings=shouldTestNextSiblings;return query}compile$3.compileToken=compileToken;function compileRules(rules,options,context){var _a;return rules.reduce((function(previous,rule){return previous===boolbase_1.default.falseFunc?boolbase_1.default.falseFunc:(0,general_js_1.compileGeneralSelector)(previous,rule,options,context,compileToken)}),(_a=options.rootFunc)!==null&&_a!==void 0?_a:boolbase_1.default.trueFunc)}function reduceRules(a,b){if(b===boolbase_1.default.falseFunc||a===boolbase_1.default.trueFunc){return a}if(a===boolbase_1.default.falseFunc||b===boolbase_1.default.trueFunc){return b}return function combine(elem){return a(elem)||b(elem)}}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.aliases=exports.pseudos=exports.filters=exports.is=exports.selectOne=exports.selectAll=exports.prepareContext=exports._compileToken=exports._compileUnsafe=exports.compile=void 0;var DomUtils=__importStar(lib$5);var boolbase_1=__importDefault(boolbase);var compile_js_1=compile$3;var subselects_js_1=subselects;var defaultEquals=function(a,b){return a===b};var defaultOptions={adapter:DomUtils,equals:defaultEquals};function convertOptionFormats(options){var _a,_b,_c,_d;var opts=options!==null&&options!==void 0?options:defaultOptions;(_a=opts.adapter)!==null&&_a!==void 0?_a:opts.adapter=DomUtils;(_b=opts.equals)!==null&&_b!==void 0?_b:opts.equals=(_d=(_c=opts.adapter)===null||_c===void 0?void 0:_c.equals)!==null&&_d!==void 0?_d:defaultEquals;return opts}function wrapCompile(func){return function addAdapter(selector,options,context){var opts=convertOptionFormats(options);return func(selector,opts,context)}}exports.compile=wrapCompile(compile_js_1.compile);exports._compileUnsafe=wrapCompile(compile_js_1.compileUnsafe);exports._compileToken=wrapCompile(compile_js_1.compileToken);function getSelectorFunc(searchFunc){return function select(query,elements,options){var opts=convertOptionFormats(options);if(typeof query!=="function"){query=(0,compile_js_1.compileUnsafe)(query,opts,elements)}var filteredElements=prepareContext(elements,opts.adapter,query.shouldTestNextSiblings);return searchFunc(query,filteredElements,opts)}}function prepareContext(elems,adapter,shouldTestNextSiblings){if(shouldTestNextSiblings===void 0){shouldTestNextSiblings=false}if(shouldTestNextSiblings){elems=appendNextSiblings(elems,adapter)}return Array.isArray(elems)?adapter.removeSubsets(elems):adapter.getChildren(elems)}exports.prepareContext=prepareContext;function appendNextSiblings(elem,adapter){var elems=Array.isArray(elem)?elem.slice(0):[elem];var elemsLength=elems.length;for(var i=0;i<elemsLength;i++){var nextSiblings=(0,subselects_js_1.getNextSiblings)(elems[i],adapter);elems.push.apply(elems,nextSiblings)}return elems}exports.selectAll=getSelectorFunc((function(query,elems,options){return query===boolbase_1.default.falseFunc||!elems||elems.length===0?[]:options.adapter.findAll(query,elems)}));exports.selectOne=getSelectorFunc((function(query,elems,options){return query===boolbase_1.default.falseFunc||!elems||elems.length===0?null:options.adapter.findOne(query,elems)}));function is(elem,query,options){var opts=convertOptionFormats(options);return(typeof query==="function"?query:(0,compile_js_1.compile)(query,opts))(elem)}exports.is=is;exports.default=exports.selectAll;var index_js_1=pseudoSelectors;Object.defineProperty(exports,"filters",{enumerable:true,get:function(){return index_js_1.filters}});Object.defineProperty(exports,"pseudos",{enumerable:true,get:function(){return index_js_1.pseudos}});Object.defineProperty(exports,"aliases",{enumerable:true,get:function(){return index_js_1.aliases}})})(lib$6);const isTag=node=>node.type==="element";const existsOne=(test,elems)=>elems.some((elem=>{if(isTag(elem)){return test(elem)||existsOne(test,getChildren(elem))}else{return false}}));const getAttributeValue=(elem,name)=>elem.attributes[name];const getChildren=node=>node.children||[];const getName=elemAst=>elemAst.name;const getParent=node=>node.parentNode||null;const getSiblings=elem=>{var parent=getParent(elem);return parent?getChildren(parent):[]};const getText=node=>{if(node.children[0].type==="text"&&node.children[0].type==="cdata"){return node.children[0].value}return""};const hasAttrib=(elem,name)=>elem.attributes[name]!==undefined;const removeSubsets=nodes=>{let idx=nodes.length;let node;let ancestor;let replace;while(--idx>-1){node=ancestor=nodes[idx];nodes[idx]=null;replace=true;while(ancestor){if(nodes.includes(ancestor)){replace=false;nodes.splice(idx,1);break}ancestor=getParent(ancestor)}if(replace){nodes[idx]=node}}return nodes};const findAll$2=(test,elems)=>{const result=[];for(const elem of elems){if(isTag(elem)){if(test(elem)){result.push(elem)}result.push(...findAll$2(test,getChildren(elem)))}}return result};const findOne=(test,elems)=>{for(const elem of elems){if(isTag(elem)){if(test(elem)){return elem}const result=findOne(test,getChildren(elem));if(result){return result}}}return null};const svgoCssSelectAdapter={isTag:isTag,existsOne:existsOne,getAttributeValue:getAttributeValue,getChildren:getChildren,getName:getName,getParent:getParent,getSiblings:getSiblings,getText:getText,hasAttrib:hasAttrib,removeSubsets:removeSubsets,findAll:findAll$2,findOne:findOne};var cssSelectAdapter=svgoCssSelectAdapter;const{selectAll:selectAll,selectOne:selectOne,is:is}=lib$6;const xastAdaptor=cssSelectAdapter;const cssSelectOptions={xmlMode:true,adapter:xastAdaptor};const querySelectorAll$4=(node,selector)=>selectAll(selector,node,cssSelectOptions);xast.querySelectorAll=querySelectorAll$4;const querySelector$2=(node,selector)=>selectOne(selector,node,cssSelectOptions);xast.querySelector=querySelector$2;const matches$1=(node,selector)=>is(node,selector,cssSelectOptions);xast.matches=matches$1;const visitSkip$7=Symbol();xast.visitSkip=visitSkip$7;const visit$7=(node,visitor,parentNode)=>{const callbacks=visitor[node.type];if(callbacks&&callbacks.enter){const symbol=callbacks.enter(node,parentNode);if(symbol===visitSkip$7){return}}if(node.type==="root"){for(const child of node.children){visit$7(child,visitor,node)}}if(node.type==="element"){if(parentNode.children.includes(node)){for(const child of node.children){visit$7(child,visitor,node)}}}if(callbacks&&callbacks.exit){callbacks.exit(node,parentNode)}};xast.visit=visit$7;const detachNodeFromParent$p=(node,parentNode)=>{parentNode.children=parentNode.children.filter((child=>child!==node))};xast.detachNodeFromParent=detachNodeFromParent$p;const{visit:visit$6}=xast;const invokePlugins$1=(ast,info,plugins,overrides,globalOverrides)=>{for(const plugin of plugins){const override=overrides?.[plugin.name];if(override===false){continue}const params={...plugin.params,...globalOverrides,...override};const visitor=plugin.fn(ast,params,info);if(visitor!=null){visit$6(ast,visitor)}}};plugins.invokePlugins=invokePlugins$1;const createPreset$1=({name:name,plugins:plugins})=>({name:name,fn:(ast,params,info)=>{const{floatPrecision:floatPrecision,overrides:overrides}=params;const globalOverrides={};if(floatPrecision!=null){globalOverrides.floatPrecision=floatPrecision}if(overrides){const pluginNames=plugins.map((({name:name})=>name));for(const pluginName of Object.keys(overrides)){if(!pluginNames.includes(pluginName)){console.warn(`You are trying to configure ${pluginName} which is not part of ${name}.\n`+`Try to put it before or after, for example\n\n`+`plugins: [\n`+` {\n`+` name: '${name}',\n`+` },\n`+` '${pluginName}'\n`+`]\n`)}}}invokePlugins$1(ast,info,plugins,overrides,globalOverrides)}});plugins.createPreset=createPreset$1;var removeDoctype$1={};const{detachNodeFromParent:detachNodeFromParent$o}=xast;removeDoctype$1.name="removeDoctype";removeDoctype$1.description="removes doctype declaration";removeDoctype$1.fn=()=>({doctype:{enter:(node,parentNode)=>{detachNodeFromParent$o(node,parentNode)}}});var removeXMLProcInst$1={};const{detachNodeFromParent:detachNodeFromParent$n}=xast;removeXMLProcInst$1.name="removeXMLProcInst";removeXMLProcInst$1.description="removes XML processing instructions";removeXMLProcInst$1.fn=()=>({instruction:{enter:(node,parentNode)=>{if(node.name==="xml"){detachNodeFromParent$n(node,parentNode)}}}});var removeComments$1={};const{detachNodeFromParent:detachNodeFromParent$m}=xast;removeComments$1.name="removeComments";removeComments$1.description="removes comments";const DEFAULT_PRESERVE_PATTERNS=[/^!/];removeComments$1.fn=(_root,params)=>{const{preservePatterns:preservePatterns=DEFAULT_PRESERVE_PATTERNS}=params;return{comment:{enter:(node,parentNode)=>{if(preservePatterns){if(!Array.isArray(preservePatterns)){throw Error(`Expected array in removeComments preservePatterns parameter but received ${preservePatterns}`)}const matches=preservePatterns.some((pattern=>new RegExp(pattern).test(node.value)));if(matches){return}}detachNodeFromParent$m(node,parentNode)}}}};var removeMetadata$1={};const{detachNodeFromParent:detachNodeFromParent$l}=xast;removeMetadata$1.name="removeMetadata";removeMetadata$1.description="removes <metadata>";removeMetadata$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="metadata"){detachNodeFromParent$l(node,parentNode)}}}});var removeEditorsNSData$1={};const{detachNodeFromParent:detachNodeFromParent$k}=xast;const{editorNamespaces:editorNamespaces}=_collections;removeEditorsNSData$1.name="removeEditorsNSData";removeEditorsNSData$1.description="removes editors namespaces, elements and attributes";removeEditorsNSData$1.fn=(_root,params)=>{let namespaces=editorNamespaces;if(Array.isArray(params.additionalNamespaces)){namespaces=[...editorNamespaces,...params.additionalNamespaces]}const prefixes=[];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"){for(const[name,value]of Object.entries(node.attributes)){if(name.startsWith("xmlns:")&&namespaces.includes(value)){prefixes.push(name.slice("xmlns:".length));delete node.attributes[name]}}}for(const name of Object.keys(node.attributes)){if(name.includes(":")){const[prefix]=name.split(":");if(prefixes.includes(prefix)){delete node.attributes[name]}}}if(node.name.includes(":")){const[prefix]=node.name.split(":");if(prefixes.includes(prefix)){detachNodeFromParent$k(node,parentNode)}}}}}};var cleanupAttrs$1={};cleanupAttrs$1.name="cleanupAttrs";cleanupAttrs$1.description="cleanups attributes from newlines, trailing and repeating spaces";const regNewlinesNeedSpace=/(\S)\r?\n(\S)/g;const regNewlines=/\r?\n/g;const regSpaces=/\s{2,}/g;cleanupAttrs$1.fn=(root,params)=>{const{newlines:newlines=true,trim:trim=true,spaces:spaces=true}=params;return{element:{enter:node=>{for(const name of Object.keys(node.attributes)){if(newlines){node.attributes[name]=node.attributes[name].replace(regNewlinesNeedSpace,((match,p1,p2)=>p1+" "+p2));node.attributes[name]=node.attributes[name].replace(regNewlines,"")}if(trim){node.attributes[name]=node.attributes[name].trim()}if(spaces){node.attributes[name]=node.attributes[name].replace(regSpaces," ")}}}}}};var mergeStyles$1={};const{visitSkip:visitSkip$6,detachNodeFromParent:detachNodeFromParent$j}=xast;mergeStyles$1.name="mergeStyles";mergeStyles$1.description="merge multiple style elements into one";mergeStyles$1.fn=()=>{let firstStyleElement=null;let collectedStyles="";let styleContentType="text";return{element:{enter:(node,parentNode)=>{if(node.name==="foreignObject"){return visitSkip$6}if(node.name!=="style"){return}if(node.attributes.type!=null&&node.attributes.type!==""&&node.attributes.type!=="text/css"){return}let css="";for(const child of node.children){if(child.type==="text"){css+=child.value}if(child.type==="cdata"){styleContentType="cdata";css+=child.value}}if(css.trim().length===0){detachNodeFromParent$j(node,parentNode);return}if(node.attributes.media==null){collectedStyles+=css}else{collectedStyles+=`@media ${node.attributes.media}{${css}}`;delete node.attributes.media}if(firstStyleElement==null){firstStyleElement=node}else{detachNodeFromParent$j(node,parentNode);const child={type:styleContentType,value:collectedStyles};Object.defineProperty(child,"parentNode",{writable:true,value:firstStyleElement});firstStyleElement.children=[child]}}}}};var inlineStyles$1={};var cjs$1={};var tokenizer$2={};var types$R={};const EOF$1=0;const Ident=1;const Function$2=2;const AtKeyword=3;const Hash$3=4;const String$2=5;const BadString=6;const Url$5=7;const BadUrl=8;const Delim=9;const Number$3=10;const Percentage$5=11;const Dimension$5=12;const WhiteSpace$5=13;const CDO$3=14;const CDC$3=15;const Colon=16;const Semicolon=17;const Comma=18;const LeftSquareBracket=19;const RightSquareBracket=20;const LeftParenthesis=21;const RightParenthesis=22;const LeftCurlyBracket=23;const RightCurlyBracket=24;const Comment$5=25;types$R.AtKeyword=AtKeyword;types$R.BadString=BadString;types$R.BadUrl=BadUrl;types$R.CDC=CDC$3;types$R.CDO=CDO$3;types$R.Colon=Colon;types$R.Comma=Comma;types$R.Comment=Comment$5;types$R.Delim=Delim;types$R.Dimension=Dimension$5;types$R.EOF=EOF$1;types$R.Function=Function$2;types$R.Hash=Hash$3;types$R.Ident=Ident;types$R.LeftCurlyBracket=LeftCurlyBracket;types$R.LeftParenthesis=LeftParenthesis;types$R.LeftSquareBracket=LeftSquareBracket;types$R.Number=Number$3;types$R.Percentage=Percentage$5;types$R.RightCurlyBracket=RightCurlyBracket;types$R.RightParenthesis=RightParenthesis;types$R.RightSquareBracket=RightSquareBracket;types$R.Semicolon=Semicolon;types$R.String=String$2;types$R.Url=Url$5;types$R.WhiteSpace=WhiteSpace$5;var charCodeDefinitions$c={};const EOF=0;function isDigit$1(code){return code>=48&&code<=57}function isHexDigit(code){return isDigit$1(code)||code>=65&&code<=70||code>=97&&code<=102}function isUppercaseLetter(code){return code>=65&&code<=90}function isLowercaseLetter(code){return code>=97&&code<=122}function isLetter(code){return isUppercaseLetter(code)||isLowercaseLetter(code)}function isNonAscii(code){return code>=128}function isNameStart(code){return isLetter(code)||isNonAscii(code)||code===95}function isName(code){return isNameStart(code)||isDigit$1(code)||code===45}function isNonPrintable(code){return code>=0&&code<=8||code===11||code>=14&&code<=31||code===127}function isNewline(code){return code===10||code===13||code===12}function isWhiteSpace(code){return isNewline(code)||code===32||code===9}function isValidEscape(first,second){if(first!==92){return false}if(isNewline(second)||second===EOF){return false}return true}function isIdentifierStart(first,second,third){if(first===45){return isNameStart(second)||second===45||isValidEscape(second,third)}if(isNameStart(first)){return true}if(first===92){return isValidEscape(first,second)}return false}function isNumberStart(first,second,third){if(first===43||first===45){if(isDigit$1(second)){return 2}return second===46&&isDigit$1(third)?3:0}if(first===46){return isDigit$1(second)?2:0}if(isDigit$1(first)){return 1}return 0}function isBOM(code){if(code===65279){return 1}if(code===65534){return 1}return 0}const CATEGORY=new Array(128);const EofCategory=128;const WhiteSpaceCategory=130;const DigitCategory=131;const NameStartCategory=132;const NonPrintableCategory=133;for(let i=0;i<CATEGORY.length;i++){CATEGORY[i]=isWhiteSpace(i)&&WhiteSpaceCategory||isDigit$1(i)&&DigitCategory||isNameStart(i)&&NameStartCategory||isNonPrintable(i)&&NonPrintableCategory||i||EofCategory}function charCodeCategory(code){return code<128?CATEGORY[code]:NameStartCategory}charCodeDefinitions$c.DigitCategory=DigitCategory;charCodeDefinitions$c.EofCategory=EofCategory;charCodeDefinitions$c.NameStartCategory=NameStartCategory;charCodeDefinitions$c.NonPrintableCategory=NonPrintableCategory;charCodeDefinitions$c.WhiteSpaceCategory=WhiteSpaceCategory;charCodeDefinitions$c.charCodeCategory=charCodeCategory;charCodeDefinitions$c.isBOM=isBOM;charCodeDefinitions$c.isDigit=isDigit$1;charCodeDefinitions$c.isHexDigit=isHexDigit;charCodeDefinitions$c.isIdentifierStart=isIdentifierStart;charCodeDefinitions$c.isLetter=isLetter;charCodeDefinitions$c.isLowercaseLetter=isLowercaseLetter;charCodeDefinitions$c.isName=isName;charCodeDefinitions$c.isNameStart=isNameStart;charCodeDefinitions$c.isNewline=isNewline;charCodeDefinitions$c.isNonAscii=isNonAscii;charCodeDefinitions$c.isNonPrintable=isNonPrintable;charCodeDefinitions$c.isNumberStart=isNumberStart;charCodeDefinitions$c.isUppercaseLetter=isUppercaseLetter;charCodeDefinitions$c.isValidEscape=isValidEscape;charCodeDefinitions$c.isWhiteSpace=isWhiteSpace;var utils$k={};const charCodeDefinitions$b=charCodeDefinitions$c;function getCharCode(source,offset){return offset<source.length?source.charCodeAt(offset):0}function getNewlineLength(source,offset,code){if(code===13&&getCharCode(source,offset+1)===10){return 2}return 1}function cmpChar(testStr,offset,referenceCode){let code=testStr.charCodeAt(offset);if(charCodeDefinitions$b.isUppercaseLetter(code)){code=code|32}return code===referenceCode}function cmpStr(testStr,start,end,referenceStr){if(end-start!==referenceStr.length){return false}if(start<0||end>testStr.length){return false}for(let i=start;i<end;i++){const referenceCode=referenceStr.charCodeAt(i-start);let testCode=testStr.charCodeAt(i);if(charCodeDefinitions$b.isUppercaseLetter(testCode)){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function findWhiteSpaceStart(source,offset){for(;offset>=0;offset--){if(!charCodeDefinitions$b.isWhiteSpace(source.charCodeAt(offset))){break}}return offset+1}function findWhiteSpaceEnd(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$b.isWhiteSpace(source.charCodeAt(offset))){break}}return offset}function findDecimalNumberEnd(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$b.isDigit(source.charCodeAt(offset))){break}}return offset}function consumeEscaped(source,offset){offset+=2;if(charCodeDefinitions$b.isHexDigit(getCharCode(source,offset-1))){for(const maxOffset=Math.min(source.length,offset+5);offset<maxOffset;offset++){if(!charCodeDefinitions$b.isHexDigit(getCharCode(source,offset))){break}}const code=getCharCode(source,offset);if(charCodeDefinitions$b.isWhiteSpace(code)){offset+=getNewlineLength(source,offset,code)}}return offset}function consumeName(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(charCodeDefinitions$b.isName(code)){continue}if(charCodeDefinitions$b.isValidEscape(code,getCharCode(source,offset+1))){offset=consumeEscaped(source,offset)-1;continue}break}return offset}function consumeNumber$1(source,offset){let code=source.charCodeAt(offset);if(code===43||code===45){code=source.charCodeAt(offset+=1)}if(charCodeDefinitions$b.isDigit(code)){offset=findDecimalNumberEnd(source,offset+1);code=source.charCodeAt(offset)}if(code===46&&charCodeDefinitions$b.isDigit(source.charCodeAt(offset+1))){offset+=2;offset=findDecimalNumberEnd(source,offset)}if(cmpChar(source,offset,101)){let sign=0;code=source.charCodeAt(offset+1);if(code===45||code===43){sign=1;code=source.charCodeAt(offset+2)}if(charCodeDefinitions$b.isDigit(code)){offset=findDecimalNumberEnd(source,offset+1+sign+1)}}return offset}function consumeBadUrlRemnants(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(code===41){offset++;break}if(charCodeDefinitions$b.isValidEscape(code,getCharCode(source,offset+1))){offset=consumeEscaped(source,offset)}}return offset}function decodeEscaped(escaped){if(escaped.length===1&&!charCodeDefinitions$b.isHexDigit(escaped.charCodeAt(0))){return escaped[0]}let code=parseInt(escaped,16);if(code===0||code>=55296&&code<=57343||code>1114111){code=65533}return String.fromCodePoint(code)}utils$k.cmpChar=cmpChar;utils$k.cmpStr=cmpStr;utils$k.consumeBadUrlRemnants=consumeBadUrlRemnants;utils$k.consumeEscaped=consumeEscaped;utils$k.consumeName=consumeName;utils$k.consumeNumber=consumeNumber$1;utils$k.decodeEscaped=decodeEscaped;utils$k.findDecimalNumberEnd=findDecimalNumberEnd;utils$k.findWhiteSpaceEnd=findWhiteSpaceEnd;utils$k.findWhiteSpaceStart=findWhiteSpaceStart;utils$k.getNewlineLength=getNewlineLength;const tokenNames=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token"];var names$8=tokenNames;var OffsetToLocation$3={};var adoptBuffer$3={};const MIN_SIZE=16*1024;function adoptBuffer$2(buffer=null,size){if(buffer===null||buffer.length<size){return new Uint32Array(Math.max(size+1024,MIN_SIZE))}return buffer}adoptBuffer$3.adoptBuffer=adoptBuffer$2;const adoptBuffer$1=adoptBuffer$3;const charCodeDefinitions$a=charCodeDefinitions$c;const N$4=10;const F$2=12;const R$2=13;function computeLinesAndColumns(host){const source=host.source;const sourceLength=source.length;const startOffset=source.length>0?charCodeDefinitions$a.isBOM(source.charCodeAt(0)):0;const lines=adoptBuffer$1.adoptBuffer(host.lines,sourceLength);const columns=adoptBuffer$1.adoptBuffer(host.columns,sourceLength);let line=host.startLine;let column=host.startColumn;for(let i=startOffset;i<sourceLength;i++){const code=source.charCodeAt(i);lines[i]=line;columns[i]=column++;if(code===N$4||code===R$2||code===F$2){if(code===R$2&&i+1<sourceLength&&source.charCodeAt(i+1)===N$4){i++;lines[i]=line;columns[i]=column}line++;column=1}}lines[sourceLength]=line;columns[sourceLength]=column;host.lines=lines;host.columns=columns;host.computed=true}class OffsetToLocation$2{constructor(){this.lines=null;this.columns=null;this.computed=false}setSource(source,startOffset=0,startLine=1,startColumn=1){this.source=source;this.startOffset=startOffset;this.startLine=startLine;this.startColumn=startColumn;this.computed=false}getLocation(offset,filename){if(!this.computed){computeLinesAndColumns(this)}return{source:filename,offset:this.startOffset+offset,line:this.lines[offset],column:this.columns[offset]}}getLocationRange(start,end,filename){if(!this.computed){computeLinesAndColumns(this)}return{source:filename,start:{offset:this.startOffset+start,line:this.lines[start],column:this.columns[start]},end:{offset:this.startOffset+end,line:this.lines[end],column:this.columns[end]}}}}OffsetToLocation$3.OffsetToLocation=OffsetToLocation$2;var TokenStream$4={};const adoptBuffer=adoptBuffer$3;const utils$j=utils$k;const names$7=names$8;const types$Q=types$R;const OFFSET_MASK=16777215;const TYPE_SHIFT=24;const balancePair$1=new Map([[types$Q.Function,types$Q.RightParenthesis],[types$Q.LeftParenthesis,types$Q.RightParenthesis],[types$Q.LeftSquareBracket,types$Q.RightSquareBracket],[types$Q.LeftCurlyBracket,types$Q.RightCurlyBracket]]);class TokenStream$3{constructor(source,tokenize){this.setSource(source,tokenize)}reset(){this.eof=false;this.tokenIndex=-1;this.tokenType=0;this.tokenStart=this.firstCharOffset;this.tokenEnd=this.firstCharOffset}setSource(source="",tokenize=(()=>{})){source=String(source||"");const sourceLength=source.length;const offsetAndType=adoptBuffer.adoptBuffer(this.offsetAndType,source.length+1);const balance=adoptBuffer.adoptBuffer(this.balance,source.length+1);let tokenCount=0;let balanceCloseType=0;let balanceStart=0;let firstCharOffset=-1;this.offsetAndType=null;this.balance=null;tokenize(source,((type,start,end)=>{switch(type){default:balance[tokenCount]=sourceLength;break;case balanceCloseType:{let balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balanceCloseType=balanceStart>>TYPE_SHIFT;balance[tokenCount]=balancePrev;balance[balancePrev++]=tokenCount;for(;balancePrev<tokenCount;balancePrev++){if(balance[balancePrev]===sourceLength){balance[balancePrev]=tokenCount}}break}case types$Q.LeftParenthesis:case types$Q.Function:case types$Q.LeftSquareBracket:case types$Q.LeftCurlyBracket:balance[tokenCount]=balanceStart;balanceCloseType=balancePair$1.get(type);balanceStart=balanceCloseType<<TYPE_SHIFT|tokenCount;break}offsetAndType[tokenCount++]=type<<TYPE_SHIFT|end;if(firstCharOffset===-1){firstCharOffset=start}}));offsetAndType[tokenCount]=types$Q.EOF<<TYPE_SHIFT|sourceLength;balance[tokenCount]=sourceLength;balance[sourceLength]=sourceLength;while(balanceStart!==0){const balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balance[balancePrev]=sourceLength}this.source=source;this.firstCharOffset=firstCharOffset===-1?0:firstCharOffset;this.tokenCount=tokenCount;this.offsetAndType=offsetAndType;this.balance=balance;this.reset();this.next()}lookupType(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset]>>TYPE_SHIFT}return types$Q.EOF}lookupOffset(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset-1]&OFFSET_MASK}return this.source.length}lookupValue(offset,referenceStr){offset+=this.tokenIndex;if(offset<this.tokenCount){return utils$j.cmpStr(this.source,this.offsetAndType[offset-1]&OFFSET_MASK,this.offsetAndType[offset]&OFFSET_MASK,referenceStr)}return false}getTokenStart(tokenIndex){if(tokenIndex===this.tokenIndex){return this.tokenStart}if(tokenIndex>0){return tokenIndex<this.tokenCount?this.offsetAndType[tokenIndex-1]&OFFSET_MASK:this.offsetAndType[this.tokenCount]&OFFSET_MASK}return this.firstCharOffset}substrToCursor(start){return this.source.substring(start,this.tokenStart)}isBalanceEdge(pos){return this.balance[this.tokenIndex]<pos}isDelim(code,offset){if(offset){return this.lookupType(offset)===types$Q.Delim&&this.source.charCodeAt(this.lookupOffset(offset))===code}return this.tokenType===types$Q.Delim&&this.source.charCodeAt(this.tokenStart)===code}skip(tokenCount){let next=this.tokenIndex+tokenCount;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.offsetAndType[next-1]&OFFSET_MASK;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT;this.tokenEnd=next&OFFSET_MASK}else{this.tokenIndex=this.tokenCount;this.next()}}next(){let next=this.tokenIndex+1;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.tokenEnd;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT;this.tokenEnd=next&OFFSET_MASK}else{this.eof=true;this.tokenIndex=this.tokenCount;this.tokenType=types$Q.EOF;this.tokenStart=this.tokenEnd=this.source.length}}skipSC(){while(this.tokenType===types$Q.WhiteSpace||this.tokenType===types$Q.Comment){this.next()}}skipUntilBalanced(startToken,stopConsume){let cursor=startToken;let balanceEnd;let offset;loop:for(;cursor<this.tokenCount;cursor++){balanceEnd=this.balance[cursor];if(balanceEnd<startToken){break loop}offset=cursor>0?this.offsetAndType[cursor-1]&OFFSET_MASK:this.firstCharOffset;switch(stopConsume(this.source.charCodeAt(offset))){case 1:break loop;case 2:cursor++;break loop;default:if(this.balance[balanceEnd]===cursor){cursor=balanceEnd}}}this.skip(cursor-this.tokenIndex)}forEachToken(fn){for(let i=0,offset=this.firstCharOffset;i<this.tokenCount;i++){const start=offset;const item=this.offsetAndType[i];const end=item&OFFSET_MASK;const type=item>>TYPE_SHIFT;offset=end;fn(type,start,end,i)}}dump(){const tokens=new Array(this.tokenCount);this.forEachToken(((type,start,end,index)=>{tokens[index]={idx:index,type:names$7[type],chunk:this.source.substring(start,end),balance:this.balance[index]}}));return tokens}}TokenStream$4.TokenStream=TokenStream$3;const types$P=types$R;const charCodeDefinitions$9=charCodeDefinitions$c;const utils$i=utils$k;const names$6=names$8;const OffsetToLocation$1=OffsetToLocation$3;const TokenStream$2=TokenStream$4;function tokenize$2(source,onToken){function getCharCode(offset){return offset<sourceLength?source.charCodeAt(offset):0}function consumeNumericToken(){offset=utils$i.consumeNumber(source,offset);if(charCodeDefinitions$9.isIdentifierStart(getCharCode(offset),getCharCode(offset+1),getCharCode(offset+2))){type=types$P.Dimension;offset=utils$i.consumeName(source,offset);return}if(getCharCode(offset)===37){type=types$P.Percentage;offset++;return}type=types$P.Number}function consumeIdentLikeToken(){const nameStartOffset=offset;offset=utils$i.consumeName(source,offset);if(utils$i.cmpStr(source,nameStartOffset,offset,"url")&&getCharCode(offset)===40){offset=utils$i.findWhiteSpaceEnd(source,offset+1);if(getCharCode(offset)===34||getCharCode(offset)===39){type=types$P.Function;offset=nameStartOffset+4;return}consumeUrlToken();return}if(getCharCode(offset)===40){type=types$P.Function;offset++;return}type=types$P.Ident}function consumeStringToken(endingCodePoint){if(!endingCodePoint){endingCodePoint=getCharCode(offset++)}type=types$P.String;for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case endingCodePoint:offset++;return;case charCodeDefinitions$9.WhiteSpaceCategory:if(charCodeDefinitions$9.isNewline(code)){offset+=utils$i.getNewlineLength(source,offset,code);type=types$P.BadString;return}break;case 92:if(offset===source.length-1){break}const nextCode=getCharCode(offset+1);if(charCodeDefinitions$9.isNewline(nextCode)){offset+=utils$i.getNewlineLength(source,offset+1,nextCode)}else if(charCodeDefinitions$9.isValidEscape(code,nextCode)){offset=utils$i.consumeEscaped(source,offset)-1}break}}}function consumeUrlToken(){type=types$P.Url;offset=utils$i.findWhiteSpaceEnd(source,offset);for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case 41:offset++;return;case charCodeDefinitions$9.WhiteSpaceCategory:offset=utils$i.findWhiteSpaceEnd(source,offset);if(getCharCode(offset)===41||offset>=source.length){if(offset<source.length){offset++}return}offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return;case 34:case 39:case 40:case charCodeDefinitions$9.NonPrintableCategory:offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return;case 92:if(charCodeDefinitions$9.isValidEscape(code,getCharCode(offset+1))){offset=utils$i.consumeEscaped(source,offset)-1;break}offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return}}}source=String(source||"");const sourceLength=source.length;let start=charCodeDefinitions$9.isBOM(getCharCode(0));let offset=start;let type;while(offset<sourceLength){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case charCodeDefinitions$9.WhiteSpaceCategory:type=types$P.WhiteSpace;offset=utils$i.findWhiteSpaceEnd(source,offset+1);break;case 34:consumeStringToken();break;case 35:if(charCodeDefinitions$9.isName(getCharCode(offset+1))||charCodeDefinitions$9.isValidEscape(getCharCode(offset+1),getCharCode(offset+2))){type=types$P.Hash;offset=utils$i.consumeName(source,offset+1)}else{type=types$P.Delim;offset++}break;case 39:consumeStringToken();break;case 40:type=types$P.LeftParenthesis;offset++;break;case 41:type=types$P.RightParenthesis;offset++;break;case 43:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$P.Delim;offset++}break;case 44:type=types$P.Comma;offset++;break;case 45:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{if(getCharCode(offset+1)===45&&getCharCode(offset+2)===62){type=types$P.CDC;offset=offset+3}else{if(charCodeDefinitions$9.isIdentifierStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeIdentLikeToken()}else{type=types$P.Delim;offset++}}}break;case 46:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$P.Delim;offset++}break;case 47:if(getCharCode(offset+1)===42){type=types$P.Comment;offset=source.indexOf("*/",offset+2);offset=offset===-1?source.length:offset+2}else{type=types$P.Delim;offset++}break;case 58:type=types$P.Colon;offset++;break;case 59:type=types$P.Semicolon;offset++;break;case 60:if(getCharCode(offset+1)===33&&getCharCode(offset+2)===45&&getCharCode(offset+3)===45){type=types$P.CDO;offset=offset+4}else{type=types$P.Delim;offset++}break;case 64:if(charCodeDefinitions$9.isIdentifierStart(getCharCode(offset+1),getCharCode(offset+2),getCharCode(offset+3))){type=types$P.AtKeyword;offset=utils$i.consumeName(source,offset+1)}else{type=types$P.Delim;offset++}break;case 91:type=types$P.LeftSquareBracket;offset++;break;case 92:if(charCodeDefinitions$9.isValidEscape(code,getCharCode(offset+1))){consumeIdentLikeToken()}else{type=types$P.Delim;offset++}break;case 93:type=types$P.RightSquareBracket;offset++;break;case 123:type=types$P.LeftCurlyBracket;offset++;break;case 125:type=types$P.RightCurlyBracket;offset++;break;case charCodeDefinitions$9.DigitCategory:consumeNumericToken();break;case charCodeDefinitions$9.NameStartCategory:consumeIdentLikeToken();break;default:type=types$P.Delim;offset++}onToken(type,start,start=offset)}}tokenizer$2.AtKeyword=types$P.AtKeyword;tokenizer$2.BadString=types$P.BadString;tokenizer$2.BadUrl=types$P.BadUrl;tokenizer$2.CDC=types$P.CDC;tokenizer$2.CDO=types$P.CDO;tokenizer$2.Colon=types$P.Colon;tokenizer$2.Comma=types$P.Comma;tokenizer$2.Comment=types$P.Comment;tokenizer$2.Delim=types$P.Delim;tokenizer$2.Dimension=types$P.Dimension;tokenizer$2.EOF=types$P.EOF;tokenizer$2.Function=types$P.Function;tokenizer$2.Hash=types$P.Hash;tokenizer$2.Ident=types$P.Ident;tokenizer$2.LeftCurlyBracket=types$P.LeftCurlyBracket;tokenizer$2.LeftParenthesis=types$P.LeftParenthesis;tokenizer$2.LeftSquareBracket=types$P.LeftSquareBracket;tokenizer$2.Number=types$P.Number;tokenizer$2.Percentage=types$P.Percentage;tokenizer$2.RightCurlyBracket=types$P.RightCurlyBracket;tokenizer$2.RightParenthesis=types$P.RightParenthesis;tokenizer$2.RightSquareBracket=types$P.RightSquareBracket;tokenizer$2.Semicolon=types$P.Semicolon;tokenizer$2.String=types$P.String;tokenizer$2.Url=types$P.Url;tokenizer$2.WhiteSpace=types$P.WhiteSpace;tokenizer$2.tokenTypes=types$P;tokenizer$2.DigitCategory=charCodeDefinitions$9.DigitCategory;tokenizer$2.EofCategory=charCodeDefinitions$9.EofCategory;tokenizer$2.NameStartCategory=charCodeDefinitions$9.NameStartCategory;tokenizer$2.NonPrintableCategory=charCodeDefinitions$9.NonPrintableCategory;tokenizer$2.WhiteSpaceCategory=charCodeDefinitions$9.WhiteSpaceCategory;tokenizer$2.charCodeCategory=charCodeDefinitions$9.charCodeCategory;tokenizer$2.isBOM=charCodeDefinitions$9.isBOM;tokenizer$2.isDigit=charCodeDefinitions$9.isDigit;tokenizer$2.isHexDigit=charCodeDefinitions$9.isHexDigit;tokenizer$2.isIdentifierStart=charCodeDefinitions$9.isIdentifierStart;tokenizer$2.isLetter=charCodeDefinitions$9.isLetter;tokenizer$2.isLowercaseLetter=charCodeDefinitions$9.isLowercaseLetter;tokenizer$2.isName=charCodeDefinitions$9.isName;tokenizer$2.isNameStart=charCodeDefinitions$9.isNameStart;tokenizer$2.isNewline=charCodeDefinitions$9.isNewline;tokenizer$2.isNonAscii=charCodeDefinitions$9.isNonAscii;tokenizer$2.isNonPrintable=charCodeDefinitions$9.isNonPrintable;tokenizer$2.isNumberStart=charCodeDefinitions$9.isNumberStart;tokenizer$2.isUppercaseLetter=charCodeDefinitions$9.isUppercaseLetter;tokenizer$2.isValidEscape=charCodeDefinitions$9.isValidEscape;tokenizer$2.isWhiteSpace=charCodeDefinitions$9.isWhiteSpace;tokenizer$2.cmpChar=utils$i.cmpChar;tokenizer$2.cmpStr=utils$i.cmpStr;tokenizer$2.consumeBadUrlRemnants=utils$i.consumeBadUrlRemnants;tokenizer$2.consumeEscaped=utils$i.consumeEscaped;tokenizer$2.consumeName=utils$i.consumeName;tokenizer$2.consumeNumber=utils$i.consumeNumber;tokenizer$2.decodeEscaped=utils$i.decodeEscaped;tokenizer$2.findDecimalNumberEnd=utils$i.findDecimalNumberEnd;tokenizer$2.findWhiteSpaceEnd=utils$i.findWhiteSpaceEnd;tokenizer$2.findWhiteSpaceStart=utils$i.findWhiteSpaceStart;tokenizer$2.getNewlineLength=utils$i.getNewlineLength;tokenizer$2.tokenNames=names$6;tokenizer$2.OffsetToLocation=OffsetToLocation$1.OffsetToLocation;tokenizer$2.TokenStream=TokenStream$2.TokenStream;tokenizer$2.tokenize=tokenize$2;var create$7={};var List$7={};let releasedCursors=null;class List$6{static createItem(data){return{prev:null,next:null,data:data}}constructor(){this.head=null;this.tail=null;this.cursor=null}createItem(data){return List$6.createItem(data)}allocateCursor(prev,next){let cursor;if(releasedCursors!==null){cursor=releasedCursors;releasedCursors=releasedCursors.cursor;cursor.prev=prev;cursor.next=next;cursor.cursor=this.cursor}else{cursor={prev:prev,next:next,cursor:this.cursor}}this.cursor=cursor;return cursor}releaseCursor(){const{cursor:cursor}=this;this.cursor=cursor.cursor;cursor.prev=null;cursor.next=null;cursor.cursor=releasedCursors;releasedCursors=cursor}updateCursors(prevOld,prevNew,nextOld,nextNew){let{cursor:cursor}=this;while(cursor!==null){if(cursor.prev===prevOld){cursor.prev=prevNew}if(cursor.next===nextOld){cursor.next=nextNew}cursor=cursor.cursor}}*[Symbol.iterator](){for(let cursor=this.head;cursor!==null;cursor=cursor.next){yield cursor.data}}get size(){let size=0;for(let cursor=this.head;cursor!==null;cursor=cursor.next){size++}return size}get isEmpty(){return this.head===null}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(array){let cursor=null;this.head=null;for(let data of array){const item=List$6.createItem(data);if(cursor!==null){cursor.next=item}else{this.head=item}item.prev=cursor;cursor=item}this.tail=cursor;return this}toArray(){return[...this]}toJSON(){return[...this]}forEach(fn,thisArg=this){const cursor=this.allocateCursor(null,this.head);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}forEachRight(fn,thisArg=this){const cursor=this.allocateCursor(this.tail,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}reduce(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(null,this.head);let acc=initialValue;let item;while(cursor.next!==null){item=cursor.next;cursor.next=item.next;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}reduceRight(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(this.tail,null);let acc=initialValue;let item;while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}some(fn,thisArg=this){for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){return true}}return false}map(fn,thisArg=this){const result=new List$6;for(let cursor=this.head;cursor!==null;cursor=cursor.next){result.appendData(fn.call(thisArg,cursor.data,cursor,this))}return result}filter(fn,thisArg=this){const result=new List$6;for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){result.appendData(cursor.data)}}return result}nextUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(null,start);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}prevUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(start,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}clear(){this.head=null;this.tail=null}copy(){const result=new List$6;for(let data of this){result.appendData(data)}return result}prepend(item){this.updateCursors(null,item,this.head,item);if(this.head!==null){this.head.prev=item;item.next=this.head}else{this.tail=item}this.head=item;return this}prependData(data){return this.prepend(List$6.createItem(data))}append(item){return this.insert(item)}appendData(data){return this.insert(List$6.createItem(data))}insert(item,before=null){if(before!==null){this.updateCursors(before.prev,item,before,item);if(before.prev===null){if(this.head!==before){throw new Error("before doesn't belong to list")}this.head=item;before.prev=item;item.next=before;this.updateCursors(null,item)}else{before.prev.next=item;item.prev=before.prev;before.prev=item;item.next=before}}else{this.updateCursors(this.tail,item,null,item);if(this.tail!==null){this.tail.next=item;item.prev=this.tail}else{this.head=item}this.tail=item}return this}insertData(data,before){return this.insert(List$6.createItem(data),before)}remove(item){this.updateCursors(item,item.prev,item,item.next);if(item.prev!==null){item.prev.next=item.next}else{if(this.head!==item){throw new Error("item doesn't belong to list")}this.head=item.next}if(item.next!==null){item.next.prev=item.prev}else{if(this.tail!==item){throw new Error("item doesn't belong to list")}this.tail=item.prev}item.prev=null;item.next=null;return item}push(data){this.insert(List$6.createItem(data))}pop(){return this.tail!==null?this.remove(this.tail):null}unshift(data){this.prepend(List$6.createItem(data))}shift(){return this.head!==null?this.remove(this.head):null}prependList(list){return this.insertList(list,this.head)}appendList(list){return this.insertList(list)}insertList(list,before){if(list.head===null){return this}if(before!==undefined&&before!==null){this.updateCursors(before.prev,list.tail,before,list.head);if(before.prev!==null){before.prev.next=list.head;list.head.prev=before.prev}else{this.head=list.head}before.prev=list.tail;list.tail.next=before}else{this.updateCursors(this.tail,list.tail,null,list.head);if(this.tail!==null){this.tail.next=list.head;list.head.prev=this.tail}else{this.head=list.head}this.tail=list.tail}list.head=null;list.tail=null;return this}replace(oldItem,newItemOrList){if("head"in newItemOrList){this.insertList(newItemOrList,oldItem)}else{this.insert(newItemOrList,oldItem)}this.remove(oldItem)}}List$7.List=List$6;var _SyntaxError$1={};var createCustomError$4={};function createCustomError$3(name,message){const error=Object.create(SyntaxError.prototype);const errorStack=new Error;return Object.assign(error,{name:name,message:message,get stack(){return(errorStack.stack||"").replace(/^(.+\n){1,3}/,`${name}: ${message}\n`)}})}createCustomError$4.createCustomError=createCustomError$3;const createCustomError$2=createCustomError$4;const MAX_LINE_LENGTH=100;const OFFSET_CORRECTION=60;const TAB_REPLACEMENT=" ";function sourceFragment({source:source,line:line,column:column},extraLines){function processLines(start,end){return lines.slice(start,end).map(((line,idx)=>String(start+idx+1).padStart(maxNumLength)+" |"+line)).join("\n")}const lines=source.split(/\r\n?|\n|\f/);const startLine=Math.max(1,line-extraLines)-1;const endLine=Math.min(line+extraLines,lines.length+1);const maxNumLength=Math.max(4,String(endLine).length)+1;let cutLeft=0;column+=(TAB_REPLACEMENT.length-1)*(lines[line-1].substr(0,column-1).match(/\t/g)||[]).length;if(column>MAX_LINE_LENGTH){cutLeft=column-OFFSET_CORRECTION+3;column=OFFSET_CORRECTION-2}for(let i=startLine;i<=endLine;i++){if(i>=0&&i<lines.length){lines[i]=lines[i].replace(/\t/g,TAB_REPLACEMENT);lines[i]=(cutLeft>0&&lines[i].length>cutLeft?"…":"")+lines[i].substr(cutLeft,MAX_LINE_LENGTH-2)+(lines[i].length>cutLeft+MAX_LINE_LENGTH-1?"…":"")}}return[processLines(startLine,line),new Array(column+maxNumLength+2).join("-")+"^",processLines(line,endLine)].filter(Boolean).join("\n")}function SyntaxError$5(message,source,offset,line,column){const error=Object.assign(createCustomError$2.createCustomError("SyntaxError",message),{source:source,offset:offset,line:line,column:column,sourceFragment(extraLines){return sourceFragment({source:source,line:line,column:column},isNaN(extraLines)?0:extraLines)},get formattedMessage(){return`Parse error: ${message}\n`+sourceFragment({source:source,line:line,column:column},2)}});return error}_SyntaxError$1.SyntaxError=SyntaxError$5;var sequence$1={};const types$O=types$R;function readSequence$1(recognizer){const children=this.createList();let space=false;const context={recognizer:recognizer};while(!this.eof){switch(this.tokenType){case types$O.Comment:this.next();continue;case types$O.WhiteSpace:space=true;this.next();continue}let child=recognizer.getNode.call(this,context);if(child===undefined){break}if(space){if(recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,child,children,context)}space=false}children.push(child)}if(space&&recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,null,children,context)}return children}sequence$1.readSequence=readSequence$1;const List$5=List$7;const SyntaxError$4=_SyntaxError$1;const index$b=tokenizer$2;const sequence=sequence$1;const OffsetToLocation=OffsetToLocation$3;const TokenStream$1=TokenStream$4;const utils$h=utils$k;const types$N=types$R;const names$5=names$8;const NOOP=()=>{};const EXCLAMATIONMARK$3=33;const NUMBERSIGN$4=35;const SEMICOLON=59;const LEFTCURLYBRACKET$1=123;const NULL=0;function createParseContext(name){return function(){return this[name]()}}function fetchParseValues(dict){const result=Object.create(null);for(const name in dict){const item=dict[name];const fn=item.parse||item;if(fn){result[name]=fn}}return result}function processConfig(config){const parseConfig={context:Object.create(null),scope:Object.assign(Object.create(null),config.scope),atrule:fetchParseValues(config.atrule),pseudo:fetchParseValues(config.pseudo),node:fetchParseValues(config.node)};for(const name in config.parseContext){switch(typeof config.parseContext[name]){case"function":parseConfig.context[name]=config.parseContext[name];break;case"string":parseConfig.context[name]=createParseContext(config.parseContext[name]);break}}return{config:parseConfig,...parseConfig,...parseConfig.node}}function createParser(config){let source="";let filename="<unknown>";let needPositions=false;let onParseError=NOOP;let onParseErrorThrow=false;const locationMap=new OffsetToLocation.OffsetToLocation;const parser=Object.assign(new TokenStream$1.TokenStream,processConfig(config||{}),{parseAtrulePrelude:true,parseRulePrelude:true,parseValue:true,parseCustomProperty:false,readSequence:sequence.readSequence,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(code){return code===LEFTCURLYBRACKET$1?1:0},consumeUntilLeftCurlyBracketOrSemicolon(code){return code===LEFTCURLYBRACKET$1||code===SEMICOLON?1:0},consumeUntilExclamationMarkOrSemicolon(code){return code===EXCLAMATIONMARK$3||code===SEMICOLON?1:0},consumeUntilSemicolonIncluded(code){return code===SEMICOLON?2:0},createList(){return new List$5.List},createSingleNodeList(node){return(new List$5.List).appendData(node)},getFirstListNode(list){return list&&list.first},getLastListNode(list){return list&&list.last},parseWithFallback(consumer,fallback){const startToken=this.tokenIndex;try{return consumer.call(this)}catch(e){if(onParseErrorThrow){throw e}const fallbackNode=fallback.call(this,startToken);onParseErrorThrow=true;onParseError(e,fallbackNode);onParseErrorThrow=false;return fallbackNode}},lookupNonWSType(offset){let type;do{type=this.lookupType(offset++);if(type!==types$N.WhiteSpace){return type}}while(type!==NULL);return NULL},charCodeAt(offset){return offset>=0&&offset<source.length?source.charCodeAt(offset):0},substring(offsetStart,offsetEnd){return source.substring(offsetStart,offsetEnd)},substrToCursor(start){return this.source.substring(start,this.tokenStart)},cmpChar(offset,charCode){return utils$h.cmpChar(source,offset,charCode)},cmpStr(offsetStart,offsetEnd,str){return utils$h.cmpStr(source,offsetStart,offsetEnd,str)},consume(tokenType){const start=this.tokenStart;this.eat(tokenType);return this.substrToCursor(start)},consumeFunctionName(){const name=source.substring(this.tokenStart,this.tokenEnd-1);this.eat(types$N.Function);return name},consumeNumber(type){const number=source.substring(this.tokenStart,utils$h.consumeNumber(source,this.tokenStart));this.eat(type);return number},eat(tokenType){if(this.tokenType!==tokenType){const tokenName=names$5[tokenType].slice(0,-6).replace(/-/g," ").replace(/^./,(m=>m.toUpperCase()));let message=`${/[[\](){}]/.test(tokenName)?`"${tokenName}"`:tokenName} is expected`;let offset=this.tokenStart;switch(tokenType){case types$N.Ident:if(this.tokenType===types$N.Function||this.tokenType===types$N.Url){offset=this.tokenEnd-1;message="Identifier is expected but function found"}else{message="Identifier is expected"}break;case types$N.Hash:if(this.isDelim(NUMBERSIGN$4)){this.next();offset++;message="Name is expected"}break;case types$N.Percentage:if(this.tokenType===types$N.Number){offset=this.tokenEnd;message="Percent sign is expected"}break}this.error(message,offset)}this.next()},eatIdent(name){if(this.tokenType!==types$N.Ident||this.lookupValue(0,name)===false){this.error(`Identifier "${name}" is expected`)}this.next()},eatDelim(code){if(!this.isDelim(code)){this.error(`Delim "${String.fromCharCode(code)}" is expected`)}this.next()},getLocation(start,end){if(needPositions){return locationMap.getLocationRange(start,end,filename)}return null},getLocationFromList(list){if(needPositions){const head=this.getFirstListNode(list);const tail=this.getLastListNode(list);return locationMap.getLocationRange(head!==null?head.loc.start.offset-locationMap.startOffset:this.tokenStart,tail!==null?tail.loc.end.offset-locationMap.startOffset:this.tokenStart,filename)}return null},error(message,offset){const location=typeof offset!=="undefined"&&offset<source.length?locationMap.getLocation(offset):this.eof?locationMap.getLocation(utils$h.findWhiteSpaceStart(source,source.length-1)):locationMap.getLocation(this.tokenStart);throw new SyntaxError$4.SyntaxError(message||"Unexpected input",source,location.offset,location.line,location.column)}});const parse=function(source_,options){source=source_;options=options||{};parser.setSource(source,index$b.tokenize);locationMap.setSource(source,options.offset,options.line,options.column);filename=options.filename||"<unknown>";needPositions=Boolean(options.positions);onParseError=typeof options.onParseError==="function"?options.onParseError:NOOP;onParseErrorThrow=false;parser.parseAtrulePrelude="parseAtrulePrelude"in options?Boolean(options.parseAtrulePrelude):true;parser.parseRulePrelude="parseRulePrelude"in options?Boolean(options.parseRulePrelude):true;parser.parseValue="parseValue"in options?Boolean(options.parseValue):true;parser.parseCustomProperty="parseCustomProperty"in options?Boolean(options.parseCustomProperty):false;const{context:context="default",onComment:onComment}=options;if(context in parser.context===false){throw new Error("Unknown context `"+context+"`")}if(typeof onComment==="function"){parser.forEachToken(((type,start,end)=>{if(type===types$N.Comment){const loc=parser.getLocation(start,end);const value=utils$h.cmpStr(source,end-2,end,"*/")?source.slice(start+2,end-2):source.slice(start+2,end);onComment(value,loc)}}))}const ast=parser.context[context].call(parser,options);if(!parser.eof){parser.error()}return ast};return Object.assign(parse,{SyntaxError:SyntaxError$4.SyntaxError,config:parser.config})}create$7.createParser=createParser;var create$6={};var sourceMap$1={};var sourceMapGenerator={};var base64Vlq={};var base64$1={};var intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$1.encode=function(number){if(0<=number&&number<intToCharMap.length){return intToCharMap[number]}throw new TypeError("Must be between 0 and 63: "+number)};base64$1.decode=function(charCode){var bigA=65;var bigZ=90;var littleA=97;var littleZ=122;var zero=48;var nine=57;var plus=43;var slash=47;var littleOffset=26;var numberOffset=52;if(bigA<=charCode&&charCode<=bigZ){return charCode-bigA}if(littleA<=charCode&&charCode<=littleZ){return charCode-littleA+littleOffset}if(zero<=charCode&&charCode<=nine){return charCode-zero+numberOffset}if(charCode==plus){return 62}if(charCode==slash){return 63}return-1};var base64=base64$1;var VLQ_BASE_SHIFT=5;var VLQ_BASE=1<<VLQ_BASE_SHIFT;var VLQ_BASE_MASK=VLQ_BASE-1;var VLQ_CONTINUATION_BIT=VLQ_BASE;function toVLQSigned(aValue){return aValue<0?(-aValue<<1)+1:(aValue<<1)+0}function fromVLQSigned(aValue){var isNegative=(aValue&1)===1;var shifted=aValue>>1;return isNegative?-shifted:shifted}base64Vlq.encode=function base64VLQ_encode(aValue){var encoded="";var digit;var vlq=toVLQSigned(aValue);do{digit=vlq&VLQ_BASE_MASK;vlq>>>=VLQ_BASE_SHIFT;if(vlq>0){digit|=VLQ_CONTINUATION_BIT}encoded+=base64.encode(digit)}while(vlq>0);return encoded};base64Vlq.decode=function base64VLQ_decode(aStr,aIndex,aOutParam){var strLen=aStr.length;var result=0;var shift=0;var continuation,digit;do{if(aIndex>=strLen){throw new Error("Expected more digits in base 64 VLQ value.")}digit=base64.decode(aStr.charCodeAt(aIndex++));if(digit===-1){throw new Error("Invalid base64 digit: "+aStr.charAt(aIndex-1))}continuation=!!(digit&VLQ_CONTINUATION_BIT);digit&=VLQ_BASE_MASK;result=result+(digit<<shift);shift+=VLQ_BASE_SHIFT}while(continuation);aOutParam.value=fromVLQSigned(result);aOutParam.rest=aIndex};var util$3={};(function(exports){function getArg(aArgs,aName,aDefaultValue){if(aName in aArgs){return aArgs[aName]}else if(arguments.length===3){return aDefaultValue}else{throw new Error('"'+aName+'" is a required argument.')}}exports.getArg=getArg;var urlRegexp=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var dataUrlRegexp=/^data:.+\,.+$/;function urlParse(aUrl){var match=aUrl.match(urlRegexp);if(!match){return null}return{scheme:match[1],auth:match[2],host:match[3],port:match[4],path:match[5]}}exports.urlParse=urlParse;function urlGenerate(aParsedUrl){var url="";if(aParsedUrl.scheme){url+=aParsedUrl.scheme+":"}url+="//";if(aParsedUrl.auth){url+=aParsedUrl.auth+"@"}if(aParsedUrl.host){url+=aParsedUrl.host}if(aParsedUrl.port){url+=":"+aParsedUrl.port}if(aParsedUrl.path){url+=aParsedUrl.path}return url}exports.urlGenerate=urlGenerate;var MAX_CACHED_INPUTS=32;function lruMemoize(f){var cache=[];return function(input){for(var i=0;i<cache.length;i++){if(cache[i].input===input){var temp=cache[0];cache[0]=cache[i];cache[i]=temp;return cache[0].result}}var result=f(input);cache.unshift({input:input,result:result});if(cache.length>MAX_CACHED_INPUTS){cache.pop()}return result}}var normalize=lruMemoize((function normalize(aPath){var path=aPath;var url=urlParse(aPath);if(url){if(!url.path){return aPath}path=url.path}var isAbsolute=exports.isAbsolute(path);var parts=[];var start=0;var i=0;while(true){start=i;i=path.indexOf("/",start);if(i===-1){parts.push(path.slice(start));break}else{parts.push(path.slice(start,i));while(i<path.length&&path[i]==="/"){i++}}}for(var part,up=0,i=parts.length-1;i>=0;i--){part=parts[i];if(part==="."){parts.splice(i,1)}else if(part===".."){up++}else if(up>0){if(part===""){parts.splice(i+1,up);up=0}else{parts.splice(i,2);up--}}}path=parts.join("/");if(path===""){path=isAbsolute?"/":"."}if(url){url.path=path;return urlGenerate(url)}return path}));exports.normalize=normalize;function join(aRoot,aPath){if(aRoot===""){aRoot="."}if(aPath===""){aPath="."}var aPathUrl=urlParse(aPath);var aRootUrl=urlParse(aRoot);if(aRootUrl){aRoot=aRootUrl.path||"/"}if(aPathUrl&&!aPathUrl.scheme){if(aRootUrl){aPathUrl.scheme=aRootUrl.scheme}return urlGenerate(aPathUrl)}if(aPathUrl||aPath.match(dataUrlRegexp)){return aPath}if(aRootUrl&&!aRootUrl.host&&!aRootUrl.path){aRootUrl.host=aPath;return urlGenerate(aRootUrl)}var joined=aPath.charAt(0)==="/"?aPath:normalize(aRoot.replace(/\/+$/,"")+"/"+aPath);if(aRootUrl){aRootUrl.path=joined;return urlGenerate(aRootUrl)}return joined}exports.join=join;exports.isAbsolute=function(aPath){return aPath.charAt(0)==="/"||urlRegexp.test(aPath)};function relative(aRoot,aPath){if(aRoot===""){aRoot="."}aRoot=aRoot.replace(/\/$/,"");var level=0;while(aPath.indexOf(aRoot+"/")!==0){var index=aRoot.lastIndexOf("/");if(index<0){return aPath}aRoot=aRoot.slice(0,index);if(aRoot.match(/^([^\/]+:\/)?\/*$/)){return aPath}++level}return Array(level+1).join("../")+aPath.substr(aRoot.length+1)}exports.relative=relative;var supportsNullProto=function(){var obj=Object.create(null);return!("__proto__"in obj)}();function identity(s){return s}function toSetString(aStr){if(isProtoString(aStr)){return"$"+aStr}return aStr}exports.toSetString=supportsNullProto?identity:toSetString;function fromSetString(aStr){if(isProtoString(aStr)){return aStr.slice(1)}return aStr}exports.fromSetString=supportsNullProto?identity:fromSetString;function isProtoString(s){if(!s){return false}var length=s.length;if(length<9){return false}if(s.charCodeAt(length-1)!==95||s.charCodeAt(length-2)!==95||s.charCodeAt(length-3)!==111||s.charCodeAt(length-4)!==116||s.charCodeAt(length-5)!==111||s.charCodeAt(length-6)!==114||s.charCodeAt(length-7)!==112||s.charCodeAt(length-8)!==95||s.charCodeAt(length-9)!==95){return false}for(var i=length-10;i>=0;i--){if(s.charCodeAt(i)!==36){return false}}return true}function compareByOriginalPositions(mappingA,mappingB,onlyCompareOriginal){var cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByOriginalPositions=compareByOriginalPositions;function compareByOriginalPositionsNoSource(mappingA,mappingB,onlyCompareOriginal){var cmp;cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByOriginalPositionsNoSource=compareByOriginalPositionsNoSource;function compareByGeneratedPositionsDeflated(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function compareByGeneratedPositionsDeflatedNoLine(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsDeflatedNoLine=compareByGeneratedPositionsDeflatedNoLine;function strcmp(aStr1,aStr2){if(aStr1===aStr2){return 0}if(aStr1===null){return 1}if(aStr2===null){return-1}if(aStr1>aStr2){return 1}return-1}function compareByGeneratedPositionsInflated(mappingA,mappingB){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(str){return JSON.parse(str.replace(/^\)]}'[^\n]*\n/,""))}exports.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(sourceRoot,sourceURL,sourceMapURL){sourceURL=sourceURL||"";if(sourceRoot){if(sourceRoot[sourceRoot.length-1]!=="/"&&sourceURL[0]!=="/"){sourceRoot+="/"}sourceURL=sourceRoot+sourceURL}if(sourceMapURL){var parsed=urlParse(sourceMapURL);if(!parsed){throw new Error("sourceMapURL could not be parsed")}if(parsed.path){var index=parsed.path.lastIndexOf("/");if(index>=0){parsed.path=parsed.path.substring(0,index+1)}}sourceURL=join(urlGenerate(parsed),sourceURL)}return normalize(sourceURL)}exports.computeSourceURL=computeSourceURL})(util$3);var arraySet={};var util$2=util$3;var has=Object.prototype.hasOwnProperty;var hasNativeMap=typeof Map!=="undefined";function ArraySet$1(){this._array=[];this._set=hasNativeMap?new Map:Object.create(null)}ArraySet$1.fromArray=function ArraySet_fromArray(aArray,aAllowDuplicates){var set=new ArraySet$1;for(var i=0,len=aArray.length;i<len;i++){set.add(aArray[i],aAllowDuplicates)}return set};ArraySet$1.prototype.size=function ArraySet_size(){return hasNativeMap?this._set.size:Object.getOwnPropertyNames(this._set).length};ArraySet$1.prototype.add=function ArraySet_add(aStr,aAllowDuplicates){var sStr=hasNativeMap?aStr:util$2.toSetString(aStr);var isDuplicate=hasNativeMap?this.has(aStr):has.call(this._set,sStr);var idx=this._array.length;if(!isDuplicate||aAllowDuplicates){this._array.push(aStr)}if(!isDuplicate){if(hasNativeMap){this._set.set(aStr,idx)}else{this._set[sStr]=idx}}};ArraySet$1.prototype.has=function ArraySet_has(aStr){if(hasNativeMap){return this._set.has(aStr)}else{var sStr=util$2.toSetString(aStr);return has.call(this._set,sStr)}};ArraySet$1.prototype.indexOf=function ArraySet_indexOf(aStr){if(hasNativeMap){var idx=this._set.get(aStr);if(idx>=0){return idx}}else{var sStr=util$2.toSetString(aStr);if(has.call(this._set,sStr)){return this._set[sStr]}}throw new Error('"'+aStr+'" is not in the set.')};ArraySet$1.prototype.at=function ArraySet_at(aIdx){if(aIdx>=0&&aIdx<this._array.length){return this._array[aIdx]}throw new Error("No element indexed by "+aIdx)};ArraySet$1.prototype.toArray=function ArraySet_toArray(){return this._array.slice()};arraySet.ArraySet=ArraySet$1;var mappingList={};var util$1=util$3;function generatedPositionAfter(mappingA,mappingB){var lineA=mappingA.generatedLine;var lineB=mappingB.generatedLine;var columnA=mappingA.generatedColumn;var columnB=mappingB.generatedColumn;return lineB>lineA||lineB==lineA&&columnB>=columnA||util$1.compareByGeneratedPositionsInflated(mappingA,mappingB)<=0}function MappingList$1(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList$1.prototype.unsortedForEach=function MappingList_forEach(aCallback,aThisArg){this._array.forEach(aCallback,aThisArg)};MappingList$1.prototype.add=function MappingList_add(aMapping){if(generatedPositionAfter(this._last,aMapping)){this._last=aMapping;this._array.push(aMapping)}else{this._sorted=false;this._array.push(aMapping)}};MappingList$1.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(util$1.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};mappingList.MappingList=MappingList$1;var base64VLQ=base64Vlq;var util=util$3;var ArraySet=arraySet.ArraySet;var MappingList=mappingList.MappingList;function SourceMapGenerator(aArgs){if(!aArgs){aArgs={}}this._file=util.getArg(aArgs,"file",null);this._sourceRoot=util.getArg(aArgs,"sourceRoot",null);this._skipValidation=util.getArg(aArgs,"skipValidation",false);this._sources=new ArraySet;this._names=new ArraySet;this._mappings=new MappingList;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(aSourceMapConsumer){var sourceRoot=aSourceMapConsumer.sourceRoot;var generator=new SourceMapGenerator({file:aSourceMapConsumer.file,sourceRoot:sourceRoot});aSourceMapConsumer.eachMapping((function(mapping){var newMapping={generated:{line:mapping.generatedLine,column:mapping.generatedColumn}};if(mapping.source!=null){newMapping.source=mapping.source;if(sourceRoot!=null){newMapping.source=util.relative(sourceRoot,newMapping.source)}newMapping.original={line:mapping.originalLine,column:mapping.originalColumn};if(mapping.name!=null){newMapping.name=mapping.name}}generator.addMapping(newMapping)}));aSourceMapConsumer.sources.forEach((function(sourceFile){var sourceRelative=sourceFile;if(sourceRoot!==null){sourceRelative=util.relative(sourceRoot,sourceFile)}if(!generator._sources.has(sourceRelative)){generator._sources.add(sourceRelative)}var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){generator.setSourceContent(sourceFile,content)}}));return generator};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(aArgs){var generated=util.getArg(aArgs,"generated");var original=util.getArg(aArgs,"original",null);var source=util.getArg(aArgs,"source",null);var name=util.getArg(aArgs,"name",null);if(!this._skipValidation){this._validateMapping(generated,original,source,name)}if(source!=null){source=String(source);if(!this._sources.has(source)){this._sources.add(source)}}if(name!=null){name=String(name);if(!this._names.has(name)){this._names.add(name)}}this._mappings.add({generatedLine:generated.line,generatedColumn:generated.column,originalLine:original!=null&&original.line,originalColumn:original!=null&&original.column,source:source,name:name})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(aSourceFile,aSourceContent){var source=aSourceFile;if(this._sourceRoot!=null){source=util.relative(this._sourceRoot,source)}if(aSourceContent!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[util.toSetString(source)]=aSourceContent}else if(this._sourcesContents){delete this._sourcesContents[util.toSetString(source)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(aSourceMapConsumer,aSourceFile,aSourceMapPath){var sourceFile=aSourceFile;if(aSourceFile==null){if(aSourceMapConsumer.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}sourceFile=aSourceMapConsumer.file}var sourceRoot=this._sourceRoot;if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}var newSources=new ArraySet;var newNames=new ArraySet;this._mappings.unsortedForEach((function(mapping){if(mapping.source===sourceFile&&mapping.originalLine!=null){var original=aSourceMapConsumer.originalPositionFor({line:mapping.originalLine,column:mapping.originalColumn});if(original.source!=null){mapping.source=original.source;if(aSourceMapPath!=null){mapping.source=util.join(aSourceMapPath,mapping.source)}if(sourceRoot!=null){mapping.source=util.relative(sourceRoot,mapping.source)}mapping.originalLine=original.line;mapping.originalColumn=original.column;if(original.name!=null){mapping.name=original.name}}}var source=mapping.source;if(source!=null&&!newSources.has(source)){newSources.add(source)}var name=mapping.name;if(name!=null&&!newNames.has(name)){newNames.add(name)}}),this);this._sources=newSources;this._names=newNames;aSourceMapConsumer.sources.forEach((function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){if(aSourceMapPath!=null){sourceFile=util.join(aSourceMapPath,sourceFile)}if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}this.setSourceContent(sourceFile,content)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(aGenerated,aOriginal,aSource,aName){if(aOriginal&&typeof aOriginal.line!=="number"&&typeof aOriginal.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aGenerated.line>0&&aGenerated.column>=0&&!aOriginal&&!aSource&&!aName){return}else if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aOriginal&&"line"in aOriginal&&"column"in aOriginal&&aGenerated.line>0&&aGenerated.column>=0&&aOriginal.line>0&&aOriginal.column>=0&&aSource){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:aGenerated,source:aSource,original:aOriginal,name:aName}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var previousGeneratedColumn=0;var previousGeneratedLine=1;var previousOriginalColumn=0;var previousOriginalLine=0;var previousName=0;var previousSource=0;var result="";var next;var mapping;var nameIdx;var sourceIdx;var mappings=this._mappings.toArray();for(var i=0,len=mappings.length;i<len;i++){mapping=mappings[i];next="";if(mapping.generatedLine!==previousGeneratedLine){previousGeneratedColumn=0;while(mapping.generatedLine!==previousGeneratedLine){next+=";";previousGeneratedLine++}}else{if(i>0){if(!util.compareByGeneratedPositionsInflated(mapping,mappings[i-1])){continue}next+=","}}next+=base64VLQ.encode(mapping.generatedColumn-previousGeneratedColumn);previousGeneratedColumn=mapping.generatedColumn;if(mapping.source!=null){sourceIdx=this._sources.indexOf(mapping.source);next+=base64VLQ.encode(sourceIdx-previousSource);previousSource=sourceIdx;next+=base64VLQ.encode(mapping.originalLine-1-previousOriginalLine);previousOriginalLine=mapping.originalLine-1;next+=base64VLQ.encode(mapping.originalColumn-previousOriginalColumn);previousOriginalColumn=mapping.originalColumn;if(mapping.name!=null){nameIdx=this._names.indexOf(mapping.name);next+=base64VLQ.encode(nameIdx-previousName);previousName=nameIdx}}result+=next}return result};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(aSources,aSourceRoot){return aSources.map((function(source){if(!this._sourcesContents){return null}if(aSourceRoot!=null){source=util.relative(aSourceRoot,source)}var key=util.toSetString(source);return Object.prototype.hasOwnProperty.call(this._sourcesContents,key)?this._sourcesContents[key]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var map={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){map.file=this._file}if(this._sourceRoot!=null){map.sourceRoot=this._sourceRoot}if(this._sourcesContents){map.sourcesContent=this._generateSourcesContent(map.sources,map.sourceRoot)}return map};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};sourceMapGenerator.SourceMapGenerator=SourceMapGenerator;const sourceMapGenerator_js=sourceMapGenerator;const trackNodes=new Set(["Atrule","Selector","Declaration"]);function generateSourceMap(handlers){const map=new sourceMapGenerator_js.SourceMapGenerator;const generated={line:1,column:0};const original={line:0,column:0};const activatedGenerated={line:1,column:0};const activatedMapping={generated:activatedGenerated};let line=1;let column=0;let sourceMappingActive=false;const origHandlersNode=handlers.node;handlers.node=function(node){if(node.loc&&node.loc.start&&trackNodes.has(node.type)){const nodeLine=node.loc.start.line;const nodeColumn=node.loc.start.column-1;if(original.line!==nodeLine||original.column!==nodeColumn){original.line=nodeLine;original.column=nodeColumn;generated.line=line;generated.column=column;if(sourceMappingActive){sourceMappingActive=false;if(generated.line!==activatedGenerated.line||generated.column!==activatedGenerated.column){map.addMapping(activatedMapping)}}sourceMappingActive=true;map.addMapping({source:node.loc.source,original:original,generated:generated})}}origHandlersNode.call(this,node);if(sourceMappingActive&&trackNodes.has(node.type)){activatedGenerated.line=line;activatedGenerated.column=column}};const origHandlersEmit=handlers.emit;handlers.emit=function(value,type,auto){for(let i=0;i<value.length;i++){if(value.charCodeAt(i)===10){line++;column=0}else{column++}}origHandlersEmit(value,type,auto)};const origHandlersResult=handlers.result;handlers.result=function(){if(sourceMappingActive){map.addMapping(activatedMapping)}return{css:origHandlersResult(),map:map}};return handlers}sourceMap$1.generateSourceMap=generateSourceMap;var tokenBefore$1={};const types$M=types$R;const PLUSSIGN$9=43;const HYPHENMINUS$6=45;const code=(type,value)=>{if(type===types$M.Delim){type=value}if(typeof type==="string"){const charCode=type.charCodeAt(0);return charCode>127?32768:charCode<<8}return type};const specPairs=[[types$M.Ident,types$M.Ident],[types$M.Ident,types$M.Function],[types$M.Ident,types$M.Url],[types$M.Ident,types$M.BadUrl],[types$M.Ident,"-"],[types$M.Ident,types$M.Number],[types$M.Ident,types$M.Percentage],[types$M.Ident,types$M.Dimension],[types$M.Ident,types$M.CDC],[types$M.Ident,types$M.LeftParenthesis],[types$M.AtKeyword,types$M.Ident],[types$M.AtKeyword,types$M.Function],[types$M.AtKeyword,types$M.Url],[types$M.AtKeyword,types$M.BadUrl],[types$M.AtKeyword,"-"],[types$M.AtKeyword,types$M.Number],[types$M.AtKeyword,types$M.Percentage],[types$M.AtKeyword,types$M.Dimension],[types$M.AtKeyword,types$M.CDC],[types$M.Hash,types$M.Ident],[types$M.Hash,types$M.Function],[types$M.Hash,types$M.Url],[types$M.Hash,types$M.BadUrl],[types$M.Hash,"-"],[types$M.Hash,types$M.Number],[types$M.Hash,types$M.Percentage],[types$M.Hash,types$M.Dimension],[types$M.Hash,types$M.CDC],[types$M.Dimension,types$M.Ident],[types$M.Dimension,types$M.Function],[types$M.Dimension,types$M.Url],[types$M.Dimension,types$M.BadUrl],[types$M.Dimension,"-"],[types$M.Dimension,types$M.Number],[types$M.Dimension,types$M.Percentage],[types$M.Dimension,types$M.Dimension],[types$M.Dimension,types$M.CDC],["#",types$M.Ident],["#",types$M.Function],["#",types$M.Url],["#",types$M.BadUrl],["#","-"],["#",types$M.Number],["#",types$M.Percentage],["#",types$M.Dimension],["#",types$M.CDC],["-",types$M.Ident],["-",types$M.Function],["-",types$M.Url],["-",types$M.BadUrl],["-","-"],["-",types$M.Number],["-",types$M.Percentage],["-",types$M.Dimension],["-",types$M.CDC],[types$M.Number,types$M.Ident],[types$M.Number,types$M.Function],[types$M.Number,types$M.Url],[types$M.Number,types$M.BadUrl],[types$M.Number,types$M.Number],[types$M.Number,types$M.Percentage],[types$M.Number,types$M.Dimension],[types$M.Number,"%"],[types$M.Number,types$M.CDC],["@",types$M.Ident],["@",types$M.Function],["@",types$M.Url],["@",types$M.BadUrl],["@","-"],["@",types$M.CDC],[".",types$M.Number],[".",types$M.Percentage],[".",types$M.Dimension],["+",types$M.Number],["+",types$M.Percentage],["+",types$M.Dimension],["/","*"]];const safePairs=specPairs.concat([[types$M.Ident,types$M.Hash],[types$M.Dimension,types$M.Hash],[types$M.Hash,types$M.Hash],[types$M.AtKeyword,types$M.LeftParenthesis],[types$M.AtKeyword,types$M.String],[types$M.AtKeyword,types$M.Colon],[types$M.Percentage,types$M.Percentage],[types$M.Percentage,types$M.Dimension],[types$M.Percentage,types$M.Function],[types$M.Percentage,"-"],[types$M.RightParenthesis,types$M.Ident],[types$M.RightParenthesis,types$M.Function],[types$M.RightParenthesis,types$M.Percentage],[types$M.RightParenthesis,types$M.Dimension],[types$M.RightParenthesis,types$M.Hash],[types$M.RightParenthesis,"-"]]);function createMap(pairs){const isWhiteSpaceRequired=new Set(pairs.map((([prev,next])=>code(prev)<<16|code(next))));return function(prevCode,type,value){const nextCode=code(type,value);const nextCharCode=value.charCodeAt(0);const emitWs=nextCharCode===HYPHENMINUS$6&&type!==types$M.Ident&&type!==types$M.Function&&type!==types$M.CDC||nextCharCode===PLUSSIGN$9?isWhiteSpaceRequired.has(prevCode<<16|nextCharCode<<8):isWhiteSpaceRequired.has(prevCode<<16|nextCode);if(emitWs){this.emit(" ",types$M.WhiteSpace,true)}return nextCode}}const spec=createMap(specPairs);const safe=createMap(safePairs);tokenBefore$1.safe=safe;tokenBefore$1.spec=spec;const index$a=tokenizer$2;const sourceMap=sourceMap$1;const tokenBefore=tokenBefore$1;const types$L=types$R;const REVERSESOLIDUS=92;function processChildren(node,delimeter){if(typeof delimeter==="function"){let prev=null;node.children.forEach((node=>{if(prev!==null){delimeter.call(this,prev)}this.node(node);prev=node}));return}node.children.forEach(this.node,this)}function processChunk(chunk){index$a.tokenize(chunk,((type,start,end)=>{this.token(type,chunk.slice(start,end))}))}function createGenerator(config){const types$1=new Map;for(let name in config.node){const item=config.node[name];const fn=item.generate||item;if(typeof fn==="function"){types$1.set(name,item.generate||item)}}return function(node,options){let buffer="";let prevCode=0;let handlers={node(node){if(types$1.has(node.type)){types$1.get(node.type).call(publicApi,node)}else{throw new Error("Unknown node type: "+node.type)}},tokenBefore:tokenBefore.safe,token(type,value){prevCode=this.tokenBefore(prevCode,type,value);this.emit(value,type,false);if(type===types$L.Delim&&value.charCodeAt(0)===REVERSESOLIDUS){this.emit("\n",types$L.WhiteSpace,true)}},emit(value){buffer+=value},result(){return buffer}};if(options){if(typeof options.decorator==="function"){handlers=options.decorator(handlers)}if(options.sourceMap){handlers=sourceMap.generateSourceMap(handlers)}if(options.mode in tokenBefore){handlers.tokenBefore=tokenBefore[options.mode]}}const publicApi={node:node=>handlers.node(node),children:processChildren,token:(type,value)=>handlers.token(type,value),tokenize:processChunk};handlers.node(node);return handlers.result()}}create$6.createGenerator=createGenerator;var create$5={};const List$4=List$7;function createConvertor(walk){return{fromPlainObject(ast){walk(ast,{enter(node){if(node.children&&node.children instanceof List$4.List===false){node.children=(new List$4.List).fromArray(node.children)}}});return ast},toPlainObject(ast){walk(ast,{leave(node){if(node.children&&node.children instanceof List$4.List){node.children=node.children.toArray()}}});return ast}}}create$5.createConvertor=createConvertor;var create$4={};const{hasOwnProperty:hasOwnProperty$8}=Object.prototype;const noop$2=function(){};function ensureFunction$1(value){return typeof value==="function"?value:noop$2}function invokeForType(fn,type){return function(node,item,list){if(node.type===type){fn.call(this,node,item,list)}}}function getWalkersFromStructure(name,nodeType){const structure=nodeType.structure;const walkers=[];for(const key in structure){if(hasOwnProperty$8.call(structure,key)===false){continue}let fieldTypes=structure[key];const walker={name:key,type:false,nullable:false};if(!Array.isArray(fieldTypes)){fieldTypes=[fieldTypes]}for(const fieldType of fieldTypes){if(fieldType===null){walker.nullable=true}else if(typeof fieldType==="string"){walker.type="node"}else if(Array.isArray(fieldType)){walker.type="list"}}if(walker.type){walkers.push(walker)}}if(walkers.length){return{context:nodeType.walkContext,fields:walkers}}return null}function getTypesFromConfig(config){const types={};for(const name in config.node){if(hasOwnProperty$8.call(config.node,name)){const nodeType=config.node[name];if(!nodeType.structure){throw new Error("Missed `structure` field in `"+name+"` node type definition")}types[name]=getWalkersFromStructure(name,nodeType)}}return types}function createTypeIterator(config,reverse){const fields=config.fields.slice();const contextName=config.context;const useContext=typeof contextName==="string";if(reverse){fields.reverse()}return function(node,context,walk,walkReducer){let prevContextValue;if(useContext){prevContextValue=context[contextName];context[contextName]=node}for(const field of fields){const ref=node[field.name];if(!field.nullable||ref){if(field.type==="list"){const breakWalk=reverse?ref.reduceRight(walkReducer,false):ref.reduce(walkReducer,false);if(breakWalk){return true}}else if(walk(ref)){return true}}}if(useContext){context[contextName]=prevContextValue}}}function createFastTraveralMap({StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}){return{Atrule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Rule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Declaration:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}}}function createWalker(config){const types=getTypesFromConfig(config);const iteratorsNatural={};const iteratorsReverse={};const breakWalk=Symbol("break-walk");const skipNode=Symbol("skip-node");for(const name in types){if(hasOwnProperty$8.call(types,name)&&types[name]!==null){iteratorsNatural[name]=createTypeIterator(types[name],false);iteratorsReverse[name]=createTypeIterator(types[name],true)}}const fastTraversalIteratorsNatural=createFastTraveralMap(iteratorsNatural);const fastTraversalIteratorsReverse=createFastTraveralMap(iteratorsReverse);const walk=function(root,options){function walkNode(node,item,list){const enterRet=enter.call(context,node,item,list);if(enterRet===breakWalk){return true}if(enterRet===skipNode){return false}if(iterators.hasOwnProperty(node.type)){if(iterators[node.type](node,context,walkNode,walkReducer)){return true}}if(leave.call(context,node,item,list)===breakWalk){return true}return false}let enter=noop$2;let leave=noop$2;let iterators=iteratorsNatural;let walkReducer=(ret,data,item,list)=>ret||walkNode(data,item,list);const context={break:breakWalk,skip:skipNode,root:root,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction$1(options.enter);leave=ensureFunction$1(options.leave);if(options.reverse){iterators=iteratorsReverse}if(options.visit){if(fastTraversalIteratorsNatural.hasOwnProperty(options.visit)){iterators=options.reverse?fastTraversalIteratorsReverse[options.visit]:fastTraversalIteratorsNatural[options.visit]}else if(!types.hasOwnProperty(options.visit)){throw new Error("Bad value `"+options.visit+"` for `visit` option (should be: "+Object.keys(types).sort().join(", ")+")")}enter=invokeForType(enter,options.visit);leave=invokeForType(leave,options.visit)}}if(enter===noop$2&&leave===noop$2){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walkNode(root)};walk.break=breakWalk;walk.skip=skipNode;walk.find=function(ast,fn){let found=null;walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}));return found};walk.findLast=function(ast,fn){let found=null;walk(ast,{reverse:true,enter(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}});return found};walk.findAll=function(ast,fn){const found=[];walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found.push(node)}}));return found};return walk}create$4.createWalker=createWalker;var Lexer$3={};var error$2={};var generate$L={};function noop$1(value){return value}function generateMultiplier(multiplier){const{min:min,max:max,comma:comma}=multiplier;if(min===0&&max===0){return comma?"#?":"*"}if(min===0&&max===1){return"?"}if(min===1&&max===0){return comma?"#":"+"}if(min===1&&max===1){return""}return(comma?"#":"")+(min===max?"{"+min+"}":"{"+min+","+(max!==0?max:"")+"}")}function generateTypeOpts(node){switch(node.type){case"Range":return" ["+(node.min===null?"-∞":node.min)+","+(node.max===null?"∞":node.max)+"]";default:throw new Error("Unknown node type `"+node.type+"`")}}function generateSequence(node,decorate,forceBraces,compact){const combinator=node.combinator===" "||compact?node.combinator:" "+node.combinator+" ";const result=node.terms.map((term=>internalGenerate(term,decorate,forceBraces,compact))).join(combinator);if(node.explicit||forceBraces){return(compact||result[0]===","?"[":"[ ")+result+(compact?"]":" ]")}return result}function internalGenerate(node,decorate,forceBraces,compact){let result;switch(node.type){case"Group":result=generateSequence(node,decorate,forceBraces,compact)+(node.disallowEmpty?"!":"");break;case"Multiplier":return internalGenerate(node.term,decorate,forceBraces,compact)+decorate(generateMultiplier(node),node);case"Type":result="<"+node.name+(node.opts?decorate(generateTypeOpts(node.opts),node.opts):"")+">";break;case"Property":result="<'"+node.name+"'>";break;case"Keyword":result=node.name;break;case"AtKeyword":result="@"+node.name;break;case"Function":result=node.name+"(";break;case"String":case"Token":result=node.value;break;case"Comma":result=",";break;default:throw new Error("Unknown node type `"+node.type+"`")}return decorate(result,node)}function generate$K(node,options){let decorate=noop$1;let forceBraces=false;let compact=false;if(typeof options==="function"){decorate=options}else if(options){forceBraces=Boolean(options.forceBraces);compact=Boolean(options.compact);if(typeof options.decorate==="function"){decorate=options.decorate}}return internalGenerate(node,decorate,forceBraces,compact)}generate$L.generate=generate$K;const createCustomError$1=createCustomError$4;const generate$J=generate$L;const defaultLoc={offset:0,line:1,column:1};function locateMismatch(matchResult,node){const tokens=matchResult.tokens;const longestMatch=matchResult.longestMatch;const mismatchNode=longestMatch<tokens.length?tokens[longestMatch].node||null:null;const badNode=mismatchNode!==node?mismatchNode:null;let mismatchOffset=0;let mismatchLength=0;let entries=0;let css="";let start;let end;for(let i=0;i<tokens.length;i++){const token=tokens[i].value;if(i===longestMatch){mismatchLength=token.length;mismatchOffset=css.length}if(badNode!==null&&tokens[i].node===badNode){if(i<=longestMatch){entries++}else{entries=0}}css+=token}if(longestMatch===tokens.length||entries>1){start=fromLoc(badNode||node,"end")||buildLoc(defaultLoc,css);end=buildLoc(start)}else{start=fromLoc(badNode,"start")||buildLoc(fromLoc(node,"start")||defaultLoc,css.slice(0,mismatchOffset));end=fromLoc(badNode,"end")||buildLoc(start,css.substr(mismatchOffset,mismatchLength))}return{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}}function fromLoc(node,point){const value=node&&node.loc&&node.loc[point];if(value){return"line"in value?buildLoc(value):value}return null}function buildLoc({offset:offset,line:line,column:column},extra){const loc={offset:offset,line:line,column:column};if(extra){const lines=extra.split(/\n|\r\n?|\f/);loc.offset+=extra.length;loc.line+=lines.length-1;loc.column=lines.length===1?loc.column+extra.length:lines.pop().length+1}return loc}const SyntaxReferenceError=function(type,referenceName){const error=createCustomError$1.createCustomError("SyntaxReferenceError",type+(referenceName?" `"+referenceName+"`":""));error.reference=referenceName;return error};const SyntaxMatchError=function(message,syntax,node,matchResult){const error=createCustomError$1.createCustomError("SyntaxMatchError",message);const{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}=locateMismatch(matchResult,node);error.rawMessage=message;error.syntax=syntax?generate$J.generate(syntax):"<generic>";error.css=css;error.mismatchOffset=mismatchOffset;error.mismatchLength=mismatchLength;error.message=message+"\n"+" syntax: "+error.syntax+"\n"+" value: "+(css||"<empty string>")+"\n"+" --------"+new Array(error.mismatchOffset+1).join("-")+"^";Object.assign(error,start);error.loc={source:node&&node.loc&&node.loc.source||"<unknown>",start:start,end:end};return error};error$2.SyntaxMatchError=SyntaxMatchError;error$2.SyntaxReferenceError=SyntaxReferenceError;var names$4={};const keywords=new Map;const properties=new Map;const HYPHENMINUS$5=45;const keyword=getKeywordDescriptor;const property=getPropertyDescriptor;const vendorPrefix=getVendorPrefix;function isCustomProperty(str,offset){offset=offset||0;return str.length-offset>=2&&str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)===HYPHENMINUS$5}function getVendorPrefix(str,offset){offset=offset||0;if(str.length-offset>=3){if(str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)!==HYPHENMINUS$5){const secondDashIndex=str.indexOf("-",offset+2);if(secondDashIndex!==-1){return str.substring(offset,secondDashIndex+1)}}}return""}function getKeywordDescriptor(keyword){if(keywords.has(keyword)){return keywords.get(keyword)}const name=keyword.toLowerCase();let descriptor=keywords.get(name);if(descriptor===undefined){const custom=isCustomProperty(name,0);const vendor=!custom?getVendorPrefix(name,0):"";descriptor=Object.freeze({basename:name.substr(vendor.length),name:name,prefix:vendor,vendor:vendor,custom:custom})}keywords.set(keyword,descriptor);return descriptor}function getPropertyDescriptor(property){if(properties.has(property)){return properties.get(property)}let name=property;let hack=property[0];if(hack==="/"){hack=property[1]==="/"?"//":"/"}else if(hack!=="_"&&hack!=="*"&&hack!=="$"&&hack!=="#"&&hack!=="+"&&hack!=="&"){hack=""}const custom=isCustomProperty(name,hack.length);if(!custom){name=name.toLowerCase();if(properties.has(name)){const descriptor=properties.get(name);properties.set(property,descriptor);return descriptor}}const vendor=!custom?getVendorPrefix(name,hack.length):"";const prefix=name.substr(0,hack.length+vendor.length);const descriptor=Object.freeze({basename:name.substr(prefix.length),name:name.substr(hack.length),hack:hack,vendor:vendor,prefix:prefix,custom:custom});properties.set(property,descriptor);return descriptor}names$4.isCustomProperty=isCustomProperty;names$4.keyword=keyword;names$4.property=property;names$4.vendorPrefix=vendorPrefix;var genericConst$2={};const cssWideKeywords=["initial","inherit","unset","revert","revert-layer"];genericConst$2.cssWideKeywords=cssWideKeywords;const charCodeDefinitions$8=charCodeDefinitions$c;const types$K=types$R;const utils$g=utils$k;const PLUSSIGN$8=43;const HYPHENMINUS$4=45;const N$3=110;const DISALLOW_SIGN$1=true;const ALLOW_SIGN$1=false;function isDelim$1(token,code){return token!==null&&token.type===types$K.Delim&&token.value.charCodeAt(0)===code}function skipSC(token,offset,getNextToken){while(token!==null&&(token.type===types$K.WhiteSpace||token.type===types$K.Comment)){token=getNextToken(++offset)}return offset}function checkInteger$1(token,valueOffset,disallowSign,offset){if(!token){return 0}const code=token.value.charCodeAt(valueOffset);if(code===PLUSSIGN$8||code===HYPHENMINUS$4){if(disallowSign){return 0}valueOffset++}for(;valueOffset<token.value.length;valueOffset++){if(!charCodeDefinitions$8.isDigit(token.value.charCodeAt(valueOffset))){return 0}}return offset+1}function consumeB$1(token,offset_,getNextToken){let sign=false;let offset=skipSC(token,offset_,getNextToken);token=getNextToken(offset);if(token===null){return offset_}if(token.type!==types$K.Number){if(isDelim$1(token,PLUSSIGN$8)||isDelim$1(token,HYPHENMINUS$4)){sign=true;offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);if(token===null||token.type!==types$K.Number){return 0}}else{return offset_}}if(!sign){const code=token.value.charCodeAt(0);if(code!==PLUSSIGN$8&&code!==HYPHENMINUS$4){return 0}}return checkInteger$1(token,sign?0:1,sign,offset)}function anPlusB(token,getNextToken){let offset=0;if(!token){return 0}if(token.type===types$K.Number){return checkInteger$1(token,0,ALLOW_SIGN$1,offset)}else if(token.type===types$K.Ident&&token.value.charCodeAt(0)===HYPHENMINUS$4){if(!utils$g.cmpChar(token.value,1,N$3)){return 0}switch(token.value.length){case 2:return consumeB$1(getNextToken(++offset),offset,getNextToken);case 3:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);default:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0}return checkInteger$1(token,3,DISALLOW_SIGN$1,offset)}}else if(token.type===types$K.Ident||isDelim$1(token,PLUSSIGN$8)&&getNextToken(offset+1).type===types$K.Ident){if(token.type!==types$K.Ident){token=getNextToken(++offset)}if(token===null||!utils$g.cmpChar(token.value,0,N$3)){return 0}switch(token.value.length){case 1:return consumeB$1(getNextToken(++offset),offset,getNextToken);case 2:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);default:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0}return checkInteger$1(token,2,DISALLOW_SIGN$1,offset)}}else if(token.type===types$K.Dimension){let code=token.value.charCodeAt(0);let sign=code===PLUSSIGN$8||code===HYPHENMINUS$4?1:0;let i=sign;for(;i<token.value.length;i++){if(!charCodeDefinitions$8.isDigit(token.value.charCodeAt(i))){break}}if(i===sign){return 0}if(!utils$g.cmpChar(token.value,i,N$3)){return 0}if(i+1===token.value.length){return consumeB$1(getNextToken(++offset),offset,getNextToken)}else{if(token.value.charCodeAt(i+1)!==HYPHENMINUS$4){return 0}if(i+2===token.value.length){offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset)}else{return checkInteger$1(token,i+2,DISALLOW_SIGN$1,offset)}}}return 0}var genericAnPlusB$1=anPlusB;const charCodeDefinitions$7=charCodeDefinitions$c;const types$J=types$R;const utils$f=utils$k;const PLUSSIGN$7=43;const HYPHENMINUS$3=45;const QUESTIONMARK$2=63;const U$1=117;function isDelim(token,code){return token!==null&&token.type===types$J.Delim&&token.value.charCodeAt(0)===code}function startsWith$1(token,code){return token.value.charCodeAt(0)===code}function hexSequence(token,offset,allowDash){let hexlen=0;for(let pos=offset;pos<token.value.length;pos++){const code=token.value.charCodeAt(pos);if(code===HYPHENMINUS$3&&allowDash&&hexlen!==0){hexSequence(token,offset+hexlen+1,false);return 6}if(!charCodeDefinitions$7.isHexDigit(code)){return 0}if(++hexlen>6){return 0}}return hexlen}function withQuestionMarkSequence(consumed,length,getNextToken){if(!consumed){return 0}while(isDelim(getNextToken(length),QUESTIONMARK$2)){if(++consumed>6){return 0}length++}return length}function urange(token,getNextToken){let length=0;if(token===null||token.type!==types$J.Ident||!utils$f.cmpChar(token.value,0,U$1)){return 0}token=getNextToken(++length);if(token===null){return 0}if(isDelim(token,PLUSSIGN$7)){token=getNextToken(++length);if(token===null){return 0}if(token.type===types$J.Ident){return withQuestionMarkSequence(hexSequence(token,0,true),++length,getNextToken)}if(isDelim(token,QUESTIONMARK$2)){return withQuestionMarkSequence(1,++length,getNextToken)}return 0}if(token.type===types$J.Number){const consumedHexLength=hexSequence(token,1,true);if(consumedHexLength===0){return 0}token=getNextToken(++length);if(token===null){return length}if(token.type===types$J.Dimension||token.type===types$J.Number){if(!startsWith$1(token,HYPHENMINUS$3)||!hexSequence(token,1,false)){return 0}return length+1}return withQuestionMarkSequence(consumedHexLength,length,getNextToken)}if(token.type===types$J.Dimension){return withQuestionMarkSequence(hexSequence(token,1,true),++length,getNextToken)}return 0}var genericUrange$1=urange;const genericConst$1=genericConst$2;const genericAnPlusB=genericAnPlusB$1;const genericUrange=genericUrange$1;const types$I=types$R;const charCodeDefinitions$6=charCodeDefinitions$c;const utils$e=utils$k;const calcFunctionNames=["calc(","-moz-calc(","-webkit-calc("];const balancePair=new Map([[types$I.Function,types$I.RightParenthesis],[types$I.LeftParenthesis,types$I.RightParenthesis],[types$I.LeftSquareBracket,types$I.RightSquareBracket],[types$I.LeftCurlyBracket,types$I.RightCurlyBracket]]);const LENGTH=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"];const ANGLE=["deg","grad","rad","turn"];const TIME=["s","ms"];const FREQUENCY=["hz","khz"];const RESOLUTION=["dpi","dpcm","dppx","x"];const FLEX=["fr"];const DECIBEL=["db"];const SEMITONES=["st"];function charCodeAt(str,index){return index<str.length?str.charCodeAt(index):0}function eqStr(actual,expected){return utils$e.cmpStr(actual,0,actual.length,expected)}function eqStrAny(actual,expected){for(let i=0;i<expected.length;i++){if(eqStr(actual,expected[i])){return true}}return false}function isPostfixIeHack(str,offset){if(offset!==str.length-2){return false}return charCodeAt(str,offset)===92&&charCodeDefinitions$6.isDigit(charCodeAt(str,offset+1))}function outOfRange(opts,value,numEnd){if(opts&&opts.type==="Range"){const num=Number(numEnd!==undefined&&numEnd!==value.length?value.substr(0,numEnd):value);if(isNaN(num)){return true}if(opts.min!==null&&num<opts.min&&typeof opts.min!=="string"){return true}if(opts.max!==null&&num>opts.max&&typeof opts.max!=="string"){return true}}return false}function consumeFunction(token,getNextToken){let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();if(balanceStash.length===0){length++;break scan}break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function calc(next){return function(token,getNextToken,opts){if(token===null){return 0}if(token.type===types$I.Function&&eqStrAny(token.value,calcFunctionNames)){return consumeFunction(token,getNextToken)}return next(token,getNextToken,opts)}}function tokenType(expectedTokenType){return function(token){if(token===null||token.type!==expectedTokenType){return 0}return 1}}function customIdent(token){if(token===null||token.type!==types$I.Ident){return 0}const name=token.value.toLowerCase();if(eqStrAny(name,genericConst$1.cssWideKeywords)){return 0}if(eqStr(name,"default")){return 0}return 1}function customPropertyName(token){if(token===null||token.type!==types$I.Ident){return 0}if(charCodeAt(token.value,0)!==45||charCodeAt(token.value,1)!==45){return 0}return 1}function hexColor(token){if(token===null||token.type!==types$I.Hash){return 0}const length=token.value.length;if(length!==4&&length!==5&&length!==7&&length!==9){return 0}for(let i=1;i<length;i++){if(!charCodeDefinitions$6.isHexDigit(charCodeAt(token.value,i))){return 0}}return 1}function idSelector(token){if(token===null||token.type!==types$I.Hash){return 0}if(!charCodeDefinitions$6.isIdentifierStart(charCodeAt(token.value,1),charCodeAt(token.value,2),charCodeAt(token.value,3))){return 0}return 1}function declarationValue(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.BadString:case types$I.BadUrl:break scan;case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$I.Semicolon:if(balanceCloseType===0){break scan}break;case types$I.Delim:if(balanceCloseType===0&&token.value==="!"){break scan}break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function anyValue(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.BadString:case types$I.BadUrl:break scan;case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function dimension(type){if(type){type=new Set(type)}return function(token,getNextToken,opts){if(token===null||token.type!==types$I.Dimension){return 0}const numberEnd=utils$e.consumeNumber(token.value,0);if(type!==null){const reverseSolidusOffset=token.value.indexOf("\\",numberEnd);const unit=reverseSolidusOffset===-1||!isPostfixIeHack(token.value,reverseSolidusOffset)?token.value.substr(numberEnd):token.value.substring(numberEnd,reverseSolidusOffset);if(type.has(unit.toLowerCase())===false){return 0}}if(outOfRange(opts,token.value,numberEnd)){return 0}return 1}}function percentage(token,getNextToken,opts){if(token===null||token.type!==types$I.Percentage){return 0}if(outOfRange(opts,token.value,token.value.length-1)){return 0}return 1}function zero(next){if(typeof next!=="function"){next=function(){return 0}}return function(token,getNextToken,opts){if(token!==null&&token.type===types$I.Number){if(Number(token.value)===0){return 1}}return next(token,getNextToken,opts)}}function number(token,getNextToken,opts){if(token===null){return 0}const numberEnd=utils$e.consumeNumber(token.value,0);const isNumber=numberEnd===token.value.length;if(!isNumber&&!isPostfixIeHack(token.value,numberEnd)){return 0}if(outOfRange(opts,token.value,numberEnd)){return 0}return 1}function integer(token,getNextToken,opts){if(token===null||token.type!==types$I.Number){return 0}let i=charCodeAt(token.value,0)===43||charCodeAt(token.value,0)===45?1:0;for(;i<token.value.length;i++){if(!charCodeDefinitions$6.isDigit(charCodeAt(token.value,i))){return 0}}if(outOfRange(opts,token.value,i)){return 0}return 1}const genericSyntaxes={"ident-token":tokenType(types$I.Ident),"function-token":tokenType(types$I.Function),"at-keyword-token":tokenType(types$I.AtKeyword),"hash-token":tokenType(types$I.Hash),"string-token":tokenType(types$I.String),"bad-string-token":tokenType(types$I.BadString),"url-token":tokenType(types$I.Url),"bad-url-token":tokenType(types$I.BadUrl),"delim-token":tokenType(types$I.Delim),"number-token":tokenType(types$I.Number),"percentage-token":tokenType(types$I.Percentage),"dimension-token":tokenType(types$I.Dimension),"whitespace-token":tokenType(types$I.WhiteSpace),"CDO-token":tokenType(types$I.CDO),"CDC-token":tokenType(types$I.CDC),"colon-token":tokenType(types$I.Colon),"semicolon-token":tokenType(types$I.Semicolon),"comma-token":tokenType(types$I.Comma),"[-token":tokenType(types$I.LeftSquareBracket),"]-token":tokenType(types$I.RightSquareBracket),"(-token":tokenType(types$I.LeftParenthesis),")-token":tokenType(types$I.RightParenthesis),"{-token":tokenType(types$I.LeftCurlyBracket),"}-token":tokenType(types$I.RightCurlyBracket),string:tokenType(types$I.String),ident:tokenType(types$I.Ident),"custom-ident":customIdent,"custom-property-name":customPropertyName,"hex-color":hexColor,"id-selector":idSelector,"an-plus-b":genericAnPlusB,urange:genericUrange,"declaration-value":declarationValue,"any-value":anyValue,dimension:calc(dimension(null)),angle:calc(dimension(ANGLE)),decibel:calc(dimension(DECIBEL)),frequency:calc(dimension(FREQUENCY)),flex:calc(dimension(FLEX)),length:calc(zero(dimension(LENGTH))),resolution:calc(dimension(RESOLUTION)),semitones:calc(dimension(SEMITONES)),time:calc(dimension(TIME)),percentage:calc(percentage),zero:zero(),number:calc(number),integer:calc(integer)};var generic$1=genericSyntaxes;const index$9=tokenizer$2;const astToTokens={decorator(handlers){const tokens=[];let curNode=null;return{...handlers,node(node){const tmp=curNode;curNode=node;handlers.node.call(this,node);curNode=tmp},emit(value,type,auto){tokens.push({type:type,value:value,node:auto?null:curNode})},result(){return tokens}}}};function stringToTokens(str){const tokens=[];index$9.tokenize(str,((type,start,end)=>tokens.push({type:type,value:str.slice(start,end),node:null})));return tokens}function prepareTokens$1(value,syntax){if(typeof value==="string"){return stringToTokens(value)}return syntax.generate(value,astToTokens)}var prepareTokens_1=prepareTokens$1;var matchGraph$2={};var parse$L={};var tokenizer$1={};var _SyntaxError={};const createCustomError=createCustomError$4;function SyntaxError$3(message,input,offset){return Object.assign(createCustomError.createCustomError("SyntaxError",message),{input:input,offset:offset,rawMessage:message,message:message+"\n"+" "+input+"\n"+"--"+new Array((offset||input.length)+1).join("-")+"^"})}_SyntaxError.SyntaxError=SyntaxError$3;const SyntaxError$2=_SyntaxError;const TAB$1=9;const N$2=10;const F$1=12;const R$1=13;const SPACE$3=32;class Tokenizer{constructor(str){this.str=str;this.pos=0}charCodeAt(pos){return pos<this.str.length?this.str.charCodeAt(pos):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(pos){return this.charCodeAt(this.findWsEnd(pos))}findWsEnd(pos){for(;pos<this.str.length;pos++){const code=this.str.charCodeAt(pos);if(code!==R$1&&code!==N$2&&code!==F$1&&code!==SPACE$3&&code!==TAB$1){break}}return pos}substringToPos(end){return this.str.substring(this.pos,this.pos=end)}eat(code){if(this.charCode()!==code){this.error("Expect `"+String.fromCharCode(code)+"`")}this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(message){throw new SyntaxError$2.SyntaxError(message,this.str,this.pos)}}tokenizer$1.Tokenizer=Tokenizer;const tokenizer=tokenizer$1;const TAB=9;const N$1=10;const F=12;const R=13;const SPACE$2=32;const EXCLAMATIONMARK$2=33;const NUMBERSIGN$3=35;const AMPERSAND$1=38;const APOSTROPHE$2=39;const LEFTPARENTHESIS$2=40;const RIGHTPARENTHESIS$2=41;const ASTERISK$6=42;const PLUSSIGN$6=43;const COMMA=44;const HYPERMINUS=45;const LESSTHANSIGN=60;const GREATERTHANSIGN$2=62;const QUESTIONMARK$1=63;const COMMERCIALAT=64;const LEFTSQUAREBRACKET=91;const RIGHTSQUAREBRACKET=93;const LEFTCURLYBRACKET=123;const VERTICALLINE$3=124;const RIGHTCURLYBRACKET=125;const INFINITY=8734;const NAME_CHAR=new Uint8Array(128).map(((_,idx)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(idx))?1:0));const COMBINATOR_PRECEDENCE={" ":1,"&&":2,"||":3,"|":4};function scanSpaces(tokenizer){return tokenizer.substringToPos(tokenizer.findWsEnd(tokenizer.pos))}function scanWord(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code>=128||NAME_CHAR[code]===0){break}}if(tokenizer.pos===end){tokenizer.error("Expect a keyword")}return tokenizer.substringToPos(end)}function scanNumber(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code<48||code>57){break}}if(tokenizer.pos===end){tokenizer.error("Expect a number")}return tokenizer.substringToPos(end)}function scanString(tokenizer){const end=tokenizer.str.indexOf("'",tokenizer.pos+1);if(end===-1){tokenizer.pos=tokenizer.str.length;tokenizer.error("Expect an apostrophe")}return tokenizer.substringToPos(end+1)}function readMultiplierRange(tokenizer){let min=null;let max=null;tokenizer.eat(LEFTCURLYBRACKET);min=scanNumber(tokenizer);if(tokenizer.charCode()===COMMA){tokenizer.pos++;if(tokenizer.charCode()!==RIGHTCURLYBRACKET){max=scanNumber(tokenizer)}}else{max=min}tokenizer.eat(RIGHTCURLYBRACKET);return{min:Number(min),max:max?Number(max):0}}function readMultiplier(tokenizer){let range=null;let comma=false;switch(tokenizer.charCode()){case ASTERISK$6:tokenizer.pos++;range={min:0,max:0};break;case PLUSSIGN$6:tokenizer.pos++;range={min:1,max:0};break;case QUESTIONMARK$1:tokenizer.pos++;range={min:0,max:1};break;case NUMBERSIGN$3:tokenizer.pos++;comma=true;if(tokenizer.charCode()===LEFTCURLYBRACKET){range=readMultiplierRange(tokenizer)}else if(tokenizer.charCode()===QUESTIONMARK$1){tokenizer.pos++;range={min:0,max:0}}else{range={min:1,max:0}}break;case LEFTCURLYBRACKET:range=readMultiplierRange(tokenizer);break;default:return null}return{type:"Multiplier",comma:comma,min:range.min,max:range.max,term:null}}function maybeMultiplied(tokenizer,node){const multiplier=readMultiplier(tokenizer);if(multiplier!==null){multiplier.term=node;if(tokenizer.charCode()===NUMBERSIGN$3&&tokenizer.charCodeAt(tokenizer.pos-1)===PLUSSIGN$6){return maybeMultiplied(tokenizer,multiplier)}return multiplier}return node}function maybeToken(tokenizer){const ch=tokenizer.peek();if(ch===""){return null}return{type:"Token",value:ch}}function readProperty$1(tokenizer){let name;tokenizer.eat(LESSTHANSIGN);tokenizer.eat(APOSTROPHE$2);name=scanWord(tokenizer);tokenizer.eat(APOSTROPHE$2);tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:"Property",name:name})}function readTypeRange(tokenizer){let min=null;let max=null;let sign=1;tokenizer.eat(LEFTSQUAREBRACKET);if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1}if(sign==-1&&tokenizer.charCode()===INFINITY){tokenizer.peek()}else{min=sign*Number(scanNumber(tokenizer));if(NAME_CHAR[tokenizer.charCode()]!==0){min+=scanWord(tokenizer)}}scanSpaces(tokenizer);tokenizer.eat(COMMA);scanSpaces(tokenizer);if(tokenizer.charCode()===INFINITY){tokenizer.peek()}else{sign=1;if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1}max=sign*Number(scanNumber(tokenizer));if(NAME_CHAR[tokenizer.charCode()]!==0){max+=scanWord(tokenizer)}}tokenizer.eat(RIGHTSQUAREBRACKET);return{type:"Range",min:min,max:max}}function readType(tokenizer){let name;let opts=null;tokenizer.eat(LESSTHANSIGN);name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$2&&tokenizer.nextCharCode()===RIGHTPARENTHESIS$2){tokenizer.pos+=2;name+="()"}if(tokenizer.charCodeAt(tokenizer.findWsEnd(tokenizer.pos))===LEFTSQUAREBRACKET){scanSpaces(tokenizer);opts=readTypeRange(tokenizer)}tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:"Type",name:name,opts:opts})}function readKeywordOrFunction(tokenizer){const name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$2){tokenizer.pos++;return{type:"Function",name:name}}return maybeMultiplied(tokenizer,{type:"Keyword",name:name})}function regroupTerms(terms,combinators){function createGroup(terms,combinator){return{type:"Group",terms:terms,combinator:combinator,disallowEmpty:false,explicit:false}}let combinator;combinators=Object.keys(combinators).sort(((a,b)=>COMBINATOR_PRECEDENCE[a]-COMBINATOR_PRECEDENCE[b]));while(combinators.length>0){combinator=combinators.shift();let i=0;let subgroupStart=0;for(;i<terms.length;i++){const term=terms[i];if(term.type==="Combinator"){if(term.value===combinator){if(subgroupStart===-1){subgroupStart=i-1}terms.splice(i,1);i--}else{if(subgroupStart!==-1&&i-subgroupStart>1){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator));i=subgroupStart+1}subgroupStart=-1}}}if(subgroupStart!==-1&&combinators.length){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator))}}return combinator}function readImplicitGroup(tokenizer){const terms=[];const combinators={};let token;let prevToken=null;let prevTokenPos=tokenizer.pos;while(token=peek(tokenizer)){if(token.type!=="Spaces"){if(token.type==="Combinator"){if(prevToken===null||prevToken.type==="Combinator"){tokenizer.pos=prevTokenPos;tokenizer.error("Unexpected combinator")}combinators[token.value]=true}else if(prevToken!==null&&prevToken.type!=="Combinator"){combinators[" "]=true;terms.push({type:"Combinator",value:" "})}terms.push(token);prevToken=token;prevTokenPos=tokenizer.pos}}if(prevToken!==null&&prevToken.type==="Combinator"){tokenizer.pos-=prevTokenPos;tokenizer.error("Unexpected combinator")}return{type:"Group",terms:terms,combinator:regroupTerms(terms,combinators)||" ",disallowEmpty:false,explicit:false}}function readGroup(tokenizer){let result;tokenizer.eat(LEFTSQUAREBRACKET);result=readImplicitGroup(tokenizer);tokenizer.eat(RIGHTSQUAREBRACKET);result.explicit=true;if(tokenizer.charCode()===EXCLAMATIONMARK$2){tokenizer.pos++;result.disallowEmpty=true}return result}function peek(tokenizer){let code=tokenizer.charCode();if(code<128&&NAME_CHAR[code]===1){return readKeywordOrFunction(tokenizer)}switch(code){case RIGHTSQUAREBRACKET:break;case LEFTSQUAREBRACKET:return maybeMultiplied(tokenizer,readGroup(tokenizer));case LESSTHANSIGN:return tokenizer.nextCharCode()===APOSTROPHE$2?readProperty$1(tokenizer):readType(tokenizer);case VERTICALLINE$3:return{type:"Combinator",value:tokenizer.substringToPos(tokenizer.pos+(tokenizer.nextCharCode()===VERTICALLINE$3?2:1))};case AMPERSAND$1:tokenizer.pos++;tokenizer.eat(AMPERSAND$1);return{type:"Combinator",value:"&&"};case COMMA:tokenizer.pos++;return{type:"Comma"};case APOSTROPHE$2:return maybeMultiplied(tokenizer,{type:"String",value:scanString(tokenizer)});case SPACE$2:case TAB:case N$1:case R:case F:return{type:"Spaces",value:scanSpaces(tokenizer)};case COMMERCIALAT:code=tokenizer.nextCharCode();if(code<128&&NAME_CHAR[code]===1){tokenizer.pos++;return{type:"AtKeyword",name:scanWord(tokenizer)}}return maybeToken(tokenizer);case ASTERISK$6:case PLUSSIGN$6:case QUESTIONMARK$1:case NUMBERSIGN$3:case EXCLAMATIONMARK$2:break;case LEFTCURLYBRACKET:code=tokenizer.nextCharCode();if(code<48||code>57){return maybeToken(tokenizer)}break;default:return maybeToken(tokenizer)}}function parse$K(source){const tokenizer$1=new tokenizer.Tokenizer(source);const result=readImplicitGroup(tokenizer$1);if(tokenizer$1.pos!==source.length){tokenizer$1.error("Unexpected input")}if(result.terms.length===1&&result.terms[0].type==="Group"){return result.terms[0]}return result}parse$L.parse=parse$K;const parse$J=parse$L;const MATCH={type:"Match"};const MISMATCH={type:"Mismatch"};const DISALLOW_EMPTY={type:"DisallowEmpty"};const LEFTPARENTHESIS$1=40;const RIGHTPARENTHESIS$1=41;function createCondition(match,thenBranch,elseBranch){if(thenBranch===MATCH&&elseBranch===MISMATCH){return match}if(match===MATCH&&thenBranch===MATCH&&elseBranch===MATCH){return match}if(match.type==="If"&&match.else===MISMATCH&&thenBranch===MATCH){thenBranch=match.then;match=match.match}return{type:"If",match:match,then:thenBranch,else:elseBranch}}function isFunctionType(name){return name.length>2&&name.charCodeAt(name.length-2)===LEFTPARENTHESIS$1&&name.charCodeAt(name.length-1)===RIGHTPARENTHESIS$1}function isEnumCapatible(term){return term.type==="Keyword"||term.type==="AtKeyword"||term.type==="Function"||term.type==="Type"&&isFunctionType(term.name)}function buildGroupMatchGraph(combinator,terms,atLeastOneTermMatched){switch(combinator){case" ":{let result=MATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];result=createCondition(term,result,MISMATCH)}return result}case"|":{let result=MISMATCH;let map=null;for(let i=terms.length-1;i>=0;i--){let term=terms[i];if(isEnumCapatible(term)){if(map===null&&i>0&&isEnumCapatible(terms[i-1])){map=Object.create(null);result=createCondition({type:"Enum",map:map},MATCH,result)}if(map!==null){const key=(isFunctionType(term.name)?term.name.slice(0,-1):term.name).toLowerCase();if(key in map===false){map[key]=term;continue}}}map=null;result=createCondition(term,MATCH,result)}return result}case"&&":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:true}}let result=MISMATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),false)}else{thenClause=MATCH}result=createCondition(term,thenClause,result)}return result}case"||":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:false}}let result=atLeastOneTermMatched?MATCH:MISMATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),true)}else{thenClause=MATCH}result=createCondition(term,thenClause,result)}return result}}}function buildMultiplierMatchGraph(node){let result=MATCH;let matchTerm=buildMatchGraphInternal(node.term);if(node.max===0){matchTerm=createCondition(matchTerm,DISALLOW_EMPTY,MISMATCH);result=createCondition(matchTerm,null,MISMATCH);result.then=createCondition(MATCH,MATCH,result);if(node.comma){result.then.else=createCondition({type:"Comma",syntax:node},result,MISMATCH)}}else{for(let i=node.min||1;i<=node.max;i++){if(node.comma&&result!==MATCH){result=createCondition({type:"Comma",syntax:node},result,MISMATCH)}result=createCondition(matchTerm,createCondition(MATCH,MATCH,result),MISMATCH)}}if(node.min===0){result=createCondition(MATCH,MATCH,result)}else{for(let i=0;i<node.min-1;i++){if(node.comma&&result!==MATCH){result=createCondition({type:"Comma",syntax:node},result,MISMATCH)}result=createCondition(matchTerm,result,MISMATCH)}}return result}function buildMatchGraphInternal(node){if(typeof node==="function"){return{type:"Generic",fn:node}}switch(node.type){case"Group":{let result=buildGroupMatchGraph(node.combinator,node.terms.map(buildMatchGraphInternal),false);if(node.disallowEmpty){result=createCondition(result,DISALLOW_EMPTY,MISMATCH)}return result}case"Multiplier":return buildMultiplierMatchGraph(node);case"Type":case"Property":return{type:node.type,name:node.name,syntax:node};case"Keyword":return{type:node.type,name:node.name.toLowerCase(),syntax:node};case"AtKeyword":return{type:node.type,name:"@"+node.name.toLowerCase(),syntax:node};case"Function":return{type:node.type,name:node.name.toLowerCase()+"(",syntax:node};case"String":if(node.value.length===3){return{type:"Token",value:node.value.charAt(1),syntax:node}}return{type:node.type,value:node.value.substr(1,node.value.length-2).replace(/\\'/g,"'"),syntax:node};case"Token":return{type:node.type,value:node.value,syntax:node};case"Comma":return{type:node.type,syntax:node};default:throw new Error("Unknown node type:",node.type)}}function buildMatchGraph(syntaxTree,ref){if(typeof syntaxTree==="string"){syntaxTree=parse$J.parse(syntaxTree)}return{type:"MatchGraph",match:buildMatchGraphInternal(syntaxTree),syntax:ref||null,source:syntaxTree}}matchGraph$2.DISALLOW_EMPTY=DISALLOW_EMPTY;matchGraph$2.MATCH=MATCH;matchGraph$2.MISMATCH=MISMATCH;matchGraph$2.buildMatchGraph=buildMatchGraph;var match$1={};const matchGraph$1=matchGraph$2;const types$H=types$R;const{hasOwnProperty:hasOwnProperty$7}=Object.prototype;const STUB=0;const TOKEN=1;const OPEN_SYNTAX=2;const CLOSE_SYNTAX=3;const EXIT_REASON_MATCH="Match";const EXIT_REASON_MISMATCH="Mismatch";const EXIT_REASON_ITERATION_LIMIT="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)";const ITERATION_LIMIT=15e3;function reverseList(list){let prev=null;let next=null;let item=list;while(item!==null){next=item.prev;item.prev=prev;prev=item;item=next}return prev}function areStringsEqualCaseInsensitive(testStr,referenceStr){if(testStr.length!==referenceStr.length){return false}for(let i=0;i<testStr.length;i++){const referenceCode=referenceStr.charCodeAt(i);let testCode=testStr.charCodeAt(i);if(testCode>=65&&testCode<=90){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function isContextEdgeDelim(token){if(token.type!==types$H.Delim){return false}return token.value!=="?"}function isCommaContextStart(token){if(token===null){return true}return token.type===types$H.Comma||token.type===types$H.Function||token.type===types$H.LeftParenthesis||token.type===types$H.LeftSquareBracket||token.type===types$H.LeftCurlyBracket||isContextEdgeDelim(token)}function isCommaContextEnd(token){if(token===null){return true}return token.type===types$H.RightParenthesis||token.type===types$H.RightSquareBracket||token.type===types$H.RightCurlyBracket||token.type===types$H.Delim&&token.value==="/"}function internalMatch(tokens,state,syntaxes){function moveToNextToken(){do{tokenIndex++;token=tokenIndex<tokens.length?tokens[tokenIndex]:null}while(token!==null&&(token.type===types$H.WhiteSpace||token.type===types$H.Comment))}function getNextToken(offset){const nextIndex=tokenIndex+offset;return nextIndex<tokens.length?tokens[nextIndex]:null}function stateSnapshotFromSyntax(nextState,prev){return{nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,thenStack:thenStack,tokenIndex:tokenIndex,prev:prev}}function pushThenStack(nextState){thenStack={nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,prev:thenStack}}function pushElseStack(nextState){elseStack=stateSnapshotFromSyntax(nextState,elseStack)}function addTokenToMatch(){matchStack={type:TOKEN,syntax:state.syntax,token:token,prev:matchStack};moveToNextToken();syntaxStash=null;if(tokenIndex>longestMatch){longestMatch=tokenIndex}}function openSyntax(){syntaxStack={syntax:state.syntax,opts:state.syntax.opts||syntaxStack!==null&&syntaxStack.opts||null,prev:syntaxStack};matchStack={type:OPEN_SYNTAX,syntax:state.syntax,token:matchStack.token,prev:matchStack}}function closeSyntax(){if(matchStack.type===OPEN_SYNTAX){matchStack=matchStack.prev}else{matchStack={type:CLOSE_SYNTAX,syntax:syntaxStack.syntax,token:matchStack.token,prev:matchStack}}syntaxStack=syntaxStack.prev}let syntaxStack=null;let thenStack=null;let elseStack=null;let syntaxStash=null;let iterationCount=0;let exitReason=null;let token=null;let tokenIndex=-1;let longestMatch=0;let matchStack={type:STUB,syntax:null,token:null,prev:null};moveToNextToken();while(exitReason===null&&++iterationCount<ITERATION_LIMIT){switch(state.type){case"Match":if(thenStack===null){if(token!==null){if(tokenIndex!==tokens.length-1||token.value!=="\\0"&&token.value!=="\\9"){state=matchGraph$1.MISMATCH;break}}exitReason=EXIT_REASON_MATCH;break}state=thenStack.nextState;if(state===matchGraph$1.DISALLOW_EMPTY){if(thenStack.matchStack===matchStack){state=matchGraph$1.MISMATCH;break}else{state=matchGraph$1.MATCH}}while(thenStack.syntaxStack!==syntaxStack){closeSyntax()}thenStack=thenStack.prev;break;case"Mismatch":if(syntaxStash!==null&&syntaxStash!==false){if(elseStack===null||tokenIndex>elseStack.tokenIndex){elseStack=syntaxStash;syntaxStash=false}}else if(elseStack===null){exitReason=EXIT_REASON_MISMATCH;break}state=elseStack.nextState;thenStack=elseStack.thenStack;syntaxStack=elseStack.syntaxStack;matchStack=elseStack.matchStack;tokenIndex=elseStack.tokenIndex;token=tokenIndex<tokens.length?tokens[tokenIndex]:null;elseStack=elseStack.prev;break;case"MatchGraph":state=state.match;break;case"If":if(state.else!==matchGraph$1.MISMATCH){pushElseStack(state.else)}if(state.then!==matchGraph$1.MATCH){pushThenStack(state.then)}state=state.match;break;case"MatchOnce":state={type:"MatchOnceBuffer",syntax:state,index:0,mask:0};break;case"MatchOnceBuffer":{const terms=state.syntax.terms;if(state.index===terms.length){if(state.mask===0||state.syntax.all){state=matchGraph$1.MISMATCH;break}state=matchGraph$1.MATCH;break}if(state.mask===(1<<terms.length)-1){state=matchGraph$1.MATCH;break}for(;state.index<terms.length;state.index++){const matchFlag=1<<state.index;if((state.mask&matchFlag)===0){pushElseStack(state);pushThenStack({type:"AddMatchOnce",syntax:state.syntax,mask:state.mask|matchFlag});state=terms[state.index++];break}}break}case"AddMatchOnce":state={type:"MatchOnceBuffer",syntax:state.syntax,index:0,mask:state.mask};break;case"Enum":if(token!==null){let name=token.value.toLowerCase();if(name.indexOf("\\")!==-1){name=name.replace(/\\[09].*$/,"")}if(hasOwnProperty$7.call(state.map,name)){state=state.map[name];break}}state=matchGraph$1.MISMATCH;break;case"Generic":{const opts=syntaxStack!==null?syntaxStack.opts:null;const lastTokenIndex=tokenIndex+Math.floor(state.fn(token,getNextToken,opts));if(!isNaN(lastTokenIndex)&&lastTokenIndex>tokenIndex){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$1.MATCH}else{state=matchGraph$1.MISMATCH}break}case"Type":case"Property":{const syntaxDict=state.type==="Type"?"types":"properties";const dictSyntax=hasOwnProperty$7.call(syntaxes,syntaxDict)?syntaxes[syntaxDict][state.name]:null;if(!dictSyntax||!dictSyntax.match){throw new Error("Bad syntax reference: "+(state.type==="Type"?"<"+state.name+">":"<'"+state.name+"'>"))}if(syntaxStash!==false&&token!==null&&state.type==="Type"){const lowPriorityMatching=state.name==="custom-ident"&&token.type===types$H.Ident||state.name==="length"&&token.value==="0";if(lowPriorityMatching){if(syntaxStash===null){syntaxStash=stateSnapshotFromSyntax(state,elseStack)}state=matchGraph$1.MISMATCH;break}}openSyntax();state=dictSyntax.match;break}case"Keyword":{const name=state.name;if(token!==null){let keywordName=token.value;if(keywordName.indexOf("\\")!==-1){keywordName=keywordName.replace(/\\[09].*$/,"")}if(areStringsEqualCaseInsensitive(keywordName,name)){addTokenToMatch();state=matchGraph$1.MATCH;break}}state=matchGraph$1.MISMATCH;break}case"AtKeyword":case"Function":if(token!==null&&areStringsEqualCaseInsensitive(token.value,state.name)){addTokenToMatch();state=matchGraph$1.MATCH;break}state=matchGraph$1.MISMATCH;break;case"Token":if(token!==null&&token.value===state.value){addTokenToMatch();state=matchGraph$1.MATCH;break}state=matchGraph$1.MISMATCH;break;case"Comma":if(token!==null&&token.type===types$H.Comma){if(isCommaContextStart(matchStack.token)){state=matchGraph$1.MISMATCH}else{addTokenToMatch();state=isCommaContextEnd(token)?matchGraph$1.MISMATCH:matchGraph$1.MATCH}}else{state=isCommaContextStart(matchStack.token)||isCommaContextEnd(token)?matchGraph$1.MATCH:matchGraph$1.MISMATCH}break;case"String":let string="";let lastTokenIndex=tokenIndex;for(;lastTokenIndex<tokens.length&&string.length<state.value.length;lastTokenIndex++){string+=tokens[lastTokenIndex].value}if(areStringsEqualCaseInsensitive(string,state.value)){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$1.MATCH}else{state=matchGraph$1.MISMATCH}break;default:throw new Error("Unknown node type: "+state.type)}}switch(exitReason){case null:console.warn("[csstree-match] BREAK after "+ITERATION_LIMIT+" iterations");exitReason=EXIT_REASON_ITERATION_LIMIT;matchStack=null;break;case EXIT_REASON_MATCH:while(syntaxStack!==null){closeSyntax()}break;default:matchStack=null}return{tokens:tokens,reason:exitReason,iterations:iterationCount,match:matchStack,longestMatch:longestMatch}}function matchAsList(tokens,matchGraph,syntaxes){const matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match!==null){let item=reverseList(matchResult.match).prev;matchResult.match=[];while(item!==null){switch(item.type){case OPEN_SYNTAX:case CLOSE_SYNTAX:matchResult.match.push({type:item.type,syntax:item.syntax});break;default:matchResult.match.push({token:item.token.value,node:item.token.node});break}item=item.prev}}return matchResult}function matchAsTree(tokens,matchGraph,syntaxes){const matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match===null){return matchResult}let item=matchResult.match;let host=matchResult.match={syntax:matchGraph.syntax||null,match:[]};const hostStack=[host];item=reverseList(item).prev;while(item!==null){switch(item.type){case OPEN_SYNTAX:host.match.push(host={syntax:item.syntax,match:[]});hostStack.push(host);break;case CLOSE_SYNTAX:hostStack.pop();host=hostStack[hostStack.length-1];break;default:host.match.push({syntax:item.syntax||null,token:item.token.value,node:item.token.node})}item=item.prev}return matchResult}match$1.matchAsList=matchAsList;match$1.matchAsTree=matchAsTree;var trace$1={};function getTrace(node){function shouldPutToTrace(syntax){if(syntax===null){return false}return syntax.type==="Type"||syntax.type==="Property"||syntax.type==="Keyword"}function hasMatch(matchNode){if(Array.isArray(matchNode.match)){for(let i=0;i<matchNode.match.length;i++){if(hasMatch(matchNode.match[i])){if(shouldPutToTrace(matchNode.syntax)){result.unshift(matchNode.syntax)}return true}}}else if(matchNode.node===node){result=shouldPutToTrace(matchNode.syntax)?[matchNode.syntax]:[];return true}return false}let result=null;if(this.matched!==null){hasMatch(this.matched)}return result}function isType(node,type){return testNode(this,node,(match=>match.type==="Type"&&match.name===type))}function isProperty(node,property){return testNode(this,node,(match=>match.type==="Property"&&match.name===property))}function isKeyword(node){return testNode(this,node,(match=>match.type==="Keyword"))}function testNode(match,node,fn){const trace=getTrace.call(match,node);if(trace===null){return false}return trace.some(fn)}trace$1.getTrace=getTrace;trace$1.isKeyword=isKeyword;trace$1.isProperty=isProperty;trace$1.isType=isType;var search$1={};const List$3=List$7;function getFirstMatchNode(matchNode){if("node"in matchNode){return matchNode.node}return getFirstMatchNode(matchNode.match[0])}function getLastMatchNode(matchNode){if("node"in matchNode){return matchNode.node}return getLastMatchNode(matchNode.match[matchNode.match.length-1])}function matchFragments(lexer,ast,match,type,name){function findFragments(matchNode){if(matchNode.syntax!==null&&matchNode.syntax.type===type&&matchNode.syntax.name===name){const start=getFirstMatchNode(matchNode);const end=getLastMatchNode(matchNode);lexer.syntax.walk(ast,(function(node,item,list){if(node===start){const nodes=new List$3.List;do{nodes.appendData(item.data);if(item.data===end){break}item=item.next}while(item!==null);fragments.push({parent:list,nodes:nodes})}}))}if(Array.isArray(matchNode.match)){matchNode.match.forEach(findFragments)}}const fragments=[];if(match.matched!==null){findFragments(match.matched)}return fragments}search$1.matchFragments=matchFragments;var structure$F={};const List$2=List$7;const{hasOwnProperty:hasOwnProperty$6}=Object.prototype;function isValidNumber(value){return typeof value==="number"&&isFinite(value)&&Math.floor(value)===value&&value>=0}function isValidLocation(loc){return Boolean(loc)&&isValidNumber(loc.offset)&&isValidNumber(loc.line)&&isValidNumber(loc.column)}function createNodeStructureChecker(type,fields){return function checkNode(node,warn){if(!node||node.constructor!==Object){return warn(node,"Type of node should be an Object")}for(let key in node){let valid=true;if(hasOwnProperty$6.call(node,key)===false){continue}if(key==="type"){if(node.type!==type){warn(node,"Wrong node type `"+node.type+"`, expected `"+type+"`")}}else if(key==="loc"){if(node.loc===null){continue}else if(node.loc&&node.loc.constructor===Object){if(typeof node.loc.source!=="string"){key+=".source"}else if(!isValidLocation(node.loc.start)){key+=".start"}else if(!isValidLocation(node.loc.end)){key+=".end"}else{continue}}valid=false}else if(fields.hasOwnProperty(key)){valid=false;for(let i=0;!valid&&i<fields[key].length;i++){const fieldType=fields[key][i];switch(fieldType){case String:valid=typeof node[key]==="string";break;case Boolean:valid=typeof node[key]==="boolean";break;case null:valid=node[key]===null;break;default:if(typeof fieldType==="string"){valid=node[key]&&node[key].type===fieldType}else if(Array.isArray(fieldType)){valid=node[key]instanceof List$2.List}}}}else{warn(node,"Unknown field `"+key+"` for "+type+" node type")}if(!valid){warn(node,"Bad value for `"+type+"."+key+"`")}}for(const key in fields){if(hasOwnProperty$6.call(fields,key)&&hasOwnProperty$6.call(node,key)===false){warn(node,"Field `"+type+"."+key+"` is missed")}}}}function processStructure(name,nodeType){const structure=nodeType.structure;const fields={type:String,loc:true};const docs={type:'"'+name+'"'};for(const key in structure){if(hasOwnProperty$6.call(structure,key)===false){continue}const docsTypes=[];const fieldTypes=fields[key]=Array.isArray(structure[key])?structure[key].slice():[structure[key]];for(let i=0;i<fieldTypes.length;i++){const fieldType=fieldTypes[i];if(fieldType===String||fieldType===Boolean){docsTypes.push(fieldType.name)}else if(fieldType===null){docsTypes.push("null")}else if(typeof fieldType==="string"){docsTypes.push("<"+fieldType+">")}else if(Array.isArray(fieldType)){docsTypes.push("List")}else{throw new Error("Wrong value `"+fieldType+"` in `"+name+"."+key+"` structure definition")}}docs[key]=docsTypes.join(" | ")}return{docs:docs,check:createNodeStructureChecker(name,fields)}}function getStructureFromConfig(config){const structure={};if(config.node){for(const name in config.node){if(hasOwnProperty$6.call(config.node,name)){const nodeType=config.node[name];if(nodeType.structure){structure[name]=processStructure(name,nodeType)}else{throw new Error("Missed `structure` field in `"+name+"` node type definition")}}}}return structure}structure$F.getStructureFromConfig=getStructureFromConfig;var walk$5={};const noop=function(){};function ensureFunction(value){return typeof value==="function"?value:noop}function walk$4(node,options,context){function walk(node){enter.call(context,node);switch(node.type){case"Group":node.terms.forEach(walk);break;case"Multiplier":walk(node.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+node.type)}leave.call(context,node)}let enter=noop;let leave=noop;if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction(options.enter);leave=ensureFunction(options.leave)}if(enter===noop&&leave===noop){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walk(node)}walk$5.walk=walk$4;const error$1=error$2;const names$3=names$4;const genericConst=genericConst$2;const generic=generic$1;const prepareTokens=prepareTokens_1;const matchGraph=matchGraph$2;const match=match$1;const trace=trace$1;const search=search$1;const structure$E=structure$F;const parse$I=parse$L;const generate$I=generate$L;const walk$3=walk$5;const cssWideKeywordsSyntax=matchGraph.buildMatchGraph(genericConst.cssWideKeywords.join(" | "));function dumpMapSyntax(map,compact,syntaxAsAst){const result={};for(const name in map){if(map[name].syntax){result[name]=syntaxAsAst?map[name].syntax:generate$I.generate(map[name].syntax,{compact:compact})}}return result}function dumpAtruleMapSyntax(map,compact,syntaxAsAst){const result={};for(const[name,atrule]of Object.entries(map)){result[name]={prelude:atrule.prelude&&(syntaxAsAst?atrule.prelude.syntax:generate$I.generate(atrule.prelude.syntax,{compact:compact})),descriptors:atrule.descriptors&&dumpMapSyntax(atrule.descriptors,compact,syntaxAsAst)}}return result}function valueHasVar(tokens){for(let i=0;i<tokens.length;i++){if(tokens[i].value.toLowerCase()==="var("){return true}}return false}function buildMatchResult(matched,error,iterations){return{matched:matched,iterations:iterations,error:error,...trace}}function matchSyntax(lexer,syntax,value,useCssWideKeywords){const tokens=prepareTokens(value,lexer.syntax);let result;if(valueHasVar(tokens)){return buildMatchResult(null,new Error("Matching for a tree with var() is not supported"))}if(useCssWideKeywords){result=match.matchAsTree(tokens,lexer.cssWideKeywordsSyntax,lexer)}if(!useCssWideKeywords||!result.match){result=match.matchAsTree(tokens,syntax.match,lexer);if(!result.match){return buildMatchResult(null,new error$1.SyntaxMatchError(result.reason,syntax.syntax,value,result),result.iterations)}}return buildMatchResult(result.match,null,result.iterations)}class Lexer$2{constructor(config,syntax,structure$1){this.cssWideKeywordsSyntax=cssWideKeywordsSyntax;this.syntax=syntax;this.generic=false;this.atrules=Object.create(null);this.properties=Object.create(null);this.types=Object.create(null);this.structure=structure$1||structure$E.getStructureFromConfig(config);if(config){if(config.types){for(const name in config.types){this.addType_(name,config.types[name])}}if(config.generic){this.generic=true;for(const name in generic){this.addType_(name,generic[name])}}if(config.atrules){for(const name in config.atrules){this.addAtrule_(name,config.atrules[name])}}if(config.properties){for(const name in config.properties){this.addProperty_(name,config.properties[name])}}}}checkStructure(ast){function collectWarning(node,message){warns.push({node:node,message:message})}const structure=this.structure;const warns=[];this.syntax.walk(ast,(function(node){if(structure.hasOwnProperty(node.type)){structure[node.type].check(node,collectWarning)}else{collectWarning(node,"Unknown node type `"+node.type+"`")}}));return warns.length?warns:false}createDescriptor(syntax,type,name,parent=null){const ref={type:type,name:name};const descriptor={type:type,name:name,parent:parent,serializable:typeof syntax==="string"||syntax&&typeof syntax.type==="string",syntax:null,match:null};if(typeof syntax==="function"){descriptor.match=matchGraph.buildMatchGraph(syntax,ref)}else{if(typeof syntax==="string"){Object.defineProperty(descriptor,"syntax",{get(){Object.defineProperty(descriptor,"syntax",{value:parse$I.parse(syntax)});return descriptor.syntax}})}else{descriptor.syntax=syntax}Object.defineProperty(descriptor,"match",{get(){Object.defineProperty(descriptor,"match",{value:matchGraph.buildMatchGraph(descriptor.syntax,ref)});return descriptor.match}})}return descriptor}addAtrule_(name,syntax){if(!syntax){return}this.atrules[name]={type:"Atrule",name:name,prelude:syntax.prelude?this.createDescriptor(syntax.prelude,"AtrulePrelude",name):null,descriptors:syntax.descriptors?Object.keys(syntax.descriptors).reduce(((map,descName)=>{map[descName]=this.createDescriptor(syntax.descriptors[descName],"AtruleDescriptor",descName,name);return map}),Object.create(null)):null}}addProperty_(name,syntax){if(!syntax){return}this.properties[name]=this.createDescriptor(syntax,"Property",name)}addType_(name,syntax){if(!syntax){return}this.types[name]=this.createDescriptor(syntax,"Type",name)}checkAtruleName(atruleName){if(!this.getAtrule(atruleName)){return new error$1.SyntaxReferenceError("Unknown at-rule","@"+atruleName)}}checkAtrulePrelude(atruleName,prelude){const error=this.checkAtruleName(atruleName);if(error){return error}const atrule=this.getAtrule(atruleName);if(!atrule.prelude&&prelude){return new SyntaxError("At-rule `@"+atruleName+"` should not contain a prelude")}if(atrule.prelude&&!prelude){if(!matchSyntax(this,atrule.prelude,"",false).matched){return new SyntaxError("At-rule `@"+atruleName+"` should contain a prelude")}}}checkAtruleDescriptorName(atruleName,descriptorName){const error$1$1=this.checkAtruleName(atruleName);if(error$1$1){return error$1$1}const atrule=this.getAtrule(atruleName);const descriptor=names$3.keyword(descriptorName);if(!atrule.descriptors){return new SyntaxError("At-rule `@"+atruleName+"` has no known descriptors")}if(!atrule.descriptors[descriptor.name]&&!atrule.descriptors[descriptor.basename]){return new error$1.SyntaxReferenceError("Unknown at-rule descriptor",descriptorName)}}checkPropertyName(propertyName){if(!this.getProperty(propertyName)){return new error$1.SyntaxReferenceError("Unknown property",propertyName)}}matchAtrulePrelude(atruleName,prelude){const error=this.checkAtrulePrelude(atruleName,prelude);if(error){return buildMatchResult(null,error)}const atrule=this.getAtrule(atruleName);if(!atrule.prelude){return buildMatchResult(null,null)}return matchSyntax(this,atrule.prelude,prelude||"",false)}matchAtruleDescriptor(atruleName,descriptorName,value){const error=this.checkAtruleDescriptorName(atruleName,descriptorName);if(error){return buildMatchResult(null,error)}const atrule=this.getAtrule(atruleName);const descriptor=names$3.keyword(descriptorName);return matchSyntax(this,atrule.descriptors[descriptor.name]||atrule.descriptors[descriptor.basename],value,false)}matchDeclaration(node){if(node.type!=="Declaration"){return buildMatchResult(null,new Error("Not a Declaration node"))}return this.matchProperty(node.property,node.value)}matchProperty(propertyName,value){if(names$3.property(propertyName).custom){return buildMatchResult(null,new Error("Lexer matching doesn't applicable for custom properties"))}const error=this.checkPropertyName(propertyName);if(error){return buildMatchResult(null,error)}return matchSyntax(this,this.getProperty(propertyName),value,true)}matchType(typeName,value){const typeSyntax=this.getType(typeName);if(!typeSyntax){return buildMatchResult(null,new error$1.SyntaxReferenceError("Unknown type",typeName))}return matchSyntax(this,typeSyntax,value,false)}match(syntax,value){if(typeof syntax!=="string"&&(!syntax||!syntax.type)){return buildMatchResult(null,new error$1.SyntaxReferenceError("Bad syntax"))}if(typeof syntax==="string"||!syntax.match){syntax=this.createDescriptor(syntax,"Type","anonymous")}return matchSyntax(this,syntax,value,false)}findValueFragments(propertyName,value,type,name){return search.matchFragments(this,value,this.matchProperty(propertyName,value),type,name)}findDeclarationValueFragments(declaration,type,name){return search.matchFragments(this,declaration.value,this.matchDeclaration(declaration),type,name)}findAllFragments(ast,type,name){const result=[];this.syntax.walk(ast,{visit:"Declaration",enter:declaration=>{result.push.apply(result,this.findDeclarationValueFragments(declaration,type,name))}});return result}getAtrule(atruleName,fallbackBasename=true){const atrule=names$3.keyword(atruleName);const atruleEntry=atrule.vendor&&fallbackBasename?this.atrules[atrule.name]||this.atrules[atrule.basename]:this.atrules[atrule.name];return atruleEntry||null}getAtrulePrelude(atruleName,fallbackBasename=true){const atrule=this.getAtrule(atruleName,fallbackBasename);return atrule&&atrule.prelude||null}getAtruleDescriptor(atruleName,name){return this.atrules.hasOwnProperty(atruleName)&&this.atrules.declarators?this.atrules[atruleName].declarators[name]||null:null}getProperty(propertyName,fallbackBasename=true){const property=names$3.property(propertyName);const propertyEntry=property.vendor&&fallbackBasename?this.properties[property.name]||this.properties[property.basename]:this.properties[property.name];return propertyEntry||null}getType(name){return hasOwnProperty.call(this.types,name)?this.types[name]:null}validate(){function validate(syntax,name,broken,descriptor){if(broken.has(name)){return broken.get(name)}broken.set(name,false);if(descriptor.syntax!==null){walk$3.walk(descriptor.syntax,(function(node){if(node.type!=="Type"&&node.type!=="Property"){return}const map=node.type==="Type"?syntax.types:syntax.properties;const brokenMap=node.type==="Type"?brokenTypes:brokenProperties;if(!hasOwnProperty.call(map,node.name)||validate(syntax,node.name,brokenMap,map[node.name])){broken.set(name,true)}}),this)}}let brokenTypes=new Map;let brokenProperties=new Map;for(const key in this.types){validate(this,key,brokenTypes,this.types[key])}for(const key in this.properties){validate(this,key,brokenProperties,this.properties[key])}brokenTypes=[...brokenTypes.keys()].filter((name=>brokenTypes.get(name)));brokenProperties=[...brokenProperties.keys()].filter((name=>brokenProperties.get(name)));if(brokenTypes.length||brokenProperties.length){return{types:brokenTypes,properties:brokenProperties}}return null}dump(syntaxAsAst,pretty){return{generic:this.generic,types:dumpMapSyntax(this.types,!pretty,syntaxAsAst),properties:dumpMapSyntax(this.properties,!pretty,syntaxAsAst),atrules:dumpAtruleMapSyntax(this.atrules,!pretty,syntaxAsAst)}}toString(){return JSON.stringify(this.dump())}}Lexer$3.Lexer=Lexer$2;const{hasOwnProperty:hasOwnProperty$5}=Object.prototype;const shape={generic:true,types:appendOrAssign,atrules:{prelude:appendOrAssignOrNull,descriptors:appendOrAssignOrNull},properties:appendOrAssign,parseContext:assign,scope:deepAssign,atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};function isObject(value){return value&&value.constructor===Object}function copy(value){return isObject(value)?{...value}:value}function assign(dest,src){return Object.assign(dest,src)}function deepAssign(dest,src){for(const key in src){if(hasOwnProperty$5.call(src,key)){if(isObject(dest[key])){deepAssign(dest[key],src[key])}else{dest[key]=copy(src[key])}}}return dest}function append(a,b){if(typeof b==="string"&&/^\s*\|/.test(b)){return typeof a==="string"?a+b:b.replace(/^\s*\|\s*/,"")}return b||null}function appendOrAssign(a,b){if(typeof b==="string"){return append(a,b)}const result={...a};for(let key in b){if(hasOwnProperty$5.call(b,key)){result[key]=append(hasOwnProperty$5.call(a,key)?a[key]:undefined,b[key])}}return result}function appendOrAssignOrNull(a,b){const result=appendOrAssign(a,b);return!isObject(result)||Object.keys(result).length?result:null}function mix$1(dest,src,shape){for(const key in shape){if(hasOwnProperty$5.call(shape,key)===false){continue}if(shape[key]===true){if(hasOwnProperty$5.call(src,key)){dest[key]=copy(src[key])}}else if(shape[key]){if(typeof shape[key]==="function"){const fn=shape[key];dest[key]=fn({},dest[key]);dest[key]=fn(dest[key]||{},src[key])}else if(isObject(shape[key])){const result={};for(let name in dest[key]){result[name]=mix$1({},dest[key][name],shape[key])}for(let name in src[key]){result[name]=mix$1(result[name]||{},src[key][name],shape[key])}dest[key]=result}else if(Array.isArray(shape[key])){const res={};const innerShape=shape[key].reduce((function(s,k){s[k]=true;return s}),{});for(const[name,value]of Object.entries(dest[key]||{})){res[name]={};if(value){mix$1(res[name],value,innerShape)}}for(const name in src[key]){if(hasOwnProperty$5.call(src[key],name)){if(!res[name]){res[name]={}}if(src[key]&&src[key][name]){mix$1(res[name],src[key][name],innerShape)}}}dest[key]=res}}}return dest}const mix$1$1=(dest,src)=>mix$1(dest,src,shape);var mix_1=mix$1$1;const index$8=tokenizer$2;const create$2=create$7;const create$2$1=create$6;const create$3=create$5;const create$1$1=create$4;const Lexer$1=Lexer$3;const mix=mix_1;function createSyntax(config){const parse=create$2.createParser(config);const walk=create$1$1.createWalker(config);const generate=create$2$1.createGenerator(config);const{fromPlainObject:fromPlainObject,toPlainObject:toPlainObject}=create$3.createConvertor(walk);const syntax={lexer:null,createLexer:config=>new Lexer$1.Lexer(config,syntax,syntax.lexer.structure),tokenize:index$8.tokenize,parse:parse,generate:generate,walk:walk,find:walk.find,findLast:walk.findLast,findAll:walk.findAll,fromPlainObject:fromPlainObject,toPlainObject:toPlainObject,fork(extension){const base=mix({},config);return createSyntax(typeof extension==="function"?extension(base,Object.assign):mix(base,extension))}};syntax.lexer=new Lexer$1.Lexer({generic:true,types:config.types,atrules:config.atrules,properties:config.properties,node:config.node},syntax);return syntax}const createSyntax$1=config=>createSyntax(mix({},config));var create_1=createSyntax$1;var data$1={generic:true,types:{"absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","alpha-value":"<number>|<percentage>","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>","angular-color-stop":"<color>&&<color-stop-angle>?","angular-color-stop-list":"[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>","animateable-feature":"scroll-position|contents|<custom-ident>",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>","bg-image":"none|<image>","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage>|auto]{1,2}|cover|contain","blur()":"blur( <length> )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-value":"<number>|<dimension>|<percentage>|( <calc-sum> )","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( [<shape-radius>]? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"<angle-percentage>{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!","compound-selector-list":"<compound-selector>#","complex-selector":"<compound-selector> [<combinator>? <compound-selector>]*","complex-selector-list":"<complex-selector>#","conic-gradient()":"conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contrast()":"contrast( [<number-percentage>] )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( [<shape-radius>{2}]? [at <position>]? )","ending-shape":"circle|ellipse","env()":"env( <custom-ident> , <declaration-value>? )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","fill-rule":"nonzero|evenodd","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-function-list":"[<filter-function>|<url>]+","final-bg-layer":"<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","fit-content()":"fit-content( [<length>|<percentage>] )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|<number [1,1000]>","frequency-percentage":"<frequency>|<percentage>","general-enclosed":"[<function-token> <any-value> )]|( <ident> <any-value> )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )","hsla()":"hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )",hue:"<number>|<angle>","hue-rotate()":"hue-rotate( <angle> )","hwb()":"hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length>|<percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident>|<string>","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-block-list":"<keyframe-block>+","keyframe-selector":"from|to|<percentage>","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[<line-names>|<name-repeat>]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-gradient()":"linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length>|<percentage>|min-content|max-content|auto] , [<length>|<percentage>|<flex>|min-content|max-content|auto] )","name-repeat":"repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"<ident>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"<an-plus-b>|even|odd","opacity()":"opacity( [<number-percentage>] )","overflow-position":"unsafe|safe","outline-radius":"<length>|<percentage>","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[<page-selector>#]?","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger","path()":"path( [<fill-rule> ,]? <string> )","paint()":"paint( <ident> , <declaration-value>? )","perspective()":"perspective( <length> )","polygon()":"polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","repeating-linear-gradient()":"repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","rgb()":"rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )","rgba()":"rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","saturate()":"saturate( <number-percentage> )","scale()":"scale( <number> , <number>? )","scale3d()":"scale3d( <number> , <number> , <number> )","scaleX()":"scaleX( <number> )","scaleY()":"scaleY( <number> )","scaleZ()":"scaleZ( <number> )","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"<length-percentage>|closest-side|farthest-side","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sepia()":"sepia( <number-percentage> )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","single-animation":"<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<timeline-name>","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-timing-function":"step-start|step-end|steps( <integer> [, <step-position>]? )","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-decl":"( <declaration> )","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","time-percentage":"<time>|<percentage>","timeline-name":"<custom-ident>|<string>","easing-function":"linear|<cubic-bezier-timing-function>|<step-timing-function>","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( [<length>|<percentage>] )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-width":"fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-webkit-mask-clip-style":"border|border-box|padding|padding-box|content|content-box|text","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )","-ms-filter":"<string>",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>","bg-clip":"<box>|border|text","border-radius":"<length-percentage>{1,2}",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )",left:"<length>|auto","mask-image":"<mask-reference>#",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke",ratio:"<number [0,∞]> [/ <number [0,∞]>]?","reversed-counter-name":"reversed( <counter-name> )",right:"<length>|auto","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto","track-group":"'(' [<string>* <track-minmax> <string>*]+ ')' ['[' <positive-integer> ']']?|<track-minmax>","track-list-v0":"[<string>* <track-group> <string>*]+|none","track-minmax":"minmax( <track-breadth> , <track-breadth> )|auto|<track-breadth>|fit-content",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,∞]>","positive-integer":"<integer [0,∞]>","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zooming":"none|zoom","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-image-region":"<shape>|auto","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<box>|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#",all:"initial|inherit|unset|revert|revert-layer",animation:"<single-animation>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<easing-function>#","animation-timeline":"<single-animation-timeline>#",appearance:"none|auto|textfield|menulist-button|<compat-auto>","aspect-ratio":"auto|<ratio>",azimuth:"<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards","backdrop-filter":"none|<filter-function-list>","backface-visibility":"visible|hidden",background:"[<bg-layer> ,]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-overflow":"clip|ellipsis|<string>","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-color":"<'border-top-color'>{1,2}","border-block-style":"<'border-top-style'>","border-block-width":"<'border-top-width'>","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"collapse|separate","border-color":"<color>{1,4}","border-end-end-radius":"<length-percentage>{1,2}","border-end-start-radius":"<length-percentage>{1,2}","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length>|<number>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"<number-percentage>{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage>|<number>|auto]{1,4}","border-inline":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-style":"<'border-top-style'>","border-inline-width":"<'border-top-width'>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage>{1,4} [/ <length-percentage>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length> <length>?","border-start-end-radius":"<length-percentage>{1,2}","border-start-start-radius":"<length-percentage>{1,2}","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"<length>|<percentage>|auto","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom|block-start|block-end|inline-start|inline-end","caret-color":"auto|<color>",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none",color:"<color>","print-color-adjust":"economy|exact","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance|balance-all","column-gap":"normal|<length-percentage>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"<length>|auto",columns:"<'column-width'>||<'column-count'>",contain:"none|strict|content|[size||layout||style||paint]",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?","content-visibility":"visible|auto|hidden","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","empty-cells":"show|hide",filter:"none|<filter-function-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end",font:"[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-variation-settings":"normal|[<string> <number>]#","font-size":"<absolute-size>|<relative-size>|<length-percentage>","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps]","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-weight":"<font-weight-absolute>|bolder|lighter","forced-color-adjust":"auto|none",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","hyphenate-character":"auto|<string>",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>","input-security":"auto|none",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>",isolation:"auto|isolate","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"<length>|<percentage>|auto","letter-spacing":"normal|<length-percentage>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"[<length>|<percentage>|auto]{1,4}","margin-block":"<'margin-left'>{1,2}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length>|<percentage>|auto","margin-inline":"<'margin-left'>{1,2}","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length>|<percentage>|auto","margin-right":"<length>|<percentage>|auto","margin-top":"<length>|<percentage>|auto","margin-trim":"none|in-flow|all",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<geometry-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","min-block-size":"<'min-width'>","min-height":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","min-inline-size":"<'min-width'>","min-width":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","mix-blend-mode":"<blend-mode>|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]","offset-position":"auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<alpha-value>",order:"<integer>",orphans:"<integer>",outline:"[<'outline-color'>||<'outline-style'>||<'outline-width'>]","outline-color":"<color>|invert","outline-offset":"<length>","outline-style":"auto|<'border-style'>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,∞]>","overflow-inline":"visible|hidden|clip|scroll|auto","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto","overflow-y":"visible|hidden|clip|scroll|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"[<length>|<percentage>]{1,4}","padding-block":"<'padding-left'>{1,2}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length>|<percentage>","padding-inline":"<'padding-left'>{1,2}","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length>|<percentage>","padding-right":"<length>|<percentage>","padding-top":"<length>|<percentage>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky",quotes:"none|auto|[<string> <string>]+",resize:"none|both|horizontal|vertical|block|inline",right:"<length>|<percentage>|auto",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-position":"[alternate||[over|under]]|inter-character",scale:"none|<number>{1,3}","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","scroll-behavior":"auto|smooth","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-start":"<length>","scroll-margin-block-end":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-start":"<length>","scroll-margin-inline-end":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","shape-image-threshold":"<alpha-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[over|under]&&[right|left]","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-transform":"none|capitalize|uppercase|lowercase|full-width|full-size-kana","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]",top:"<length>|<percentage>|auto","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|contain|all","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>",visibility:"visible|hidden|collapse","white-space":"normal|pre|nowrap|pre-wrap|pre-line|break-spaces",widows:"<integer>",width:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>","z-index":"auto|<integer>",zoom:"normal|reset|<number>|<percentage>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto","-webkit-user-select":"auto|none|text|all","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical","baseline-shift":"baseline|sub|super|<svg-length>",behavior:"<url>+","clip-rule":"nonzero|evenodd",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge",fill:"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero|evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision",src:"[<url> [format( <string># )]?|local( <family-name> )]#",speak:"auto|none|normal","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]",stroke:"<paint>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start|middle|end","unicode-range":"<urange>#","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"[auto|block|swap|fallback|optional]","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-variation-settings":"normal|[<string> <number>]#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-weight":"<font-weight-absolute>{1,2}","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]",size:"<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},property:{prelude:"<custom-property-name>",descriptors:{syntax:"<string>",inherits:"true|false","initial-value":"<string>"}},"scroll-timeline":{prelude:"<timeline-name>",descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},viewport:{prelude:null,descriptors:{height:"<viewport-length>{1,2}","max-height":"<viewport-length>","max-width":"<viewport-length>","max-zoom":"auto|<number>|<percentage>","min-height":"<viewport-length>","min-width":"<viewport-length>","min-zoom":"auto|<number>|<percentage>",orientation:"auto|portrait|landscape","user-zoom":"zoom|fixed","viewport-fit":"auto|contain|cover",width:"<viewport-length>{1,2}",zoom:"auto|<number>|<percentage>"}}}};var node={};var AnPlusB$2={};const types$G=types$R;const charCodeDefinitions$5=charCodeDefinitions$c;const PLUSSIGN$5=43;const HYPHENMINUS$2=45;const N=110;const DISALLOW_SIGN=true;const ALLOW_SIGN=false;function checkInteger(offset,disallowSign){let pos=this.tokenStart+offset;const code=this.charCodeAt(pos);if(code===PLUSSIGN$5||code===HYPHENMINUS$2){if(disallowSign){this.error("Number sign is not allowed")}pos++}for(;pos<this.tokenEnd;pos++){if(!charCodeDefinitions$5.isDigit(this.charCodeAt(pos))){this.error("Integer is expected",pos)}}}function checkTokenIsInteger(disallowSign){return checkInteger.call(this,0,disallowSign)}function expectCharCode(offset,code){if(!this.cmpChar(this.tokenStart+offset,code)){let msg="";switch(code){case N:msg="N is expected";break;case HYPHENMINUS$2:msg="HyphenMinus is expected";break}this.error(msg,this.tokenStart+offset)}}function consumeB(){let offset=0;let sign=0;let type=this.tokenType;while(type===types$G.WhiteSpace||type===types$G.Comment){type=this.lookupType(++offset)}if(type!==types$G.Number){if(this.isDelim(PLUSSIGN$5,offset)||this.isDelim(HYPHENMINUS$2,offset)){sign=this.isDelim(PLUSSIGN$5,offset)?PLUSSIGN$5:HYPHENMINUS$2;do{type=this.lookupType(++offset)}while(type===types$G.WhiteSpace||type===types$G.Comment);if(type!==types$G.Number){this.skip(offset);checkTokenIsInteger.call(this,DISALLOW_SIGN)}}else{return null}}if(offset>0){this.skip(offset)}if(sign===0){type=this.charCodeAt(this.tokenStart);if(type!==PLUSSIGN$5&&type!==HYPHENMINUS$2){this.error("Number sign is expected")}}checkTokenIsInteger.call(this,sign!==0);return sign===HYPHENMINUS$2?"-"+this.consume(types$G.Number):this.consume(types$G.Number)}const name$D="AnPlusB";const structure$D={a:[String,null],b:[String,null]};function parse$H(){const start=this.tokenStart;let a=null;let b=null;if(this.tokenType===types$G.Number){checkTokenIsInteger.call(this,ALLOW_SIGN);b=this.consume(types$G.Number)}else if(this.tokenType===types$G.Ident&&this.cmpChar(this.tokenStart,HYPHENMINUS$2)){a="-1";expectCharCode.call(this,1,N);switch(this.tokenEnd-this.tokenStart){case 2:this.next();b=consumeB.call(this);break;case 3:expectCharCode.call(this,2,HYPHENMINUS$2);this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number);break;default:expectCharCode.call(this,2,HYPHENMINUS$2);checkInteger.call(this,3,DISALLOW_SIGN);this.next();b=this.substrToCursor(start+2)}}else if(this.tokenType===types$G.Ident||this.isDelim(PLUSSIGN$5)&&this.lookupType(1)===types$G.Ident){let sign=0;a="1";if(this.isDelim(PLUSSIGN$5)){sign=1;this.next()}expectCharCode.call(this,0,N);switch(this.tokenEnd-this.tokenStart){case 1:this.next();b=consumeB.call(this);break;case 2:expectCharCode.call(this,1,HYPHENMINUS$2);this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number);break;default:expectCharCode.call(this,1,HYPHENMINUS$2);checkInteger.call(this,2,DISALLOW_SIGN);this.next();b=this.substrToCursor(start+sign+1)}}else if(this.tokenType===types$G.Dimension){const code=this.charCodeAt(this.tokenStart);const sign=code===PLUSSIGN$5||code===HYPHENMINUS$2;let i=this.tokenStart+sign;for(;i<this.tokenEnd;i++){if(!charCodeDefinitions$5.isDigit(this.charCodeAt(i))){break}}if(i===this.tokenStart+sign){this.error("Integer is expected",this.tokenStart+sign)}expectCharCode.call(this,i-this.tokenStart,N);a=this.substring(start,i);if(i+1===this.tokenEnd){this.next();b=consumeB.call(this)}else{expectCharCode.call(this,i-this.tokenStart+1,HYPHENMINUS$2);if(i+2===this.tokenEnd){this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number)}else{checkInteger.call(this,i-this.tokenStart+2,DISALLOW_SIGN);this.next();b=this.substrToCursor(i+1)}}}else{this.error()}if(a!==null&&a.charCodeAt(0)===PLUSSIGN$5){a=a.substr(1)}if(b!==null&&b.charCodeAt(0)===PLUSSIGN$5){b=b.substr(1)}return{type:"AnPlusB",loc:this.getLocation(start,this.tokenStart),a:a,b:b}}function generate$H(node){if(node.a){const a=node.a==="+1"&&"n"||node.a==="1"&&"n"||node.a==="-1"&&"-n"||node.a+"n";if(node.b){const b=node.b[0]==="-"||node.b[0]==="+"?node.b:"+"+node.b;this.tokenize(a+b)}else{this.tokenize(a)}}else{this.tokenize(node.b)}}AnPlusB$2.generate=generate$H;AnPlusB$2.name=name$D;AnPlusB$2.parse=parse$H;AnPlusB$2.structure=structure$D;var Atrule$6={};const types$F=types$R;function consumeRaw$5(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracketOrSemicolon,true)}function isDeclarationBlockAtrule(){for(let offset=1,type;type=this.lookupType(offset);offset++){if(type===types$F.RightCurlyBracket){return true}if(type===types$F.LeftCurlyBracket||type===types$F.AtKeyword){return false}}return false}const name$C="Atrule";const walkContext$9="atrule";const structure$C={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function parse$G(){const start=this.tokenStart;let name;let nameLowerCase;let prelude=null;let block=null;this.eat(types$F.AtKeyword);name=this.substrToCursor(start+1);nameLowerCase=name.toLowerCase();this.skipSC();if(this.eof===false&&this.tokenType!==types$F.LeftCurlyBracket&&this.tokenType!==types$F.Semicolon){if(this.parseAtrulePrelude){prelude=this.parseWithFallback(this.AtrulePrelude.bind(this,name),consumeRaw$5)}else{prelude=consumeRaw$5.call(this,this.tokenIndex)}this.skipSC()}switch(this.tokenType){case types$F.Semicolon:this.next();break;case types$F.LeftCurlyBracket:if(hasOwnProperty.call(this.atrule,nameLowerCase)&&typeof this.atrule[nameLowerCase].block==="function"){block=this.atrule[nameLowerCase].block.call(this)}else{block=this.Block(isDeclarationBlockAtrule.call(this))}break}return{type:"Atrule",loc:this.getLocation(start,this.tokenStart),name:name,prelude:prelude,block:block}}function generate$G(node){this.token(types$F.AtKeyword,"@"+node.name);if(node.prelude!==null){this.node(node.prelude)}if(node.block){this.node(node.block)}else{this.token(types$F.Semicolon,";")}}Atrule$6.generate=generate$G;Atrule$6.name=name$C;Atrule$6.parse=parse$G;Atrule$6.structure=structure$C;Atrule$6.walkContext=walkContext$9;var AtrulePrelude$2={};const types$E=types$R;const name$B="AtrulePrelude";const walkContext$8="atrulePrelude";const structure$B={children:[[]]};function parse$F(name){let children=null;if(name!==null){name=name.toLowerCase()}this.skipSC();if(hasOwnProperty.call(this.atrule,name)&&typeof this.atrule[name].prelude==="function"){children=this.atrule[name].prelude.call(this)}else{children=this.readSequence(this.scope.AtrulePrelude)}this.skipSC();if(this.eof!==true&&this.tokenType!==types$E.LeftCurlyBracket&&this.tokenType!==types$E.Semicolon){this.error("Semicolon or block is expected")}return{type:"AtrulePrelude",loc:this.getLocationFromList(children),children:children}}function generate$F(node){this.children(node)}AtrulePrelude$2.generate=generate$F;AtrulePrelude$2.name=name$B;AtrulePrelude$2.parse=parse$F;AtrulePrelude$2.structure=structure$B;AtrulePrelude$2.walkContext=walkContext$8;var AttributeSelector$4={};const types$D=types$R;const DOLLARSIGN$1=36;const ASTERISK$5=42;const EQUALSSIGN=61;const CIRCUMFLEXACCENT=94;const VERTICALLINE$2=124;const TILDE$2=126;function getAttributeName(){if(this.eof){this.error("Unexpected end of input")}const start=this.tokenStart;let expectIdent=false;if(this.isDelim(ASTERISK$5)){expectIdent=true;this.next()}else if(!this.isDelim(VERTICALLINE$2)){this.eat(types$D.Ident)}if(this.isDelim(VERTICALLINE$2)){if(this.charCodeAt(this.tokenStart+1)!==EQUALSSIGN){this.next();this.eat(types$D.Ident)}else if(expectIdent){this.error("Identifier is expected",this.tokenEnd)}}else if(expectIdent){this.error("Vertical line is expected")}return{type:"Identifier",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function getOperator(){const start=this.tokenStart;const code=this.charCodeAt(start);if(code!==EQUALSSIGN&&code!==TILDE$2&&code!==CIRCUMFLEXACCENT&&code!==DOLLARSIGN$1&&code!==ASTERISK$5&&code!==VERTICALLINE$2){this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected")}this.next();if(code!==EQUALSSIGN){if(!this.isDelim(EQUALSSIGN)){this.error("Equal sign is expected")}this.next()}return this.substrToCursor(start)}const name$A="AttributeSelector";const structure$A={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function parse$E(){const start=this.tokenStart;let name;let matcher=null;let value=null;let flags=null;this.eat(types$D.LeftSquareBracket);this.skipSC();name=getAttributeName.call(this);this.skipSC();if(this.tokenType!==types$D.RightSquareBracket){if(this.tokenType!==types$D.Ident){matcher=getOperator.call(this);this.skipSC();value=this.tokenType===types$D.String?this.String():this.Identifier();this.skipSC()}if(this.tokenType===types$D.Ident){flags=this.consume(types$D.Ident);this.skipSC()}}this.eat(types$D.RightSquareBracket);return{type:"AttributeSelector",loc:this.getLocation(start,this.tokenStart),name:name,matcher:matcher,value:value,flags:flags}}function generate$E(node){this.token(types$D.Delim,"[");this.node(node.name);if(node.matcher!==null){this.tokenize(node.matcher);this.node(node.value)}if(node.flags!==null){this.token(types$D.Ident,node.flags)}this.token(types$D.Delim,"]")}AttributeSelector$4.generate=generate$E;AttributeSelector$4.name=name$A;AttributeSelector$4.parse=parse$E;AttributeSelector$4.structure=structure$A;var Block$2={};const types$C=types$R;function consumeRaw$4(startToken){return this.Raw(startToken,null,true)}function consumeRule(){return this.parseWithFallback(this.Rule,consumeRaw$4)}function consumeRawDeclaration(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}function consumeDeclaration(){if(this.tokenType===types$C.Semicolon){return consumeRawDeclaration.call(this,this.tokenIndex)}const node=this.parseWithFallback(this.Declaration,consumeRawDeclaration);if(this.tokenType===types$C.Semicolon){this.next()}return node}const name$z="Block";const walkContext$7="block";const structure$z={children:[["Atrule","Rule","Declaration"]]};function parse$D(isDeclaration){const consumer=isDeclaration?consumeDeclaration:consumeRule;const start=this.tokenStart;let children=this.createList();this.eat(types$C.LeftCurlyBracket);scan:while(!this.eof){switch(this.tokenType){case types$C.RightCurlyBracket:break scan;case types$C.WhiteSpace:case types$C.Comment:this.next();break;case types$C.AtKeyword:children.push(this.parseWithFallback(this.Atrule,consumeRaw$4));break;default:children.push(consumer.call(this))}}if(!this.eof){this.eat(types$C.RightCurlyBracket)}return{type:"Block",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$D(node){this.token(types$C.LeftCurlyBracket,"{");this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$C.Semicolon,";")}}));this.token(types$C.RightCurlyBracket,"}")}Block$2.generate=generate$D;Block$2.name=name$z;Block$2.parse=parse$D;Block$2.structure=structure$z;Block$2.walkContext=walkContext$7;var Brackets$2={};const types$B=types$R;const name$y="Brackets";const structure$y={children:[[]]};function parse$C(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$B.LeftSquareBracket);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$B.RightSquareBracket)}return{type:"Brackets",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$C(node){this.token(types$B.Delim,"[");this.children(node);this.token(types$B.Delim,"]")}Brackets$2.generate=generate$C;Brackets$2.name=name$y;Brackets$2.parse=parse$C;Brackets$2.structure=structure$y;var CDC$2={};const types$A=types$R;const name$x="CDC";const structure$x=[];function parse$B(){const start=this.tokenStart;this.eat(types$A.CDC);return{type:"CDC",loc:this.getLocation(start,this.tokenStart)}}function generate$B(){this.token(types$A.CDC,"--\x3e")}CDC$2.generate=generate$B;CDC$2.name=name$x;CDC$2.parse=parse$B;CDC$2.structure=structure$x;var CDO$2={};const types$z=types$R;const name$w="CDO";const structure$w=[];function parse$A(){const start=this.tokenStart;this.eat(types$z.CDO);return{type:"CDO",loc:this.getLocation(start,this.tokenStart)}}function generate$A(){this.token(types$z.CDO,"\x3c!--")}CDO$2.generate=generate$A;CDO$2.name=name$w;CDO$2.parse=parse$A;CDO$2.structure=structure$w;var ClassSelector$2={};const types$y=types$R;const FULLSTOP$2=46;const name$v="ClassSelector";const structure$v={name:String};function parse$z(){this.eatDelim(FULLSTOP$2);return{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(types$y.Ident)}}function generate$z(node){this.token(types$y.Delim,".");this.token(types$y.Ident,node.name)}ClassSelector$2.generate=generate$z;ClassSelector$2.name=name$v;ClassSelector$2.parse=parse$z;ClassSelector$2.structure=structure$v;var Combinator$2={};const types$x=types$R;const PLUSSIGN$4=43;const SOLIDUS$5=47;const GREATERTHANSIGN$1=62;const TILDE$1=126;const name$u="Combinator";const structure$u={name:String};function parse$y(){const start=this.tokenStart;let name;switch(this.tokenType){case types$x.WhiteSpace:name=" ";break;case types$x.Delim:switch(this.charCodeAt(this.tokenStart)){case GREATERTHANSIGN$1:case PLUSSIGN$4:case TILDE$1:this.next();break;case SOLIDUS$5:this.next();this.eatIdent("deep");this.eatDelim(SOLIDUS$5);break;default:this.error("Combinator is expected")}name=this.substrToCursor(start);break}return{type:"Combinator",loc:this.getLocation(start,this.tokenStart),name:name}}function generate$y(node){this.tokenize(node.name)}Combinator$2.generate=generate$y;Combinator$2.name=name$u;Combinator$2.parse=parse$y;Combinator$2.structure=structure$u;var Comment$4={};const types$w=types$R;const ASTERISK$4=42;const SOLIDUS$4=47;const name$t="Comment";const structure$t={value:String};function parse$x(){const start=this.tokenStart;let end=this.tokenEnd;this.eat(types$w.Comment);if(end-start+2>=2&&this.charCodeAt(end-2)===ASTERISK$4&&this.charCodeAt(end-1)===SOLIDUS$4){end-=2}return{type:"Comment",loc:this.getLocation(start,this.tokenStart),value:this.substring(start+2,end)}}function generate$x(node){this.token(types$w.Comment,"/*"+node.value+"*/")}Comment$4.generate=generate$x;Comment$4.name=name$t;Comment$4.parse=parse$x;Comment$4.structure=structure$t;var Declaration$4={};const names$2=names$4;const types$v=types$R;const EXCLAMATIONMARK$1=33;const NUMBERSIGN$2=35;const DOLLARSIGN=36;const AMPERSAND=38;const ASTERISK$3=42;const PLUSSIGN$3=43;const SOLIDUS$3=47;function consumeValueRaw(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,true)}function consumeCustomPropertyRaw(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,false)}function consumeValue(){const startValueToken=this.tokenIndex;const value=this.Value();if(value.type!=="Raw"&&this.eof===false&&this.tokenType!==types$v.Semicolon&&this.isDelim(EXCLAMATIONMARK$1)===false&&this.isBalanceEdge(startValueToken)===false){this.error()}return value}const name$s="Declaration";const walkContext$6="declaration";const structure$s={important:[Boolean,String],property:String,value:["Value","Raw"]};function parse$w(){const start=this.tokenStart;const startToken=this.tokenIndex;const property=readProperty.call(this);const customProperty=names$2.isCustomProperty(property);const parseValue=customProperty?this.parseCustomProperty:this.parseValue;const consumeRaw=customProperty?consumeCustomPropertyRaw:consumeValueRaw;let important=false;let value;this.skipSC();this.eat(types$v.Colon);const valueStart=this.tokenIndex;if(!customProperty){this.skipSC()}if(parseValue){value=this.parseWithFallback(consumeValue,consumeRaw)}else{value=consumeRaw.call(this,this.tokenIndex)}if(customProperty&&value.type==="Value"&&value.children.isEmpty){for(let offset=valueStart-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$v.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}if(this.isDelim(EXCLAMATIONMARK$1)){important=getImportant.call(this);this.skipSC()}if(this.eof===false&&this.tokenType!==types$v.Semicolon&&this.isBalanceEdge(startToken)===false){this.error()}return{type:"Declaration",loc:this.getLocation(start,this.tokenStart),important:important,property:property,value:value}}function generate$w(node){this.token(types$v.Ident,node.property);this.token(types$v.Colon,":");this.node(node.value);if(node.important){this.token(types$v.Delim,"!");this.token(types$v.Ident,node.important===true?"important":node.important)}}function readProperty(){const start=this.tokenStart;if(this.tokenType===types$v.Delim){switch(this.charCodeAt(this.tokenStart)){case ASTERISK$3:case DOLLARSIGN:case PLUSSIGN$3:case NUMBERSIGN$2:case AMPERSAND:this.next();break;case SOLIDUS$3:this.next();if(this.isDelim(SOLIDUS$3)){this.next()}break}}if(this.tokenType===types$v.Hash){this.eat(types$v.Hash)}else{this.eat(types$v.Ident)}return this.substrToCursor(start)}function getImportant(){this.eat(types$v.Delim);this.skipSC();const important=this.consume(types$v.Ident);return important==="important"?true:important}Declaration$4.generate=generate$w;Declaration$4.name=name$s;Declaration$4.parse=parse$w;Declaration$4.structure=structure$s;Declaration$4.walkContext=walkContext$6;var DeclarationList$2={};const types$u=types$R;function consumeRaw$3(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}const name$r="DeclarationList";const structure$r={children:[["Declaration"]]};function parse$v(){const children=this.createList();while(!this.eof){switch(this.tokenType){case types$u.WhiteSpace:case types$u.Comment:case types$u.Semicolon:this.next();break;default:children.push(this.parseWithFallback(this.Declaration,consumeRaw$3))}}return{type:"DeclarationList",loc:this.getLocationFromList(children),children:children}}function generate$v(node){this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$u.Semicolon,";")}}))}DeclarationList$2.generate=generate$v;DeclarationList$2.name=name$r;DeclarationList$2.parse=parse$v;DeclarationList$2.structure=structure$r;var Dimension$4={};const types$t=types$R;const name$q="Dimension";const structure$q={value:String,unit:String};function parse$u(){const start=this.tokenStart;const value=this.consumeNumber(types$t.Dimension);return{type:"Dimension",loc:this.getLocation(start,this.tokenStart),value:value,unit:this.substring(start+value.length,this.tokenStart)}}function generate$u(node){this.token(types$t.Dimension,node.value+node.unit)}Dimension$4.generate=generate$u;Dimension$4.name=name$q;Dimension$4.parse=parse$u;Dimension$4.structure=structure$q;var _Function={};const types$s=types$R;const name$p="Function";const walkContext$5="function";const structure$p={name:String,children:[[]]};function parse$t(readSequence,recognizer){const start=this.tokenStart;const name=this.consumeFunctionName();const nameLowerCase=name.toLowerCase();let children;children=recognizer.hasOwnProperty(nameLowerCase)?recognizer[nameLowerCase].call(this,recognizer):readSequence.call(this,recognizer);if(!this.eof){this.eat(types$s.RightParenthesis)}return{type:"Function",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$t(node){this.token(types$s.Function,node.name+"(");this.children(node);this.token(types$s.RightParenthesis,")")}_Function.generate=generate$t;_Function.name=name$p;_Function.parse=parse$t;_Function.structure=structure$p;_Function.walkContext=walkContext$5;var Hash$2={};const types$r=types$R;const xxx="XXX";const name$o="Hash";const structure$o={value:String};function parse$s(){const start=this.tokenStart;this.eat(types$r.Hash);return{type:"Hash",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start+1)}}function generate$s(node){this.token(types$r.Hash,"#"+node.value)}Hash$2.generate=generate$s;Hash$2.name=name$o;Hash$2.parse=parse$s;Hash$2.structure=structure$o;Hash$2.xxx=xxx;var Identifier$2={};const types$q=types$R;const name$n="Identifier";const structure$n={name:String};function parse$r(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(types$q.Ident)}}function generate$r(node){this.token(types$q.Ident,node.name)}Identifier$2.generate=generate$r;Identifier$2.name=name$n;Identifier$2.parse=parse$r;Identifier$2.structure=structure$n;var IdSelector$2={};const types$p=types$R;const name$m="IdSelector";const structure$m={name:String};function parse$q(){const start=this.tokenStart;this.eat(types$p.Hash);return{type:"IdSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start+1)}}function generate$q(node){this.token(types$p.Delim,"#"+node.name)}IdSelector$2.generate=generate$q;IdSelector$2.name=name$m;IdSelector$2.parse=parse$q;IdSelector$2.structure=structure$m;var MediaFeature$2={};const types$o=types$R;const name$l="MediaFeature";const structure$l={name:String,value:["Identifier","Number","Dimension","Ratio",null]};function parse$p(){const start=this.tokenStart;let name;let value=null;this.eat(types$o.LeftParenthesis);this.skipSC();name=this.consume(types$o.Ident);this.skipSC();if(this.tokenType!==types$o.RightParenthesis){this.eat(types$o.Colon);this.skipSC();switch(this.tokenType){case types$o.Number:if(this.lookupNonWSType(1)===types$o.Delim){value=this.Ratio()}else{value=this.Number()}break;case types$o.Dimension:value=this.Dimension();break;case types$o.Ident:value=this.Identifier();break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}this.eat(types$o.RightParenthesis);return{type:"MediaFeature",loc:this.getLocation(start,this.tokenStart),name:name,value:value}}function generate$p(node){this.token(types$o.LeftParenthesis,"(");this.token(types$o.Ident,node.name);if(node.value!==null){this.token(types$o.Colon,":");this.node(node.value)}this.token(types$o.RightParenthesis,")")}MediaFeature$2.generate=generate$p;MediaFeature$2.name=name$l;MediaFeature$2.parse=parse$p;MediaFeature$2.structure=structure$l;var MediaQuery$2={};const types$n=types$R;const name$k="MediaQuery";const structure$k={children:[["Identifier","MediaFeature","WhiteSpace"]]};function parse$o(){const children=this.createList();let child=null;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$n.Comment:case types$n.WhiteSpace:this.next();continue;case types$n.Ident:child=this.Identifier();break;case types$n.LeftParenthesis:child=this.MediaFeature();break;default:break scan}children.push(child)}if(child===null){this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocationFromList(children),children:children}}function generate$o(node){this.children(node)}MediaQuery$2.generate=generate$o;MediaQuery$2.name=name$k;MediaQuery$2.parse=parse$o;MediaQuery$2.structure=structure$k;var MediaQueryList$2={};const types$m=types$R;const name$j="MediaQueryList";const structure$j={children:[["MediaQuery"]]};function parse$n(){const children=this.createList();this.skipSC();while(!this.eof){children.push(this.MediaQuery());if(this.tokenType!==types$m.Comma){break}this.next()}return{type:"MediaQueryList",loc:this.getLocationFromList(children),children:children}}function generate$n(node){this.children(node,(()=>this.token(types$m.Comma,",")))}MediaQueryList$2.generate=generate$n;MediaQueryList$2.name=name$j;MediaQueryList$2.parse=parse$n;MediaQueryList$2.structure=structure$j;var Nth$2={};const types$l=types$R;const name$i="Nth";const structure$i={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function parse$m(){this.skipSC();const start=this.tokenStart;let end=start;let selector=null;let nth;if(this.lookupValue(0,"odd")||this.lookupValue(0,"even")){nth=this.Identifier()}else{nth=this.AnPlusB()}end=this.tokenStart;this.skipSC();if(this.lookupValue(0,"of")){this.next();selector=this.SelectorList();end=this.tokenStart}return{type:"Nth",loc:this.getLocation(start,end),nth:nth,selector:selector}}function generate$m(node){this.node(node.nth);if(node.selector!==null){this.token(types$l.Ident,"of");this.node(node.selector)}}Nth$2.generate=generate$m;Nth$2.name=name$i;Nth$2.parse=parse$m;Nth$2.structure=structure$i;var _Number$5={};const types$k=types$R;const name$h="Number";const structure$h={value:String};function parse$l(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(types$k.Number)}}function generate$l(node){this.token(types$k.Number,node.value)}_Number$5.generate=generate$l;_Number$5.name=name$h;_Number$5.parse=parse$l;_Number$5.structure=structure$h;var Operator$2={};const name$g="Operator";const structure$g={value:String};function parse$k(){const start=this.tokenStart;this.next();return{type:"Operator",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$k(node){this.tokenize(node.value)}Operator$2.generate=generate$k;Operator$2.name=name$g;Operator$2.parse=parse$k;Operator$2.structure=structure$g;var Parentheses$2={};const types$j=types$R;const name$f="Parentheses";const structure$f={children:[[]]};function parse$j(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$j.LeftParenthesis);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$j.RightParenthesis)}return{type:"Parentheses",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$j(node){this.token(types$j.LeftParenthesis,"(");this.children(node);this.token(types$j.RightParenthesis,")")}Parentheses$2.generate=generate$j;Parentheses$2.name=name$f;Parentheses$2.parse=parse$j;Parentheses$2.structure=structure$f;var Percentage$4={};const types$i=types$R;const name$e="Percentage";const structure$e={value:String};function parse$i(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(types$i.Percentage)}}function generate$i(node){this.token(types$i.Percentage,node.value+"%")}Percentage$4.generate=generate$i;Percentage$4.name=name$e;Percentage$4.parse=parse$i;Percentage$4.structure=structure$e;var PseudoClassSelector$2={};const types$h=types$R;const name$d="PseudoClassSelector";const walkContext$4="function";const structure$d={name:String,children:[["Raw"],null]};function parse$h(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$h.Colon);if(this.tokenType===types$h.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$h.RightParenthesis)}else{name=this.consume(types$h.Ident)}return{type:"PseudoClassSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$h(node){this.token(types$h.Colon,":");if(node.children===null){this.token(types$h.Ident,node.name)}else{this.token(types$h.Function,node.name+"(");this.children(node);this.token(types$h.RightParenthesis,")")}}PseudoClassSelector$2.generate=generate$h;PseudoClassSelector$2.name=name$d;PseudoClassSelector$2.parse=parse$h;PseudoClassSelector$2.structure=structure$d;PseudoClassSelector$2.walkContext=walkContext$4;var PseudoElementSelector$2={};const types$g=types$R;const name$c="PseudoElementSelector";const walkContext$3="function";const structure$c={name:String,children:[["Raw"],null]};function parse$g(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$g.Colon);this.eat(types$g.Colon);if(this.tokenType===types$g.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$g.RightParenthesis)}else{name=this.consume(types$g.Ident)}return{type:"PseudoElementSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$g(node){this.token(types$g.Colon,":");this.token(types$g.Colon,":");if(node.children===null){this.token(types$g.Ident,node.name)}else{this.token(types$g.Function,node.name+"(");this.children(node);this.token(types$g.RightParenthesis,")")}}PseudoElementSelector$2.generate=generate$g;PseudoElementSelector$2.name=name$c;PseudoElementSelector$2.parse=parse$g;PseudoElementSelector$2.structure=structure$c;PseudoElementSelector$2.walkContext=walkContext$3;var Ratio$2={};const types$f=types$R;const charCodeDefinitions$4=charCodeDefinitions$c;const SOLIDUS$2=47;const FULLSTOP$1=46;function consumeNumber(){this.skipSC();const value=this.consume(types$f.Number);for(let i=0;i<value.length;i++){const code=value.charCodeAt(i);if(!charCodeDefinitions$4.isDigit(code)&&code!==FULLSTOP$1){this.error("Unsigned number is expected",this.tokenStart-value.length+i)}}if(Number(value)===0){this.error("Zero number is not allowed",this.tokenStart-value.length)}return value}const name$b="Ratio";const structure$b={left:String,right:String};function parse$f(){const start=this.tokenStart;const left=consumeNumber.call(this);let right;this.skipSC();this.eatDelim(SOLIDUS$2);right=consumeNumber.call(this);return{type:"Ratio",loc:this.getLocation(start,this.tokenStart),left:left,right:right}}function generate$f(node){this.token(types$f.Number,node.left);this.token(types$f.Delim,"/");this.token(types$f.Number,node.right)}Ratio$2.generate=generate$f;Ratio$2.name=name$b;Ratio$2.parse=parse$f;Ratio$2.structure=structure$b;var Raw$4={};const types$e=types$R;function getOffsetExcludeWS(){if(this.tokenIndex>0){if(this.lookupType(-1)===types$e.WhiteSpace){return this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset}}return this.tokenStart}const name$a="Raw";const structure$a={value:String};function parse$e(startToken,consumeUntil,excludeWhiteSpace){const startOffset=this.getTokenStart(startToken);let endOffset;this.skipUntilBalanced(startToken,consumeUntil||this.consumeUntilBalanceEnd);if(excludeWhiteSpace&&this.tokenStart>startOffset){endOffset=getOffsetExcludeWS.call(this)}else{endOffset=this.tokenStart}return{type:"Raw",loc:this.getLocation(startOffset,endOffset),value:this.substring(startOffset,endOffset)}}function generate$e(node){this.tokenize(node.value)}Raw$4.generate=generate$e;Raw$4.name=name$a;Raw$4.parse=parse$e;Raw$4.structure=structure$a;var Rule$4={};const types$d=types$R;function consumeRaw$2(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracket,true)}function consumePrelude(){const prelude=this.SelectorList();if(prelude.type!=="Raw"&&this.eof===false&&this.tokenType!==types$d.LeftCurlyBracket){this.error()}return prelude}const name$9="Rule";const walkContext$2="rule";const structure$9={prelude:["SelectorList","Raw"],block:["Block"]};function parse$d(){const startToken=this.tokenIndex;const startOffset=this.tokenStart;let prelude;let block;if(this.parseRulePrelude){prelude=this.parseWithFallback(consumePrelude,consumeRaw$2)}else{prelude=consumeRaw$2.call(this,startToken)}block=this.Block(true);return{type:"Rule",loc:this.getLocation(startOffset,this.tokenStart),prelude:prelude,block:block}}function generate$d(node){this.node(node.prelude);this.node(node.block)}Rule$4.generate=generate$d;Rule$4.name=name$9;Rule$4.parse=parse$d;Rule$4.structure=structure$9;Rule$4.walkContext=walkContext$2;var Selector$3={};const name$8="Selector";const structure$8={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator","WhiteSpace"]]};function parse$c(){const children=this.readSequence(this.scope.Selector);if(this.getFirstListNode(children)===null){this.error("Selector is expected")}return{type:"Selector",loc:this.getLocationFromList(children),children:children}}function generate$c(node){this.children(node)}Selector$3.generate=generate$c;Selector$3.name=name$8;Selector$3.parse=parse$c;Selector$3.structure=structure$8;var SelectorList$2={};const types$c=types$R;const name$7="SelectorList";const walkContext$1="selector";const structure$7={children:[["Selector","Raw"]]};function parse$b(){const children=this.createList();while(!this.eof){children.push(this.Selector());if(this.tokenType===types$c.Comma){this.next();continue}break}return{type:"SelectorList",loc:this.getLocationFromList(children),children:children}}function generate$b(node){this.children(node,(()=>this.token(types$c.Comma,",")))}SelectorList$2.generate=generate$b;SelectorList$2.name=name$7;SelectorList$2.parse=parse$b;SelectorList$2.structure=structure$7;SelectorList$2.walkContext=walkContext$1;var _String={};var string$3={};const charCodeDefinitions$3=charCodeDefinitions$c;const utils$d=utils$k;const REVERSE_SOLIDUS$2=92;const QUOTATION_MARK$1=34;const APOSTROPHE$1=39;function decode$2(str){const len=str.length;const firstChar=str.charCodeAt(0);const start=firstChar===QUOTATION_MARK$1||firstChar===APOSTROPHE$1?1:0;const end=start===1&&len>1&&str.charCodeAt(len-1)===firstChar?len-2:len-1;let decoded="";for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$2){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$3.isValidEscape(REVERSE_SOLIDUS$2,code)){const escapeStart=i-1;const escapeEnd=utils$d.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$d.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$2(str,apostrophe){const quote=apostrophe?"'":'"';const quoteCode=apostrophe?APOSTROPHE$1:QUOTATION_MARK$1;let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===quoteCode||code===REVERSE_SOLIDUS$2){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&(charCodeDefinitions$3.isHexDigit(code)||charCodeDefinitions$3.isWhiteSpace(code))){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return quote+encoded+quote}string$3.decode=decode$2;string$3.encode=encode$2;const string$2=string$3;const types$b=types$R;const name$6="String";const structure$6={value:String};function parse$a(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:string$2.decode(this.consume(types$b.String))}}function generate$a(node){this.token(types$b.String,string$2.encode(node.value))}_String.generate=generate$a;_String.name=name$6;_String.parse=parse$a;_String.structure=structure$6;var StyleSheet$2={};const types$a=types$R;const EXCLAMATIONMARK=33;function consumeRaw$1(startToken){return this.Raw(startToken,null,false)}const name$5="StyleSheet";const walkContext="stylesheet";const structure$5={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function parse$9(){const start=this.tokenStart;const children=this.createList();let child;while(!this.eof){switch(this.tokenType){case types$a.WhiteSpace:this.next();continue;case types$a.Comment:if(this.charCodeAt(this.tokenStart+2)!==EXCLAMATIONMARK){this.next();continue}child=this.Comment();break;case types$a.CDO:child=this.CDO();break;case types$a.CDC:child=this.CDC();break;case types$a.AtKeyword:child=this.parseWithFallback(this.Atrule,consumeRaw$1);break;default:child=this.parseWithFallback(this.Rule,consumeRaw$1)}children.push(child)}return{type:"StyleSheet",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$9(node){this.children(node)}StyleSheet$2.generate=generate$9;StyleSheet$2.name=name$5;StyleSheet$2.parse=parse$9;StyleSheet$2.structure=structure$5;StyleSheet$2.walkContext=walkContext;var TypeSelector$4={};const types$9=types$R;const ASTERISK$2=42;const VERTICALLINE$1=124;function eatIdentifierOrAsterisk(){if(this.tokenType!==types$9.Ident&&this.isDelim(ASTERISK$2)===false){this.error("Identifier or asterisk is expected")}this.next()}const name$4="TypeSelector";const structure$4={name:String};function parse$8(){const start=this.tokenStart;if(this.isDelim(VERTICALLINE$1)){this.next();eatIdentifierOrAsterisk.call(this)}else{eatIdentifierOrAsterisk.call(this);if(this.isDelim(VERTICALLINE$1)){this.next();eatIdentifierOrAsterisk.call(this)}}return{type:"TypeSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function generate$8(node){this.tokenize(node.name)}TypeSelector$4.generate=generate$8;TypeSelector$4.name=name$4;TypeSelector$4.parse=parse$8;TypeSelector$4.structure=structure$4;var UnicodeRange$2={};const types$8=types$R;const charCodeDefinitions$2=charCodeDefinitions$c;const PLUSSIGN$2=43;const HYPHENMINUS$1=45;const QUESTIONMARK=63;function eatHexSequence(offset,allowDash){let len=0;for(let pos=this.tokenStart+offset;pos<this.tokenEnd;pos++){const code=this.charCodeAt(pos);if(code===HYPHENMINUS$1&&allowDash&&len!==0){eatHexSequence.call(this,offset+len+1,false);return-1}if(!charCodeDefinitions$2.isHexDigit(code)){this.error(allowDash&&len!==0?"Hyphen minus"+(len<6?" or hex digit":"")+" is expected":len<6?"Hex digit is expected":"Unexpected input",pos)}if(++len>6){this.error("Too many hex digits",pos)}}this.next();return len}function eatQuestionMarkSequence(max){let count=0;while(this.isDelim(QUESTIONMARK)){if(++count>max){this.error("Too many question marks")}this.next()}}function startsWith(code){if(this.charCodeAt(this.tokenStart)!==code){this.error((code===PLUSSIGN$2?"Plus sign":"Hyphen minus")+" is expected")}}function scanUnicodeRange(){let hexLength=0;switch(this.tokenType){case types$8.Number:hexLength=eatHexSequence.call(this,1,true);if(this.isDelim(QUESTIONMARK)){eatQuestionMarkSequence.call(this,6-hexLength);break}if(this.tokenType===types$8.Dimension||this.tokenType===types$8.Number){startsWith.call(this,HYPHENMINUS$1);eatHexSequence.call(this,1,false);break}break;case types$8.Dimension:hexLength=eatHexSequence.call(this,1,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength)}break;default:this.eatDelim(PLUSSIGN$2);if(this.tokenType===types$8.Ident){hexLength=eatHexSequence.call(this,0,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength)}break}if(this.isDelim(QUESTIONMARK)){this.next();eatQuestionMarkSequence.call(this,5);break}this.error("Hex digit or question mark is expected")}}const name$3="UnicodeRange";const structure$3={value:String};function parse$7(){const start=this.tokenStart;this.eatIdent("u");scanUnicodeRange.call(this);return{type:"UnicodeRange",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$7(node){this.tokenize(node.value)}UnicodeRange$2.generate=generate$7;UnicodeRange$2.name=name$3;UnicodeRange$2.parse=parse$7;UnicodeRange$2.structure=structure$3;var Url$4={};var url$2={};const charCodeDefinitions$1=charCodeDefinitions$c;const utils$c=utils$k;const SPACE$1=32;const REVERSE_SOLIDUS$1=92;const QUOTATION_MARK=34;const APOSTROPHE=39;const LEFTPARENTHESIS=40;const RIGHTPARENTHESIS=41;function decode$1(str){const len=str.length;let start=4;let end=str.charCodeAt(len-1)===RIGHTPARENTHESIS?len-2:len-1;let decoded="";while(start<end&&charCodeDefinitions$1.isWhiteSpace(str.charCodeAt(start))){start++}while(start<end&&charCodeDefinitions$1.isWhiteSpace(str.charCodeAt(end))){end--}for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$1){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$1.isValidEscape(REVERSE_SOLIDUS$1,code)){const escapeStart=i-1;const escapeEnd=utils$c.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$c.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$1(str){let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===SPACE$1||code===REVERSE_SOLIDUS$1||code===QUOTATION_MARK||code===APOSTROPHE||code===LEFTPARENTHESIS||code===RIGHTPARENTHESIS){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&charCodeDefinitions$1.isHexDigit(code)){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return"url("+encoded+")"}url$2.decode=decode$1;url$2.encode=encode$1;const url$1=url$2;const string$1=string$3;const types$7=types$R;const name$2="Url";const structure$2={value:String};function parse$6(){const start=this.tokenStart;let value;switch(this.tokenType){case types$7.Url:value=url$1.decode(this.consume(types$7.Url));break;case types$7.Function:if(!this.cmpStr(this.tokenStart,this.tokenEnd,"url(")){this.error("Function name must be `url`")}this.eat(types$7.Function);this.skipSC();value=string$1.decode(this.consume(types$7.String));this.skipSC();if(!this.eof){this.eat(types$7.RightParenthesis)}break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(start,this.tokenStart),value:value}}function generate$6(node){this.token(types$7.Url,url$1.encode(node.value))}Url$4.generate=generate$6;Url$4.name=name$2;Url$4.parse=parse$6;Url$4.structure=structure$2;var Value$4={};const name$1="Value";const structure$1={children:[[]]};function parse$5(){const start=this.tokenStart;const children=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$5(node){this.children(node)}Value$4.generate=generate$5;Value$4.name=name$1;Value$4.parse=parse$5;Value$4.structure=structure$1;var WhiteSpace$4={};const types$6=types$R;const SPACE=Object.freeze({type:"WhiteSpace",loc:null,value:" "});const name="WhiteSpace";const structure={value:String};function parse$4(){this.eat(types$6.WhiteSpace);return SPACE}function generate$4(node){this.token(types$6.WhiteSpace,node.value)}WhiteSpace$4.generate=generate$4;WhiteSpace$4.name=name;WhiteSpace$4.parse=parse$4;WhiteSpace$4.structure=structure;const AnPlusB$1=AnPlusB$2;const Atrule$5=Atrule$6;const AtrulePrelude$1=AtrulePrelude$2;const AttributeSelector$3=AttributeSelector$4;const Block$1=Block$2;const Brackets$1=Brackets$2;const CDC$1=CDC$2;const CDO$1=CDO$2;const ClassSelector$1=ClassSelector$2;const Combinator$1=Combinator$2;const Comment$3=Comment$4;const Declaration$3=Declaration$4;const DeclarationList$1=DeclarationList$2;const Dimension$3=Dimension$4;const Function$1=_Function;const Hash$1=Hash$2;const Identifier$1=Identifier$2;const IdSelector$1=IdSelector$2;const MediaFeature$1=MediaFeature$2;const MediaQuery$1=MediaQuery$2;const MediaQueryList$1=MediaQueryList$2;const Nth$1=Nth$2;const Number$1$1=_Number$5;const Operator$1=Operator$2;const Parentheses$1=Parentheses$2;const Percentage$3=Percentage$4;const PseudoClassSelector$1=PseudoClassSelector$2;const PseudoElementSelector$1=PseudoElementSelector$2;const Ratio$1=Ratio$2;const Raw$3=Raw$4;const Rule$3=Rule$4;const Selector$2=Selector$3;const SelectorList$1=SelectorList$2;const String$1$1=_String;const StyleSheet$1=StyleSheet$2;const TypeSelector$3=TypeSelector$4;const UnicodeRange$1=UnicodeRange$2;const Url$3=Url$4;const Value$3=Value$4;const WhiteSpace$3=WhiteSpace$4;node.AnPlusB=AnPlusB$1;node.Atrule=Atrule$5;node.AtrulePrelude=AtrulePrelude$1;node.AttributeSelector=AttributeSelector$3;node.Block=Block$1;node.Brackets=Brackets$1;node.CDC=CDC$1;node.CDO=CDO$1;node.ClassSelector=ClassSelector$1;node.Combinator=Combinator$1;node.Comment=Comment$3;node.Declaration=Declaration$3;node.DeclarationList=DeclarationList$1;node.Dimension=Dimension$3;node.Function=Function$1;node.Hash=Hash$1;node.Identifier=Identifier$1;node.IdSelector=IdSelector$1;node.MediaFeature=MediaFeature$1;node.MediaQuery=MediaQuery$1;node.MediaQueryList=MediaQueryList$1;node.Nth=Nth$1;node.Number=Number$1$1;node.Operator=Operator$1;node.Parentheses=Parentheses$1;node.Percentage=Percentage$3;node.PseudoClassSelector=PseudoClassSelector$1;node.PseudoElementSelector=PseudoElementSelector$1;node.Ratio=Ratio$1;node.Raw=Raw$3;node.Rule=Rule$3;node.Selector=Selector$2;node.SelectorList=SelectorList$1;node.String=String$1$1;node.StyleSheet=StyleSheet$1;node.TypeSelector=TypeSelector$3;node.UnicodeRange=UnicodeRange$1;node.Url=Url$3;node.Value=Value$3;node.WhiteSpace=WhiteSpace$3;const data=data$1;const index$7=node;const lexerConfig={generic:true,...data,node:index$7};var lexer$3=lexerConfig;var scope={};const types$5=types$R;const NUMBERSIGN$1=35;const ASTERISK$1=42;const PLUSSIGN$1=43;const HYPHENMINUS=45;const SOLIDUS$1=47;const U=117;function defaultRecognizer(context){switch(this.tokenType){case types$5.Hash:return this.Hash();case types$5.Comma:return this.Operator();case types$5.LeftParenthesis:return this.Parentheses(this.readSequence,context.recognizer);case types$5.LeftSquareBracket:return this.Brackets(this.readSequence,context.recognizer);case types$5.String:return this.String();case types$5.Dimension:return this.Dimension();case types$5.Percentage:return this.Percentage();case types$5.Number:return this.Number();case types$5.Function:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,context.recognizer);case types$5.Url:return this.Url();case types$5.Ident:if(this.cmpChar(this.tokenStart,U)&&this.cmpChar(this.tokenStart+1,PLUSSIGN$1)){return this.UnicodeRange()}else{return this.Identifier()}case types$5.Delim:{const code=this.charCodeAt(this.tokenStart);if(code===SOLIDUS$1||code===ASTERISK$1||code===PLUSSIGN$1||code===HYPHENMINUS){return this.Operator()}if(code===NUMBERSIGN$1){this.error("Hex or identifier is expected",this.tokenStart+1)}break}}}var _default$2=defaultRecognizer;const _default$1=_default$2;const atrulePrelude$1={getNode:_default$1};var atrulePrelude_1=atrulePrelude$1;const types$4=types$R;const NUMBERSIGN=35;const ASTERISK=42;const PLUSSIGN=43;const SOLIDUS=47;const FULLSTOP=46;const GREATERTHANSIGN=62;const VERTICALLINE=124;const TILDE=126;function onWhiteSpace(next,children){if(children.last!==null&&children.last.type!=="Combinator"&&next!==null&&next.type!=="Combinator"){children.push({type:"Combinator",loc:null,name:" "})}}function getNode(){switch(this.tokenType){case types$4.LeftSquareBracket:return this.AttributeSelector();case types$4.Hash:return this.IdSelector();case types$4.Colon:if(this.lookupType(1)===types$4.Colon){return this.PseudoElementSelector()}else{return this.PseudoClassSelector()}case types$4.Ident:return this.TypeSelector();case types$4.Number:case types$4.Percentage:return this.Percentage();case types$4.Dimension:if(this.charCodeAt(this.tokenStart)===FULLSTOP){this.error("Identifier is expected",this.tokenStart+1)}break;case types$4.Delim:{const code=this.charCodeAt(this.tokenStart);switch(code){case PLUSSIGN:case GREATERTHANSIGN:case TILDE:case SOLIDUS:return this.Combinator();case FULLSTOP:return this.ClassSelector();case ASTERISK:case VERTICALLINE:return this.TypeSelector();case NUMBERSIGN:return this.IdSelector()}break}}}const Selector$1={onWhiteSpace:onWhiteSpace,getNode:getNode};var selector$2=Selector$1;function expressionFn(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}var expression$1=expressionFn;const types$3=types$R;function varFn(){const children=this.createList();this.skipSC();children.push(this.Identifier());this.skipSC();if(this.tokenType===types$3.Comma){children.push(this.Operator());const startIndex=this.tokenIndex;const value=this.parseCustomProperty?this.Value(null):this.Raw(this.tokenIndex,this.consumeUntilExclamationMarkOrSemicolon,false);if(value.type==="Value"&&value.children.isEmpty){for(let offset=startIndex-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$3.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}children.push(value)}return children}var _var$1=varFn;const _default=_default$2;const expression=expression$1;const _var=_var$1;function isPlusMinusOperator(node){return node!==null&&node.type==="Operator"&&(node.value[node.value.length-1]==="-"||node.value[node.value.length-1]==="+")}const value$1={getNode:_default,onWhiteSpace(next,children){if(isPlusMinusOperator(next)){next.value=" "+next.value}if(isPlusMinusOperator(children.last)){children.last.value+=" "}},expression:expression,var:_var};var value_1=value$1;const atrulePrelude=atrulePrelude_1;const selector$1=selector$2;const value=value_1;scope.AtrulePrelude=atrulePrelude;scope.Selector=selector$1;scope.Value=value;const fontFace$1={parse:{prelude:null,block(){return this.Block(true)}}};var fontFace_1=fontFace$1;const types$2=types$R;const importAtrule={parse:{prelude(){const children=this.createList();this.skipSC();switch(this.tokenType){case types$2.String:children.push(this.String());break;case types$2.Url:case types$2.Function:children.push(this.Url());break;default:this.error("String or url() is expected")}if(this.lookupNonWSType(0)===types$2.Ident||this.lookupNonWSType(0)===types$2.LeftParenthesis){children.push(this.MediaQueryList())}return children},block:null}};var _import$1=importAtrule;const media$1={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(){return this.Block(false)}}};var media_1=media$1;const page$1={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(true)}}};var page_1=page$1;const types$1=types$R;function consumeRaw(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}function parentheses(){this.skipSC();if(this.tokenType===types$1.Ident&&this.lookupNonWSType(1)===types$1.Colon){return this.createSingleNodeList(this.Declaration())}return readSequence.call(this)}function readSequence(){const children=this.createList();let child;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$1.Comment:case types$1.WhiteSpace:this.next();continue;case types$1.Function:child=this.Function(consumeRaw,this.scope.AtrulePrelude);break;case types$1.Ident:child=this.Identifier();break;case types$1.LeftParenthesis:child=this.Parentheses(parentheses,this.scope.AtrulePrelude);break;default:break scan}children.push(child)}return children}const supports$1={parse:{prelude(){const children=readSequence.call(this);if(this.getFirstListNode(children)===null){this.error("Condition is expected")}return children},block(){return this.Block(false)}}};var supports_1=supports$1;const fontFace=fontFace_1;const _import=_import$1;const media=media_1;const page=page_1;const supports=supports_1;const atrule={"font-face":fontFace,import:_import,media:media,page:page,supports:supports};var atrule_1=atrule;const selectorList={parse(){return this.createSingleNodeList(this.SelectorList())}};const selector={parse(){return this.createSingleNodeList(this.Selector())}};const identList={parse(){return this.createSingleNodeList(this.Identifier())}};const nth={parse(){return this.createSingleNodeList(this.Nth())}};const pseudo={dir:identList,has:selectorList,lang:identList,matches:selectorList,is:selectorList,"-moz-any":selectorList,"-webkit-any":selectorList,where:selectorList,not:selectorList,"nth-child":nth,"nth-last-child":nth,"nth-last-of-type":nth,"nth-of-type":nth,slotted:selector};var pseudo_1=pseudo;var indexParse$1={};const AnPlusB=AnPlusB$2;const Atrule$4=Atrule$6;const AtrulePrelude=AtrulePrelude$2;const AttributeSelector$2=AttributeSelector$4;const Block=Block$2;const Brackets=Brackets$2;const CDC=CDC$2;const CDO=CDO$2;const ClassSelector=ClassSelector$2;const Combinator=Combinator$2;const Comment$2=Comment$4;const Declaration$2=Declaration$4;const DeclarationList=DeclarationList$2;const Dimension$2=Dimension$4;const Function=_Function;const Hash=Hash$2;const Identifier=Identifier$2;const IdSelector=IdSelector$2;const MediaFeature=MediaFeature$2;const MediaQuery=MediaQuery$2;const MediaQueryList=MediaQueryList$2;const Nth=Nth$2;const Number$2=_Number$5;const Operator=Operator$2;const Parentheses=Parentheses$2;const Percentage$2=Percentage$4;const PseudoClassSelector=PseudoClassSelector$2;const PseudoElementSelector=PseudoElementSelector$2;const Ratio=Ratio$2;const Raw$2=Raw$4;const Rule$2=Rule$4;const Selector=Selector$3;const SelectorList=SelectorList$2;const String$1=_String;const StyleSheet=StyleSheet$2;const TypeSelector$2=TypeSelector$4;const UnicodeRange=UnicodeRange$2;const Url$2=Url$4;const Value$2=Value$4;const WhiteSpace$2=WhiteSpace$4;indexParse$1.AnPlusB=AnPlusB.parse;indexParse$1.Atrule=Atrule$4.parse;indexParse$1.AtrulePrelude=AtrulePrelude.parse;indexParse$1.AttributeSelector=AttributeSelector$2.parse;indexParse$1.Block=Block.parse;indexParse$1.Brackets=Brackets.parse;indexParse$1.CDC=CDC.parse;indexParse$1.CDO=CDO.parse;indexParse$1.ClassSelector=ClassSelector.parse;indexParse$1.Combinator=Combinator.parse;indexParse$1.Comment=Comment$2.parse;indexParse$1.Declaration=Declaration$2.parse;indexParse$1.DeclarationList=DeclarationList.parse;indexParse$1.Dimension=Dimension$2.parse;indexParse$1.Function=Function.parse;indexParse$1.Hash=Hash.parse;indexParse$1.Identifier=Identifier.parse;indexParse$1.IdSelector=IdSelector.parse;indexParse$1.MediaFeature=MediaFeature.parse;indexParse$1.MediaQuery=MediaQuery.parse;indexParse$1.MediaQueryList=MediaQueryList.parse;indexParse$1.Nth=Nth.parse;indexParse$1.Number=Number$2.parse;indexParse$1.Operator=Operator.parse;indexParse$1.Parentheses=Parentheses.parse;indexParse$1.Percentage=Percentage$2.parse;indexParse$1.PseudoClassSelector=PseudoClassSelector.parse;indexParse$1.PseudoElementSelector=PseudoElementSelector.parse;indexParse$1.Ratio=Ratio.parse;indexParse$1.Raw=Raw$2.parse;indexParse$1.Rule=Rule$2.parse;indexParse$1.Selector=Selector.parse;indexParse$1.SelectorList=SelectorList.parse;indexParse$1.String=String$1.parse;indexParse$1.StyleSheet=StyleSheet.parse;indexParse$1.TypeSelector=TypeSelector$2.parse;indexParse$1.UnicodeRange=UnicodeRange.parse;indexParse$1.Url=Url$2.parse;indexParse$1.Value=Value$2.parse;indexParse$1.WhiteSpace=WhiteSpace$2.parse;const index$6=scope;const index$1$2=atrule_1;const index$2$1=pseudo_1;const indexParse=indexParse$1;const config$1={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(options){return this.AtrulePrelude(options.atrule?String(options.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(true)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:index$6,atrule:index$1$2,pseudo:index$2$1,node:indexParse};var parser$1=config$1;const index$5=node;const config={node:index$5};var walker$1=config;const create$1=create_1;const lexer$2=lexer$3;const parser=parser$1;const walker=walker$1;const syntax$2=create$1({...lexer$2,...parser,...walker});var syntax_1=syntax$2;var version$3="2.2.1";var definitionSyntax={};const SyntaxError$1=_SyntaxError;const generate$3=generate$L;const parse$3=parse$L;const walk$2=walk$5;definitionSyntax.SyntaxError=SyntaxError$1.SyntaxError;definitionSyntax.generate=generate$3.generate;definitionSyntax.parse=parse$3.parse;definitionSyntax.walk=walk$2.walk;var clone$2={};const List$1=List$7;function clone$1(node){const result={};for(const key in node){let value=node[key];if(value){if(Array.isArray(value)||value instanceof List$1.List){value=value.map(clone$1)}else if(value.constructor===Object){value=clone$1(value)}}result[key]=value}return result}clone$2.clone=clone$1;var ident$1={};const charCodeDefinitions=charCodeDefinitions$c;const utils$b=utils$k;const REVERSE_SOLIDUS=92;function decode(str){const end=str.length-1;let decoded="";for(let i=0;i<str.length;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS){if(i===end){break}code=str.charCodeAt(++i);if(charCodeDefinitions.isValidEscape(REVERSE_SOLIDUS,code)){const escapeStart=i-1;const escapeEnd=utils$b.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$b.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode(str){let encoded="";if(str.length===1&&str.charCodeAt(0)===45){return"\\-"}for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127||code>=48&&code<=57&&(i===0||i===1&&str.charCodeAt(0)===45)){encoded+="\\"+code.toString(16)+" ";continue}if(charCodeDefinitions.isName(code)){encoded+=str.charAt(i)}else{encoded+="\\"+str.charAt(i)}}return encoded}ident$1.decode=decode;ident$1.encode=encode;const index$1$1=syntax_1;const version$2=version$3;const create=create_1;const List=List$7;const Lexer=Lexer$3;const index$4=definitionSyntax;const clone=clone$2;const names$1=names$4;const ident=ident$1;const string=string$3;const url=url$2;const types=types$R;const names=names$8;const TokenStream=TokenStream$4;const{tokenize:tokenize$1,parse:parse$2,generate:generate$2,lexer:lexer$1,createLexer:createLexer,walk:walk$1,find:find$1,findLast:findLast$1,findAll:findAll$1,toPlainObject:toPlainObject$1,fromPlainObject:fromPlainObject$1,fork:fork}=index$1$1;cjs$1.version=version$2.version;cjs$1.createSyntax=create;cjs$1.List=List.List;cjs$1.Lexer=Lexer.Lexer;cjs$1.definitionSyntax=index$4;cjs$1.clone=clone.clone;cjs$1.isCustomProperty=names$1.isCustomProperty;cjs$1.keyword=names$1.keyword;cjs$1.property=names$1.property;cjs$1.vendorPrefix=names$1.vendorPrefix;cjs$1.ident=ident;cjs$1.string=string;cjs$1.url=url;cjs$1.tokenTypes=types;cjs$1.tokenNames=names;cjs$1.TokenStream=TokenStream.TokenStream;cjs$1.createLexer=createLexer;cjs$1.find=find$1;cjs$1.findAll=findAll$1;cjs$1.findLast=findLast$1;cjs$1.fork=fork;cjs$1.fromPlainObject=fromPlainObject$1;cjs$1.generate=generate$2;cjs$1.lexer=lexer$1;cjs$1.parse=parse$2;cjs$1.toPlainObject=toPlainObject$1;cjs$1.tokenize=tokenize$1;cjs$1.walk=walk$1;var cjs={};var version$1="5.0.5";var syntax$1={};var usage$1={};const{hasOwnProperty:hasOwnProperty$4}=Object.prototype;function buildMap(list,caseInsensitive){const map=Object.create(null);if(!Array.isArray(list)){return null}for(let name of list){if(caseInsensitive){name=name.toLowerCase()}map[name]=true}return map}function buildList(data){if(!data){return null}const tags=buildMap(data.tags,true);const ids=buildMap(data.ids);const classes=buildMap(data.classes);if(tags===null&&ids===null&&classes===null){return null}return{tags:tags,ids:ids,classes:classes}}function buildIndex(data){let scopes=false;if(data.scopes&&Array.isArray(data.scopes)){scopes=Object.create(null);for(let i=0;i<data.scopes.length;i++){const list=data.scopes[i];if(!list||!Array.isArray(list)){throw new Error("Wrong usage format")}for(const name of list){if(hasOwnProperty$4.call(scopes,name)){throw new Error(`Class can't be used for several scopes: ${name}`)}scopes[name]=i+1}}}return{whitelist:buildList(data),blacklist:buildList(data.blacklist),scopes:scopes}}usage$1.buildIndex=buildIndex;var utils$a={};function hasNoChildren(node){return!node||!node.children||node.children.isEmpty}function isNodeChildrenList(node,list){return node!==null&&node.children===list}utils$a.hasNoChildren=hasNoChildren;utils$a.isNodeChildrenList=isNodeChildrenList;const cssTree$m=cjs$1;const utils$9=utils$a;function cleanAtrule(node,item,list){if(node.block){if(this.stylesheet!==null){this.stylesheet.firstAtrulesAllowed=false}if(utils$9.hasNoChildren(node.block)){list.remove(item);return}}switch(node.name){case"charset":if(utils$9.hasNoChildren(node.prelude)){list.remove(item);return}if(item.prev){list.remove(item);return}break;case"import":if(this.stylesheet===null||!this.stylesheet.firstAtrulesAllowed){list.remove(item);return}list.prevUntil(item.prev,(function(rule){if(rule.type==="Atrule"){if(rule.name==="import"||rule.name==="charset"){return}}this.root.firstAtrulesAllowed=false;list.remove(item);return true}),this);break;default:{const name=cssTree$m.keyword(node.name).basename;if(name==="keyframes"||name==="media"||name==="supports"){if(utils$9.hasNoChildren(node.prelude)||utils$9.hasNoChildren(node.block)){list.remove(item)}}}}}var Atrule$3=cleanAtrule;function cleanComment(data,item,list){list.remove(item)}var Comment$1=cleanComment;const cssTree$l=cjs$1;function cleanDeclartion(node,item,list){if(node.value.children&&node.value.children.isEmpty){list.remove(item);return}if(cssTree$l.property(node.property).custom){if(/\S/.test(node.value.value)){node.value.value=node.value.value.trim()}}}var Declaration$1=cleanDeclartion;const utils$8=utils$a;function cleanRaw(node,item,list){if(utils$8.isNodeChildrenList(this.stylesheet,list)||utils$8.isNodeChildrenList(this.block,list)){list.remove(item)}}var Raw$1=cleanRaw;const cssTree$k=cjs$1;const utils$7=utils$a;const{hasOwnProperty:hasOwnProperty$3}=Object.prototype;const skipUsageFilteringAtrule=new Set(["keyframes"]);function cleanUnused(selectorList,usageData){selectorList.children.forEach(((selector,item,list)=>{let shouldRemove=false;cssTree$k.walk(selector,(function(node){if(this.selector===null||this.selector===selectorList){switch(node.type){case"SelectorList":if(this.function===null||this.function.name.toLowerCase()!=="not"){if(cleanUnused(node,usageData)){shouldRemove=true}}break;case"ClassSelector":if(usageData.whitelist!==null&&usageData.whitelist.classes!==null&&!hasOwnProperty$3.call(usageData.whitelist.classes,node.name)){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.classes!==null&&hasOwnProperty$3.call(usageData.blacklist.classes,node.name)){shouldRemove=true}break;case"IdSelector":if(usageData.whitelist!==null&&usageData.whitelist.ids!==null&&!hasOwnProperty$3.call(usageData.whitelist.ids,node.name)){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.ids!==null&&hasOwnProperty$3.call(usageData.blacklist.ids,node.name)){shouldRemove=true}break;case"TypeSelector":if(node.name.charAt(node.name.length-1)!=="*"){if(usageData.whitelist!==null&&usageData.whitelist.tags!==null&&!hasOwnProperty$3.call(usageData.whitelist.tags,node.name.toLowerCase())){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.tags!==null&&hasOwnProperty$3.call(usageData.blacklist.tags,node.name.toLowerCase())){shouldRemove=true}}break}}}));if(shouldRemove){list.remove(item)}}));return selectorList.children.isEmpty}function cleanRule(node,item,list,options){if(utils$7.hasNoChildren(node.prelude)||utils$7.hasNoChildren(node.block)){list.remove(item);return}if(this.atrule&&skipUsageFilteringAtrule.has(cssTree$k.keyword(this.atrule.name).basename)){return}const{usage:usage}=options;if(usage&&(usage.whitelist!==null||usage.blacklist!==null)){cleanUnused(node.prelude,usage);if(utils$7.hasNoChildren(node.prelude)){list.remove(item);return}}}var Rule$1=cleanRule;function cleanTypeSelector(node,item,list){const name=item.data.name;if(name!=="*"){return}const nextType=item.next&&item.next.data.type;if(nextType==="IdSelector"||nextType==="ClassSelector"||nextType==="AttributeSelector"||nextType==="PseudoClassSelector"||nextType==="PseudoElementSelector"){list.remove(item)}}var TypeSelector$1=cleanTypeSelector;function cleanWhitespace(node,item,list){list.remove(item)}var WhiteSpace$1=cleanWhitespace;const cssTree$j=cjs$1;const Atrule$2=Atrule$3;const Comment=Comment$1;const Declaration=Declaration$1;const Raw=Raw$1;const Rule=Rule$1;const TypeSelector=TypeSelector$1;const WhiteSpace=WhiteSpace$1;const handlers$2={Atrule:Atrule$2,Comment:Comment,Declaration:Declaration,Raw:Raw,Rule:Rule,TypeSelector:TypeSelector,WhiteSpace:WhiteSpace};function clean(ast,options){cssTree$j.walk(ast,{leave(node,item,list){if(handlers$2.hasOwnProperty(node.type)){handlers$2[node.type].call(this,node,item,list,options)}}})}var clean_1=clean;function compressKeyframes(node){node.block.children.forEach((rule=>{rule.prelude.children.forEach((simpleselector=>{simpleselector.children.forEach(((data,item)=>{if(data.type==="Percentage"&&data.value==="100"){item.data={type:"TypeSelector",loc:data.loc,name:"to"}}else if(data.type==="TypeSelector"&&data.name==="from"){item.data={type:"Percentage",loc:data.loc,value:"0"}}}))}))}))}var keyframes$1=compressKeyframes;const cssTree$i=cjs$1;const keyframes=keyframes$1;function Atrule$1(node){if(cssTree$i.keyword(node.name).basename==="keyframes"){keyframes(node)}}var Atrule_1=Atrule$1;const blockUnquoteRx=/^(-?\d|--)|[\u0000-\u002c\u002e\u002f\u003A-\u0040\u005B-\u005E\u0060\u007B-\u009f]/;function canUnquote(value){if(value===""||value==="-"){return false}return!blockUnquoteRx.test(value)}function AttributeSelector$1(node){const attrValue=node.value;if(!attrValue||attrValue.type!=="String"){return}if(canUnquote(attrValue.value)){node.value={type:"Identifier",loc:attrValue.loc,name:attrValue.value}}}var AttributeSelector_1=AttributeSelector$1;function compressFont(node){const list=node.children;list.forEachRight((function(node,item){if(node.type==="Identifier"){if(node.name==="bold"){item.data={type:"Number",loc:node.loc,value:"700"}}else if(node.name==="normal"){const prev=item.prev;if(prev&&prev.data.type==="Operator"&&prev.data.value==="/"){this.remove(prev)}this.remove(item)}}}));if(list.isEmpty){list.insert(list.createItem({type:"Identifier",name:"normal"}))}}var font$1=compressFont;function compressFontWeight(node){const value=node.children.head.data;if(value.type==="Identifier"){switch(value.name){case"normal":node.children.head.data={type:"Number",loc:value.loc,value:"400"};break;case"bold":node.children.head.data={type:"Number",loc:value.loc,value:"700"};break}}}var fontWeight$1=compressFontWeight;const cssTree$h=cjs$1;function compressBackground(node){function flush(){if(!buffer.length){buffer.unshift({type:"Number",loc:null,value:"0"},{type:"Number",loc:null,value:"0"})}newValue.push.apply(newValue,buffer);buffer=[]}let newValue=[];let buffer=[];node.children.forEach((node=>{if(node.type==="Operator"&&node.value===","){flush();newValue.push(node);return}if(node.type==="Identifier"){if(node.name==="transparent"||node.name==="none"||node.name==="repeat"||node.name==="scroll"){return}}buffer.push(node)}));flush();node.children=(new cssTree$h.List).fromArray(newValue)}var background$1=compressBackground;function compressBorder(node){node.children.forEach(((node,item,list)=>{if(node.type==="Identifier"&&node.name.toLowerCase()==="none"){if(list.head===list.tail){item.data={type:"Number",loc:node.loc,value:"0"}}else{list.remove(item)}}}))}var border$1=compressBorder;const cssTree$g=cjs$1;const font=font$1;const fontWeight=fontWeight$1;const background=background$1;const border=border$1;const handlers$1={font:font,"font-weight":fontWeight,background:background,border:border,outline:border};function compressValue(node){if(!this.declaration){return}const property=cssTree$g.property(this.declaration.property);if(handlers$1.hasOwnProperty(property.basename)){handlers$1[property.basename](node)}}var Value$1=compressValue;var _Number$4={};const OMIT_PLUSSIGN=/^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;const KEEP_PLUSSIGN=/^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;const unsafeToRemovePlusSignAfter=new Set(["Dimension","Hash","Identifier","Number","Raw","UnicodeRange"]);function packNumber(value,item){const regexp=item&&item.prev!==null&&unsafeToRemovePlusSignAfter.has(item.prev.data.type)?KEEP_PLUSSIGN:OMIT_PLUSSIGN;value=String(value).replace(regexp,"$1$2$3");if(value===""||value==="-"){value="0"}return value}function Number$1(node){node.value=packNumber(node.value)}_Number$4.Number=Number$1;_Number$4.packNumber=packNumber;const _Number$3=_Number$4;const MATH_FUNCTIONS=new Set(["calc","min","max","clamp"]);const LENGTH_UNIT=new Set(["px","mm","cm","in","pt","pc","em","ex","ch","rem","vh","vw","vmin","vmax","vm"]);function compressDimension(node,item){const value=_Number$3.packNumber(node.value);node.value=value;if(value==="0"&&this.declaration!==null&&this.atrulePrelude===null){const unit=node.unit.toLowerCase();if(!LENGTH_UNIT.has(unit)){return}if(this.declaration.property==="-ms-flex"||this.declaration.property==="flex"){return}if(this.function&&MATH_FUNCTIONS.has(this.function.name)){return}item.data={type:"Number",loc:node.loc,value:value}}}var Dimension$1=compressDimension;const cssTree$f=cjs$1;const _Number$2=_Number$4;const blacklist=new Set(["width","min-width","max-width","height","min-height","max-height","flex","-ms-flex"]);function compressPercentage(node,item){node.value=_Number$2.packNumber(node.value);if(node.value==="0"&&this.declaration&&!blacklist.has(this.declaration.property)){item.data={type:"Number",loc:node.loc,value:node.value};if(!cssTree$f.lexer.matchDeclaration(this.declaration).isType(item.data,"length")){item.data=node}}}var Percentage$1=compressPercentage;function Url$1(node){node.value=node.value.replace(/\\/g,"/")}var Url_1=Url$1;var color$1={};const cssTree$e=cjs$1;const _Number$1=_Number$4;const NAME_TO_HEX={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgrey:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",grey:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};const HEX_TO_NAME={8e5:"maroon",800080:"purple",808e3:"olive",808080:"gray","00ffff":"cyan",f0ffff:"azure",f5f5dc:"beige",ffe4c4:"bisque","000000":"black","0000ff":"blue",a52a2a:"brown",ff7f50:"coral",ffd700:"gold","008000":"green","4b0082":"indigo",fffff0:"ivory",f0e68c:"khaki","00ff00":"lime",faf0e6:"linen","000080":"navy",ffa500:"orange",da70d6:"orchid",cd853f:"peru",ffc0cb:"pink",dda0dd:"plum",f00:"red",ff0000:"red",fa8072:"salmon",a0522d:"sienna",c0c0c0:"silver",fffafa:"snow",d2b48c:"tan","008080":"teal",ff6347:"tomato",ee82ee:"violet",f5deb3:"wheat",ffffff:"white",ffff00:"yellow"};function hueToRgb(p,q,t){if(t<0){t+=1}if(t>1){t-=1}if(t<1/6){return p+(q-p)*6*t}if(t<1/2){return q}if(t<2/3){return p+(q-p)*(2/3-t)*6}return p}function hslToRgb(h,s,l,a){let r;let g;let b;if(s===0){r=g=b=l}else{const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;r=hueToRgb(p,q,h+1/3);g=hueToRgb(p,q,h);b=hueToRgb(p,q,h-1/3)}return[Math.round(r*255),Math.round(g*255),Math.round(b*255),a]}function toHex(value){value=value.toString(16);return value.length===1?"0"+value:value}function parseFunctionArgs(functionArgs,count,rgb){let cursor=functionArgs.head;let args=[];let wasValue=false;while(cursor!==null){const{type:type,value:value}=cursor.data;switch(type){case"Number":case"Percentage":if(wasValue){return}wasValue=true;args.push({type:type,value:Number(value)});break;case"Operator":if(value===","){if(!wasValue){return}wasValue=false}else if(wasValue||value!=="+"){return}break;default:return}cursor=cursor.next}if(args.length!==count){return}if(args.length===4){if(args[3].type!=="Number"){return}args[3].type="Alpha"}if(rgb){if(args[0].type!==args[1].type||args[0].type!==args[2].type){return}}else{if(args[0].type!=="Number"||args[1].type!=="Percentage"||args[2].type!=="Percentage"){return}args[0].type="Angle"}return args.map((function(arg){let value=Math.max(0,arg.value);switch(arg.type){case"Number":value=Math.min(value,255);break;case"Percentage":value=Math.min(value,100)/100;if(!rgb){return value}value=255*value;break;case"Angle":return(value%360+360)%360/360;case"Alpha":return Math.min(value,1)}return Math.round(value)}))}function compressFunction(node,item){let functionName=node.name;let args;if(functionName==="rgba"||functionName==="hsla"){args=parseFunctionArgs(node.children,4,functionName==="rgba");if(!args){return}if(functionName==="hsla"){args=hslToRgb(...args);node.name="rgba"}if(args[3]===0){const scopeFunctionName=this.function&&this.function.name;if(args[0]===0&&args[1]===0&&args[2]===0||!/^(?:to|from|color-stop)$|gradient$/i.test(scopeFunctionName)){item.data={type:"Identifier",loc:node.loc,name:"transparent"};return}}if(args[3]!==1){node.children.forEach(((node,item,list)=>{if(node.type==="Operator"){if(node.value!==","){list.remove(item)}return}item.data={type:"Number",loc:node.loc,value:_Number$1.packNumber(args.shift())}}));return}functionName="rgb"}if(functionName==="hsl"){args=args||parseFunctionArgs(node.children,3,false);if(!args){return}args=hslToRgb(...args);functionName="rgb"}if(functionName==="rgb"){args=args||parseFunctionArgs(node.children,3,true);if(!args){return}item.data={type:"Hash",loc:node.loc,value:toHex(args[0])+toHex(args[1])+toHex(args[2])};compressHex(item.data,item)}}function compressIdent(node,item){if(this.declaration===null){return}let color=node.name.toLowerCase();if(NAME_TO_HEX.hasOwnProperty(color)&&cssTree$e.lexer.matchDeclaration(this.declaration).isType(node,"color")){const hex=NAME_TO_HEX[color];if(hex.length+1<=color.length){item.data={type:"Hash",loc:node.loc,value:hex}}else{if(color==="grey"){color="gray"}node.name=color}}}function compressHex(node,item){let color=node.value.toLowerCase();if(color.length===6&&color[0]===color[1]&&color[2]===color[3]&&color[4]===color[5]){color=color[0]+color[2]+color[4]}if(HEX_TO_NAME[color]){item.data={type:"Identifier",loc:node.loc,name:HEX_TO_NAME[color]}}else{node.value=color}}color$1.compressFunction=compressFunction;color$1.compressHex=compressHex;color$1.compressIdent=compressIdent;const cssTree$d=cjs$1;const Atrule=Atrule_1;const AttributeSelector=AttributeSelector_1;const Value=Value$1;const Dimension=Dimension$1;const Percentage=Percentage$1;const _Number=_Number$4;const Url=Url_1;const color=color$1;const handlers={Atrule:Atrule,AttributeSelector:AttributeSelector,Value:Value,Dimension:Dimension,Percentage:Percentage,Number:_Number.Number,Url:Url,Hash:color.compressHex,Identifier:color.compressIdent,Function:color.compressFunction};function replace(ast){cssTree$d.walk(ast,{leave(node,item,list){if(handlers.hasOwnProperty(node.type)){handlers[node.type].call(this,node,item,list)}}})}var replace_1=replace;const cssTree$c=cjs$1;class Index{constructor(){this.map=new Map}resolve(str){let index=this.map.get(str);if(index===undefined){index=this.map.size+1;this.map.set(str,index)}return index}}function createDeclarationIndexer$1(){const ids=new Index;return function markDeclaration(node){const id=cssTree$c.generate(node);node.id=ids.resolve(id);node.length=id.length;node.fingerprint=null;return node}}var createDeclarationIndexer_1=createDeclarationIndexer$1;const cssTree$b=cjs$1;function ensureSelectorList(node){if(node.type==="Raw"){return cssTree$b.parse(node.value,{context:"selectorList"})}return node}function maxSpecificity(a,b){for(let i=0;i<3;i++){if(a[i]!==b[i]){return a[i]>b[i]?a:b}}return a}function maxSelectorListSpecificity(selectorList){return ensureSelectorList(selectorList).children.reduce(((result,node)=>maxSpecificity(specificity$4(node),result)),[0,0,0])}function specificity$4(simpleSelector){let A=0;let B=0;let C=0;simpleSelector.children.forEach((node=>{switch(node.type){case"IdSelector":A++;break;case"ClassSelector":case"AttributeSelector":B++;break;case"PseudoClassSelector":switch(node.name.toLowerCase()){case"not":case"has":case"is":case"matches":case"-webkit-any":case"-moz-any":{const[a,b,c]=maxSelectorListSpecificity(node.children.first);A+=a;B+=b;C+=c;break}case"nth-child":case"nth-last-child":{const arg=node.children.first;if(arg.type==="Nth"&&arg.selector){const[a,b,c]=maxSelectorListSpecificity(arg.selector);A+=a;B+=b+1;C+=c}else{B++}break}case"where":break;case"before":case"after":case"first-line":case"first-letter":C++;break;default:B++}break;case"TypeSelector":if(!node.name.endsWith("*")){C++}break;case"PseudoElementSelector":C++;break}}));return[A,B,C]}var specificity_1=specificity$4;const cssTree$a=cjs$1;const specificity$3=specificity_1;const nonFreezePseudoElements=new Set(["first-letter","first-line","after","before"]);const nonFreezePseudoClasses=new Set(["link","visited","hover","active","first-letter","first-line","after","before"]);function processSelector$2(node,usageData){const pseudos=new Set;node.prelude.children.forEach((function(simpleSelector){let tagName="*";let scope=0;simpleSelector.children.forEach((function(node){switch(node.type){case"ClassSelector":if(usageData&&usageData.scopes){const classScope=usageData.scopes[node.name]||0;if(scope!==0&&classScope!==scope){throw new Error("Selector can't has classes from different scopes: "+cssTree$a.generate(simpleSelector))}scope=classScope}break;case"PseudoClassSelector":{const name=node.name.toLowerCase();if(!nonFreezePseudoClasses.has(name)){pseudos.add(`:${name}`)}break}case"PseudoElementSelector":{const name=node.name.toLowerCase();if(!nonFreezePseudoElements.has(name)){pseudos.add(`::${name}`)}break}case"TypeSelector":tagName=node.name.toLowerCase();break;case"AttributeSelector":if(node.flags){pseudos.add(`[${node.flags.toLowerCase()}]`)}break;case"Combinator":tagName="*";break}}));simpleSelector.compareMarker=specificity$3(simpleSelector).toString();simpleSelector.id=null;simpleSelector.id=cssTree$a.generate(simpleSelector);if(scope){simpleSelector.compareMarker+=":"+scope}if(tagName!=="*"){simpleSelector.compareMarker+=","+tagName}}));node.pseudoSignature=pseudos.size>0?[...pseudos].sort().join(","):false}var processSelector_1=processSelector$2;const cssTree$9=cjs$1;const createDeclarationIndexer=createDeclarationIndexer_1;const processSelector$1=processSelector_1;function prepare(ast,options){const markDeclaration=createDeclarationIndexer();cssTree$9.walk(ast,{visit:"Rule",enter(node){node.block.children.forEach(markDeclaration);processSelector$1(node,options.usage)}});cssTree$9.walk(ast,{visit:"Atrule",enter(node){if(node.prelude){node.prelude.id=null;node.prelude.id=cssTree$9.generate(node.prelude)}if(cssTree$9.keyword(node.name).basename==="keyframes"){node.block.avoidRulesMerge=true;node.block.children.forEach((function(rule){rule.prelude.children.forEach((function(simpleselector){simpleselector.compareMarker=simpleselector.id}))}))}}});return{declaration:markDeclaration}}var prepare_1=prepare;const cssTree$8=cjs$1;const{hasOwnProperty:hasOwnProperty$2}=Object.prototype;function addRuleToMap(map,item,list,single){const node=item.data;const name=cssTree$8.keyword(node.name).basename;const id=node.name.toLowerCase()+"/"+(node.prelude?node.prelude.id:null);if(!hasOwnProperty$2.call(map,name)){map[name]=Object.create(null)}if(single){delete map[name][id]}if(!hasOwnProperty$2.call(map[name],id)){map[name][id]=new cssTree$8.List}map[name][id].append(list.remove(item))}function relocateAtrules(ast,options){const collected=Object.create(null);let topInjectPoint=null;ast.children.forEach((function(node,item,list){if(node.type==="Atrule"){const name=cssTree$8.keyword(node.name).basename;switch(name){case"keyframes":addRuleToMap(collected,item,list,true);return;case"media":if(options.forceMediaMerge){addRuleToMap(collected,item,list,false);return}break}if(topInjectPoint===null&&name!=="charset"&&name!=="import"){topInjectPoint=item}}else{if(topInjectPoint===null){topInjectPoint=item}}}));for(const atrule in collected){for(const id in collected[atrule]){ast.children.insertList(collected[atrule][id],atrule==="media"?null:topInjectPoint)}}}function isMediaRule(node){return node.type==="Atrule"&&node.name==="media"}function processAtrule(node,item,list){if(!isMediaRule(node)){return}const prev=item.prev&&item.prev.data;if(!prev||!isMediaRule(prev)){return}if(node.prelude&&prev.prelude&&node.prelude.id===prev.prelude.id){prev.block.children.appendList(node.block.children);list.remove(item)}}function rejoinAtrule(ast,options){relocateAtrules(ast,options);cssTree$8.walk(ast,{visit:"Atrule",reverse:true,enter:processAtrule})}var _1MergeAtrule$1=rejoinAtrule;var utils$6={};const{hasOwnProperty:hasOwnProperty$1}=Object.prototype;function isEqualSelectors(a,b){let cursor1=a.head;let cursor2=b.head;while(cursor1!==null&&cursor2!==null&&cursor1.data.id===cursor2.data.id){cursor1=cursor1.next;cursor2=cursor2.next}return cursor1===null&&cursor2===null}function isEqualDeclarations(a,b){let cursor1=a.head;let cursor2=b.head;while(cursor1!==null&&cursor2!==null&&cursor1.data.id===cursor2.data.id){cursor1=cursor1.next;cursor2=cursor2.next}return cursor1===null&&cursor2===null}function compareDeclarations(declarations1,declarations2){const result={eq:[],ne1:[],ne2:[],ne2overrided:[]};const fingerprints=Object.create(null);const declarations2hash=Object.create(null);for(let cursor=declarations2.head;cursor;cursor=cursor.next){declarations2hash[cursor.data.id]=true}for(let cursor=declarations1.head;cursor;cursor=cursor.next){const data=cursor.data;if(data.fingerprint){fingerprints[data.fingerprint]=data.important}if(declarations2hash[data.id]){declarations2hash[data.id]=false;result.eq.push(data)}else{result.ne1.push(data)}}for(let cursor=declarations2.head;cursor;cursor=cursor.next){const data=cursor.data;if(declarations2hash[data.id]){if(!hasOwnProperty$1.call(fingerprints,data.fingerprint)||!fingerprints[data.fingerprint]&&data.important){result.ne2.push(data)}result.ne2overrided.push(data)}}return result}function addSelectors(dest,source){source.forEach((sourceData=>{const newStr=sourceData.id;let cursor=dest.head;while(cursor){const nextStr=cursor.data.id;if(nextStr===newStr){return}if(nextStr>newStr){break}cursor=cursor.next}dest.insert(dest.createItem(sourceData),cursor)}));return dest}function hasSimilarSelectors(selectors1,selectors2){let cursor1=selectors1.head;while(cursor1!==null){let cursor2=selectors2.head;while(cursor2!==null){if(cursor1.data.compareMarker===cursor2.data.compareMarker){return true}cursor2=cursor2.next}cursor1=cursor1.next}return false}function unsafeToSkipNode(node){switch(node.type){case"Rule":return hasSimilarSelectors(node.prelude.children,this);case"Atrule":if(node.block){return node.block.children.some(unsafeToSkipNode,this)}break;case"Declaration":return false}return true}utils$6.addSelectors=addSelectors;utils$6.compareDeclarations=compareDeclarations;utils$6.hasSimilarSelectors=hasSimilarSelectors;utils$6.isEqualDeclarations=isEqualDeclarations;utils$6.isEqualSelectors=isEqualSelectors;utils$6.unsafeToSkipNode=unsafeToSkipNode;const cssTree$7=cjs$1;const utils$5=utils$6;function processRule$5(node,item,list){const selectors=node.prelude.children;const declarations=node.block.children;list.prevUntil(item.prev,(function(prev){if(prev.type!=="Rule"){return utils$5.unsafeToSkipNode.call(selectors,prev)}const prevSelectors=prev.prelude.children;const prevDeclarations=prev.block.children;if(node.pseudoSignature===prev.pseudoSignature){if(utils$5.isEqualSelectors(prevSelectors,selectors)){prevDeclarations.appendList(declarations);list.remove(item);return true}if(utils$5.isEqualDeclarations(declarations,prevDeclarations)){utils$5.addSelectors(prevSelectors,selectors);list.remove(item);return true}}return utils$5.hasSimilarSelectors(selectors,prevSelectors)}))}function initialMergeRule(ast){cssTree$7.walk(ast,{visit:"Rule",enter:processRule$5})}var _2InitialMergeRuleset$1=initialMergeRule;const cssTree$6=cjs$1;function processRule$4(node,item,list){const selectors=node.prelude.children;while(selectors.head!==selectors.tail){const newSelectors=new cssTree$6.List;newSelectors.insert(selectors.remove(selectors.head));list.insert(list.createItem({type:"Rule",loc:node.loc,prelude:{type:"SelectorList",loc:node.prelude.loc,children:newSelectors},block:{type:"Block",loc:node.block.loc,children:node.block.children.copy()},pseudoSignature:node.pseudoSignature}),item)}}function disjoinRule(ast){cssTree$6.walk(ast,{visit:"Rule",reverse:true,enter:processRule$4})}var _3DisjoinRuleset$1=disjoinRule;const cssTree$5=cjs$1;const REPLACE=1;const REMOVE=2;const TOP=0;const RIGHT=1;const BOTTOM=2;const LEFT=3;const SIDES=["top","right","bottom","left"];const SIDE={"margin-top":"top","margin-right":"right","margin-bottom":"bottom","margin-left":"left","padding-top":"top","padding-right":"right","padding-bottom":"bottom","padding-left":"left","border-top-color":"top","border-right-color":"right","border-bottom-color":"bottom","border-left-color":"left","border-top-width":"top","border-right-width":"right","border-bottom-width":"bottom","border-left-width":"left","border-top-style":"top","border-right-style":"right","border-bottom-style":"bottom","border-left-style":"left"};const MAIN_PROPERTY={margin:"margin","margin-top":"margin","margin-right":"margin","margin-bottom":"margin","margin-left":"margin",padding:"padding","padding-top":"padding","padding-right":"padding","padding-bottom":"padding","padding-left":"padding","border-color":"border-color","border-top-color":"border-color","border-right-color":"border-color","border-bottom-color":"border-color","border-left-color":"border-color","border-width":"border-width","border-top-width":"border-width","border-right-width":"border-width","border-bottom-width":"border-width","border-left-width":"border-width","border-style":"border-style","border-top-style":"border-style","border-right-style":"border-style","border-bottom-style":"border-style","border-left-style":"border-style"};class TRBL{constructor(name){this.name=name;this.loc=null;this.iehack=undefined;this.sides={top:null,right:null,bottom:null,left:null}}getValueSequence(declaration,count){const values=[];let iehack="";const hasBadValues=declaration.value.type!=="Value"||declaration.value.children.some((function(child){let special=false;switch(child.type){case"Identifier":switch(child.name){case"\\0":case"\\9":iehack=child.name;return;case"inherit":case"initial":case"unset":case"revert":special=child.name;break}break;case"Dimension":switch(child.unit){case"rem":case"vw":case"vh":case"vmin":case"vmax":case"vm":special=child.unit;break}break;case"Hash":case"Number":case"Percentage":break;case"Function":if(child.name==="var"){return true}special=child.name;break;default:return true}values.push({node:child,special:special,important:declaration.important})}));if(hasBadValues||values.length>count){return false}if(typeof this.iehack==="string"&&this.iehack!==iehack){return false}this.iehack=iehack;return values}canOverride(side,value){const currentValue=this.sides[side];return!currentValue||value.important&&!currentValue.important}add(name,declaration){function attemptToAdd(){const sides=this.sides;const side=SIDE[name];if(side){if(side in sides===false){return false}const values=this.getValueSequence(declaration,1);if(!values||!values.length){return false}for(const key in sides){if(sides[key]!==null&&sides[key].special!==values[0].special){return false}}if(!this.canOverride(side,values[0])){return true}sides[side]=values[0];return true}else if(name===this.name){const values=this.getValueSequence(declaration,4);if(!values||!values.length){return false}switch(values.length){case 1:values[RIGHT]=values[TOP];values[BOTTOM]=values[TOP];values[LEFT]=values[TOP];break;case 2:values[BOTTOM]=values[TOP];values[LEFT]=values[RIGHT];break;case 3:values[LEFT]=values[RIGHT];break}for(let i=0;i<4;i++){for(const key in sides){if(sides[key]!==null&&sides[key].special!==values[i].special){return false}}}for(let i=0;i<4;i++){if(this.canOverride(SIDES[i],values[i])){sides[SIDES[i]]=values[i]}}return true}}if(!attemptToAdd.call(this)){return false}if(!this.loc){this.loc=declaration.loc}return true}isOkToMinimize(){const top=this.sides.top;const right=this.sides.right;const bottom=this.sides.bottom;const left=this.sides.left;if(top&&right&&bottom&&left){const important=top.important+right.important+bottom.important+left.important;return important===0||important===4}return false}getValue(){const result=new cssTree$5.List;const sides=this.sides;const values=[sides.top,sides.right,sides.bottom,sides.left];const stringValues=[cssTree$5.generate(sides.top.node),cssTree$5.generate(sides.right.node),cssTree$5.generate(sides.bottom.node),cssTree$5.generate(sides.left.node)];if(stringValues[LEFT]===stringValues[RIGHT]){values.pop();if(stringValues[BOTTOM]===stringValues[TOP]){values.pop();if(stringValues[RIGHT]===stringValues[TOP]){values.pop()}}}for(let i=0;i<values.length;i++){result.appendData(values[i].node)}if(this.iehack){result.appendData({type:"Identifier",loc:null,name:this.iehack})}return{type:"Value",loc:null,children:result}}getDeclaration(){return{type:"Declaration",loc:this.loc,important:this.sides.top.important,property:this.name,value:this.getValue()}}}function processRule$3(rule,shorts,shortDeclarations,lastShortSelector){const declarations=rule.block.children;const selector=rule.prelude.children.first.id;rule.block.children.forEachRight((function(declaration,item){const property=declaration.property;if(!MAIN_PROPERTY.hasOwnProperty(property)){return}const key=MAIN_PROPERTY[property];let shorthand;let operation;if(!lastShortSelector||selector===lastShortSelector){if(key in shorts){operation=REMOVE;shorthand=shorts[key]}}if(!shorthand||!shorthand.add(property,declaration)){operation=REPLACE;shorthand=new TRBL(key);if(!shorthand.add(property,declaration)){lastShortSelector=null;return}}shorts[key]=shorthand;shortDeclarations.push({operation:operation,block:declarations,item:item,shorthand:shorthand});lastShortSelector=selector}));return lastShortSelector}function processShorthands(shortDeclarations,markDeclaration){shortDeclarations.forEach((function(item){const shorthand=item.shorthand;if(!shorthand.isOkToMinimize()){return}if(item.operation===REPLACE){item.item.data=markDeclaration(shorthand.getDeclaration())}else{item.block.remove(item.item)}}))}function restructBlock$1(ast,indexer){const stylesheetMap={};const shortDeclarations=[];cssTree$5.walk(ast,{visit:"Rule",reverse:true,enter(node){const stylesheet=this.block||this.stylesheet;const ruleId=(node.pseudoSignature||"")+"|"+node.prelude.children.first.id;let ruleMap;let shorts;if(!stylesheetMap.hasOwnProperty(stylesheet.id)){ruleMap={lastShortSelector:null};stylesheetMap[stylesheet.id]=ruleMap}else{ruleMap=stylesheetMap[stylesheet.id]}if(ruleMap.hasOwnProperty(ruleId)){shorts=ruleMap[ruleId]}else{shorts={};ruleMap[ruleId]=shorts}ruleMap.lastShortSelector=processRule$3.call(this,node,shorts,shortDeclarations,ruleMap.lastShortSelector)}});processShorthands(shortDeclarations,indexer.declaration)}var _4RestructShorthand$1=restructBlock$1;const cssTree$4=cjs$1;let fingerprintId=1;const dontRestructure=new Set(["src"]);const DONT_MIX_VALUE={display:/table|ruby|flex|-(flex)?box$|grid|contents|run-in/i,"text-align":/^(start|end|match-parent|justify-all)$/i};const SAFE_VALUES={cursor:["auto","crosshair","default","move","text","wait","help","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","pointer","progress","not-allowed","no-drop","vertical-text","all-scroll","col-resize","row-resize"],overflow:["hidden","visible","scroll","auto"],position:["static","relative","absolute","fixed"]};const NEEDLESS_TABLE={"border-width":["border"],"border-style":["border"],"border-color":["border"],"border-top":["border"],"border-right":["border"],"border-bottom":["border"],"border-left":["border"],"border-top-width":["border-top","border-width","border"],"border-right-width":["border-right","border-width","border"],"border-bottom-width":["border-bottom","border-width","border"],"border-left-width":["border-left","border-width","border"],"border-top-style":["border-top","border-style","border"],"border-right-style":["border-right","border-style","border"],"border-bottom-style":["border-bottom","border-style","border"],"border-left-style":["border-left","border-style","border"],"border-top-color":["border-top","border-color","border"],"border-right-color":["border-right","border-color","border"],"border-bottom-color":["border-bottom","border-color","border"],"border-left-color":["border-left","border-color","border"],"margin-top":["margin"],"margin-right":["margin"],"margin-bottom":["margin"],"margin-left":["margin"],"padding-top":["padding"],"padding-right":["padding"],"padding-bottom":["padding"],"padding-left":["padding"],"font-style":["font"],"font-variant":["font"],"font-weight":["font"],"font-size":["font"],"font-family":["font"],"list-style-type":["list-style"],"list-style-position":["list-style"],"list-style-image":["list-style"]};function getPropertyFingerprint(propertyName,declaration,fingerprints){const realName=cssTree$4.property(propertyName).basename;if(realName==="background"){return propertyName+":"+cssTree$4.generate(declaration.value)}const declarationId=declaration.id;let fingerprint=fingerprints[declarationId];if(!fingerprint){switch(declaration.value.type){case"Value":const special={};let vendorId="";let iehack="";let raw=false;declaration.value.children.forEach((function walk(node){switch(node.type){case"Value":case"Brackets":case"Parentheses":node.children.forEach(walk);break;case"Raw":raw=true;break;case"Identifier":{const{name:name}=node;if(!vendorId){vendorId=cssTree$4.keyword(name).vendor}if(/\\[09]/.test(name)){iehack=RegExp.lastMatch}if(SAFE_VALUES.hasOwnProperty(realName)){if(SAFE_VALUES[realName].indexOf(name)===-1){special[name]=true}}else if(DONT_MIX_VALUE.hasOwnProperty(realName)){if(DONT_MIX_VALUE[realName].test(name)){special[name]=true}}break}case"Function":{let{name:name}=node;if(!vendorId){vendorId=cssTree$4.keyword(name).vendor}if(name==="rect"){const hasComma=node.children.some((node=>node.type==="Operator"&&node.value===","));if(!hasComma){name="rect-backward"}}special[name+"()"]=true;node.children.forEach(walk);break}case"Dimension":{const{unit:unit}=node;if(/\\[09]/.test(unit)){iehack=RegExp.lastMatch}switch(unit){case"rem":case"vw":case"vh":case"vmin":case"vmax":case"vm":special[unit]=true;break}break}}}));fingerprint=raw?"!"+fingerprintId++:"!"+Object.keys(special).sort()+"|"+iehack+vendorId;break;case"Raw":fingerprint="!"+declaration.value.value;break;default:fingerprint=cssTree$4.generate(declaration.value)}fingerprints[declarationId]=fingerprint}return propertyName+fingerprint}function needless(props,declaration,fingerprints){const property=cssTree$4.property(declaration.property);if(NEEDLESS_TABLE.hasOwnProperty(property.basename)){const table=NEEDLESS_TABLE[property.basename];for(const entry of table){const ppre=getPropertyFingerprint(property.prefix+entry,declaration,fingerprints);const prev=props.hasOwnProperty(ppre)?props[ppre]:null;if(prev&&(!declaration.important||prev.item.data.important)){return prev}}}}function processRule$2(rule,item,list,props,fingerprints){const declarations=rule.block.children;declarations.forEachRight((function(declaration,declarationItem){const{property:property}=declaration;const fingerprint=getPropertyFingerprint(property,declaration,fingerprints);const prev=props[fingerprint];if(prev&&!dontRestructure.has(property)){if(declaration.important&&!prev.item.data.important){props[fingerprint]={block:declarations,item:declarationItem};prev.block.remove(prev.item)}else{declarations.remove(declarationItem)}}else{const prev=needless(props,declaration,fingerprints);if(prev){declarations.remove(declarationItem)}else{declaration.fingerprint=fingerprint;props[fingerprint]={block:declarations,item:declarationItem}}}}));if(declarations.isEmpty){list.remove(item)}}function restructBlock(ast){const stylesheetMap={};const fingerprints=Object.create(null);cssTree$4.walk(ast,{visit:"Rule",reverse:true,enter(node,item,list){const stylesheet=this.block||this.stylesheet;const ruleId=(node.pseudoSignature||"")+"|"+node.prelude.children.first.id;let ruleMap;let props;if(!stylesheetMap.hasOwnProperty(stylesheet.id)){ruleMap={};stylesheetMap[stylesheet.id]=ruleMap}else{ruleMap=stylesheetMap[stylesheet.id]}if(ruleMap.hasOwnProperty(ruleId)){props=ruleMap[ruleId]}else{props={};ruleMap[ruleId]=props}processRule$2.call(this,node,item,list,props,fingerprints)}})}var _6RestructBlock$1=restructBlock;const cssTree$3=cjs$1;const utils$4=utils$6;function processRule$1(node,item,list){const selectors=node.prelude.children;const declarations=node.block.children;const nodeCompareMarker=selectors.first.compareMarker;const skippedCompareMarkers={};list.nextUntil(item.next,(function(next,nextItem){if(next.type!=="Rule"){return utils$4.unsafeToSkipNode.call(selectors,next)}if(node.pseudoSignature!==next.pseudoSignature){return true}const nextFirstSelector=next.prelude.children.head;const nextDeclarations=next.block.children;const nextCompareMarker=nextFirstSelector.data.compareMarker;if(nextCompareMarker in skippedCompareMarkers){return true}if(selectors.head===selectors.tail){if(selectors.first.id===nextFirstSelector.data.id){declarations.appendList(nextDeclarations);list.remove(nextItem);return}}if(utils$4.isEqualDeclarations(declarations,nextDeclarations)){const nextStr=nextFirstSelector.data.id;selectors.some(((data,item)=>{const curStr=data.id;if(nextStr<curStr){selectors.insert(nextFirstSelector,item);return true}if(!item.next){selectors.insert(nextFirstSelector);return true}}));list.remove(nextItem);return}if(nextCompareMarker===nodeCompareMarker){return true}skippedCompareMarkers[nextCompareMarker]=true}))}function mergeRule(ast){cssTree$3.walk(ast,{visit:"Rule",enter:processRule$1})}var _7MergeRuleset$1=mergeRule;const cssTree$2=cjs$1;const utils$3=utils$6;function calcSelectorLength(list){return list.reduce(((res,data)=>res+data.id.length+1),0)-1}function calcDeclarationsLength(tokens){let length=0;for(const token of tokens){length+=token.length}return length+tokens.length-1}function processRule(node,item,list){const avoidRulesMerge=this.block!==null?this.block.avoidRulesMerge:false;const selectors=node.prelude.children;const block=node.block;const disallowDownMarkers=Object.create(null);let allowMergeUp=true;let allowMergeDown=true;list.prevUntil(item.prev,(function(prev,prevItem){const prevBlock=prev.block;const prevType=prev.type;if(prevType!=="Rule"){const unsafe=utils$3.unsafeToSkipNode.call(selectors,prev);if(!unsafe&&prevType==="Atrule"&&prevBlock){cssTree$2.walk(prevBlock,{visit:"Rule",enter(node){node.prelude.children.forEach((data=>{disallowDownMarkers[data.compareMarker]=true}))}})}return unsafe}if(node.pseudoSignature!==prev.pseudoSignature){return true}const prevSelectors=prev.prelude.children;allowMergeDown=!prevSelectors.some((selector=>selector.compareMarker in disallowDownMarkers));if(!allowMergeDown&&!allowMergeUp){return true}if(allowMergeUp&&utils$3.isEqualSelectors(prevSelectors,selectors)){prevBlock.children.appendList(block.children);list.remove(item);return true}const diff=utils$3.compareDeclarations(block.children,prevBlock.children);if(diff.eq.length){if(!diff.ne1.length&&!diff.ne2.length){if(allowMergeDown){utils$3.addSelectors(selectors,prevSelectors);list.remove(prevItem)}return true}else if(!avoidRulesMerge){if(diff.ne1.length&&!diff.ne2.length){const selectorLength=calcSelectorLength(selectors);const blockLength=calcDeclarationsLength(diff.eq);if(allowMergeUp&&selectorLength<blockLength){utils$3.addSelectors(prevSelectors,selectors);block.children.fromArray(diff.ne1)}}else if(!diff.ne1.length&&diff.ne2.length){const selectorLength=calcSelectorLength(prevSelectors);const blockLength=calcDeclarationsLength(diff.eq);if(allowMergeDown&&selectorLength<blockLength){utils$3.addSelectors(selectors,prevSelectors);prevBlock.children.fromArray(diff.ne2)}}else{const newSelector={type:"SelectorList",loc:null,children:utils$3.addSelectors(prevSelectors.copy(),selectors)};const newBlockLength=calcSelectorLength(newSelector.children)+2;const blockLength=calcDeclarationsLength(diff.eq);if(blockLength>=newBlockLength){const newItem=list.createItem({type:"Rule",loc:null,prelude:newSelector,block:{type:"Block",loc:null,children:(new cssTree$2.List).fromArray(diff.eq)},pseudoSignature:node.pseudoSignature});block.children.fromArray(diff.ne1);prevBlock.children.fromArray(diff.ne2overrided);if(allowMergeUp){list.insert(newItem,prevItem)}else{list.insert(newItem,item)}return true}}}}if(allowMergeUp){allowMergeUp=!prevSelectors.some((prevSelector=>selectors.some((selector=>selector.compareMarker===prevSelector.compareMarker))))}prevSelectors.forEach((data=>{disallowDownMarkers[data.compareMarker]=true}))}))}function restructRule(ast){cssTree$2.walk(ast,{visit:"Rule",reverse:true,enter:processRule})}var _8RestructRuleset$1=restructRule;const index$3=prepare_1;const _1MergeAtrule=_1MergeAtrule$1;const _2InitialMergeRuleset=_2InitialMergeRuleset$1;const _3DisjoinRuleset=_3DisjoinRuleset$1;const _4RestructShorthand=_4RestructShorthand$1;const _6RestructBlock=_6RestructBlock$1;const _7MergeRuleset=_7MergeRuleset$1;const _8RestructRuleset=_8RestructRuleset$1;function restructure(ast,options){const indexer=index$3(ast,options);options.logger("prepare",ast);_1MergeAtrule(ast,options);options.logger("mergeAtrule",ast);_2InitialMergeRuleset(ast);options.logger("initialMergeRuleset",ast);_3DisjoinRuleset(ast);options.logger("disjoinRuleset",ast);_4RestructShorthand(ast,indexer);options.logger("restructShorthand",ast);_6RestructBlock(ast);options.logger("restructBlock",ast);_7MergeRuleset(ast);options.logger("mergeRuleset",ast);_8RestructRuleset(ast);options.logger("restructRuleset",ast)}var restructure_1=restructure;const cssTree$1=cjs$1;const usage=usage$1;const index=clean_1;const index$1=replace_1;const index$2=restructure_1;function readChunk(input,specialComments){const children=new cssTree$1.List;let nonSpaceTokenInBuffer=false;let protectedComment;input.nextUntil(input.head,((node,item,list)=>{if(node.type==="Comment"){if(!specialComments||node.value.charAt(0)!=="!"){list.remove(item);return}if(nonSpaceTokenInBuffer||protectedComment){return true}list.remove(item);protectedComment=node;return}if(node.type!=="WhiteSpace"){nonSpaceTokenInBuffer=true}children.insert(list.remove(item))}));return{comment:protectedComment,stylesheet:{type:"StyleSheet",loc:null,children:children}}}function compressChunk(ast,firstAtrulesAllowed,num,options){options.logger(`Compress block #${num}`,null,true);let seed=1;if(ast.type==="StyleSheet"){ast.firstAtrulesAllowed=firstAtrulesAllowed;ast.id=seed++}cssTree$1.walk(ast,{visit:"Atrule",enter(node){if(node.block!==null){node.block.id=seed++}}});options.logger("init",ast);index(ast,options);options.logger("clean",ast);index$1(ast);options.logger("replace",ast);if(options.restructuring){index$2(ast,options)}return ast}function getCommentsOption(options){let comments="comments"in options?options.comments:"exclamation";if(typeof comments==="boolean"){comments=comments?"exclamation":false}else if(comments!=="exclamation"&&comments!=="first-exclamation"){comments=false}return comments}function getRestructureOption(options){if("restructure"in options){return options.restructure}return"restructuring"in options?options.restructuring:true}function wrapBlock(block){return(new cssTree$1.List).appendData({type:"Rule",loc:null,prelude:{type:"SelectorList",loc:null,children:(new cssTree$1.List).appendData({type:"Selector",loc:null,children:(new cssTree$1.List).appendData({type:"TypeSelector",loc:null,name:"x"})})},block:block})}function compress$2(ast,options){ast=ast||{type:"StyleSheet",loc:null,children:new cssTree$1.List};options=options||{};const compressOptions={logger:typeof options.logger==="function"?options.logger:function(){},restructuring:getRestructureOption(options),forceMediaMerge:Boolean(options.forceMediaMerge),usage:options.usage?usage.buildIndex(options.usage):false};const output=new cssTree$1.List;let specialComments=getCommentsOption(options);let firstAtrulesAllowed=true;let input;let chunk;let chunkNum=1;let chunkChildren;if(options.clone){ast=cssTree$1.clone(ast)}if(ast.type==="StyleSheet"){input=ast.children;ast.children=output}else{input=wrapBlock(ast)}do{chunk=readChunk(input,Boolean(specialComments));compressChunk(chunk.stylesheet,firstAtrulesAllowed,chunkNum++,compressOptions);chunkChildren=chunk.stylesheet.children;if(chunk.comment){if(!output.isEmpty){output.insert(cssTree$1.List.createItem({type:"Raw",value:"\n"}))}output.insert(cssTree$1.List.createItem(chunk.comment));if(!chunkChildren.isEmpty){output.insert(cssTree$1.List.createItem({type:"Raw",value:"\n"}))}}if(firstAtrulesAllowed&&!chunkChildren.isEmpty){const lastRule=chunkChildren.last;if(lastRule.type!=="Atrule"||lastRule.name!=="import"&&lastRule.name!=="charset"){firstAtrulesAllowed=false}}if(specialComments!=="exclamation"){specialComments=false}output.appendList(chunkChildren)}while(!input.isEmpty);return{ast:ast}}var compress_1=compress$2;const cssTree=cjs$1;const compress$1=compress_1;const specificity$2=specificity_1;function encodeString(value){const stringApostrophe=cssTree.string.encode(value,true);const stringQuote=cssTree.string.encode(value);return stringApostrophe.length<stringQuote.length?stringApostrophe:stringQuote}const{lexer:lexer,tokenize:tokenize,parse:parse$1,generate:generate$1,walk:walk,find:find,findLast:findLast,findAll:findAll,fromPlainObject:fromPlainObject,toPlainObject:toPlainObject}=cssTree.fork({node:{String:{generate(node){this.token(cssTree.tokenTypes.String,encodeString(node.value))}},Url:{generate(node){const encodedUrl=cssTree.url.encode(node.value);const string=encodeString(node.value);this.token(cssTree.tokenTypes.Url,encodedUrl.length<=string.length+5?encodedUrl:"url("+string+")")}}}});syntax$1.compress=compress$1;syntax$1.specificity=specificity$2;syntax$1.find=find;syntax$1.findAll=findAll;syntax$1.findLast=findLast;syntax$1.fromPlainObject=fromPlainObject;syntax$1.generate=generate$1;syntax$1.lexer=lexer;syntax$1.parse=parse$1;syntax$1.toPlainObject=toPlainObject;syntax$1.tokenize=tokenize;syntax$1.walk=walk;var utils$2={};const processSelector=processSelector_1;const utils$1=utils$6;utils$2.processSelector=processSelector;utils$2.addSelectors=utils$1.addSelectors;utils$2.compareDeclarations=utils$1.compareDeclarations;utils$2.hasSimilarSelectors=utils$1.hasSimilarSelectors;utils$2.isEqualDeclarations=utils$1.isEqualDeclarations;utils$2.isEqualSelectors=utils$1.isEqualSelectors;utils$2.unsafeToSkipNode=utils$1.unsafeToSkipNode;const version=version$1;const syntax=syntax$1;const utils=utils$2;const{parse:parse,generate:generate,compress:compress}=syntax;function debugOutput(name,options,startTime,data){if(options.debug){console.error(`## ${name} done in %d ms\n`,Date.now()-startTime)}return data}function createDefaultLogger(level){let lastDebug;return function logger(title,ast){let line=title;if(ast){line=`[${((Date.now()-lastDebug)/1e3).toFixed(3)}s] ${line}`}if(level>1&&ast){let css=generate(ast);if(level===2&&css.length>256){css=css.substr(0,256)+"..."}line+=`\n ${css}\n`}console.error(line);lastDebug=Date.now()}}function buildCompressOptions(options){options={...options};if(typeof options.logger!=="function"&&options.debug){options.logger=createDefaultLogger(options.debug)}return options}function runHandler(ast,options,handlers){if(!Array.isArray(handlers)){handlers=[handlers]}handlers.forEach((fn=>fn(ast,options)))}function minify(context,source,options){options=options||{};const filename=options.filename||"<unknown>";let result;const ast=debugOutput("parsing",options,Date.now(),parse(source,{context:context,filename:filename,positions:Boolean(options.sourceMap)}));if(options.beforeCompress){debugOutput("beforeCompress",options,Date.now(),runHandler(ast,options,options.beforeCompress))}const compressResult=debugOutput("compress",options,Date.now(),compress(ast,buildCompressOptions(options)));if(options.afterCompress){debugOutput("afterCompress",options,Date.now(),runHandler(compressResult,options,options.afterCompress))}if(options.sourceMap){result=debugOutput("generate(sourceMap: true)",options,Date.now(),(()=>{const tmp=generate(compressResult.ast,{sourceMap:true});tmp.map._file=filename;tmp.map.setSourceContent(filename,source);return tmp})())}else{result=debugOutput("generate",options,Date.now(),{css:generate(compressResult.ast),map:null})}return result}function minifyStylesheet(source,options){return minify("stylesheet",source,options)}function minifyBlock(source,options){return minify("declarationList",source,options)}cjs.version=version.version;cjs.syntax=syntax;cjs.utils=utils;cjs.minify=minifyStylesheet;cjs.minifyBlock=minifyBlock;var style={};const csstree$3=cjs$1;const csswhat=require$$1;const{syntax:{specificity:specificity$1}}=cjs;const{visit:visit$5,matches:matches}=xast;const{attrsGroups:attrsGroups$7,inheritableAttrs:inheritableAttrs$3,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs$2}=_collections;const csstreeWalkSkip=csstree$3.walk.skip;const parseRule=(ruleNode,dynamic)=>{const declarations=[];ruleNode.block.children.forEach((cssNode=>{if(cssNode.type==="Declaration"){declarations.push({name:cssNode.property,value:csstree$3.generate(cssNode.value),important:cssNode.important===true})}}));const rules=[];csstree$3.walk(ruleNode.prelude,(node=>{if(node.type==="Selector"){const newNode=csstree$3.clone(node);let hasPseudoClasses=false;csstree$3.walk(newNode,((pseudoClassNode,item,list)=>{if(pseudoClassNode.type==="PseudoClassSelector"){hasPseudoClasses=true;list.remove(item)}}));rules.push({specificity:specificity$1(node),dynamic:hasPseudoClasses||dynamic,selector:csstree$3.generate(newNode),declarations:declarations})}}));return rules};const parseStylesheet=(css,dynamic)=>{const rules=[];const ast=csstree$3.parse(css,{parseValue:false,parseAtrulePrelude:false});csstree$3.walk(ast,(cssNode=>{if(cssNode.type==="Rule"){rules.push(...parseRule(cssNode,dynamic||false));return csstreeWalkSkip}if(cssNode.type==="Atrule"){if(cssNode.name==="keyframes"||cssNode.name==="-webkit-keyframes"){return csstreeWalkSkip}csstree$3.walk(cssNode,(ruleNode=>{if(ruleNode.type==="Rule"){rules.push(...parseRule(ruleNode,dynamic||true));return csstreeWalkSkip}}));return csstreeWalkSkip}}));return rules};const parseStyleDeclarations=css=>{const declarations=[];const ast=csstree$3.parse(css,{context:"declarationList",parseValue:false});csstree$3.walk(ast,(cssNode=>{if(cssNode.type==="Declaration"){declarations.push({name:cssNode.property,value:csstree$3.generate(cssNode.value),important:cssNode.important===true})}}));return declarations};const computeOwnStyle=(stylesheet,node)=>{const computedStyle={};const importantStyles=new Map;for(const[name,value]of Object.entries(node.attributes)){if(attrsGroups$7.presentation.includes(name)){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,false)}}for(const{selector:selector,declarations:declarations,dynamic:dynamic}of stylesheet.rules){if(matches(node,selector)){for(const{name:name,value:value,important:important}of declarations){const computed=computedStyle[name];if(computed&&computed.type==="dynamic"){continue}if(dynamic){computedStyle[name]={type:"dynamic",inherited:false};continue}if(computed==null||important===true||importantStyles.get(name)===false){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,important)}}}}const styleDeclarations=node.attributes.style==null?[]:parseStyleDeclarations(node.attributes.style);for(const{name:name,value:value,important:important}of styleDeclarations){const computed=computedStyle[name];if(computed&&computed.type==="dynamic"){continue}if(computed==null||important===true||importantStyles.get(name)===false){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,important)}}return computedStyle};const compareSpecificity$1=(a,b)=>{for(let i=0;i<4;i+=1){if(a[i]<b[i]){return-1}else if(a[i]>b[i]){return 1}}return 0};style.compareSpecificity=compareSpecificity$1;const collectStylesheet$8=root=>{const rules=[];const parents=new Map;visit$5(root,{element:{enter:(node,parentNode)=>{parents.set(node,parentNode);if(node.name==="style"){const dynamic=node.attributes.media!=null&&node.attributes.media!=="all";if(node.attributes.type==null||node.attributes.type===""||node.attributes.type==="text/css"){const children=node.children;for(const child of children){if(child.type==="text"||child.type==="cdata"){rules.push(...parseStylesheet(child.value,dynamic))}}}}}}});rules.sort(((a,b)=>compareSpecificity$1(a.specificity,b.specificity)));return{rules:rules,parents:parents}};style.collectStylesheet=collectStylesheet$8;const computeStyle$7=(stylesheet,node)=>{const{parents:parents}=stylesheet;const computedStyles=computeOwnStyle(stylesheet,node);let parent=parents.get(node);while(parent!=null&&parent.type!=="root"){const inheritedStyles=computeOwnStyle(stylesheet,parent);for(const[name,computed]of Object.entries(inheritedStyles)){if(computedStyles[name]==null&&inheritableAttrs$3.includes(name)===true&&presentationNonInheritableGroupAttrs$2.includes(name)===false){computedStyles[name]={...computed,inherited:true}}}parent=parents.get(parent)}return computedStyles};style.computeStyle=computeStyle$7;const includesAttrSelector$1=(selector,name,value=null,traversed=false)=>{const selectors=typeof selector==="string"?csswhat.parse(selector):csswhat.parse(csstree$3.generate(selector.data));for(const subselector of selectors){const hasAttrSelector=subselector.some(((segment,index)=>{if(traversed){if(index===subselector.length-1){return false}const isNextTraversal=csswhat.isTraversal(subselector[index+1]);if(!isNextTraversal){return false}}if(segment.type!=="attribute"||segment.name!==name){return false}return value==null?true:segment.value===value}));if(hasAttrSelector){return true}}return false};style.includesAttrSelector=includesAttrSelector$1;const csstree$2=cjs$1;const{syntax:{specificity:specificity}}=cjs;const{visitSkip:visitSkip$5,querySelectorAll:querySelectorAll$3,detachNodeFromParent:detachNodeFromParent$i}=xast;const{compareSpecificity:compareSpecificity,includesAttrSelector:includesAttrSelector}=style;const{attrsGroups:attrsGroups$6,pseudoClasses:pseudoClasses}=_collections;inlineStyles$1.name="inlineStyles";inlineStyles$1.description="inline styles (additional options)";const preservedPseudos=[...pseudoClasses.functional,...pseudoClasses.treeStructural];inlineStyles$1.fn=(root,params)=>{const{onlyMatchedOnce:onlyMatchedOnce=true,removeMatchedSelectors:removeMatchedSelectors=true,useMqs:useMqs=["","screen"],usePseudos:usePseudos=[""]}=params;const styles=[];let selectors=[];return{element:{enter:(node,parentNode)=>{if(node.name==="foreignObject"){return visitSkip$5}if(node.name!=="style"||node.children.length===0){return}if(node.attributes.type!=null&&node.attributes.type!==""&&node.attributes.type!=="text/css"){return}const cssText=node.children.filter((child=>child.type==="text"||child.type==="cdata")).map((child=>child.value)).join("");let cssAst=null;try{cssAst=csstree$2.parse(cssText,{parseValue:false,parseCustomProperty:false})}catch{return}if(cssAst.type==="StyleSheet"){styles.push({node:node,parentNode:parentNode,cssAst:cssAst})}csstree$2.walk(cssAst,{visit:"Rule",enter(node){const atrule=this.atrule;let mediaQuery="";if(atrule!=null){mediaQuery=atrule.name;if(atrule.prelude!=null){mediaQuery+=` ${csstree$2.generate(atrule.prelude)}`}}if(!useMqs.includes(mediaQuery)){return}if(node.prelude.type==="SelectorList"){node.prelude.children.forEach(((childNode,item)=>{if(childNode.type==="Selector"){const pseudos=[];childNode.children.forEach(((grandchildNode,grandchildItem,grandchildList)=>{const isPseudo=grandchildNode.type==="PseudoClassSelector"||grandchildNode.type==="PseudoElementSelector";if(isPseudo&&!preservedPseudos.includes(grandchildNode.name)){pseudos.push({item:grandchildItem,list:grandchildList})}}));const pseudoSelectors=csstree$2.generate({type:"Selector",children:(new csstree$2.List).fromArray(pseudos.map((pseudo=>pseudo.item.data)))});if(usePseudos.includes(pseudoSelectors)){for(const pseudo of pseudos){pseudo.list.remove(pseudo.item)}}selectors.push({node:childNode,rule:node,item:item})}}))}}})}},root:{exit:()=>{if(styles.length===0){return}const sortedSelectors=selectors.slice().sort(((a,b)=>{const aSpecificity=specificity(a.item.data);const bSpecificity=specificity(b.item.data);return compareSpecificity(aSpecificity,bSpecificity)})).reverse();for(const selector of sortedSelectors){const selectorText=csstree$2.generate(selector.item.data);const matchedElements=[];try{for(const node of querySelectorAll$3(root,selectorText)){if(node.type==="element"){matchedElements.push(node)}}}catch(selectError){continue}if(matchedElements.length===0){continue}if(onlyMatchedOnce&&matchedElements.length>1){continue}for(const selectedEl of matchedElements){const styleDeclarationList=csstree$2.parse(selectedEl.attributes.style??"",{context:"declarationList",parseValue:false});if(styleDeclarationList.type!=="DeclarationList"){continue}const styleDeclarationItems=new Map;let firstListItem;csstree$2.walk(styleDeclarationList,{visit:"Declaration",enter(node,item){if(firstListItem==null){firstListItem=item}styleDeclarationItems.set(node.property.toLowerCase(),item)}});csstree$2.walk(selector.rule,{visit:"Declaration",enter(ruleDeclaration){const property=ruleDeclaration.property;if(attrsGroups$6.presentation.includes(property)&&!selectors.some((selector=>includesAttrSelector(selector.item,property)))){delete selectedEl.attributes[property]}const matchedItem=styleDeclarationItems.get(property);const ruleDeclarationItem=styleDeclarationList.children.createItem(ruleDeclaration);if(matchedItem==null){styleDeclarationList.children.insert(ruleDeclarationItem,firstListItem)}else if(matchedItem.data.important!==true&&ruleDeclaration.important===true){styleDeclarationList.children.replace(matchedItem,ruleDeclarationItem);styleDeclarationItems.set(property,ruleDeclarationItem)}}});const newStyles=csstree$2.generate(styleDeclarationList);if(newStyles.length!==0){selectedEl.attributes.style=newStyles}}if(removeMatchedSelectors&&matchedElements.length!==0&&selector.rule.prelude.type==="SelectorList"){selector.rule.prelude.children.remove(selector.item)}selector.matchedElements=matchedElements}if(!removeMatchedSelectors){return}for(const selector of sortedSelectors){if(selector.matchedElements==null){continue}if(onlyMatchedOnce&&selector.matchedElements.length>1){continue}for(const selectedEl of selector.matchedElements){const classList=new Set(selectedEl.attributes.class==null?null:selectedEl.attributes.class.split(" "));for(const child of selector.node.children){if(child.type==="ClassSelector"&&!selectors.some((selector=>includesAttrSelector(selector.item,"class",child.name,true)))){classList.delete(child.name)}}if(classList.size===0){delete selectedEl.attributes.class}else{selectedEl.attributes.class=Array.from(classList).join(" ")}const firstSubSelector=selector.node.children.first;if(firstSubSelector?.type==="IdSelector"&&selectedEl.attributes.id===firstSubSelector.name&&!selectors.some((selector=>includesAttrSelector(selector.item,"id",firstSubSelector.name,true)))){delete selectedEl.attributes.id}}}for(const style of styles){csstree$2.walk(style.cssAst,{visit:"Rule",enter:function(node,item,list){if(node.type==="Rule"&&node.prelude.type==="SelectorList"&&node.prelude.children.isEmpty){list.remove(item)}}});if(style.cssAst.children.isEmpty){detachNodeFromParent$i(style.node,style.parentNode)}else{const firstChild=style.node.children[0];if(firstChild.type==="text"||firstChild.type==="cdata"){firstChild.value=csstree$2.generate(style.cssAst)}}}}}}};var minifyStyles$1={};var tools={};const{attrsGroups:attrsGroups$5,referencesProps:referencesProps$3}=_collections;const regReferencesUrl=/\burl\((["'])?#(.+?)\1\)/g;const regReferencesHref=/^#(.+?)$/;const regReferencesBegin=/(\w+)\.[a-zA-Z]/;tools.encodeSVGDatauri=(str,type)=>{var prefix="data:image/svg+xml";if(!type||type==="base64"){prefix+=";base64,";str=prefix+Buffer.from(str).toString("base64")}else if(type==="enc"){str=prefix+","+encodeURIComponent(str)}else if(type==="unenc"){str=prefix+","+str}return str};tools.decodeSVGDatauri=str=>{var regexp=/data:image\/svg\+xml(;charset=[^;,]*)?(;base64)?,(.*)/;var match=regexp.exec(str);if(!match)return str;var data=match[3];if(match[2]){str=Buffer.from(data,"base64").toString("utf8")}else if(data.charAt(0)==="%"){str=decodeURIComponent(data)}else if(data.charAt(0)==="<"){str=data}return str};tools.cleanupOutData=(data,params,command)=>{let str="";let delimiter;let prev;data.forEach(((item,i)=>{delimiter=" ";if(i==0)delimiter="";if(params.noSpaceAfterFlags&&(command=="A"||command=="a")){var pos=i%7;if(pos==4||pos==5)delimiter=""}const itemStr=params.leadingZero?removeLeadingZero$4(item):item.toString();if(params.negativeExtraSpace&&delimiter!=""&&(item<0||itemStr.charAt(0)==="."&&prev%1!==0)){delimiter=""}prev=item;str+=delimiter+itemStr}));return str};const removeLeadingZero$4=num=>{var strNum=num.toString();if(0<num&&num<1&&strNum.charAt(0)==="0"){strNum=strNum.slice(1)}else if(-1<num&&num<0&&strNum.charAt(1)==="0"){strNum=strNum.charAt(0)+strNum.slice(2)}return strNum};tools.removeLeadingZero=removeLeadingZero$4;const hasScripts$4=node=>{if(node.name==="script"&&node.children.length!==0){return true}if(node.name==="a"){const hasJsLinks=Object.entries(node.attributes).some((([attrKey,attrValue])=>(attrKey==="href"||attrKey.endsWith(":href"))&&attrValue!=null&&attrValue.trimStart().startsWith("javascript:")));if(hasJsLinks){return true}}const eventAttrs=[...attrsGroups$5.animationEvent,...attrsGroups$5.documentEvent,...attrsGroups$5.documentElementEvent,...attrsGroups$5.globalEvent,...attrsGroups$5.graphicalEvent];return eventAttrs.some((attr=>node.attributes[attr]!=null))};tools.hasScripts=hasScripts$4;const includesUrlReference$2=body=>new RegExp(regReferencesUrl).test(body);tools.includesUrlReference=includesUrlReference$2;const findReferences$2=(attribute,value)=>{const results=[];if(referencesProps$3.includes(attribute)){const matches=value.matchAll(regReferencesUrl);for(const match of matches){results.push(match[2])}}if(attribute==="href"||attribute.endsWith(":href")){const match=regReferencesHref.exec(value);if(match!=null){results.push(match[1])}}if(attribute==="begin"){const match=regReferencesBegin.exec(value);if(match!=null){results.push(match[1])}}return results.map((body=>decodeURI(body)))};tools.findReferences=findReferences$2;const csso=cjs;const{detachNodeFromParent:detachNodeFromParent$h}=xast;const{hasScripts:hasScripts$3}=tools;minifyStyles$1.name="minifyStyles";minifyStyles$1.description="minifies styles and removes unused styles";minifyStyles$1.fn=(_root,{usage:usage,...params})=>{const styleElements=new Map;const elementsWithStyleAttributes=[];const tagsUsage=new Set;const idsUsage=new Set;const classesUsage=new Set;let enableTagsUsage=true;let enableIdsUsage=true;let enableClassesUsage=true;let forceUsageDeoptimized=false;if(typeof usage==="boolean"){enableTagsUsage=usage;enableIdsUsage=usage;enableClassesUsage=usage}else if(usage){enableTagsUsage=usage.tags==null?true:usage.tags;enableIdsUsage=usage.ids==null?true:usage.ids;enableClassesUsage=usage.classes==null?true:usage.classes;forceUsageDeoptimized=usage.force==null?false:usage.force}let deoptimized=false;return{element:{enter:(node,parentNode)=>{if(hasScripts$3(node)){deoptimized=true}tagsUsage.add(node.name);if(node.attributes.id!=null){idsUsage.add(node.attributes.id)}if(node.attributes.class!=null){for(const className of node.attributes.class.split(/\s+/)){classesUsage.add(className)}}if(node.name==="style"&&node.children.length!==0){styleElements.set(node,parentNode)}else if(node.attributes.style!=null){elementsWithStyleAttributes.push(node)}}},root:{exit:()=>{const cssoUsage={};if(!deoptimized||forceUsageDeoptimized){if(enableTagsUsage){cssoUsage.tags=Array.from(tagsUsage)}if(enableIdsUsage){cssoUsage.ids=Array.from(idsUsage)}if(enableClassesUsage){cssoUsage.classes=Array.from(classesUsage)}}for(const[styleNode,styleNodeParent]of styleElements.entries()){if(styleNode.children[0].type==="text"||styleNode.children[0].type==="cdata"){const cssText=styleNode.children[0].value;const minified=csso.minify(cssText,{...params,usage:cssoUsage}).css;if(minified.length===0){detachNodeFromParent$h(styleNode,styleNodeParent);continue}if(cssText.indexOf(">")>=0||cssText.indexOf("<")>=0){styleNode.children[0].type="cdata";styleNode.children[0].value=minified}else{styleNode.children[0].type="text";styleNode.children[0].value=minified}}}for(const node of elementsWithStyleAttributes){const elemStyle=node.attributes.style;node.attributes.style=csso.minifyBlock(elemStyle,{...params}).css}}}}};var cleanupIds$1={};const{visitSkip:visitSkip$4}=xast;const{hasScripts:hasScripts$2,findReferences:findReferences$1}=tools;cleanupIds$1.name="cleanupIds";cleanupIds$1.description="removes unused IDs and minifies used";const generateIdChars=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];const maxIdIndex=generateIdChars.length-1;const hasStringPrefix=(string,prefixes)=>{for(const prefix of prefixes){if(string.startsWith(prefix)){return true}}return false};const generateId=currentId=>{if(currentId==null){return[0]}currentId[currentId.length-1]+=1;for(let i=currentId.length-1;i>0;i--){if(currentId[i]>maxIdIndex){currentId[i]=0;if(currentId[i-1]!==undefined){currentId[i-1]++}}}if(currentId[0]>maxIdIndex){currentId[0]=0;currentId.unshift(0)}return currentId};const getIdString=arr=>arr.map((i=>generateIdChars[i])).join("");cleanupIds$1.fn=(_root,params)=>{const{remove:remove=true,minify:minify=true,preserve:preserve=[],preservePrefixes:preservePrefixes=[],force:force=false}=params;const preserveIds=new Set(Array.isArray(preserve)?preserve:preserve?[preserve]:[]);const preserveIdPrefixes=Array.isArray(preservePrefixes)?preservePrefixes:preservePrefixes?[preservePrefixes]:[];const nodeById=new Map;const referencesById=new Map;let deoptimized=false;return{element:{enter:node=>{if(!force){if(node.name==="style"&&node.children.length!==0||hasScripts$2(node)){deoptimized=true;return}if(node.name==="svg"){let hasDefsOnly=true;for(const child of node.children){if(child.type!=="element"||child.name!=="defs"){hasDefsOnly=false;break}}if(hasDefsOnly){return visitSkip$4}}}for(const[name,value]of Object.entries(node.attributes)){if(name==="id"){const id=value;if(nodeById.has(id)){delete node.attributes.id}else{nodeById.set(id,node)}}else{const ids=findReferences$1(name,value);for(const id of ids){let refs=referencesById.get(id);if(refs==null){refs=[];referencesById.set(id,refs)}refs.push({element:node,name:name})}}}}},root:{exit:()=>{if(deoptimized){return}const isIdPreserved=id=>preserveIds.has(id)||hasStringPrefix(id,preserveIdPrefixes);let currentId=null;for(const[id,refs]of referencesById){const node=nodeById.get(id);if(node!=null){if(minify&&isIdPreserved(id)===false){let currentIdString=null;do{currentId=generateId(currentId);currentIdString=getIdString(currentId)}while(isIdPreserved(currentIdString)||referencesById.has(currentIdString)&&nodeById.get(currentIdString)==null);node.attributes.id=currentIdString;for(const{element:element,name:name}of refs){const value=element.attributes[name];if(value.includes("#")){element.attributes[name]=value.replace(`#${encodeURI(id)}`,`#${currentIdString}`)}else{element.attributes[name]=value.replace(`${id}.`,`${currentIdString}.`)}}}nodeById.delete(id)}}if(remove){for(const[id,node]of nodeById){if(isIdPreserved(id)===false){delete node.attributes.id}}}}}}};var removeUselessDefs$1={};const{detachNodeFromParent:detachNodeFromParent$g}=xast;const{elemsGroups:elemsGroups$5}=_collections;removeUselessDefs$1.name="removeUselessDefs";removeUselessDefs$1.description="removes elements in <defs> without id";removeUselessDefs$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="defs"){const usefulNodes=[];collectUsefulNodes(node,usefulNodes);if(usefulNodes.length===0){detachNodeFromParent$g(node,parentNode)}for(const usefulNode of usefulNodes){Object.defineProperty(usefulNode,"parentNode",{writable:true,value:node})}node.children=usefulNodes}else if(elemsGroups$5.nonRendering.includes(node.name)&&node.attributes.id==null){detachNodeFromParent$g(node,parentNode)}}}});const collectUsefulNodes=(node,usefulNodes)=>{for(const child of node.children){if(child.type==="element"){if(child.attributes.id!=null||child.name==="style"){usefulNodes.push(child)}else{collectUsefulNodes(child,usefulNodes)}}}};var cleanupNumericValues$1={};const{removeLeadingZero:removeLeadingZero$3}=tools;cleanupNumericValues$1.name="cleanupNumericValues";cleanupNumericValues$1.description="rounds numeric values to the fixed precision, removes default ‘px’ units";const regNumericValues$3=/^([-+]?\d*\.?\d+([eE][-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/;const absoluteLengths$1={cm:96/2.54,mm:96/25.4,in:96,pt:4/3,pc:16,px:1};cleanupNumericValues$1.fn=(_root,params)=>{const{floatPrecision:floatPrecision=3,leadingZero:leadingZero=true,defaultPx:defaultPx=true,convertToPx:convertToPx=true}=params;return{element:{enter:node=>{if(node.attributes.viewBox!=null){const nums=node.attributes.viewBox.split(/\s,?\s*|,\s*/g);node.attributes.viewBox=nums.map((value=>{const num=Number(value);return Number.isNaN(num)?value:Number(num.toFixed(floatPrecision))})).join(" ")}for(const[name,value]of Object.entries(node.attributes)){if(name==="version"){continue}const match=value.match(regNumericValues$3);if(match){let num=Number(Number(match[1]).toFixed(floatPrecision));let matchedUnit=match[3]||"";let units=matchedUnit;if(convertToPx&&units!==""&&units in absoluteLengths$1){const pxNum=Number((absoluteLengths$1[units]*Number(match[1])).toFixed(floatPrecision));if(pxNum.toString().length<match[0].length){num=pxNum;units="px"}}let str;if(leadingZero){str=removeLeadingZero$3(num)}else{str=num.toString()}if(defaultPx&&units==="px"){units=""}node.attributes[name]=str+units}}}}}};var convertColors$1={};const collections=_collections;convertColors$1.name="convertColors";convertColors$1.description="converts colors: rgb() to #rrggbb and #rrggbb to #rgb";const rNumber="([+-]?(?:\\d*\\.\\d+|\\d+\\.?)%?)";const rComma="\\s*,\\s*";const regRGB=new RegExp("^rgb\\(\\s*"+rNumber+rComma+rNumber+rComma+rNumber+"\\s*\\)$");const regHEX=/^#(([a-fA-F0-9])\2){3}$/;const convertRgbToHex=([r,g,b])=>{const hexNumber=(256+r<<8|g)<<8|b;return"#"+hexNumber.toString(16).slice(1).toUpperCase()};convertColors$1.fn=(_root,params)=>{const{currentColor:currentColor=false,names2hex:names2hex=true,rgb2hex:rgb2hex=true,shorthex:shorthex=true,shortname:shortname=true}=params;return{element:{enter:node=>{for(const[name,value]of Object.entries(node.attributes)){if(collections.colorsProps.includes(name)){let val=value;if(currentColor){let matched;if(typeof currentColor==="string"){matched=val===currentColor}else if(currentColor instanceof RegExp){matched=currentColor.exec(val)!=null}else{matched=val!=="none"}if(matched){val="currentColor"}}if(names2hex){const colorName=val.toLowerCase();if(collections.colorsNames[colorName]!=null){val=collections.colorsNames[colorName]}}if(rgb2hex){let match=val.match(regRGB);if(match!=null){let nums=match.slice(1,4).map((m=>{let n;if(m.indexOf("%")>-1){n=Math.round(parseFloat(m)*2.55)}else{n=Number(m)}return Math.max(0,Math.min(n,255))}));val=convertRgbToHex(nums)}}if(shorthex){let match=val.match(regHEX);if(match!=null){val="#"+match[0][1]+match[0][3]+match[0][5]}}if(shortname){const colorName=val.toLowerCase();if(collections.colorsShortNames[colorName]!=null){val=collections.colorsShortNames[colorName]}}node.attributes[name]=val}}}}}};var removeUnknownsAndDefaults$1={};const{visitSkip:visitSkip$3,detachNodeFromParent:detachNodeFromParent$f}=xast;const{collectStylesheet:collectStylesheet$7,computeStyle:computeStyle$6}=style;const{elems:elems$1,attrsGroups:attrsGroups$4,elemsGroups:elemsGroups$4,attrsGroupsDefaults:attrsGroupsDefaults$2,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs$1}=_collections;removeUnknownsAndDefaults$1.name="removeUnknownsAndDefaults";removeUnknownsAndDefaults$1.description="removes unknown elements content and attributes, removes attrs with default values";const allowedChildrenPerElement=new Map;const allowedAttributesPerElement=new Map;const attributesDefaultsPerElement=new Map;for(const[name,config]of Object.entries(elems$1)){const allowedChildren=new Set;if(config.content){for(const elementName of config.content){allowedChildren.add(elementName)}}if(config.contentGroups){for(const contentGroupName of config.contentGroups){const elemsGroup=elemsGroups$4[contentGroupName];if(elemsGroup){for(const elementName of elemsGroup){allowedChildren.add(elementName)}}}}const allowedAttributes=new Set;if(config.attrs){for(const attrName of config.attrs){allowedAttributes.add(attrName)}}const attributesDefaults=new Map;if(config.defaults){for(const[attrName,defaultValue]of Object.entries(config.defaults)){attributesDefaults.set(attrName,defaultValue)}}for(const attrsGroupName of config.attrsGroups){const attrsGroup=attrsGroups$4[attrsGroupName];if(attrsGroup){for(const attrName of attrsGroup){allowedAttributes.add(attrName)}}const groupDefaults=attrsGroupsDefaults$2[attrsGroupName];if(groupDefaults){for(const[attrName,defaultValue]of Object.entries(groupDefaults)){attributesDefaults.set(attrName,defaultValue)}}}allowedChildrenPerElement.set(name,allowedChildren);allowedAttributesPerElement.set(name,allowedAttributes);attributesDefaultsPerElement.set(name,attributesDefaults)}removeUnknownsAndDefaults$1.fn=(root,params)=>{const{unknownContent:unknownContent=true,unknownAttrs:unknownAttrs=true,defaultAttrs:defaultAttrs=true,defaultMarkupDeclarations:defaultMarkupDeclarations=true,uselessOverrides:uselessOverrides=true,keepDataAttrs:keepDataAttrs=true,keepAriaAttrs:keepAriaAttrs=true,keepRoleAttr:keepRoleAttr=false}=params;const stylesheet=collectStylesheet$7(root);return{instruction:{enter:node=>{if(defaultMarkupDeclarations){node.value=node.value.replace(/\s*standalone\s*=\s*(["'])no\1/,"")}}},element:{enter:(node,parentNode)=>{if(node.name.includes(":")){return}if(node.name==="foreignObject"){return visitSkip$3}if(unknownContent&&parentNode.type==="element"){const allowedChildren=allowedChildrenPerElement.get(parentNode.name);if(allowedChildren==null||allowedChildren.size===0){if(allowedChildrenPerElement.get(node.name)==null){detachNodeFromParent$f(node,parentNode);return}}else{if(allowedChildren.has(node.name)===false){detachNodeFromParent$f(node,parentNode);return}}}const allowedAttributes=allowedAttributesPerElement.get(node.name);const attributesDefaults=attributesDefaultsPerElement.get(node.name);const computedParentStyle=parentNode.type==="element"?computeStyle$6(stylesheet,parentNode):null;for(const[name,value]of Object.entries(node.attributes)){if(keepDataAttrs&&name.startsWith("data-")){continue}if(keepAriaAttrs&&name.startsWith("aria-")){continue}if(keepRoleAttr&&name==="role"){continue}if(name==="xmlns"){continue}if(name.includes(":")){const[prefix]=name.split(":");if(prefix!=="xml"&&prefix!=="xlink"){continue}}if(unknownAttrs&&allowedAttributes&&allowedAttributes.has(name)===false){delete node.attributes[name]}if(defaultAttrs&&node.attributes.id==null&&attributesDefaults&&attributesDefaults.get(name)===value){if(computedParentStyle?.[name]==null){delete node.attributes[name]}}if(uselessOverrides&&node.attributes.id==null){const style=computedParentStyle?.[name];if(presentationNonInheritableGroupAttrs$1.includes(name)===false&&style!=null&&style.type==="static"&&style.value===value){delete node.attributes[name]}}}}}}};var removeNonInheritableGroupAttrs$1={};const{inheritableAttrs:inheritableAttrs$2,attrsGroups:attrsGroups$3,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs}=_collections;removeNonInheritableGroupAttrs$1.name="removeNonInheritableGroupAttrs";removeNonInheritableGroupAttrs$1.description="removes non-inheritable group’s presentational attributes";removeNonInheritableGroupAttrs$1.fn=()=>({element:{enter:node=>{if(node.name==="g"){for(const name of Object.keys(node.attributes)){if(attrsGroups$3.presentation.includes(name)===true&&inheritableAttrs$2.includes(name)===false&&presentationNonInheritableGroupAttrs.includes(name)===false){delete node.attributes[name]}}}}}});var removeUselessStrokeAndFill$1={};const{visit:visit$4,visitSkip:visitSkip$2,detachNodeFromParent:detachNodeFromParent$e}=xast;const{collectStylesheet:collectStylesheet$6,computeStyle:computeStyle$5}=style;const{hasScripts:hasScripts$1}=tools;const{elemsGroups:elemsGroups$3}=_collections;removeUselessStrokeAndFill$1.name="removeUselessStrokeAndFill";removeUselessStrokeAndFill$1.description="removes useless stroke and fill attributes";removeUselessStrokeAndFill$1.fn=(root,params)=>{const{stroke:removeStroke=true,fill:removeFill=true,removeNone:removeNone=false}=params;let hasStyleOrScript=false;visit$4(root,{element:{enter:node=>{if(node.name==="style"||hasScripts$1(node)){hasStyleOrScript=true}}}});if(hasStyleOrScript){return null}const stylesheet=collectStylesheet$6(root);return{element:{enter:(node,parentNode)=>{if(node.attributes.id!=null){return visitSkip$2}if(elemsGroups$3.shape.includes(node.name)==false){return}const computedStyle=computeStyle$5(stylesheet,node);const stroke=computedStyle.stroke;const strokeOpacity=computedStyle["stroke-opacity"];const strokeWidth=computedStyle["stroke-width"];const markerEnd=computedStyle["marker-end"];const fill=computedStyle.fill;const fillOpacity=computedStyle["fill-opacity"];const computedParentStyle=parentNode.type==="element"?computeStyle$5(stylesheet,parentNode):null;const parentStroke=computedParentStyle==null?null:computedParentStyle.stroke;if(removeStroke){if(stroke==null||stroke.type==="static"&&stroke.value=="none"||strokeOpacity!=null&&strokeOpacity.type==="static"&&strokeOpacity.value==="0"||strokeWidth!=null&&strokeWidth.type==="static"&&strokeWidth.value==="0"){if(strokeWidth!=null&&strokeWidth.type==="static"&&strokeWidth.value==="0"||markerEnd==null){for(const name of Object.keys(node.attributes)){if(name.startsWith("stroke")){delete node.attributes[name]}}if(parentStroke!=null&&parentStroke.type==="static"&&parentStroke.value!=="none"){node.attributes.stroke="none"}}}}if(removeFill){if(fill!=null&&fill.type==="static"&&fill.value==="none"||fillOpacity!=null&&fillOpacity.type==="static"&&fillOpacity.value==="0"){for(const name of Object.keys(node.attributes)){if(name.startsWith("fill-")){delete node.attributes[name]}}if(fill==null||fill.type==="static"&&fill.value!=="none"){node.attributes.fill="none"}}}if(removeNone){if((stroke==null||node.attributes.stroke==="none")&&(fill!=null&&fill.type==="static"&&fill.value==="none"||node.attributes.fill==="none")){detachNodeFromParent$e(node,parentNode)}}}}}};var removeViewBox$1={};removeViewBox$1.name="removeViewBox";removeViewBox$1.description="removes viewBox attribute when possible";const viewBoxElems=["svg","pattern","symbol"];removeViewBox$1.fn=()=>({element:{enter:(node,parentNode)=>{if(viewBoxElems.includes(node.name)&&node.attributes.viewBox!=null&&node.attributes.width!=null&&node.attributes.height!=null){if(node.name==="svg"&&parentNode.type!=="root"){return}const nums=node.attributes.viewBox.split(/[ ,]+/g);if(nums[0]==="0"&&nums[1]==="0"&&node.attributes.width.replace(/px$/,"")===nums[2]&&node.attributes.height.replace(/px$/,"")===nums[3]){delete node.attributes.viewBox}}}}});var cleanupEnableBackground$1={};const csstree$1=cjs$1;const{visit:visit$3}=xast;cleanupEnableBackground$1.name="cleanupEnableBackground";cleanupEnableBackground$1.description="remove or cleanup enable-background attribute when possible";const regEnableBackground=/^new\s0\s0\s([-+]?\d*\.?\d+([eE][-+]?\d+)?)\s([-+]?\d*\.?\d+([eE][-+]?\d+)?)$/;cleanupEnableBackground$1.fn=root=>{let hasFilter=false;visit$3(root,{element:{enter:node=>{if(node.name==="filter"){hasFilter=true}}}});return{element:{enter:node=>{let newStyle=null;let enableBackgroundDeclaration=null;if(node.attributes.style!=null){newStyle=csstree$1.parse(node.attributes.style,{context:"declarationList"});if(newStyle.type==="DeclarationList"){const enableBackgroundDeclarations=[];csstree$1.walk(newStyle,((node,nodeItem)=>{if(node.type==="Declaration"&&node.property==="enable-background"){enableBackgroundDeclarations.push(nodeItem);enableBackgroundDeclaration=nodeItem}}));for(let i=0;i<enableBackgroundDeclarations.length-1;i++){newStyle.children.remove(enableBackgroundDeclarations[i])}}}if(!hasFilter){delete node.attributes["enable-background"];if(newStyle?.type==="DeclarationList"){if(enableBackgroundDeclaration){newStyle.children.remove(enableBackgroundDeclaration)}if(newStyle.children.isEmpty){delete node.attributes.style}else{node.attributes.style=csstree$1.generate(newStyle)}}return}const hasDimensions=node.attributes.width!=null&&node.attributes.height!=null;if((node.name==="svg"||node.name==="mask"||node.name==="pattern")&&hasDimensions){const attrValue=node.attributes["enable-background"];const attrCleaned=cleanupValue(attrValue,node.name,node.attributes.width,node.attributes.height);if(attrCleaned){node.attributes["enable-background"]=attrCleaned}else{delete node.attributes["enable-background"]}if(newStyle?.type==="DeclarationList"&&enableBackgroundDeclaration){const styleValue=csstree$1.generate(enableBackgroundDeclaration.data.value);const styleCleaned=cleanupValue(styleValue,node.name,node.attributes.width,node.attributes.height);if(styleCleaned){enableBackgroundDeclaration.data.value={type:"Raw",value:styleCleaned}}else{newStyle.children.remove(enableBackgroundDeclaration)}}}if(newStyle?.type==="DeclarationList"){if(newStyle.children.isEmpty){delete node.attributes.style}else{node.attributes.style=csstree$1.generate(newStyle)}}}}}};const cleanupValue=(value,nodeName,width,height)=>{const match=regEnableBackground.exec(value);if(match!=null&&width===match[1]&&height===match[3]){return nodeName==="svg"?undefined:"new"}return value};var removeHiddenElems$1={};var path={};const{removeLeadingZero:removeLeadingZero$2}=tools;const argsCountPerCommand={M:2,m:2,Z:0,z:0,L:2,l:2,H:1,h:1,V:1,v:1,C:6,c:6,S:4,s:4,Q:4,q:4,T:2,t:2,A:7,a:7};const isCommand=c=>c in argsCountPerCommand;const isWsp=c=>{const codePoint=c.codePointAt(0);return codePoint===32||codePoint===9||codePoint===13||codePoint===10};const isDigit=c=>{const codePoint=c.codePointAt(0);if(codePoint==null){return false}return 48<=codePoint&&codePoint<=57};const readNumber=(string,cursor)=>{let i=cursor;let value="";let state="none";for(;i<string.length;i+=1){const c=string[i];if(c==="+"||c==="-"){if(state==="none"){state="sign";value+=c;continue}if(state==="e"){state="exponent_sign";value+=c;continue}}if(isDigit(c)){if(state==="none"||state==="sign"||state==="whole"){state="whole";value+=c;continue}if(state==="decimal_point"||state==="decimal"){state="decimal";value+=c;continue}if(state==="e"||state==="exponent_sign"||state==="exponent"){state="exponent";value+=c;continue}}if(c==="."){if(state==="none"||state==="sign"||state==="whole"){state="decimal_point";value+=c;continue}}if(c==="E"||c=="e"){if(state==="whole"||state==="decimal_point"||state==="decimal"){state="e";value+=c;continue}}break}const number=Number.parseFloat(value);if(Number.isNaN(number)){return[cursor,null]}else{return[i-1,number]}};const parsePathData$3=string=>{const pathData=[];let command=null;let args=[];let argsCount=0;let canHaveComma=false;let hadComma=false;for(let i=0;i<string.length;i+=1){const c=string.charAt(i);if(isWsp(c)){continue}if(canHaveComma&&c===","){if(hadComma){break}hadComma=true;continue}if(isCommand(c)){if(hadComma){return pathData}if(command==null){if(c!=="M"&&c!=="m"){return pathData}}else{if(args.length!==0){return pathData}}command=c;args=[];argsCount=argsCountPerCommand[command];canHaveComma=false;if(argsCount===0){pathData.push({command:command,args:args})}continue}if(command==null){return pathData}let newCursor=i;let number=null;if(command==="A"||command==="a"){const position=args.length;if(position===0||position===1){if(c!=="+"&&c!=="-"){[newCursor,number]=readNumber(string,i)}}if(position===2||position===5||position===6){[newCursor,number]=readNumber(string,i)}if(position===3||position===4){if(c==="0"){number=0}if(c==="1"){number=1}}}else{[newCursor,number]=readNumber(string,i)}if(number==null){return pathData}args.push(number);canHaveComma=true;hadComma=false;i=newCursor;if(args.length===argsCount){pathData.push({command:command,args:args});if(command==="M"){command="L"}if(command==="m"){command="l"}args=[]}}return pathData};path.parsePathData=parsePathData$3;const stringifyNumber=(number,precision)=>{if(precision!=null){const ratio=10**precision;number=Math.round(number*ratio)/ratio}return removeLeadingZero$2(number)};const stringifyArgs=(command,args,precision,disableSpaceAfterFlags)=>{let result="";let prev="";for(let i=0;i<args.length;i+=1){const number=args[i];const numberString=stringifyNumber(number,precision);if(disableSpaceAfterFlags&&(command==="A"||command==="a")&&(i%7===4||i%7===5)){result+=numberString}else if(i===0||numberString.startsWith("-")){result+=numberString}else if(prev.includes(".")&&numberString.startsWith(".")){result+=numberString}else{result+=` ${numberString}`}prev=numberString}return result};const stringifyPathData$2=({pathData:pathData,precision:precision,disableSpaceAfterFlags:disableSpaceAfterFlags})=>{let combined=[];for(let i=0;i<pathData.length;i+=1){const{command:command,args:args}=pathData[i];if(i===0){combined.push({command:command,args:args})}else{const last=combined[combined.length-1];if(i===1){if(command==="L"){last.command="M"}if(command==="l"){last.command="m"}}if(last.command===command&&last.command!=="M"&&last.command!=="m"||last.command==="M"&&command==="L"||last.command==="m"&&command==="l"){last.args=[...last.args,...args]}else{combined.push({command:command,args:args})}}}let result="";for(const{command:command,args:args}of combined){result+=command+stringifyArgs(command,args,precision,disableSpaceAfterFlags)}return result};path.stringifyPathData=stringifyPathData$2;const{elemsGroups:elemsGroups$2}=_collections;const{visit:visit$2,visitSkip:visitSkip$1,querySelector:querySelector$1,detachNodeFromParent:detachNodeFromParent$d}=xast;const{collectStylesheet:collectStylesheet$5,computeStyle:computeStyle$4}=style;const{parsePathData:parsePathData$2}=path;const{hasScripts:hasScripts,findReferences:findReferences}=tools;const nonRendering=elemsGroups$2.nonRendering;removeHiddenElems$1.name="removeHiddenElems";removeHiddenElems$1.description="removes hidden elements (zero sized, with absent attributes)";removeHiddenElems$1.fn=(root,params)=>{const{isHidden:isHidden=true,displayNone:displayNone=true,opacity0:opacity0=true,circleR0:circleR0=true,ellipseRX0:ellipseRX0=true,ellipseRY0:ellipseRY0=true,rectWidth0:rectWidth0=true,rectHeight0:rectHeight0=true,patternWidth0:patternWidth0=true,patternHeight0:patternHeight0=true,imageWidth0:imageWidth0=true,imageHeight0:imageHeight0=true,pathEmptyD:pathEmptyD=true,polylineEmptyPoints:polylineEmptyPoints=true,polygonEmptyPoints:polygonEmptyPoints=true}=params;const stylesheet=collectStylesheet$5(root);const nonRenderedNodes=new Map;const removedDefIds=new Set;const allDefs=new Map;const allReferences=new Set;const referencesById=new Map;let deoptimized=false;function removeElement(node,parentNode){if(node.type==="element"&&node.attributes.id!=null&&parentNode.type==="element"&&parentNode.name==="defs"){removedDefIds.add(node.attributes.id)}detachNodeFromParent$d(node,parentNode)}visit$2(root,{element:{enter:(node,parentNode)=>{if(nonRendering.includes(node.name)){if(node.attributes.id==null){detachNodeFromParent$d(node,parentNode);return visitSkip$1}nonRenderedNodes.set(node,parentNode);return visitSkip$1}const computedStyle=computeStyle$4(stylesheet,node);if(opacity0&&computedStyle.opacity&&computedStyle.opacity.type==="static"&&computedStyle.opacity.value==="0"){removeElement(node,parentNode)}}}});return{element:{enter:(node,parentNode)=>{if(node.name==="style"&&node.children.length!==0||hasScripts(node)){deoptimized=true;return}if(node.name==="defs"){allDefs.set(node,parentNode)}if(node.name==="use"){for(const attr of Object.keys(node.attributes)){if(attr!=="href"&&!attr.endsWith(":href"))continue;const value=node.attributes[attr];const id=value.slice(1);let refs=referencesById.get(id);if(!refs){refs=[];referencesById.set(id,refs)}refs.push({node:node,parentNode:parentNode})}}const computedStyle=computeStyle$4(stylesheet,node);if(isHidden&&computedStyle.visibility&&computedStyle.visibility.type==="static"&&computedStyle.visibility.value==="hidden"&&querySelector$1(node,"[visibility=visible]")==null){removeElement(node,parentNode);return}if(displayNone&&computedStyle.display&&computedStyle.display.type==="static"&&computedStyle.display.value==="none"&&node.name!=="marker"){removeElement(node,parentNode);return}if(circleR0&&node.name==="circle"&&node.children.length===0&&node.attributes.r==="0"){removeElement(node,parentNode);return}if(ellipseRX0&&node.name==="ellipse"&&node.children.length===0&&node.attributes.rx==="0"){removeElement(node,parentNode);return}if(ellipseRY0&&node.name==="ellipse"&&node.children.length===0&&node.attributes.ry==="0"){removeElement(node,parentNode);return}if(rectWidth0&&node.name==="rect"&&node.children.length===0&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(rectHeight0&&rectWidth0&&node.name==="rect"&&node.children.length===0&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(patternWidth0&&node.name==="pattern"&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(patternHeight0&&node.name==="pattern"&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(imageWidth0&&node.name==="image"&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(imageHeight0&&node.name==="image"&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(pathEmptyD&&node.name==="path"){if(node.attributes.d==null){removeElement(node,parentNode);return}const pathData=parsePathData$2(node.attributes.d);if(pathData.length===0){removeElement(node,parentNode);return}if(pathData.length===1&&computedStyle["marker-start"]==null&&computedStyle["marker-end"]==null){removeElement(node,parentNode);return}}if(polylineEmptyPoints&&node.name==="polyline"&&node.attributes.points==null){removeElement(node,parentNode);return}if(polygonEmptyPoints&&node.name==="polygon"&&node.attributes.points==null){removeElement(node,parentNode);return}for(const[name,value]of Object.entries(node.attributes)){const ids=findReferences(name,value);for(const id of ids){allReferences.add(id)}}}},root:{exit:()=>{for(const id of removedDefIds){const refs=referencesById.get(id);if(refs){for(const{node:node,parentNode:parentNode}of refs){detachNodeFromParent$d(node,parentNode)}}}if(!deoptimized){for(const[nonRenderedNode,nonRenderedParent]of nonRenderedNodes.entries()){const id=nonRenderedNode.attributes.id;if(!allReferences.has(id)){detachNodeFromParent$d(nonRenderedNode,nonRenderedParent)}}}for(const[node,parentNode]of allDefs.entries()){if(node.children.length===0){detachNodeFromParent$d(node,parentNode)}}}}}};var removeEmptyText$1={};const{detachNodeFromParent:detachNodeFromParent$c}=xast;removeEmptyText$1.name="removeEmptyText";removeEmptyText$1.description="removes empty <text> elements";removeEmptyText$1.fn=(root,params)=>{const{text:text=true,tspan:tspan=true,tref:tref=true}=params;return{element:{enter:(node,parentNode)=>{if(text&&node.name==="text"&&node.children.length===0){detachNodeFromParent$c(node,parentNode)}if(tspan&&node.name==="tspan"&&node.children.length===0){detachNodeFromParent$c(node,parentNode)}if(tref&&node.name==="tref"&&node.attributes["xlink:href"]==null){detachNodeFromParent$c(node,parentNode)}}}}};var convertShapeToPath$1={};const{stringifyPathData:stringifyPathData$1}=path;const{detachNodeFromParent:detachNodeFromParent$b}=xast;convertShapeToPath$1.name="convertShapeToPath";convertShapeToPath$1.description="converts basic shapes to more compact path form";const regNumber=/[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;convertShapeToPath$1.fn=(root,params)=>{const{convertArcs:convertArcs=false,floatPrecision:precision}=params;return{element:{enter:(node,parentNode)=>{if(node.name==="rect"&&node.attributes.width!=null&&node.attributes.height!=null&&node.attributes.rx==null&&node.attributes.ry==null){const x=Number(node.attributes.x||"0");const y=Number(node.attributes.y||"0");const width=Number(node.attributes.width);const height=Number(node.attributes.height);if(Number.isNaN(x-y+width-height))return;const pathData=[{command:"M",args:[x,y]},{command:"H",args:[x+width]},{command:"V",args:[y+height]},{command:"H",args:[x]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.x;delete node.attributes.y;delete node.attributes.width;delete node.attributes.height}if(node.name==="line"){const x1=Number(node.attributes.x1||"0");const y1=Number(node.attributes.y1||"0");const x2=Number(node.attributes.x2||"0");const y2=Number(node.attributes.y2||"0");if(Number.isNaN(x1-y1+x2-y2))return;const pathData=[{command:"M",args:[x1,y1]},{command:"L",args:[x2,y2]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.x1;delete node.attributes.y1;delete node.attributes.x2;delete node.attributes.y2}if((node.name==="polyline"||node.name==="polygon")&&node.attributes.points!=null){const coords=(node.attributes.points.match(regNumber)||[]).map(Number);if(coords.length<4){detachNodeFromParent$b(node,parentNode);return}const pathData=[];for(let i=0;i<coords.length;i+=2){pathData.push({command:i===0?"M":"L",args:coords.slice(i,i+2)})}if(node.name==="polygon"){pathData.push({command:"z",args:[]})}node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.points}if(node.name==="circle"&&convertArcs){const cx=Number(node.attributes.cx||"0");const cy=Number(node.attributes.cy||"0");const r=Number(node.attributes.r||"0");if(Number.isNaN(cx-cy+r)){return}const pathData=[{command:"M",args:[cx,cy-r]},{command:"A",args:[r,r,0,1,0,cx,cy+r]},{command:"A",args:[r,r,0,1,0,cx,cy-r]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.cx;delete node.attributes.cy;delete node.attributes.r}if(node.name==="ellipse"&&convertArcs){const ecx=Number(node.attributes.cx||"0");const ecy=Number(node.attributes.cy||"0");const rx=Number(node.attributes.rx||"0");const ry=Number(node.attributes.ry||"0");if(Number.isNaN(ecx-ecy+rx-ry)){return}const pathData=[{command:"M",args:[ecx,ecy-ry]},{command:"A",args:[rx,ry,0,1,0,ecx,ecy+ry]},{command:"A",args:[rx,ry,0,1,0,ecx,ecy-ry]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.cx;delete node.attributes.cy;delete node.attributes.rx;delete node.attributes.ry}}}}};var convertEllipseToCircle$1={};convertEllipseToCircle$1.name="convertEllipseToCircle";convertEllipseToCircle$1.description="converts non-eccentric <ellipse>s to <circle>s";convertEllipseToCircle$1.fn=()=>({element:{enter:node=>{if(node.name==="ellipse"){const rx=node.attributes.rx||"0";const ry=node.attributes.ry||"0";if(rx===ry||rx==="auto"||ry==="auto"){node.name="circle";const radius=rx==="auto"?ry:rx;delete node.attributes.rx;delete node.attributes.ry;node.attributes.r=radius}}}}});var moveElemsAttrsToGroup$1={};const{visit:visit$1}=xast;const{inheritableAttrs:inheritableAttrs$1,pathElems:pathElems$2}=_collections;moveElemsAttrsToGroup$1.name="moveElemsAttrsToGroup";moveElemsAttrsToGroup$1.description="Move common attributes of group children to the group";moveElemsAttrsToGroup$1.fn=root=>{let deoptimizedWithStyles=false;visit$1(root,{element:{enter:node=>{if(node.name==="style"){deoptimizedWithStyles=true}}}});return{element:{exit:node=>{if(node.name!=="g"||node.children.length<=1){return}if(deoptimizedWithStyles){return}const commonAttributes=new Map;let initial=true;let everyChildIsPath=true;for(const child of node.children){if(child.type==="element"){if(pathElems$2.includes(child.name)===false){everyChildIsPath=false}if(initial){initial=false;for(const[name,value]of Object.entries(child.attributes)){if(inheritableAttrs$1.includes(name)){commonAttributes.set(name,value)}}}else{for(const[name,value]of commonAttributes){if(child.attributes[name]!==value){commonAttributes.delete(name)}}}}}if(node.attributes["clip-path"]!=null||node.attributes.mask!=null){commonAttributes.delete("transform")}if(everyChildIsPath){commonAttributes.delete("transform")}for(const[name,value]of commonAttributes){if(name==="transform"){if(node.attributes.transform!=null){node.attributes.transform=`${node.attributes.transform} ${value}`}else{node.attributes.transform=value}}else{node.attributes[name]=value}}for(const child of node.children){if(child.type==="element"){for(const[name]of commonAttributes){delete child.attributes[name]}}}}}}};var moveGroupAttrsToElems$1={};const{pathElems:pathElems$1,referencesProps:referencesProps$2}=_collections;const{includesUrlReference:includesUrlReference$1}=tools;moveGroupAttrsToElems$1.name="moveGroupAttrsToElems";moveGroupAttrsToElems$1.description="moves some group attributes to the content elements";const pathElemsWithGroupsAndText=[...pathElems$1,"g","text"];moveGroupAttrsToElems$1.fn=()=>({element:{enter:node=>{if(node.name==="g"&&node.children.length!==0&&node.attributes.transform!=null&&Object.entries(node.attributes).some((([name,value])=>referencesProps$2.includes(name)&&includesUrlReference$1(value)))===false&&node.children.every((child=>child.type==="element"&&pathElemsWithGroupsAndText.includes(child.name)&&child.attributes.id==null))){for(const child of node.children){const value=node.attributes.transform;if(child.type==="element"){if(child.attributes.transform!=null){child.attributes.transform=`${value} ${child.attributes.transform}`}else{child.attributes.transform=value}}}delete node.attributes.transform}}}});var collapseGroups$1={};const{inheritableAttrs:inheritableAttrs,elemsGroups:elemsGroups$1}=_collections;collapseGroups$1.name="collapseGroups";collapseGroups$1.description="collapses useless groups";const hasAnimatedAttr=(node,name)=>{if(node.type==="element"){if(elemsGroups$1.animation.includes(node.name)&&node.attributes.attributeName===name){return true}for(const child of node.children){if(hasAnimatedAttr(child,name)){return true}}}return false};collapseGroups$1.fn=()=>({element:{exit:(node,parentNode)=>{if(parentNode.type==="root"||parentNode.name==="switch"){return}if(node.name!=="g"||node.children.length===0){return}if(Object.keys(node.attributes).length!==0&&node.children.length===1){const firstChild=node.children[0];if(firstChild.type==="element"&&firstChild.attributes.id==null&&node.attributes.filter==null&&(node.attributes.class==null||firstChild.attributes.class==null)&&(node.attributes["clip-path"]==null&&node.attributes.mask==null||firstChild.name==="g"&&node.attributes.transform==null&&firstChild.attributes.transform==null)){for(const[name,value]of Object.entries(node.attributes)){if(hasAnimatedAttr(firstChild,name)){return}if(firstChild.attributes[name]==null){firstChild.attributes[name]=value}else if(name==="transform"){firstChild.attributes[name]=value+" "+firstChild.attributes[name]}else if(firstChild.attributes[name]==="inherit"){firstChild.attributes[name]=value}else if(inheritableAttrs.includes(name)===false&&firstChild.attributes[name]!==value){return}delete node.attributes[name]}}}if(Object.keys(node.attributes).length===0){for(const child of node.children){if(child.type==="element"&&elemsGroups$1.animation.includes(child.name)){return}}const index=parentNode.children.indexOf(node);parentNode.children.splice(index,1,...node.children);for(const child of node.children){Object.defineProperty(child,"parentNode",{writable:true,value:parentNode})}}}}});var convertPathData$1={};var _path={};const{parsePathData:parsePathData$1,stringifyPathData:stringifyPathData}=path;var prevCtrlPoint;const path2js$3=path=>{if(path.pathJS)return path.pathJS;const pathData=[];const newPathData=parsePathData$1(path.attributes.d);for(const{command:command,args:args}of newPathData){pathData.push({command:command,args:args})}if(pathData.length&&pathData[0].command=="m"){pathData[0].command="M"}path.pathJS=pathData;return pathData};_path.path2js=path2js$3;const convertRelativeToAbsolute=data=>{const newData=[];let start=[0,0];let cursor=[0,0];for(let{command:command,args:args}of data){args=args.slice();if(command==="m"){args[0]+=cursor[0];args[1]+=cursor[1];command="M"}if(command==="M"){cursor[0]=args[0];cursor[1]=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="h"){args[0]+=cursor[0];command="H"}if(command==="H"){cursor[0]=args[0]}if(command==="v"){args[0]+=cursor[1];command="V"}if(command==="V"){cursor[1]=args[0]}if(command==="l"){args[0]+=cursor[0];args[1]+=cursor[1];command="L"}if(command==="L"){cursor[0]=args[0];cursor[1]=args[1]}if(command==="c"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];args[4]+=cursor[0];args[5]+=cursor[1];command="C"}if(command==="C"){cursor[0]=args[4];cursor[1]=args[5]}if(command==="s"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];command="S"}if(command==="S"){cursor[0]=args[2];cursor[1]=args[3]}if(command==="q"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];command="Q"}if(command==="Q"){cursor[0]=args[2];cursor[1]=args[3]}if(command==="t"){args[0]+=cursor[0];args[1]+=cursor[1];command="T"}if(command==="T"){cursor[0]=args[0];cursor[1]=args[1]}if(command==="a"){args[5]+=cursor[0];args[6]+=cursor[1];command="A"}if(command==="A"){cursor[0]=args[5];cursor[1]=args[6]}if(command==="z"||command==="Z"){cursor[0]=start[0];cursor[1]=start[1];command="z"}newData.push({command:command,args:args})}return newData};_path.js2path=function(path,data,params){path.pathJS=data;const pathData=[];for(const item of data){if(pathData.length!==0&&(item.command==="M"||item.command==="m")){const last=pathData[pathData.length-1];if(last.command==="M"||last.command==="m"){pathData.pop()}}pathData.push({command:item.command,args:item.args})}path.attributes.d=stringifyPathData({pathData:pathData,precision:params.floatPrecision,disableSpaceAfterFlags:params.noSpaceAfterFlags})};function set(dest,source){dest[0]=source[source.length-2];dest[1]=source[source.length-1];return dest}_path.intersects=function(path1,path2){const points1=gatherPoints(convertRelativeToAbsolute(path1));const points2=gatherPoints(convertRelativeToAbsolute(path2));if(points1.maxX<=points2.minX||points2.maxX<=points1.minX||points1.maxY<=points2.minY||points2.maxY<=points1.minY||points1.list.every((set1=>points2.list.every((set2=>set1.list[set1.maxX][0]<=set2.list[set2.minX][0]||set2.list[set2.maxX][0]<=set1.list[set1.minX][0]||set1.list[set1.maxY][1]<=set2.list[set2.minY][1]||set2.list[set2.maxY][1]<=set1.list[set1.minY][1])))))return false;const hullNest1=points1.list.map(convexHull);const hullNest2=points2.list.map(convexHull);return hullNest1.some((function(hull1){if(hull1.list.length<3)return false;return hullNest2.some((function(hull2){if(hull2.list.length<3)return false;var simplex=[getSupport(hull1,hull2,[1,0])],direction=minus(simplex[0]);var iterations=1e4;while(true){if(iterations--==0){console.error("Error: infinite loop while processing mergePaths plugin.");return true}simplex.push(getSupport(hull1,hull2,direction));if(dot(direction,simplex[simplex.length-1])<=0)return false;if(processSimplex(simplex,direction))return true}}))}));function getSupport(a,b,direction){return sub(supportPoint(a,direction),supportPoint(b,minus(direction)))}function supportPoint(polygon,direction){var index=direction[1]>=0?direction[0]<0?polygon.maxY:polygon.maxX:direction[0]<0?polygon.minX:polygon.minY,max=-Infinity,value;while((value=dot(polygon.list[index],direction))>max){max=value;index=++index%polygon.list.length}return polygon.list[(index||polygon.list.length)-1]}};function processSimplex(simplex,direction){if(simplex.length==2){let a=simplex[1],b=simplex[0],AO=minus(simplex[1]),AB=sub(b,a);if(dot(AO,AB)>0){set(direction,orth(AB,a))}else{set(direction,AO);simplex.shift()}}else{let a=simplex[2],b=simplex[1],c=simplex[0],AB=sub(b,a),AC=sub(c,a),AO=minus(a),ACB=orth(AB,AC),ABC=orth(AC,AB);if(dot(ACB,AO)>0){if(dot(AB,AO)>0){set(direction,ACB);simplex.shift()}else{set(direction,AO);simplex.splice(0,2)}}else if(dot(ABC,AO)>0){if(dot(AC,AO)>0){set(direction,ABC);simplex.splice(1,1)}else{set(direction,AO);simplex.splice(0,2)}}else return true}return false}function minus(v){return[-v[0],-v[1]]}function sub(v1,v2){return[v1[0]-v2[0],v1[1]-v2[1]]}function dot(v1,v2){return v1[0]*v2[0]+v1[1]*v2[1]}function orth(v,from){var o=[-v[1],v[0]];return dot(o,minus(from))<0?minus(o):o}function gatherPoints(pathData){const points={list:[],minX:0,minY:0,maxX:0,maxY:0};const addPoint=(path,point)=>{if(!path.list.length||point[1]>path.list[path.maxY][1]){path.maxY=path.list.length;points.maxY=points.list.length?Math.max(point[1],points.maxY):point[1]}if(!path.list.length||point[0]>path.list[path.maxX][0]){path.maxX=path.list.length;points.maxX=points.list.length?Math.max(point[0],points.maxX):point[0]}if(!path.list.length||point[1]<path.list[path.minY][1]){path.minY=path.list.length;points.minY=points.list.length?Math.min(point[1],points.minY):point[1]}if(!path.list.length||point[0]<path.list[path.minX][0]){path.minX=path.list.length;points.minX=points.list.length?Math.min(point[0],points.minX):point[0]}path.list.push(point)};for(let i=0;i<pathData.length;i+=1){const pathDataItem=pathData[i];let subPath=points.list.length===0?{list:[],minX:0,minY:0,maxX:0,maxY:0}:points.list[points.list.length-1];let prev=i===0?null:pathData[i-1];let basePoint=subPath.list.length===0?null:subPath.list[subPath.list.length-1];let data=pathDataItem.args;let ctrlPoint=basePoint;const toAbsolute=(n,i)=>n+(basePoint==null?0:basePoint[i%2]);switch(pathDataItem.command){case"M":subPath={list:[],minX:0,minY:0,maxX:0,maxY:0};points.list.push(subPath);break;case"H":if(basePoint!=null){addPoint(subPath,[data[0],basePoint[1]])}break;case"V":if(basePoint!=null){addPoint(subPath,[basePoint[0],data[0]])}break;case"Q":addPoint(subPath,data.slice(0,2));prevCtrlPoint=[data[2]-data[0],data[3]-data[1]];break;case"T":if(basePoint!=null&&prev!=null&&(prev.command=="Q"||prev.command=="T")){ctrlPoint=[basePoint[0]+prevCtrlPoint[0],basePoint[1]+prevCtrlPoint[1]];addPoint(subPath,ctrlPoint);prevCtrlPoint=[data[0]-ctrlPoint[0],data[1]-ctrlPoint[1]]}break;case"C":if(basePoint!=null){addPoint(subPath,[.5*(basePoint[0]+data[0]),.5*(basePoint[1]+data[1])])}addPoint(subPath,[.5*(data[0]+data[2]),.5*(data[1]+data[3])]);addPoint(subPath,[.5*(data[2]+data[4]),.5*(data[3]+data[5])]);prevCtrlPoint=[data[4]-data[2],data[5]-data[3]];break;case"S":if(basePoint!=null&&prev!=null&&(prev.command=="C"||prev.command=="S")){addPoint(subPath,[basePoint[0]+.5*prevCtrlPoint[0],basePoint[1]+.5*prevCtrlPoint[1]]);ctrlPoint=[basePoint[0]+prevCtrlPoint[0],basePoint[1]+prevCtrlPoint[1]]}if(ctrlPoint!=null){addPoint(subPath,[.5*(ctrlPoint[0]+data[0]),.5*(ctrlPoint[1]+data[1])])}addPoint(subPath,[.5*(data[0]+data[2]),.5*(data[1]+data[3])]);prevCtrlPoint=[data[2]-data[0],data[3]-data[1]];break;case"A":if(basePoint!=null){var curves=a2c.apply(0,basePoint.concat(data));for(var cData;(cData=curves.splice(0,6).map(toAbsolute)).length;){if(basePoint!=null){addPoint(subPath,[.5*(basePoint[0]+cData[0]),.5*(basePoint[1]+cData[1])])}addPoint(subPath,[.5*(cData[0]+cData[2]),.5*(cData[1]+cData[3])]);addPoint(subPath,[.5*(cData[2]+cData[4]),.5*(cData[3]+cData[5])]);if(curves.length)addPoint(subPath,basePoint=cData.slice(-2))}}break}if(data.length>=2)addPoint(subPath,data.slice(-2))}return points}function convexHull(points){points.list.sort((function(a,b){return a[0]==b[0]?a[1]-b[1]:a[0]-b[0]}));var lower=[],minY=0,bottom=0;for(let i=0;i<points.list.length;i++){while(lower.length>=2&&cross(lower[lower.length-2],lower[lower.length-1],points.list[i])<=0){lower.pop()}if(points.list[i][1]<points.list[minY][1]){minY=i;bottom=lower.length}lower.push(points.list[i])}var upper=[],maxY=points.list.length-1,top=0;for(let i=points.list.length;i--;){while(upper.length>=2&&cross(upper[upper.length-2],upper[upper.length-1],points.list[i])<=0){upper.pop()}if(points.list[i][1]>points.list[maxY][1]){maxY=i;top=upper.length}upper.push(points.list[i])}upper.pop();lower.pop();const hullList=lower.concat(upper);const hull={list:hullList,minX:0,maxX:lower.length,minY:bottom,maxY:(lower.length+top)%hullList.length};return hull}function cross(o,a,b){return(a[0]-o[0])*(b[1]-o[1])-(a[1]-o[1])*(b[0]-o[0])}const a2c=(x1,y1,rx,ry,angle,large_arc_flag,sweep_flag,x2,y2,recursive)=>{const _120=Math.PI*120/180;const rad=Math.PI/180*(+angle||0);let res=[];const rotateX=(x,y,rad)=>x*Math.cos(rad)-y*Math.sin(rad);const rotateY=(x,y,rad)=>x*Math.sin(rad)+y*Math.cos(rad);if(!recursive){x1=rotateX(x1,y1,-rad);y1=rotateY(x1,y1,-rad);x2=rotateX(x2,y2,-rad);y2=rotateY(x2,y2,-rad);var x=(x1-x2)/2,y=(y1-y2)/2;var h=x*x/(rx*rx)+y*y/(ry*ry);if(h>1){h=Math.sqrt(h);rx=h*rx;ry=h*ry}var rx2=rx*rx;var ry2=ry*ry;var k=(large_arc_flag==sweep_flag?-1:1)*Math.sqrt(Math.abs((rx2*ry2-rx2*y*y-ry2*x*x)/(rx2*y*y+ry2*x*x)));var cx=k*rx*y/ry+(x1+x2)/2;var cy=k*-ry*x/rx+(y1+y2)/2;var f1=Math.asin(Number(((y1-cy)/ry).toFixed(9)));var f2=Math.asin(Number(((y2-cy)/ry).toFixed(9)));f1=x1<cx?Math.PI-f1:f1;f2=x2<cx?Math.PI-f2:f2;f1<0&&(f1=Math.PI*2+f1);f2<0&&(f2=Math.PI*2+f2);if(sweep_flag&&f1>f2){f1=f1-Math.PI*2}if(!sweep_flag&&f2>f1){f2=f2-Math.PI*2}}else{f1=recursive[0];f2=recursive[1];cx=recursive[2];cy=recursive[3]}var df=f2-f1;if(Math.abs(df)>_120){var f2old=f2,x2old=x2,y2old=y2;f2=f1+_120*(sweep_flag&&f2>f1?1:-1);x2=cx+rx*Math.cos(f2);y2=cy+ry*Math.sin(f2);res=a2c(x2,y2,rx,ry,angle,0,sweep_flag,x2old,y2old,[f2,f2old,cx,cy])}df=f2-f1;var c1=Math.cos(f1),s1=Math.sin(f1),c2=Math.cos(f2),s2=Math.sin(f2),t=Math.tan(df/4),hx=4/3*rx*t,hy=4/3*ry*t,m=[-hx*s1,hy*c1,x2+hx*s2-x1,y2-hy*c2-y1,x2-x1,y2-y1];if(recursive){return m.concat(res)}else{res=m.concat(res);var newres=[];for(var i=0,n=res.length;i<n;i++){newres[i]=i%2?rotateY(res[i-1],res[i],rad):rotateX(res[i],res[i+1],rad)}return newres}};var applyTransforms$2={};var _transforms={};const regTransformTypes=/matrix|translate|scale|rotate|skewX|skewY/;const regTransformSplit=/\s*(matrix|translate|scale|rotate|skewX|skewY)\s*\(\s*(.+?)\s*\)[\s,]*/;const regNumericValues$2=/[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;_transforms.transform2js=transformString=>{const transforms=[];let current=null;for(const item of transformString.split(regTransformSplit)){var num;if(item){if(regTransformTypes.test(item)){current={name:item,data:[]};transforms.push(current)}else{while(num=regNumericValues$2.exec(item)){num=Number(num);if(current!=null){current.data.push(num)}}}}}return current==null||current.data.length==0?[]:transforms};_transforms.transformsMultiply=transforms=>{const matrixData=transforms.map((transform=>{if(transform.name==="matrix"){return transform.data}return transformToMatrix(transform)}));const matrixTransform={name:"matrix",data:matrixData.length>0?matrixData.reduce(multiplyTransformMatrices):[]};return matrixTransform};const mth={rad:deg=>deg*Math.PI/180,deg:rad=>rad*180/Math.PI,cos:deg=>Math.cos(mth.rad(deg)),acos:(val,floatPrecision)=>Number(mth.deg(Math.acos(val)).toFixed(floatPrecision)),sin:deg=>Math.sin(mth.rad(deg)),asin:(val,floatPrecision)=>Number(mth.deg(Math.asin(val)).toFixed(floatPrecision)),tan:deg=>Math.tan(mth.rad(deg)),atan:(val,floatPrecision)=>Number(mth.deg(Math.atan(val)).toFixed(floatPrecision))};_transforms.matrixToTransform=(transform,params)=>{let floatPrecision=params.floatPrecision;let data=transform.data;let transforms=[];let sx=Number(Math.hypot(data[0],data[1]).toFixed(params.transformPrecision));let sy=Number(((data[0]*data[3]-data[1]*data[2])/sx).toFixed(params.transformPrecision));let colsSum=data[0]*data[2]+data[1]*data[3];let rowsSum=data[0]*data[1]+data[2]*data[3];let scaleBefore=rowsSum!=0||sx==sy;if(data[4]||data[5]){transforms.push({name:"translate",data:data.slice(4,data[5]?6:5)})}if(!data[1]&&data[2]){transforms.push({name:"skewX",data:[mth.atan(data[2]/sy,floatPrecision)]})}else if(data[1]&&!data[2]){transforms.push({name:"skewY",data:[mth.atan(data[1]/data[0],floatPrecision)]});sx=data[0];sy=data[3]}else if(!colsSum||sx==1&&sy==1||!scaleBefore){if(!scaleBefore){sx=(data[0]<0?-1:1)*Math.hypot(data[0],data[2]);sy=(data[3]<0?-1:1)*Math.hypot(data[1],data[3]);transforms.push({name:"scale",data:[sx,sy]})}var angle=Math.min(Math.max(-1,data[0]/sx),1),rotate=[mth.acos(angle,floatPrecision)*((scaleBefore?1:sy)*data[1]<0?-1:1)];if(rotate[0])transforms.push({name:"rotate",data:rotate});if(rowsSum&&colsSum)transforms.push({name:"skewX",data:[mth.atan(colsSum/(sx*sx),floatPrecision)]});if(rotate[0]&&(data[4]||data[5])){transforms.shift();var cos=data[0]/sx,sin=data[1]/(scaleBefore?sx:sy),x=data[4]*(scaleBefore?1:sy),y=data[5]*(scaleBefore?1:sx),denom=(Math.pow(1-cos,2)+Math.pow(sin,2))*(scaleBefore?1:sx*sy);rotate.push(((1-cos)*x-sin*y)/denom);rotate.push(((1-cos)*y+sin*x)/denom)}}else if(data[1]||data[2]){return[transform]}if(scaleBefore&&(sx!=1||sy!=1)||!transforms.length)transforms.push({name:"scale",data:sx==sy?[sx]:[sx,sy]});return transforms};const transformToMatrix=transform=>{if(transform.name==="matrix"){return transform.data}switch(transform.name){case"translate":return[1,0,0,1,transform.data[0],transform.data[1]||0];case"scale":return[transform.data[0],0,0,transform.data[1]||transform.data[0],0,0];case"rotate":var cos=mth.cos(transform.data[0]),sin=mth.sin(transform.data[0]),cx=transform.data[1]||0,cy=transform.data[2]||0;return[cos,sin,-sin,cos,(1-cos)*cx+sin*cy,(1-cos)*cy-sin*cx];case"skewX":return[1,0,mth.tan(transform.data[0]),1,0,0];case"skewY":return[1,mth.tan(transform.data[0]),0,1,0,0];default:throw Error(`Unknown transform ${transform.name}`)}};_transforms.transformArc=(cursor,arc,transform)=>{const x=arc[5]-cursor[0];const y=arc[6]-cursor[1];let a=arc[0];let b=arc[1];const rot=arc[2]*Math.PI/180;const cos=Math.cos(rot);const sin=Math.sin(rot);if(a>0&&b>0){let h=Math.pow(x*cos+y*sin,2)/(4*a*a)+Math.pow(y*cos-x*sin,2)/(4*b*b);if(h>1){h=Math.sqrt(h);a*=h;b*=h}}const ellipse=[a*cos,a*sin,-b*sin,b*cos,0,0];const m=multiplyTransformMatrices(transform,ellipse);const lastCol=m[2]*m[2]+m[3]*m[3];const squareSum=m[0]*m[0]+m[1]*m[1]+lastCol;const root=Math.hypot(m[0]-m[3],m[1]+m[2])*Math.hypot(m[0]+m[3],m[1]-m[2]);if(!root){arc[0]=arc[1]=Math.sqrt(squareSum/2);arc[2]=0}else{const majorAxisSqr=(squareSum+root)/2;const minorAxisSqr=(squareSum-root)/2;const major=Math.abs(majorAxisSqr-lastCol)>1e-6;const sub=(major?majorAxisSqr:minorAxisSqr)-lastCol;const rowsSum=m[0]*m[2]+m[1]*m[3];const term1=m[0]*sub+m[2]*rowsSum;const term2=m[1]*sub+m[3]*rowsSum;arc[0]=Math.sqrt(majorAxisSqr);arc[1]=Math.sqrt(minorAxisSqr);arc[2]=((major?term2<0:term1>0)?-1:1)*Math.acos((major?term1:term2)/Math.hypot(term1,term2))*180/Math.PI}if(transform[0]<0!==transform[3]<0){arc[4]=1-arc[4]}return arc};const multiplyTransformMatrices=(a,b)=>[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]];const{collectStylesheet:collectStylesheet$4,computeStyle:computeStyle$3}=style;const{transformsMultiply:transformsMultiply$1,transform2js:transform2js$1,transformArc:transformArc}=_transforms;const{path2js:path2js$2}=_path;const{removeLeadingZero:removeLeadingZero$1,includesUrlReference:includesUrlReference}=tools;const{referencesProps:referencesProps$1,attrsGroupsDefaults:attrsGroupsDefaults$1}=_collections;const regNumericValues$1=/[-+]?(\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;const applyTransforms$1=(root,params)=>{const stylesheet=collectStylesheet$4(root);return{element:{enter:node=>{if(node.attributes.d==null){return}if(node.attributes.id!=null){return}if(node.attributes.transform==null||node.attributes.transform===""||node.attributes.style!=null||Object.entries(node.attributes).some((([name,value])=>referencesProps$1.includes(name)&&includesUrlReference(value)))){return}const computedStyle=computeStyle$3(stylesheet,node);const transformStyle=computedStyle.transform;if(transformStyle.type==="static"&&transformStyle.value!==node.attributes.transform){return}const matrix=transformsMultiply$1(transform2js$1(node.attributes.transform));const stroke=computedStyle.stroke?.type==="static"?computedStyle.stroke.value:null;const strokeWidth=computedStyle["stroke-width"]?.type==="static"?computedStyle["stroke-width"].value:null;const transformPrecision=params.transformPrecision;if(computedStyle.stroke?.type==="dynamic"||computedStyle["stroke-width"]?.type==="dynamic"){return}const scale=Number(Math.sqrt(matrix.data[0]*matrix.data[0]+matrix.data[1]*matrix.data[1]).toFixed(transformPrecision));if(stroke&&stroke!="none"){if(!params.applyTransformsStroked){return}if((matrix.data[0]!==matrix.data[3]||matrix.data[1]!==-matrix.data[2])&&(matrix.data[0]!==-matrix.data[3]||matrix.data[1]!==matrix.data[2])){return}if(scale!==1){if(node.attributes["vector-effect"]!=="non-scaling-stroke"){node.attributes["stroke-width"]=(strokeWidth||attrsGroupsDefaults$1.presentation["stroke-width"]).trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)));if(node.attributes["stroke-dashoffset"]!=null){node.attributes["stroke-dashoffset"]=node.attributes["stroke-dashoffset"].trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)))}if(node.attributes["stroke-dasharray"]!=null){node.attributes["stroke-dasharray"]=node.attributes["stroke-dasharray"].trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)))}}}}const pathData=path2js$2(node);applyMatrixToPathData(pathData,matrix.data);delete node.attributes.transform}}}};applyTransforms$2.applyTransforms=applyTransforms$1;const transformAbsolutePoint=(matrix,x,y)=>{const newX=matrix[0]*x+matrix[2]*y+matrix[4];const newY=matrix[1]*x+matrix[3]*y+matrix[5];return[newX,newY]};const transformRelativePoint=(matrix,x,y)=>{const newX=matrix[0]*x+matrix[2]*y;const newY=matrix[1]*x+matrix[3]*y;return[newX,newY]};const applyMatrixToPathData=(pathData,matrix)=>{const start=[0,0];const cursor=[0,0];for(const pathItem of pathData){let{command:command,args:args}=pathItem;if(command==="M"){cursor[0]=args[0];cursor[1]=args[1];start[0]=cursor[0];start[1]=cursor[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="m"){cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="H"){command="L";args=[args[0],cursor[1]]}if(command==="h"){command="l";args=[args[0],0]}if(command==="V"){command="L";args=[cursor[0],args[0]]}if(command==="v"){command="l";args=[0,args[0]]}if(command==="L"){cursor[0]=args[0];cursor[1]=args[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="l"){cursor[0]+=args[0];cursor[1]+=args[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="C"){cursor[0]=args[4];cursor[1]=args[5];const[x1,y1]=transformAbsolutePoint(matrix,args[0],args[1]);const[x2,y2]=transformAbsolutePoint(matrix,args[2],args[3]);const[x,y]=transformAbsolutePoint(matrix,args[4],args[5]);args[0]=x1;args[1]=y1;args[2]=x2;args[3]=y2;args[4]=x;args[5]=y}if(command==="c"){cursor[0]+=args[4];cursor[1]+=args[5];const[x1,y1]=transformRelativePoint(matrix,args[0],args[1]);const[x2,y2]=transformRelativePoint(matrix,args[2],args[3]);const[x,y]=transformRelativePoint(matrix,args[4],args[5]);args[0]=x1;args[1]=y1;args[2]=x2;args[3]=y2;args[4]=x;args[5]=y}if(command==="S"){cursor[0]=args[2];cursor[1]=args[3];const[x2,y2]=transformAbsolutePoint(matrix,args[0],args[1]);const[x,y]=transformAbsolutePoint(matrix,args[2],args[3]);args[0]=x2;args[1]=y2;args[2]=x;args[3]=y}if(command==="s"){cursor[0]+=args[2];cursor[1]+=args[3];const[x2,y2]=transformRelativePoint(matrix,args[0],args[1]);const[x,y]=transformRelativePoint(matrix,args[2],args[3]);args[0]=x2;args[1]=y2;args[2]=x;args[3]=y}if(command==="Q"){cursor[0]=args[2];cursor[1]=args[3];const[x1,y1]=transformAbsolutePoint(matrix,args[0],args[1]);const[x,y]=transformAbsolutePoint(matrix,args[2],args[3]);args[0]=x1;args[1]=y1;args[2]=x;args[3]=y}if(command==="q"){cursor[0]+=args[2];cursor[1]+=args[3];const[x1,y1]=transformRelativePoint(matrix,args[0],args[1]);const[x,y]=transformRelativePoint(matrix,args[2],args[3]);args[0]=x1;args[1]=y1;args[2]=x;args[3]=y}if(command==="T"){cursor[0]=args[0];cursor[1]=args[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="t"){cursor[0]+=args[0];cursor[1]+=args[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="A"){transformArc(cursor,args,matrix);cursor[0]=args[5];cursor[1]=args[6];if(Math.abs(args[2])>80){const a=args[0];const rotation=args[2];args[0]=args[1];args[1]=a;args[2]=rotation+(rotation>0?-90:90)}const[x,y]=transformAbsolutePoint(matrix,args[5],args[6]);args[5]=x;args[6]=y}if(command==="a"){transformArc([0,0],args,matrix);cursor[0]+=args[5];cursor[1]+=args[6];if(Math.abs(args[2])>80){const a=args[0];const rotation=args[2];args[0]=args[1];args[1]=a;args[2]=rotation+(rotation>0?-90:90)}const[x,y]=transformRelativePoint(matrix,args[5],args[6]);args[5]=x;args[6]=y}if(command==="z"||command==="Z"){cursor[0]=start[0];cursor[1]=start[1]}pathItem.command=command;pathItem.args=args}};const{collectStylesheet:collectStylesheet$3,computeStyle:computeStyle$2}=style;const{visit:visit}=xast;const{pathElems:pathElems}=_collections;const{path2js:path2js$1,js2path:js2path$1}=_path;const{applyTransforms:applyTransforms}=applyTransforms$2;const{cleanupOutData:cleanupOutData$1}=tools;convertPathData$1.name="convertPathData";convertPathData$1.description="optimizes path data: writes in shorter form, applies transformations";let roundData;let precision;let error;let arcThreshold;let arcTolerance;convertPathData$1.fn=(root,params)=>{const{applyTransforms:_applyTransforms=true,applyTransformsStroked:applyTransformsStroked=true,makeArcs:makeArcs={threshold:2.5,tolerance:.5},straightCurves:straightCurves=true,lineShorthands:lineShorthands=true,convertToZ:convertToZ=true,curveSmoothShorthands:curveSmoothShorthands=true,floatPrecision:floatPrecision=3,transformPrecision:transformPrecision=5,removeUseless:removeUseless=true,collapseRepeated:collapseRepeated=true,utilizeAbsolute:utilizeAbsolute=true,leadingZero:leadingZero=true,negativeExtraSpace:negativeExtraSpace=true,noSpaceAfterFlags:noSpaceAfterFlags=false,forceAbsolutePath:forceAbsolutePath=false}=params;const newParams={applyTransforms:_applyTransforms,applyTransformsStroked:applyTransformsStroked,makeArcs:makeArcs,straightCurves:straightCurves,lineShorthands:lineShorthands,convertToZ:convertToZ,curveSmoothShorthands:curveSmoothShorthands,floatPrecision:floatPrecision,transformPrecision:transformPrecision,removeUseless:removeUseless,collapseRepeated:collapseRepeated,utilizeAbsolute:utilizeAbsolute,leadingZero:leadingZero,negativeExtraSpace:negativeExtraSpace,noSpaceAfterFlags:noSpaceAfterFlags,forceAbsolutePath:forceAbsolutePath};if(_applyTransforms){visit(root,applyTransforms(root,{transformPrecision:transformPrecision,applyTransformsStroked:applyTransformsStroked}))}const stylesheet=collectStylesheet$3(root);return{element:{enter:node=>{if(pathElems.includes(node.name)&&node.attributes.d!=null){const computedStyle=computeStyle$2(stylesheet,node);precision=floatPrecision;error=precision!==false?+Math.pow(.1,precision).toFixed(precision):.01;roundData=precision>0&&precision<20?strongRound:round$1;if(makeArcs){arcThreshold=makeArcs.threshold;arcTolerance=makeArcs.tolerance}const hasMarkerMid=computedStyle["marker-mid"]!=null;const maybeHasStroke=computedStyle.stroke&&(computedStyle.stroke.type==="dynamic"||computedStyle.stroke.value!=="none");const maybeHasLinecap=computedStyle["stroke-linecap"]&&(computedStyle["stroke-linecap"].type==="dynamic"||computedStyle["stroke-linecap"].value!=="butt");const maybeHasStrokeAndLinecap=maybeHasStroke&&maybeHasLinecap;const isSafeToUseZ=maybeHasStroke?computedStyle["stroke-linecap"]?.type==="static"&&computedStyle["stroke-linecap"].value==="round"&&computedStyle["stroke-linejoin"]?.type==="static"&&computedStyle["stroke-linejoin"].value==="round":true;var data=path2js$1(node);if(data.length){convertToRelative(data);data=filters(data,newParams,{isSafeToUseZ:isSafeToUseZ,maybeHasStrokeAndLinecap:maybeHasStrokeAndLinecap,hasMarkerMid:hasMarkerMid});if(utilizeAbsolute){data=convertToMixed(data,newParams)}js2path$1(node,data,newParams)}}}}}};const convertToRelative=pathData=>{let start=[0,0];let cursor=[0,0];let prevCoords=[0,0];for(let i=0;i<pathData.length;i+=1){const pathItem=pathData[i];let{command:command,args:args}=pathItem;if(command==="m"){cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="M"){if(i!==0){command="m"}args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="l"){cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="L"){command="l";args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="h"){cursor[0]+=args[0]}if(command==="H"){command="h";args[0]-=cursor[0];cursor[0]+=args[0]}if(command==="v"){cursor[1]+=args[0]}if(command==="V"){command="v";args[0]-=cursor[1];cursor[1]+=args[0]}if(command==="c"){cursor[0]+=args[4];cursor[1]+=args[5]}if(command==="C"){command="c";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];args[4]-=cursor[0];args[5]-=cursor[1];cursor[0]+=args[4];cursor[1]+=args[5]}if(command==="s"){cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="S"){command="s";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="q"){cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="Q"){command="q";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="t"){cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="T"){command="t";args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="a"){cursor[0]+=args[5];cursor[1]+=args[6]}if(command==="A"){command="a";args[5]-=cursor[0];args[6]-=cursor[1];cursor[0]+=args[5];cursor[1]+=args[6]}if(command==="Z"||command==="z"){cursor[0]=start[0];cursor[1]=start[1]}pathItem.command=command;pathItem.args=args;pathItem.base=prevCoords;pathItem.coords=[cursor[0],cursor[1]];prevCoords=pathItem.coords}return pathData};function filters(path,params,{isSafeToUseZ:isSafeToUseZ,maybeHasStrokeAndLinecap:maybeHasStrokeAndLinecap,hasMarkerMid:hasMarkerMid}){var stringify=data2Path.bind(null,params),relSubpoint=[0,0],pathBase=[0,0],prev={};path=path.filter((function(item,index,path){let command=item.command;let data=item.args;let next=path[index+1];if(command!=="Z"&&command!=="z"){var sdata=data,circle;if(command==="s"){sdata=[0,0].concat(data);var pdata=prev.args,n=pdata.length;sdata[0]=pdata[n-2]-pdata[n-4];sdata[1]=pdata[n-1]-pdata[n-3]}if(params.makeArcs&&(command=="c"||command=="s")&&isConvex(sdata)&&(circle=findCircle(sdata))){var r=roundData([circle.radius])[0],angle=findArcAngle(sdata,circle),sweep=sdata[5]*sdata[0]-sdata[4]*sdata[1]>0?1:0,arc={command:"a",args:[r,r,0,0,sweep,sdata[4],sdata[5]],coords:item.coords.slice(),base:item.base},output=[arc],relCenter=[circle.center[0]-sdata[4],circle.center[1]-sdata[5]],relCircle={center:relCenter,radius:circle.radius},arcCurves=[item],hasPrev=0,suffix="",nextLonghand;if(prev.command=="c"&&isConvex(prev.args)&&isArcPrev(prev.args,circle)||prev.command=="a"&&prev.sdata&&isArcPrev(prev.sdata,circle)){arcCurves.unshift(prev);arc.base=prev.base;arc.args[5]=arc.coords[0]-arc.base[0];arc.args[6]=arc.coords[1]-arc.base[1];var prevData=prev.command=="a"?prev.sdata:prev.args;var prevAngle=findArcAngle(prevData,{center:[prevData[4]+circle.center[0],prevData[5]+circle.center[1]],radius:circle.radius});angle+=prevAngle;if(angle>Math.PI)arc.args[3]=1;hasPrev=1}for(var j=index;(next=path[++j])&&~"cs".indexOf(next.command);){var nextData=next.args;if(next.command=="s"){nextLonghand=makeLonghand({command:"s",args:next.args.slice()},path[j-1].args);nextData=nextLonghand.args;nextLonghand.args=nextData.slice(0,2);suffix=stringify([nextLonghand])}if(isConvex(nextData)&&isArc(nextData,relCircle)){angle+=findArcAngle(nextData,relCircle);if(angle-2*Math.PI>.001)break;if(angle>Math.PI)arc.args[3]=1;arcCurves.push(next);if(2*Math.PI-angle>.001){arc.coords=next.coords;arc.args[5]=arc.coords[0]-arc.base[0];arc.args[6]=arc.coords[1]-arc.base[1]}else{arc.args[5]=2*(relCircle.center[0]-nextData[4]);arc.args[6]=2*(relCircle.center[1]-nextData[5]);arc.coords=[arc.base[0]+arc.args[5],arc.base[1]+arc.args[6]];arc={command:"a",args:[r,r,0,0,sweep,next.coords[0]-arc.coords[0],next.coords[1]-arc.coords[1]],coords:next.coords,base:arc.coords};output.push(arc);j++;break}relCenter[0]-=nextData[4];relCenter[1]-=nextData[5]}else break}if((stringify(output)+suffix).length<stringify(arcCurves).length){if(path[j]&&path[j].command=="s"){makeLonghand(path[j],path[j-1].args)}if(hasPrev){var prevArc=output.shift();roundData(prevArc.args);relSubpoint[0]+=prevArc.args[5]-prev.args[prev.args.length-2];relSubpoint[1]+=prevArc.args[6]-prev.args[prev.args.length-1];prev.command="a";prev.args=prevArc.args;item.base=prev.coords=prevArc.coords}arc=output.shift();if(arcCurves.length==1){item.sdata=sdata.slice()}else if(arcCurves.length-1-hasPrev>0){path.splice.apply(path,[index+1,arcCurves.length-1-hasPrev].concat(output))}if(!arc)return false;command="a";data=arc.args;item.coords=arc.coords}}if(precision!==false){if(command==="m"||command==="l"||command==="t"||command==="q"||command==="s"||command==="c"){for(var i=data.length;i--;){data[i]+=item.base[i%2]-relSubpoint[i%2]}}else if(command=="h"){data[0]+=item.base[0]-relSubpoint[0]}else if(command=="v"){data[0]+=item.base[1]-relSubpoint[1]}else if(command=="a"){data[5]+=item.base[0]-relSubpoint[0];data[6]+=item.base[1]-relSubpoint[1]}roundData(data);if(command=="h")relSubpoint[0]+=data[0];else if(command=="v")relSubpoint[1]+=data[0];else{relSubpoint[0]+=data[data.length-2];relSubpoint[1]+=data[data.length-1]}roundData(relSubpoint);if(command==="M"||command==="m"){pathBase[0]=relSubpoint[0];pathBase[1]=relSubpoint[1]}}if(params.straightCurves){if(command==="c"&&isCurveStraightLine(data)||command==="s"&&isCurveStraightLine(sdata)){if(next&&next.command=="s")makeLonghand(next,data);command="l";data=data.slice(-2)}else if(command==="q"&&isCurveStraightLine(data)){if(next&&next.command=="t")makeLonghand(next,data);command="l";data=data.slice(-2)}else if(command==="t"&&prev.command!=="q"&&prev.command!=="t"){command="l";data=data.slice(-2)}else if(command==="a"&&(data[0]===0||data[1]===0)){command="l";data=data.slice(-2)}}if(params.lineShorthands&&command==="l"){if(data[1]===0){command="h";data.pop()}else if(data[0]===0){command="v";data.shift()}}if(params.convertToZ&&(isSafeToUseZ||next?.command==="Z"||next?.command==="z")&&(command==="l"||command==="h"||command==="v")){if(Math.abs(pathBase[0]-item.coords[0])<error&&Math.abs(pathBase[1]-item.coords[1])<error){command="z";data=[]}}if(params.collapseRepeated&&hasMarkerMid===false&&(command==="m"||command==="h"||command==="v")&&prev.command&&command==prev.command.toLowerCase()&&(command!="h"&&command!="v"||prev.args[0]>=0==data[0]>=0)){prev.args[0]+=data[0];if(command!="h"&&command!="v"){prev.args[1]+=data[1]}prev.coords=item.coords;path[index]=prev;return false}if(params.curveSmoothShorthands&&prev.command){if(command==="c"){if(prev.command==="c"&&data[0]===-(prev.args[2]-prev.args[4])&&data[1]===-(prev.args[3]-prev.args[5])){command="s";data=data.slice(2)}else if(prev.command==="s"&&data[0]===-(prev.args[0]-prev.args[2])&&data[1]===-(prev.args[1]-prev.args[3])){command="s";data=data.slice(2)}else if(prev.command!=="c"&&prev.command!=="s"&&data[0]===0&&data[1]===0){command="s";data=data.slice(2)}}else if(command==="q"){if(prev.command==="q"&&data[0]===prev.args[2]-prev.args[0]&&data[1]===prev.args[3]-prev.args[1]){command="t";data=data.slice(2)}else if(prev.command==="t"&&data[2]===prev.args[0]&&data[3]===prev.args[1]){command="t";data=data.slice(2)}}}if(params.removeUseless&&!maybeHasStrokeAndLinecap){if((command==="l"||command==="h"||command==="v"||command==="q"||command==="t"||command==="c"||command==="s")&&data.every((function(i){return i===0}))){path[index]=prev;return false}if(command==="a"&&data[5]===0&&data[6]===0){path[index]=prev;return false}}item.command=command;item.args=data}else{relSubpoint[0]=pathBase[0];relSubpoint[1]=pathBase[1];if(prev.command==="Z"||prev.command==="z")return false}if((command==="Z"||command==="z")&&params.removeUseless&&isSafeToUseZ&&Math.abs(item.base[0]-item.coords[0])<error/10&&Math.abs(item.base[1]-item.coords[1])<error/10)return false;prev=item;return true}));return path}function convertToMixed(path,params){var prev=path[0];path=path.filter((function(item,index){if(index==0)return true;if(item.command==="Z"||item.command==="z"){prev=item;return true}var command=item.command,data=item.args,adata=data.slice();if(command==="m"||command==="l"||command==="t"||command==="q"||command==="s"||command==="c"){for(var i=adata.length;i--;){adata[i]+=item.base[i%2]}}else if(command=="h"){adata[0]+=item.base[0]}else if(command=="v"){adata[0]+=item.base[1]}else if(command=="a"){adata[5]+=item.base[0];adata[6]+=item.base[1]}roundData(adata);var absoluteDataStr=cleanupOutData$1(adata,params),relativeDataStr=cleanupOutData$1(data,params);if(params.forceAbsolutePath||absoluteDataStr.length<relativeDataStr.length&&!(params.negativeExtraSpace&&command==prev.command&&prev.command.charCodeAt(0)>96&&absoluteDataStr.length==relativeDataStr.length-1&&(data[0]<0||/^0\./.test(data[0])&&prev.args[prev.args.length-1]%1))){item.command=command.toUpperCase();item.args=adata}prev=item;return true}));return path}function isConvex(data){var center=getIntersection([0,0,data[2],data[3],data[0],data[1],data[4],data[5]]);return center!=null&&data[2]<center[0]==center[0]<0&&data[3]<center[1]==center[1]<0&&data[4]<center[0]==center[0]<data[0]&&data[5]<center[1]==center[1]<data[1]}function getIntersection(coords){var a1=coords[1]-coords[3],b1=coords[2]-coords[0],c1=coords[0]*coords[3]-coords[2]*coords[1],a2=coords[5]-coords[7],b2=coords[6]-coords[4],c2=coords[4]*coords[7]-coords[5]*coords[6],denom=a1*b2-a2*b1;if(!denom)return;var cross=[(b1*c2-b2*c1)/denom,(a1*c2-a2*c1)/-denom];if(!isNaN(cross[0])&&!isNaN(cross[1])&&isFinite(cross[0])&&isFinite(cross[1])){return cross}}function toFixed(num,precision){const pow=10**precision;return Math.round(num*pow)/pow}function strongRound(data){const precisionNum=precision||0;for(let i=data.length;i-- >0;){const fixed=toFixed(data[i],precisionNum);if(fixed!==data[i]){const rounded=toFixed(data[i],precisionNum-1);data[i]=toFixed(Math.abs(rounded-data[i]),precisionNum+1)>=error?fixed:rounded}}return data}function round$1(data){for(var i=data.length;i-- >0;){data[i]=Math.round(data[i])}return data}function isCurveStraightLine(data){var i=data.length-2,a=-data[i+1],b=data[i],d=1/(a*a+b*b);if(i<=1||!isFinite(d))return false;while((i-=2)>=0){if(Math.sqrt(Math.pow(a*data[i]+b*data[i+1],2)*d)>error)return false}return true}function makeLonghand(item,data){switch(item.command){case"s":item.command="c";break;case"t":item.command="q";break}item.args.unshift(data[data.length-2]-data[data.length-4],data[data.length-1]-data[data.length-3]);return item}function getDistance(point1,point2){return Math.hypot(point1[0]-point2[0],point1[1]-point2[1])}function getCubicBezierPoint(curve,t){var sqrT=t*t,cubT=sqrT*t,mt=1-t,sqrMt=mt*mt;return[3*sqrMt*t*curve[0]+3*mt*sqrT*curve[2]+cubT*curve[4],3*sqrMt*t*curve[1]+3*mt*sqrT*curve[3]+cubT*curve[5]]}function findCircle(curve){var midPoint=getCubicBezierPoint(curve,1/2),m1=[midPoint[0]/2,midPoint[1]/2],m2=[(midPoint[0]+curve[4])/2,(midPoint[1]+curve[5])/2],center=getIntersection([m1[0],m1[1],m1[0]+m1[1],m1[1]-m1[0],m2[0],m2[1],m2[0]+(m2[1]-midPoint[1]),m2[1]-(m2[0]-midPoint[0])]),radius=center&&getDistance([0,0],center),tolerance=Math.min(arcThreshold*error,arcTolerance*radius/100);if(center&&radius<1e15&&[1/4,3/4].every((function(point){return Math.abs(getDistance(getCubicBezierPoint(curve,point),center)-radius)<=tolerance})))return{center:center,radius:radius}}function isArc(curve,circle){var tolerance=Math.min(arcThreshold*error,arcTolerance*circle.radius/100);return[0,1/4,1/2,3/4,1].every((function(point){return Math.abs(getDistance(getCubicBezierPoint(curve,point),circle.center)-circle.radius)<=tolerance}))}function isArcPrev(curve,circle){return isArc(curve,{center:[circle.center[0]+curve[4],circle.center[1]+curve[5]],radius:circle.radius})}function findArcAngle(curve,relCircle){var x1=-relCircle.center[0],y1=-relCircle.center[1],x2=curve[4]-relCircle.center[0],y2=curve[5]-relCircle.center[1];return Math.acos((x1*x2+y1*y2)/Math.sqrt((x1*x1+y1*y1)*(x2*x2+y2*y2)))}function data2Path(params,pathData){return pathData.reduce((function(pathString,item){var strData="";if(item.args){strData=cleanupOutData$1(roundData(item.args.slice()),params)}return pathString+item.command+strData}),"")}var convertTransform$2={};const{cleanupOutData:cleanupOutData}=tools;const{transform2js:transform2js,transformsMultiply:transformsMultiply,matrixToTransform:matrixToTransform}=_transforms;convertTransform$2.name="convertTransform";convertTransform$2.description="collapses multiple transformations and optimizes it";convertTransform$2.fn=(_root,params)=>{const{convertToShorts:convertToShorts=true,degPrecision:degPrecision,floatPrecision:floatPrecision=3,transformPrecision:transformPrecision=5,matrixToTransform:matrixToTransform=true,shortTranslate:shortTranslate=true,shortScale:shortScale=true,shortRotate:shortRotate=true,removeUseless:removeUseless=true,collapseIntoOne:collapseIntoOne=true,leadingZero:leadingZero=true,negativeExtraSpace:negativeExtraSpace=false}=params;const newParams={convertToShorts:convertToShorts,degPrecision:degPrecision,floatPrecision:floatPrecision,transformPrecision:transformPrecision,matrixToTransform:matrixToTransform,shortTranslate:shortTranslate,shortScale:shortScale,shortRotate:shortRotate,removeUseless:removeUseless,collapseIntoOne:collapseIntoOne,leadingZero:leadingZero,negativeExtraSpace:negativeExtraSpace};return{element:{enter:node=>{if(node.attributes.transform!=null){convertTransform$1(node,"transform",newParams)}if(node.attributes.gradientTransform!=null){convertTransform$1(node,"gradientTransform",newParams)}if(node.attributes.patternTransform!=null){convertTransform$1(node,"patternTransform",newParams)}}}}};const convertTransform$1=(item,attrName,params)=>{let data=transform2js(item.attributes[attrName]);params=definePrecision(data,params);if(params.collapseIntoOne&&data.length>1){data=[transformsMultiply(data)]}if(params.convertToShorts){data=convertToShorts(data,params)}else{data.forEach((item=>roundTransform(item,params)))}if(params.removeUseless){data=removeUseless(data)}if(data.length){item.attributes[attrName]=js2transform(data,params)}else{delete item.attributes[attrName]}};const definePrecision=(data,{...newParams})=>{const matrixData=[];for(const item of data){if(item.name=="matrix"){matrixData.push(...item.data.slice(0,4))}}let significantDigits=newParams.transformPrecision;if(matrixData.length){newParams.transformPrecision=Math.min(newParams.transformPrecision,Math.max.apply(Math,matrixData.map(floatDigits))||newParams.transformPrecision);significantDigits=Math.max.apply(Math,matrixData.map((n=>n.toString().replace(/\D+/g,"").length)))}if(newParams.degPrecision==null){newParams.degPrecision=Math.max(0,Math.min(newParams.floatPrecision,significantDigits-2))}return newParams};const degRound=(data,params)=>{if(params.degPrecision!=null&&params.degPrecision>=1&&params.floatPrecision<20){return smartRound(params.degPrecision,data)}else{return round(data)}};const floatRound=(data,params)=>{if(params.floatPrecision>=1&&params.floatPrecision<20){return smartRound(params.floatPrecision,data)}else{return round(data)}};const transformRound=(data,params)=>{if(params.transformPrecision>=1&&params.floatPrecision<20){return smartRound(params.transformPrecision,data)}else{return round(data)}};const floatDigits=n=>{const str=n.toString();return str.slice(str.indexOf(".")).length-1};const convertToShorts=(transforms,params)=>{for(var i=0;i<transforms.length;i++){var transform=transforms[i];if(params.matrixToTransform&&transform.name==="matrix"){var decomposed=matrixToTransform(transform,params);if(js2transform(decomposed,params).length<=js2transform([transform],params).length){transforms.splice(i,1,...decomposed)}transform=transforms[i]}roundTransform(transform,params);if(params.shortTranslate&&transform.name==="translate"&&transform.data.length===2&&!transform.data[1]){transform.data.pop()}if(params.shortScale&&transform.name==="scale"&&transform.data.length===2&&transform.data[0]===transform.data[1]){transform.data.pop()}if(params.shortRotate&&transforms[i-2]&&transforms[i-2].name==="translate"&&transforms[i-1].name==="rotate"&&transforms[i].name==="translate"&&transforms[i-2].data[0]===-transforms[i].data[0]&&transforms[i-2].data[1]===-transforms[i].data[1]){transforms.splice(i-2,3,{name:"rotate",data:[transforms[i-1].data[0],transforms[i-2].data[0],transforms[i-2].data[1]]});i-=2}}return transforms};const removeUseless=transforms=>transforms.filter((transform=>{if(["translate","rotate","skewX","skewY"].indexOf(transform.name)>-1&&(transform.data.length==1||transform.name=="rotate")&&!transform.data[0]||transform.name=="translate"&&!transform.data[0]&&!transform.data[1]||transform.name=="scale"&&transform.data[0]==1&&(transform.data.length<2||transform.data[1]==1)||transform.name=="matrix"&&transform.data[0]==1&&transform.data[3]==1&&!(transform.data[1]||transform.data[2]||transform.data[4]||transform.data[5])){return false}return true}));const js2transform=(transformJS,params)=>{const transformString=transformJS.map((transform=>{roundTransform(transform,params);return`${transform.name}(${cleanupOutData(transform.data,params)})`})).join("");return transformString};const roundTransform=(transform,params)=>{switch(transform.name){case"translate":transform.data=floatRound(transform.data,params);break;case"rotate":transform.data=[...degRound(transform.data.slice(0,1),params),...floatRound(transform.data.slice(1),params)];break;case"skewX":case"skewY":transform.data=degRound(transform.data,params);break;case"scale":transform.data=transformRound(transform.data,params);break;case"matrix":transform.data=[...transformRound(transform.data.slice(0,4),params),...floatRound(transform.data.slice(4),params)];break}return transform};const round=data=>data.map(Math.round);const smartRound=(precision,data)=>{for(var i=data.length,tolerance=+Math.pow(.1,precision).toFixed(precision);i--;){if(Number(data[i].toFixed(precision))!==data[i]){var rounded=+data[i].toFixed(precision-1);data[i]=+Math.abs(rounded-data[i]).toFixed(precision+1)>=tolerance?+data[i].toFixed(precision):rounded}}return data};var removeEmptyAttrs$1={};const{attrsGroups:attrsGroups$2}=_collections;removeEmptyAttrs$1.name="removeEmptyAttrs";removeEmptyAttrs$1.description="removes empty attributes";removeEmptyAttrs$1.fn=()=>({element:{enter:node=>{for(const[name,value]of Object.entries(node.attributes)){if(value===""&&attrsGroups$2.conditionalProcessing.includes(name)===false){delete node.attributes[name]}}}}});var removeEmptyContainers$1={};const{detachNodeFromParent:detachNodeFromParent$a}=xast;const{elemsGroups:elemsGroups}=_collections;removeEmptyContainers$1.name="removeEmptyContainers";removeEmptyContainers$1.description="removes empty container elements";removeEmptyContainers$1.fn=()=>({element:{exit:(node,parentNode)=>{if(node.name==="svg"||elemsGroups.container.includes(node.name)===false||node.children.length!==0){return}if(node.name==="pattern"&&Object.keys(node.attributes).length!==0){return}if(node.name==="g"&&node.attributes.filter!=null){return}if(node.name==="mask"&&node.attributes.id!=null){return}if(parentNode.type==="element"&&parentNode.name==="switch"){return}detachNodeFromParent$a(node,parentNode)}}});var mergePaths$1={};const{detachNodeFromParent:detachNodeFromParent$9}=xast;const{collectStylesheet:collectStylesheet$2,computeStyle:computeStyle$1}=style;const{path2js:path2js,js2path:js2path,intersects:intersects$1}=_path;mergePaths$1.name="mergePaths";mergePaths$1.description="merges multiple paths in one if possible";mergePaths$1.fn=(root,params)=>{const{force:force=false,floatPrecision:floatPrecision,noSpaceAfterFlags:noSpaceAfterFlags=false}=params;const stylesheet=collectStylesheet$2(root);return{element:{enter:node=>{let prevChild=null;for(const child of node.children){if(prevChild==null||prevChild.type!=="element"||prevChild.name!=="path"||prevChild.children.length!==0||prevChild.attributes.d==null){prevChild=child;continue}if(child.type!=="element"||child.name!=="path"||child.children.length!==0||child.attributes.d==null){prevChild=child;continue}const computedStyle=computeStyle$1(stylesheet,child);if(computedStyle["marker-start"]||computedStyle["marker-mid"]||computedStyle["marker-end"]){prevChild=child;continue}const prevChildAttrs=Object.keys(prevChild.attributes);const childAttrs=Object.keys(child.attributes);let attributesAreEqual=prevChildAttrs.length===childAttrs.length;for(const name of childAttrs){if(name!=="d"){if(prevChild.attributes[name]==null||prevChild.attributes[name]!==child.attributes[name]){attributesAreEqual=false}}}const prevPathJS=path2js(prevChild);const curPathJS=path2js(child);if(attributesAreEqual&&(force||!intersects$1(prevPathJS,curPathJS))){js2path(prevChild,prevPathJS.concat(curPathJS),{floatPrecision:floatPrecision,noSpaceAfterFlags:noSpaceAfterFlags});detachNodeFromParent$9(child,node);continue}prevChild=child}}}}};var removeUnusedNS$1={};removeUnusedNS$1.name="removeUnusedNS";removeUnusedNS$1.description="removes unused namespaces declaration";removeUnusedNS$1.fn=()=>{const unusedNamespaces=new Set;return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const name of Object.keys(node.attributes)){if(name.startsWith("xmlns:")){const local=name.slice("xmlns:".length);unusedNamespaces.add(local)}}}if(unusedNamespaces.size!==0){if(node.name.includes(":")){const[ns]=node.name.split(":");if(unusedNamespaces.has(ns)){unusedNamespaces.delete(ns)}}for(const name of Object.keys(node.attributes)){if(name.includes(":")){const[ns]=name.split(":");unusedNamespaces.delete(ns)}}}},exit:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const name of unusedNamespaces){delete node.attributes[`xmlns:${name}`]}}}}}};var sortAttrs$1={};sortAttrs$1.name="sortAttrs";sortAttrs$1.description="Sort element attributes for better compression";sortAttrs$1.fn=(_root,params)=>{const{order:order=["id","width","height","x","x1","x2","y","y1","y2","cx","cy","r","fill","stroke","marker","d","points"],xmlnsOrder:xmlnsOrder="front"}=params;const getNsPriority=name=>{if(xmlnsOrder==="front"){if(name==="xmlns"){return 3}if(name.startsWith("xmlns:")){return 2}}if(name.includes(":")){return 1}return 0};const compareAttrs=([aName],[bName])=>{const aPriority=getNsPriority(aName);const bPriority=getNsPriority(bName);const priorityNs=bPriority-aPriority;if(priorityNs!==0){return priorityNs}const[aPart]=aName.split("-");const[bPart]=bName.split("-");if(aPart!==bPart){const aInOrderFlag=order.includes(aPart)?1:0;const bInOrderFlag=order.includes(bPart)?1:0;if(aInOrderFlag===1&&bInOrderFlag===1){return order.indexOf(aPart)-order.indexOf(bPart)}const priorityOrder=bInOrderFlag-aInOrderFlag;if(priorityOrder!==0){return priorityOrder}}return aName<bName?-1:1};return{element:{enter:node=>{const attrs=Object.entries(node.attributes);attrs.sort(compareAttrs);const sortedAttributes={};for(const[name,value]of attrs){sortedAttributes[name]=value}node.attributes=sortedAttributes}}}};var sortDefsChildren$1={};sortDefsChildren$1.name="sortDefsChildren";sortDefsChildren$1.description="Sorts children of <defs> to improve compression";sortDefsChildren$1.fn=()=>({element:{enter:node=>{if(node.name==="defs"){const frequencies=new Map;for(const child of node.children){if(child.type==="element"){const frequency=frequencies.get(child.name);if(frequency==null){frequencies.set(child.name,1)}else{frequencies.set(child.name,frequency+1)}}}node.children.sort(((a,b)=>{if(a.type!=="element"||b.type!=="element"){return 0}const aFrequency=frequencies.get(a.name);const bFrequency=frequencies.get(b.name);if(aFrequency!=null&&bFrequency!=null){const frequencyComparison=bFrequency-aFrequency;if(frequencyComparison!==0){return frequencyComparison}}const lengthComparison=b.name.length-a.name.length;if(lengthComparison!==0){return lengthComparison}if(a.name!==b.name){return a.name>b.name?-1:1}return 0}))}}}});var removeTitle$1={};const{detachNodeFromParent:detachNodeFromParent$8}=xast;removeTitle$1.name="removeTitle";removeTitle$1.description="removes <title>";removeTitle$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="title"){detachNodeFromParent$8(node,parentNode)}}}});var removeDesc$1={};const{detachNodeFromParent:detachNodeFromParent$7}=xast;removeDesc$1.name="removeDesc";removeDesc$1.description="removes <desc>";const standardDescs=/^(Created with|Created using)/;removeDesc$1.fn=(root,params)=>{const{removeAny:removeAny=false}=params;return{element:{enter:(node,parentNode)=>{if(node.name==="desc"){if(removeAny||node.children.length===0||node.children[0].type==="text"&&standardDescs.test(node.children[0].value)){detachNodeFromParent$7(node,parentNode)}}}}}};const{createPreset:createPreset}=plugins;const removeDoctype=removeDoctype$1;const removeXMLProcInst=removeXMLProcInst$1;const removeComments=removeComments$1;const removeMetadata=removeMetadata$1;const removeEditorsNSData=removeEditorsNSData$1;const cleanupAttrs=cleanupAttrs$1;const mergeStyles=mergeStyles$1;const inlineStyles=inlineStyles$1;const minifyStyles=minifyStyles$1;const cleanupIds=cleanupIds$1;const removeUselessDefs=removeUselessDefs$1;const cleanupNumericValues=cleanupNumericValues$1;const convertColors=convertColors$1;const removeUnknownsAndDefaults=removeUnknownsAndDefaults$1;const removeNonInheritableGroupAttrs=removeNonInheritableGroupAttrs$1;const removeUselessStrokeAndFill=removeUselessStrokeAndFill$1;const removeViewBox=removeViewBox$1;const cleanupEnableBackground=cleanupEnableBackground$1;const removeHiddenElems=removeHiddenElems$1;const removeEmptyText=removeEmptyText$1;const convertShapeToPath=convertShapeToPath$1;const convertEllipseToCircle=convertEllipseToCircle$1;const moveElemsAttrsToGroup=moveElemsAttrsToGroup$1;const moveGroupAttrsToElems=moveGroupAttrsToElems$1;const collapseGroups=collapseGroups$1;const convertPathData=convertPathData$1;const convertTransform=convertTransform$2;const removeEmptyAttrs=removeEmptyAttrs$1;const removeEmptyContainers=removeEmptyContainers$1;const mergePaths=mergePaths$1;const removeUnusedNS=removeUnusedNS$1;const sortAttrs=sortAttrs$1;const sortDefsChildren=sortDefsChildren$1;const removeTitle=removeTitle$1;const removeDesc=removeDesc$1;const presetDefault=createPreset({name:"preset-default",plugins:[removeDoctype,removeXMLProcInst,removeComments,removeMetadata,removeEditorsNSData,cleanupAttrs,mergeStyles,inlineStyles,minifyStyles,cleanupIds,removeUselessDefs,cleanupNumericValues,convertColors,removeUnknownsAndDefaults,removeNonInheritableGroupAttrs,removeUselessStrokeAndFill,removeViewBox,cleanupEnableBackground,removeHiddenElems,removeEmptyText,convertShapeToPath,convertEllipseToCircle,moveElemsAttrsToGroup,moveGroupAttrsToElems,collapseGroups,convertPathData,convertTransform,removeEmptyAttrs,removeEmptyContainers,mergePaths,removeUnusedNS,sortAttrs,sortDefsChildren,removeTitle,removeDesc]});var presetDefault_1=presetDefault;var addAttributesToSVGElement={};addAttributesToSVGElement.name="addAttributesToSVGElement";addAttributesToSVGElement.description="adds attributes to an outer <svg> element";var ENOCLS$1=`Error in plugin "addAttributesToSVGElement": absent parameters.\nIt should have a list of "attributes" or one "attribute".\nConfig example:\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attribute: "mySvg"\n }\n }\n]\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attributes: ["mySvg", "size-big"]\n }\n }\n]\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attributes: [\n {\n focusable: false\n },\n {\n 'data-image': icon\n }\n ]\n }\n }\n]\n`;addAttributesToSVGElement.fn=(root,params)=>{if(!Array.isArray(params.attributes)&&!params.attribute){console.error(ENOCLS$1);return null}const attributes=params.attributes||[params.attribute];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const attribute of attributes){if(typeof attribute==="string"){if(node.attributes[attribute]==null){node.attributes[attribute]=undefined}}if(typeof attribute==="object"){for(const key of Object.keys(attribute)){if(node.attributes[key]==null){node.attributes[key]=attribute[key]}}}}}}}}};var addClassesToSVGElement={};addClassesToSVGElement.name="addClassesToSVGElement";addClassesToSVGElement.description="adds classnames to an outer <svg> element";var ENOCLS=`Error in plugin "addClassesToSVGElement": absent parameters.\nIt should have a list of classes in "classNames" or one "className".\nConfig example:\n\nplugins: [\n {\n name: "addClassesToSVGElement",\n params: {\n className: "mySvg"\n }\n }\n]\n\nplugins: [\n {\n name: "addClassesToSVGElement",\n params: {\n classNames: ["mySvg", "size-big"]\n }\n }\n]\n`;addClassesToSVGElement.fn=(root,params)=>{if(!(Array.isArray(params.classNames)&&params.classNames.some(String))&&!params.className){console.error(ENOCLS);return null}const classNames=params.classNames||[params.className];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){const classList=new Set(node.attributes.class==null?null:node.attributes.class.split(" "));for(const className of classNames){if(className!=null){classList.add(className)}}node.attributes.class=Array.from(classList).join(" ")}}}}};var cleanupListOfValues={};const{removeLeadingZero:removeLeadingZero}=tools;cleanupListOfValues.name="cleanupListOfValues";cleanupListOfValues.description="rounds list of values to the fixed precision";const regNumericValues=/^([-+]?\d*\.?\d+([eE][-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/;const regSeparator=/\s+,?\s*|,\s*/;const absoluteLengths={cm:96/2.54,mm:96/25.4,in:96,pt:4/3,pc:16,px:1};cleanupListOfValues.fn=(_root,params)=>{const{floatPrecision:floatPrecision=3,leadingZero:leadingZero=true,defaultPx:defaultPx=true,convertToPx:convertToPx=true}=params;const roundValues=lists=>{const roundedList=[];for(const elem of lists.split(regSeparator)){const match=elem.match(regNumericValues);const matchNew=elem.match(/new/);if(match){let num=Number(Number(match[1]).toFixed(floatPrecision));let matchedUnit=match[3]||"";let units=matchedUnit;if(convertToPx&&units&&units in absoluteLengths){const pxNum=Number((absoluteLengths[units]*Number(match[1])).toFixed(floatPrecision));if(pxNum.toString().length<match[0].length){num=pxNum;units="px"}}let str;if(leadingZero){str=removeLeadingZero(num)}else{str=num.toString()}if(defaultPx&&units==="px"){units=""}roundedList.push(str+units)}else if(matchNew){roundedList.push("new")}else if(elem){roundedList.push(elem)}}return roundedList.join(" ")};return{element:{enter:node=>{if(node.attributes.points!=null){node.attributes.points=roundValues(node.attributes.points)}if(node.attributes["enable-background"]!=null){node.attributes["enable-background"]=roundValues(node.attributes["enable-background"])}if(node.attributes.viewBox!=null){node.attributes.viewBox=roundValues(node.attributes.viewBox)}if(node.attributes["stroke-dasharray"]!=null){node.attributes["stroke-dasharray"]=roundValues(node.attributes["stroke-dasharray"])}if(node.attributes.dx!=null){node.attributes.dx=roundValues(node.attributes.dx)}if(node.attributes.dy!=null){node.attributes.dy=roundValues(node.attributes.dy)}if(node.attributes.x!=null){node.attributes.x=roundValues(node.attributes.x)}if(node.attributes.y!=null){node.attributes.y=roundValues(node.attributes.y)}}}}};var convertOneStopGradients={};const{attrsGroupsDefaults:attrsGroupsDefaults,colorsProps:colorsProps}=_collections;const{detachNodeFromParent:detachNodeFromParent$6,querySelectorAll:querySelectorAll$2,querySelector:querySelector}=xast;const{computeStyle:computeStyle,collectStylesheet:collectStylesheet$1}=style;convertOneStopGradients.name="convertOneStopGradients";convertOneStopGradients.description="converts one-stop (single color) gradients to a plain color";convertOneStopGradients.fn=root=>{const stylesheet=collectStylesheet$1(root);const effectedDefs=new Set;const allDefs=new Map;const gradientsToDetach=new Map;let xlinkHrefCount=0;return{element:{enter:(node,parentNode)=>{if(node.attributes["xlink:href"]!=null){xlinkHrefCount++}if(node.name==="defs"){allDefs.set(node,parentNode);return}if(node.name!=="linearGradient"&&node.name!=="radialGradient"){return}const stops=node.children.filter((child=>child.type==="element"&&child.name==="stop"));const href=node.attributes["xlink:href"]||node.attributes["href"];let effectiveNode=stops.length===0&&href!=null&&href.startsWith("#")?querySelector(root,href):node;if(effectiveNode==null||effectiveNode.type!=="element"){gradientsToDetach.set(node,parentNode);return}const effectiveStops=effectiveNode.children.filter((child=>child.type==="element"&&child.name==="stop"));if(effectiveStops.length!==1||effectiveStops[0].type!=="element"){return}if(parentNode.type==="element"&&parentNode.name==="defs"){effectedDefs.add(parentNode)}gradientsToDetach.set(node,parentNode);let color;const style=computeStyle(stylesheet,effectiveStops[0])["stop-color"];if(style!=null&&style.type==="static"){color=style.value}const selectorVal=`url(#${node.attributes.id})`;const selector=colorsProps.map((attr=>`[${attr}="${selectorVal}"]`)).join(",");const elements=querySelectorAll$2(root,selector);for(const element of elements){if(element.type!=="element"){continue}for(const attr of colorsProps){if(element.attributes[attr]!==selectorVal){continue}if(color!=null){element.attributes[attr]=color}else{delete element.attributes[attr]}}}const styledElements=querySelectorAll$2(root,`[style*=${selectorVal}]`);for(const element of styledElements){if(element.type!=="element"){continue}element.attributes.style=element.attributes.style.replace(selectorVal,color||attrsGroupsDefaults.presentation["stop-color"])}},exit:node=>{if(node.name==="svg"){for(const[gradient,parent]of gradientsToDetach.entries()){if(gradient.attributes["xlink:href"]!=null){xlinkHrefCount--}detachNodeFromParent$6(gradient,parent)}if(xlinkHrefCount===0){delete node.attributes["xmlns:xlink"]}for(const[defs,parent]of allDefs.entries()){if(effectedDefs.has(defs)&&defs.children.length===0){detachNodeFromParent$6(defs,parent)}}}}}}};var convertStyleToAttrs={};const{attrsGroups:attrsGroups$1}=_collections;convertStyleToAttrs.name="convertStyleToAttrs";convertStyleToAttrs.description="converts style to attributes";const g=(...args)=>"(?:"+args.join("|")+")";const stylingProps=attrsGroups$1.presentation;const rEscape="\\\\(?:[0-9a-f]{1,6}\\s?|\\r\\n|.)";const rAttr="\\s*("+g("[^:;\\\\]",rEscape)+"*?)\\s*";const rSingleQuotes="'(?:[^'\\n\\r\\\\]|"+rEscape+")*?(?:'|$)";const rQuotes='"(?:[^"\\n\\r\\\\]|'+rEscape+')*?(?:"|$)';const rQuotedString=new RegExp("^"+g(rSingleQuotes,rQuotes)+"$");const rParenthesis="\\("+g("[^'\"()\\\\]+",rEscape,rSingleQuotes,rQuotes)+"*?"+"\\)";const rValue="\\s*("+g("[^!'\"();\\\\]+?",rEscape,rSingleQuotes,rQuotes,rParenthesis,"[^;]*?")+"*?"+")";const rDeclEnd="\\s*(?:;\\s*|$)";const rImportant="(\\s*!important(?![-(\\w]))?";const regDeclarationBlock=new RegExp(rAttr+":"+rValue+rImportant+rDeclEnd,"ig");const regStripComments=new RegExp(g(rEscape,rSingleQuotes,rQuotes,"/\\*[^]*?\\*/"),"ig");convertStyleToAttrs.fn=(_root,params)=>{const{keepImportant:keepImportant=false}=params;return{element:{enter:node=>{if(node.attributes.style!=null){let styles=[];const newAttributes={};const styleValue=node.attributes.style.replace(regStripComments,(match=>match[0]=="/"?"":match[0]=="\\"&&/[-g-z]/i.test(match[1])?match[1]:match));regDeclarationBlock.lastIndex=0;for(var rule;rule=regDeclarationBlock.exec(styleValue);){if(!keepImportant||!rule[3]){styles.push([rule[1],rule[2]])}}if(styles.length){styles=styles.filter((function(style){if(style[0]){var prop=style[0].toLowerCase(),val=style[1];if(rQuotedString.test(val)){val=val.slice(1,-1)}if(stylingProps.includes(prop)){newAttributes[prop]=val;return false}}return true}));Object.assign(node.attributes,newAttributes);if(styles.length){node.attributes.style=styles.map((declaration=>declaration.join(":"))).join(";")}else{delete node.attributes.style}}}}}}};var prefixIds={};const csstree=cjs$1;const{referencesProps:referencesProps}=_collections;prefixIds.name="prefixIds";prefixIds.description="prefix IDs";const getBasename=path=>{const matched=/[/\\]?([^/\\]+)$/.exec(path);if(matched){return matched[1]}return""};const escapeIdentifierName=str=>str.replace(/[. ]/g,"_");const unquote=string=>{if(string.startsWith('"')&&string.endsWith('"')||string.startsWith("'")&&string.endsWith("'")){return string.slice(1,-1)}return string};const prefixId=(prefixGenerator,body)=>{const prefix=prefixGenerator(body);if(body.startsWith(prefix)){return body}return prefix+body};const prefixReference=(prefixGenerator,reference)=>{if(reference.startsWith("#")){return"#"+prefixId(prefixGenerator,reference.slice(1))}return null};const generatePrefix=(body,node,info,prefixGenerator,delim,history)=>{if(typeof prefixGenerator==="function"){let prefix=history.get(body);if(prefix!=null){return prefix}prefix=prefixGenerator(node,info)+delim;history.set(body,prefix);return prefix}if(typeof prefixGenerator==="string"){return prefixGenerator+delim}if(prefixGenerator===false){return""}if(info.path!=null&&info.path.length>0){return escapeIdentifierName(getBasename(info.path))+delim}return"prefix"+delim};prefixIds.fn=(_root,params,info)=>{const{delim:delim="__",prefix:prefix,prefixIds:prefixIds=true,prefixClassNames:prefixClassNames=true}=params;const prefixMap=new Map;return{element:{enter:node=>{const prefixGenerator=id=>generatePrefix(id,node,info,prefix,delim,prefixMap);if(node.name==="style"){if(node.children.length===0){return}for(const child of node.children){if(child.type!=="text"&&child.type!=="cdata"){continue}const cssText=child.value;let cssAst=null;try{cssAst=csstree.parse(cssText,{parseValue:true,parseCustomProperty:false})}catch{return}csstree.walk(cssAst,(node=>{if(prefixIds&&node.type==="IdSelector"||prefixClassNames&&node.type==="ClassSelector"){node.name=prefixId(prefixGenerator,node.name);return}if(node.type==="Url"&&node.value.length>0){const prefixed=prefixReference(prefixGenerator,unquote(node.value));if(prefixed!=null){node.value=prefixed}}}));child.value=csstree.generate(cssAst);return}}if(prefixIds&&node.attributes.id!=null&&node.attributes.id.length!==0){node.attributes.id=prefixId(prefixGenerator,node.attributes.id)}if(prefixClassNames&&node.attributes.class!=null&&node.attributes.class.length!==0){node.attributes.class=node.attributes.class.split(/\s+/).map((name=>prefixId(prefixGenerator,name))).join(" ")}for(const name of["href","xlink:href"]){if(node.attributes[name]!=null&&node.attributes[name].length!==0){const prefixed=prefixReference(prefixGenerator,node.attributes[name]);if(prefixed!=null){node.attributes[name]=prefixed}}}for(const name of referencesProps){if(node.attributes[name]!=null&&node.attributes[name].length!==0){node.attributes[name]=node.attributes[name].replace(/\burl\((["'])?(#.+?)\1\)/gi,((match,_,url)=>{const prefixed=prefixReference(prefixGenerator,url);if(prefixed==null){return match}return`url(${prefixed})`}))}}for(const name of["begin","end"]){if(node.attributes[name]!=null&&node.attributes[name].length!==0){const parts=node.attributes[name].split(/\s*;\s+/).map((val=>{if(val.endsWith(".end")||val.endsWith(".start")){const[id,postfix]=val.split(".");return`${prefixId(prefixGenerator,id)}.${postfix}`}return val}));node.attributes[name]=parts.join("; ")}}}}}};var removeAttributesBySelector={};const{querySelectorAll:querySelectorAll$1}=xast;removeAttributesBySelector.name="removeAttributesBySelector";removeAttributesBySelector.description="removes attributes of elements that match a css selector";removeAttributesBySelector.fn=(root,params)=>{const selectors=Array.isArray(params.selectors)?params.selectors:[params];for(const{selector:selector,attributes:attributes}of selectors){const nodes=querySelectorAll$1(root,selector);for(const node of nodes){if(node.type==="element"){if(Array.isArray(attributes)){for(const name of attributes){delete node.attributes[name]}}else{delete node.attributes[attributes]}}}}return{}};var removeAttrs={};removeAttrs.name="removeAttrs";removeAttrs.description="removes specified attributes";const DEFAULT_SEPARATOR=":";const ENOATTRS=`Warning: The plugin "removeAttrs" requires the "attrs" parameter.\nIt should have a pattern to remove, otherwise the plugin is a noop.\nConfig example:\n\nplugins: [\n {\n name: "removeAttrs",\n params: {\n attrs: "(fill|stroke)"\n }\n }\n]\n`;removeAttrs.fn=(root,params)=>{if(typeof params.attrs=="undefined"){console.warn(ENOATTRS);return null}const elemSeparator=typeof params.elemSeparator=="string"?params.elemSeparator:DEFAULT_SEPARATOR;const preserveCurrentColor=typeof params.preserveCurrentColor=="boolean"?params.preserveCurrentColor:false;const attrs=Array.isArray(params.attrs)?params.attrs:[params.attrs];return{element:{enter:node=>{for(let pattern of attrs){if(!pattern.includes(elemSeparator)){pattern=[".*",pattern,".*"].join(elemSeparator)}else if(pattern.split(elemSeparator).length<3){pattern=[pattern,".*"].join(elemSeparator)}const list=pattern.split(elemSeparator).map((value=>{if(value==="*"){value=".*"}return new RegExp(["^",value,"$"].join(""),"i")}));if(list[0].test(node.name)){for(const[name,value]of Object.entries(node.attributes)){const isFillCurrentColor=preserveCurrentColor&&name=="fill"&&value=="currentColor";const isStrokeCurrentColor=preserveCurrentColor&&name=="stroke"&&value=="currentColor";if(!isFillCurrentColor&&!isStrokeCurrentColor&&list[1].test(name)&&list[2].test(value)){delete node.attributes[name]}}}}}}}};var removeDimensions={};removeDimensions.name="removeDimensions";removeDimensions.description="removes width and height in presence of viewBox (opposite to removeViewBox, disable it first)";removeDimensions.fn=()=>({element:{enter:node=>{if(node.name==="svg"){if(node.attributes.viewBox!=null){delete node.attributes.width;delete node.attributes.height}else if(node.attributes.width!=null&&node.attributes.height!=null&&Number.isNaN(Number(node.attributes.width))===false&&Number.isNaN(Number(node.attributes.height))===false){const width=Number(node.attributes.width);const height=Number(node.attributes.height);node.attributes.viewBox=`0 0 ${width} ${height}`;delete node.attributes.width;delete node.attributes.height}}}}});var removeElementsByAttr={};const{detachNodeFromParent:detachNodeFromParent$5}=xast;removeElementsByAttr.name="removeElementsByAttr";removeElementsByAttr.description="removes arbitrary elements by ID or className (disabled by default)";removeElementsByAttr.fn=(root,params)=>{const ids=params.id==null?[]:Array.isArray(params.id)?params.id:[params.id];const classes=params.class==null?[]:Array.isArray(params.class)?params.class:[params.class];return{element:{enter:(node,parentNode)=>{if(node.attributes.id!=null&&ids.length!==0){if(ids.includes(node.attributes.id)){detachNodeFromParent$5(node,parentNode)}}if(node.attributes.class&&classes.length!==0){const classList=node.attributes.class.split(" ");for(const item of classes){if(classList.includes(item)){detachNodeFromParent$5(node,parentNode);break}}}}}}};var removeOffCanvasPaths={};const{visitSkip:visitSkip,detachNodeFromParent:detachNodeFromParent$4}=xast;const{parsePathData:parsePathData}=path;const{intersects:intersects}=_path;removeOffCanvasPaths.name="removeOffCanvasPaths";removeOffCanvasPaths.description="removes elements that are drawn outside of the viewbox (disabled by default)";removeOffCanvasPaths.fn=()=>{let viewBoxData=null;return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){let viewBox="";if(node.attributes.viewBox!=null){viewBox=node.attributes.viewBox}else if(node.attributes.height!=null&&node.attributes.width!=null){viewBox=`0 0 ${node.attributes.width} ${node.attributes.height}`}viewBox=viewBox.replace(/[,+]|px/g," ").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"");const m=/^(-?\d*\.?\d+) (-?\d*\.?\d+) (\d*\.?\d+) (\d*\.?\d+)$/.exec(viewBox);if(m==null){return}const left=Number.parseFloat(m[1]);const top=Number.parseFloat(m[2]);const width=Number.parseFloat(m[3]);const height=Number.parseFloat(m[4]);viewBoxData={left:left,top:top,right:left+width,bottom:top+height,width:width,height:height}}if(node.attributes.transform!=null){return visitSkip}if(node.name==="path"&&node.attributes.d!=null&&viewBoxData!=null){const pathData=parsePathData(node.attributes.d);let visible=false;for(const pathDataItem of pathData){if(pathDataItem.command==="M"){const[x,y]=pathDataItem.args;if(x>=viewBoxData.left&&x<=viewBoxData.right&&y>=viewBoxData.top&&y<=viewBoxData.bottom){visible=true}}}if(visible){return}if(pathData.length===2){pathData.push({command:"z",args:[]})}const{left:left,top:top,width:width,height:height}=viewBoxData;const viewBoxPathData=[{command:"M",args:[left,top]},{command:"h",args:[width]},{command:"v",args:[height]},{command:"H",args:[left]},{command:"z",args:[]}];if(intersects(viewBoxPathData,pathData)===false){detachNodeFromParent$4(node,parentNode)}}}}}};var removeRasterImages={};const{detachNodeFromParent:detachNodeFromParent$3}=xast;removeRasterImages.name="removeRasterImages";removeRasterImages.description="removes raster images (disabled by default)";removeRasterImages.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="image"&&node.attributes["xlink:href"]!=null&&/(\.|image\/)(jpe?g|png|gif)/.test(node.attributes["xlink:href"])){detachNodeFromParent$3(node,parentNode)}}}});var removeScriptElement={};const{detachNodeFromParent:detachNodeFromParent$2}=xast;const{attrsGroups:attrsGroups}=_collections;removeScriptElement.name="removeScriptElement";removeScriptElement.description="removes scripts (disabled by default)";const eventAttrs=[...attrsGroups.animationEvent,...attrsGroups.documentEvent,...attrsGroups.documentElementEvent,...attrsGroups.globalEvent,...attrsGroups.graphicalEvent];removeScriptElement.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="script"){detachNodeFromParent$2(node,parentNode);return}for(const attr of eventAttrs){if(node.attributes[attr]!=null){delete node.attributes[attr]}}},exit:(node,parentNode)=>{if(node.name!=="a"){return}for(const attr of Object.keys(node.attributes)){if(attr==="href"||attr.endsWith(":href")){if(node.attributes[attr]==null||!node.attributes[attr].trimStart().startsWith("javascript:")){continue}const index=parentNode.children.indexOf(node);parentNode.children.splice(index,1,...node.children);for(const child of node.children){Object.defineProperty(child,"parentNode",{writable:true,value:parentNode})}}}}}});var removeStyleElement={};const{detachNodeFromParent:detachNodeFromParent$1}=xast;removeStyleElement.name="removeStyleElement";removeStyleElement.description="removes <style> element (disabled by default)";removeStyleElement.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="style"){detachNodeFromParent$1(node,parentNode)}}}});var removeXlink={};const{elems:elems}=_collections;removeXlink.name="removeXlink";removeXlink.description="remove xlink namespace and replaces attributes with the SVG 2 equivalent where applicable";const XLINK_NAMESPACE="http://www.w3.org/1999/xlink";const SHOW_TO_TARGET={new:"_blank",replace:"_self"};const LEGACY_ELEMENTS=["cursor","filter","font-face-uri","glyphRef","tref"];const findPrefixedAttrs=(node,prefixes,attr)=>prefixes.map((prefix=>`${prefix}:${attr}`)).filter((attr=>node.attributes[attr]!=null));removeXlink.fn=(_,params)=>{const{includeLegacy:includeLegacy}=params;const xlinkPrefixes=[];const overriddenPrefixes=[];const usedInLegacyElement=[];return{element:{enter:node=>{for(const[key,value]of Object.entries(node.attributes)){if(key.startsWith("xmlns:")){const prefix=key.split(":",2)[1];if(value===XLINK_NAMESPACE){xlinkPrefixes.push(prefix);continue}if(xlinkPrefixes.includes(prefix)){overriddenPrefixes.push(prefix)}}}if(overriddenPrefixes.some((prefix=>xlinkPrefixes.includes(prefix)))){return}const showAttrs=findPrefixedAttrs(node,xlinkPrefixes,"show");let showHandled=node.attributes.target!=null;for(let i=showAttrs.length-1;i>=0;i--){const attr=showAttrs[i];const value=node.attributes[attr];const mapping=SHOW_TO_TARGET[value];if(showHandled||mapping==null){delete node.attributes[attr];continue}if(mapping!==elems[node.name]?.defaults?.target){node.attributes.target=mapping}delete node.attributes[attr];showHandled=true}const titleAttrs=findPrefixedAttrs(node,xlinkPrefixes,"title");for(let i=titleAttrs.length-1;i>=0;i--){const attr=titleAttrs[i];const value=node.attributes[attr];const hasTitle=node.children.filter((child=>child.type==="element"&&child.name==="title"));if(hasTitle.length>0){delete node.attributes[attr];continue}const titleTag={type:"element",name:"title",attributes:{},children:[{type:"text",value:value}]};Object.defineProperty(titleTag,"parentNode",{writable:true,value:node});node.children.unshift(titleTag);delete node.attributes[attr]}const hrefAttrs=findPrefixedAttrs(node,xlinkPrefixes,"href");if(hrefAttrs.length>0&&LEGACY_ELEMENTS.includes(node.name)&&!includeLegacy){hrefAttrs.map((attr=>attr.split(":",1)[0])).forEach((prefix=>usedInLegacyElement.push(prefix)));return}for(let i=hrefAttrs.length-1;i>=0;i--){const attr=hrefAttrs[i];const value=node.attributes[attr];if(node.attributes.href!=null){delete node.attributes[attr];continue}node.attributes.href=value;delete node.attributes[attr]}},exit:node=>{for(const[key,value]of Object.entries(node.attributes)){const[prefix,attr]=key.split(":",2);if(xlinkPrefixes.includes(prefix)&&!overriddenPrefixes.includes(prefix)&&!usedInLegacyElement.includes(prefix)&&!includeLegacy){delete node.attributes[key];continue}if(key.startsWith("xmlns:")&&!usedInLegacyElement.includes(attr)){if(value===XLINK_NAMESPACE){const index=xlinkPrefixes.indexOf(attr);xlinkPrefixes.splice(index,1);delete node.attributes[key];continue}if(overriddenPrefixes.includes(prefix)){const index=overriddenPrefixes.indexOf(attr);overriddenPrefixes.splice(index,1)}}}}}}};var removeXMLNS={};removeXMLNS.name="removeXMLNS";removeXMLNS.description="removes xmlns attribute (for inline svg, disabled by default)";removeXMLNS.fn=()=>({element:{enter:node=>{if(node.name==="svg"){delete node.attributes.xmlns}}}});var reusePaths={};const{collectStylesheet:collectStylesheet}=style;const{detachNodeFromParent:detachNodeFromParent,querySelectorAll:querySelectorAll}=xast;reusePaths.name="reusePaths";reusePaths.description="Finds <path> elements with the same d, fill, and "+"stroke, and converts them to <use> elements "+"referencing a single <path> def.";reusePaths.fn=root=>{const stylesheet=collectStylesheet(root);const paths=new Map;let svgDefs;const hrefs=new Set;return{element:{enter:(node,parentNode)=>{if(node.name==="path"&&node.attributes.d!=null){const d=node.attributes.d;const fill=node.attributes.fill||"";const stroke=node.attributes.stroke||"";const key=d+";s:"+stroke+";f:"+fill;let list=paths.get(key);if(list==null){list=[];paths.set(key,list)}list.push(node)}if(svgDefs==null&&node.name==="defs"&&parentNode.type==="element"&&parentNode.name==="svg"){svgDefs=node}if(node.name==="use"){for(const name of["href","xlink:href"]){const href=node.attributes[name];if(href!=null&&href.startsWith("#")&&href.length>1){hrefs.add(href.slice(1))}}}},exit:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){let defsTag=svgDefs;if(defsTag==null){defsTag={type:"element",name:"defs",attributes:{},children:[]};Object.defineProperty(defsTag,"parentNode",{writable:true,value:node})}let index=0;for(const list of paths.values()){if(list.length>1){const reusablePath={type:"element",name:"path",attributes:{},children:[]};for(const attr of["fill","stroke","d"]){if(list[0].attributes[attr]!=null){reusablePath.attributes[attr]=list[0].attributes[attr]}}const originalId=list[0].attributes.id;if(originalId==null||hrefs.has(originalId)||stylesheet.rules.some((rule=>rule.selector===`#${originalId}`))){reusablePath.attributes.id="reuse-"+index++}else{reusablePath.attributes.id=originalId;delete list[0].attributes.id}Object.defineProperty(reusablePath,"parentNode",{writable:true,value:defsTag});defsTag.children.push(reusablePath);for(const pathNode of list){delete pathNode.attributes.d;delete pathNode.attributes.stroke;delete pathNode.attributes.fill;if(defsTag.children.includes(pathNode)&&pathNode.children.length===0){if(Object.keys(pathNode.attributes).length===0){detachNodeFromParent(pathNode,defsTag);continue}if(Object.keys(pathNode.attributes).length===1&&pathNode.attributes.id!=null){detachNodeFromParent(pathNode,defsTag);const selector=`[xlink\\:href=#${pathNode.attributes.id}], [href=#${pathNode.attributes.id}]`;for(const child of querySelectorAll(node,selector)){if(child.type!=="element"){continue}for(const name of["href","xlink:href"]){if(child.attributes[name]!=null){child.attributes[name]="#"+reusablePath.attributes.id}}}continue}}pathNode.name="use";pathNode.attributes["xlink:href"]="#"+reusablePath.attributes.id}}}if(defsTag.children.length!==0){if(node.attributes["xmlns:xlink"]==null){node.attributes["xmlns:xlink"]="http://www.w3.org/1999/xlink"}if(svgDefs==null){node.children.unshift(defsTag)}}}}}}};builtin$1.builtin=[presetDefault_1,addAttributesToSVGElement,addClassesToSVGElement,cleanupAttrs$1,cleanupEnableBackground$1,cleanupIds$1,cleanupListOfValues,cleanupNumericValues$1,collapseGroups$1,convertColors$1,convertEllipseToCircle$1,convertOneStopGradients,convertPathData$1,convertShapeToPath$1,convertStyleToAttrs,convertTransform$2,mergeStyles$1,inlineStyles$1,mergePaths$1,minifyStyles$1,moveElemsAttrsToGroup$1,moveGroupAttrsToElems$1,prefixIds,removeAttributesBySelector,removeAttrs,removeComments$1,removeDesc$1,removeDimensions,removeDoctype$1,removeEditorsNSData$1,removeElementsByAttr,removeEmptyAttrs$1,removeEmptyContainers$1,removeEmptyText$1,removeHiddenElems$1,removeMetadata$1,removeNonInheritableGroupAttrs$1,removeOffCanvasPaths,removeRasterImages,removeScriptElement,removeStyleElement,removeTitle$1,removeUnknownsAndDefaults$1,removeUnusedNS$1,removeUselessDefs$1,removeUselessStrokeAndFill$1,removeViewBox$1,removeXlink,removeXMLNS,removeXMLProcInst$1,reusePaths,sortAttrs$1,sortDefsChildren$1];const{parseSvg:parseSvg}=parser$2;const{stringifySvg:stringifySvg}=stringifier;const{builtin:builtin}=builtin$1;const{invokePlugins:invokePlugins}=plugins;const{encodeSVGDatauri:encodeSVGDatauri}=tools;const pluginsMap={};for(const plugin of builtin){pluginsMap[plugin.name]=plugin}const resolvePluginConfig=plugin=>{if(typeof plugin==="string"){const builtinPlugin=pluginsMap[plugin];if(builtinPlugin==null){throw Error(`Unknown builtin plugin "${plugin}" specified.`)}return{name:plugin,params:{},fn:builtinPlugin.fn}}if(typeof plugin==="object"&&plugin!=null){if(plugin.name==null){throw Error(`Plugin name should be specified`)}let fn=plugin.fn;if(fn==null){const builtinPlugin=pluginsMap[plugin.name];if(builtinPlugin==null){throw Error(`Unknown builtin plugin "${plugin.name}" specified.`)}fn=builtinPlugin.fn}return{name:plugin.name,params:plugin.params,fn:fn}}return null};const optimize=(input,config)=>{if(config==null){config={}}if(typeof config!=="object"){throw Error("Config should be an object")}const maxPassCount=config.multipass?10:1;let prevResultSize=Number.POSITIVE_INFINITY;let output="";const info={};if(config.path!=null){info.path=config.path}for(let i=0;i<maxPassCount;i+=1){info.multipassCount=i;const ast=parseSvg(input,config.path);const plugins=config.plugins||["preset-default"];if(!Array.isArray(plugins)){throw Error("malformed config, `plugins` property must be an array.\nSee more info here: https://github.com/svg/svgo#configuration")}const resolvedPlugins=plugins.filter((plugin=>plugin!=null)).map(resolvePluginConfig);if(resolvedPlugins.length<plugins.length){console.warn("Warning: plugins list includes null or undefined elements, these will be ignored.")}const globalOverrides={};if(config.floatPrecision!=null){globalOverrides.floatPrecision=config.floatPrecision}invokePlugins(ast,info,resolvedPlugins,null,globalOverrides);output=stringifySvg(ast,config.js2svg);if(output.length<prevResultSize){input=output;prevResultSize=output.length}else{break}}if(config.datauri){output=encodeSVGDatauri(output,config.datauri)}return{data:output}};var optimize_1=svgo.optimize=optimize;export{svgo as default,optimize_1 as optimize};
+var commonjsGlobal=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getAugmentedNamespace(n){var f=n.default;if(typeof f=="function"){var a=function(){return f.apply(this,arguments)};a.prototype=f.prototype}else a={};Object.defineProperty(a,"__esModule",{value:true});Object.keys(n).forEach((function(k){var d=Object.getOwnPropertyDescriptor(n,k);Object.defineProperty(a,k,d.get?d:{enumerable:true,get:function(){return n[k]}})}));return a}var svgo={};var parser$4={};var sax={};(function(exports){(function(sax){sax.parser=function(strict,opt){return new SAXParser(strict,opt)};sax.SAXParser=SAXParser;sax.MAX_BUFFER_LENGTH=64*1024;var buffers=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];sax.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function SAXParser(strict,opt){if(!(this instanceof SAXParser)){return new SAXParser(strict,opt)}var parser=this;clearBuffers(parser);parser.q=parser.c="";parser.bufferCheckPosition=sax.MAX_BUFFER_LENGTH;parser.opt=opt||{};parser.opt.lowercase=parser.opt.lowercase||parser.opt.lowercasetags;parser.looseCase=parser.opt.lowercase?"toLowerCase":"toUpperCase";parser.tags=[];parser.closed=parser.closedRoot=parser.sawRoot=false;parser.tag=parser.error=null;parser.strict=!!strict;parser.noscript=!!(strict||parser.opt.noscript);parser.state=S.BEGIN;parser.strictEntities=parser.opt.strictEntities;parser.ENTITIES=parser.strictEntities?Object.create(sax.XML_ENTITIES):Object.create(sax.ENTITIES);parser.attribList=[];if(parser.opt.xmlns){parser.ns=Object.create(rootNS)}parser.trackPosition=parser.opt.position!==false;if(parser.trackPosition){parser.position=parser.line=parser.column=0}emit(parser,"onready")}if(!Object.create){Object.create=function(o){function F(){}F.prototype=o;var newf=new F;return newf}}if(!Object.keys){Object.keys=function(o){var a=[];for(var i in o)if(o.hasOwnProperty(i))a.push(i);return a}}function checkBufferLength(parser){var maxAllowed=Math.max(sax.MAX_BUFFER_LENGTH,10);var maxActual=0;for(var i=0,l=buffers.length;i<l;i++){var len=parser[buffers[i]].length;if(len>maxAllowed){switch(buffers[i]){case"textNode":closeText(parser);break;case"cdata":emitNode(parser,"oncdata",parser.cdata);parser.cdata="";break;case"script":emitNode(parser,"onscript",parser.script);parser.script="";break;default:error(parser,"Max buffer length exceeded: "+buffers[i])}}maxActual=Math.max(maxActual,len)}var m=sax.MAX_BUFFER_LENGTH-maxActual;parser.bufferCheckPosition=m+parser.position}function clearBuffers(parser){for(var i=0,l=buffers.length;i<l;i++){parser[buffers[i]]=""}}function flushBuffers(parser){closeText(parser);if(parser.cdata!==""){emitNode(parser,"oncdata",parser.cdata);parser.cdata=""}if(parser.script!==""){emitNode(parser,"onscript",parser.script);parser.script=""}}SAXParser.prototype={end:function(){end(this)},write:write,resume:function(){this.error=null;return this},close:function(){return this.write(null)},flush:function(){flushBuffers(this)}};var CDATA="[CDATA[";var DOCTYPE="DOCTYPE";var XML_NAMESPACE="http://www.w3.org/XML/1998/namespace";var XMLNS_NAMESPACE="http://www.w3.org/2000/xmlns/";var rootNS={xml:XML_NAMESPACE,xmlns:XMLNS_NAMESPACE};var nameStart=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var nameBody=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;var entityStart=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var entityBody=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function isWhitespace(c){return c===" "||c==="\n"||c==="\r"||c==="\t"}function isQuote(c){return c==='"'||c==="'"}function isAttribEnd(c){return c===">"||isWhitespace(c)}function isMatch(regex,c){return regex.test(c)}function notMatch(regex,c){return!isMatch(regex,c)}var S=0;sax.STATE={BEGIN:S++,BEGIN_WHITESPACE:S++,TEXT:S++,TEXT_ENTITY:S++,OPEN_WAKA:S++,SGML_DECL:S++,SGML_DECL_QUOTED:S++,DOCTYPE:S++,DOCTYPE_QUOTED:S++,DOCTYPE_DTD:S++,DOCTYPE_DTD_QUOTED:S++,COMMENT_STARTING:S++,COMMENT:S++,COMMENT_ENDING:S++,COMMENT_ENDED:S++,CDATA:S++,CDATA_ENDING:S++,CDATA_ENDING_2:S++,PROC_INST:S++,PROC_INST_BODY:S++,PROC_INST_ENDING:S++,OPEN_TAG:S++,OPEN_TAG_SLASH:S++,ATTRIB:S++,ATTRIB_NAME:S++,ATTRIB_NAME_SAW_WHITE:S++,ATTRIB_VALUE:S++,ATTRIB_VALUE_QUOTED:S++,ATTRIB_VALUE_CLOSED:S++,ATTRIB_VALUE_UNQUOTED:S++,ATTRIB_VALUE_ENTITY_Q:S++,ATTRIB_VALUE_ENTITY_U:S++,CLOSE_TAG:S++,CLOSE_TAG_SAW_WHITE:S++,SCRIPT:S++,SCRIPT_ENDING:S++};sax.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"};sax.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830};Object.keys(sax.ENTITIES).forEach((function(key){var e=sax.ENTITIES[key];var s=typeof e==="number"?String.fromCharCode(e):e;sax.ENTITIES[key]=s}));for(var s in sax.STATE){sax.STATE[sax.STATE[s]]=s}S=sax.STATE;function emit(parser,event,data){parser[event]&&parser[event](data)}function emitNode(parser,nodeType,data){if(parser.textNode)closeText(parser);emit(parser,nodeType,data)}function closeText(parser){parser.textNode=textopts(parser.opt,parser.textNode);if(parser.textNode)emit(parser,"ontext",parser.textNode);parser.textNode=""}function textopts(opt,text){if(opt.trim)text=text.trim();if(opt.normalize)text=text.replace(/\s+/g," ");return text}function error(parser,reason){closeText(parser);const message=reason+"\nLine: "+parser.line+"\nColumn: "+parser.column+"\nChar: "+parser.c;const error=new Error(message);error.reason=reason;error.line=parser.line;error.column=parser.column;parser.error=error;emit(parser,"onerror",error);return parser}function end(parser){if(parser.sawRoot&&!parser.closedRoot)strictFail(parser,"Unclosed root tag");if(parser.state!==S.BEGIN&&parser.state!==S.BEGIN_WHITESPACE&&parser.state!==S.TEXT){error(parser,"Unexpected end")}closeText(parser);parser.c="";parser.closed=true;emit(parser,"onend");SAXParser.call(parser,parser.strict,parser.opt);return parser}function strictFail(parser,message){if(typeof parser!=="object"||!(parser instanceof SAXParser)){throw new Error("bad call to strictFail")}if(parser.strict){error(parser,message)}}function newTag(parser){if(!parser.strict)parser.tagName=parser.tagName[parser.looseCase]();var parent=parser.tags[parser.tags.length-1]||parser;var tag=parser.tag={name:parser.tagName,attributes:{}};if(parser.opt.xmlns){tag.ns=parent.ns}parser.attribList.length=0;emitNode(parser,"onopentagstart",tag)}function qname(name,attribute){var i=name.indexOf(":");var qualName=i<0?["",name]:name.split(":");var prefix=qualName[0];var local=qualName[1];if(attribute&&name==="xmlns"){prefix="xmlns";local=""}return{prefix:prefix,local:local}}function attrib(parser){if(!parser.strict){parser.attribName=parser.attribName[parser.looseCase]()}if(parser.attribList.indexOf(parser.attribName)!==-1||parser.tag.attributes.hasOwnProperty(parser.attribName)){parser.attribName=parser.attribValue="";return}if(parser.opt.xmlns){var qn=qname(parser.attribName,true);var prefix=qn.prefix;var local=qn.local;if(prefix==="xmlns"){if(local==="xml"&&parser.attribValue!==XML_NAMESPACE){strictFail(parser,"xml: prefix must be bound to "+XML_NAMESPACE+"\n"+"Actual: "+parser.attribValue)}else if(local==="xmlns"&&parser.attribValue!==XMLNS_NAMESPACE){strictFail(parser,"xmlns: prefix must be bound to "+XMLNS_NAMESPACE+"\n"+"Actual: "+parser.attribValue)}else{var tag=parser.tag;var parent=parser.tags[parser.tags.length-1]||parser;if(tag.ns===parent.ns){tag.ns=Object.create(parent.ns)}tag.ns[local]=parser.attribValue}}parser.attribList.push([parser.attribName,parser.attribValue])}else{parser.tag.attributes[parser.attribName]=parser.attribValue;emitNode(parser,"onattribute",{name:parser.attribName,value:parser.attribValue})}parser.attribName=parser.attribValue=""}function openTag(parser,selfClosing){if(parser.opt.xmlns){var tag=parser.tag;var qn=qname(parser.tagName);tag.prefix=qn.prefix;tag.local=qn.local;tag.uri=tag.ns[qn.prefix]||"";if(tag.prefix&&!tag.uri){strictFail(parser,"Unbound namespace prefix: "+JSON.stringify(parser.tagName));tag.uri=qn.prefix}var parent=parser.tags[parser.tags.length-1]||parser;if(tag.ns&&parent.ns!==tag.ns){Object.keys(tag.ns).forEach((function(p){emitNode(parser,"onopennamespace",{prefix:p,uri:tag.ns[p]})}))}for(var i=0,l=parser.attribList.length;i<l;i++){var nv=parser.attribList[i];var name=nv[0];var value=nv[1];var qualName=qname(name,true);var prefix=qualName.prefix;var local=qualName.local;var uri=prefix===""?"":tag.ns[prefix]||"";var a={name:name,value:value,prefix:prefix,local:local,uri:uri};if(prefix&&prefix!=="xmlns"&&!uri){strictFail(parser,"Unbound namespace prefix: "+JSON.stringify(prefix));a.uri=prefix}parser.tag.attributes[name]=a;emitNode(parser,"onattribute",a)}parser.attribList.length=0}parser.tag.isSelfClosing=!!selfClosing;parser.sawRoot=true;parser.tags.push(parser.tag);emitNode(parser,"onopentag",parser.tag);if(!selfClosing){if(!parser.noscript&&parser.tagName.toLowerCase()==="script"){parser.state=S.SCRIPT}else{parser.state=S.TEXT}parser.tag=null;parser.tagName=""}parser.attribName=parser.attribValue="";parser.attribList.length=0}function closeTag(parser){if(!parser.tagName){strictFail(parser,"Weird empty close tag.");parser.textNode+="</>";parser.state=S.TEXT;return}if(parser.script){if(parser.tagName!=="script"){parser.script+="</"+parser.tagName+">";parser.tagName="";parser.state=S.SCRIPT;return}emitNode(parser,"onscript",parser.script);parser.script=""}var t=parser.tags.length;var tagName=parser.tagName;if(!parser.strict){tagName=tagName[parser.looseCase]()}var closeTo=tagName;while(t--){var close=parser.tags[t];if(close.name!==closeTo){strictFail(parser,"Unexpected close tag")}else{break}}if(t<0){strictFail(parser,"Unmatched closing tag: "+parser.tagName);parser.textNode+="</"+parser.tagName+">";parser.state=S.TEXT;return}parser.tagName=tagName;var s=parser.tags.length;while(s-- >t){var tag=parser.tag=parser.tags.pop();parser.tagName=parser.tag.name;emitNode(parser,"onclosetag",parser.tagName);var x={};for(var i in tag.ns){x[i]=tag.ns[i]}var parent=parser.tags[parser.tags.length-1]||parser;if(parser.opt.xmlns&&tag.ns!==parent.ns){Object.keys(tag.ns).forEach((function(p){var n=tag.ns[p];emitNode(parser,"onclosenamespace",{prefix:p,uri:n})}))}}if(t===0)parser.closedRoot=true;parser.tagName=parser.attribValue=parser.attribName="";parser.attribList.length=0;parser.state=S.TEXT}function parseEntity(parser){var entity=parser.entity;var entityLC=entity.toLowerCase();var num;var numStr="";if(parser.ENTITIES[entity]){return parser.ENTITIES[entity]}if(parser.ENTITIES[entityLC]){return parser.ENTITIES[entityLC]}entity=entityLC;if(entity.charAt(0)==="#"){if(entity.charAt(1)==="x"){entity=entity.slice(2);num=parseInt(entity,16);numStr=num.toString(16)}else{entity=entity.slice(1);num=parseInt(entity,10);numStr=num.toString(10)}}entity=entity.replace(/^0+/,"");if(isNaN(num)||numStr.toLowerCase()!==entity){strictFail(parser,"Invalid character entity");return"&"+parser.entity+";"}return String.fromCodePoint(num)}function beginWhiteSpace(parser,c){if(c==="<"){parser.state=S.OPEN_WAKA;parser.startTagPosition=parser.position}else if(!isWhitespace(c)){strictFail(parser,"Non-whitespace before first tag.");parser.textNode=c;parser.state=S.TEXT}}function charAt(chunk,i){var result="";if(i<chunk.length){result=chunk.charAt(i)}return result}function write(chunk){var parser=this;if(this.error){throw this.error}if(parser.closed){return error(parser,"Cannot write after close. Assign an onready handler.")}if(chunk===null){return end(parser)}if(typeof chunk==="object"){chunk=chunk.toString()}var i=0;var c="";while(true){c=charAt(chunk,i++);parser.c=c;if(!c){break}if(parser.trackPosition){parser.position++;if(c==="\n"){parser.line++;parser.column=0}else{parser.column++}}switch(parser.state){case S.BEGIN:parser.state=S.BEGIN_WHITESPACE;if(c==="\ufeff"){continue}beginWhiteSpace(parser,c);continue;case S.BEGIN_WHITESPACE:beginWhiteSpace(parser,c);continue;case S.TEXT:if(parser.sawRoot&&!parser.closedRoot){var starti=i-1;while(c&&c!=="<"&&c!=="&"){c=charAt(chunk,i++);if(c&&parser.trackPosition){parser.position++;if(c==="\n"){parser.line++;parser.column=0}else{parser.column++}}}parser.textNode+=chunk.substring(starti,i-1)}if(c==="<"&&!(parser.sawRoot&&parser.closedRoot&&!parser.strict)){parser.state=S.OPEN_WAKA;parser.startTagPosition=parser.position}else{if(!isWhitespace(c)&&(!parser.sawRoot||parser.closedRoot)){strictFail(parser,"Text data outside of root node.")}if(c==="&"){parser.state=S.TEXT_ENTITY}else{parser.textNode+=c}}continue;case S.SCRIPT:if(c==="<"){parser.state=S.SCRIPT_ENDING}else{parser.script+=c}continue;case S.SCRIPT_ENDING:if(c==="/"){parser.state=S.CLOSE_TAG}else{parser.script+="<"+c;parser.state=S.SCRIPT}continue;case S.OPEN_WAKA:if(c==="!"){parser.state=S.SGML_DECL;parser.sgmlDecl=""}else if(isWhitespace(c));else if(isMatch(nameStart,c)){parser.state=S.OPEN_TAG;parser.tagName=c}else if(c==="/"){parser.state=S.CLOSE_TAG;parser.tagName=""}else if(c==="?"){parser.state=S.PROC_INST;parser.procInstName=parser.procInstBody=""}else{strictFail(parser,"Unencoded <");if(parser.startTagPosition+1<parser.position){var pad=parser.position-parser.startTagPosition;c=new Array(pad).join(" ")+c}parser.textNode+="<"+c;parser.state=S.TEXT}continue;case S.SGML_DECL:if((parser.sgmlDecl+c).toUpperCase()===CDATA){emitNode(parser,"onopencdata");parser.state=S.CDATA;parser.sgmlDecl="";parser.cdata=""}else if(parser.sgmlDecl+c==="--"){parser.state=S.COMMENT;parser.comment="";parser.sgmlDecl=""}else if((parser.sgmlDecl+c).toUpperCase()===DOCTYPE){parser.state=S.DOCTYPE;if(parser.doctype||parser.sawRoot){strictFail(parser,"Inappropriately located doctype declaration")}parser.doctype="";parser.sgmlDecl=""}else if(c===">"){emitNode(parser,"onsgmldeclaration",parser.sgmlDecl);parser.sgmlDecl="";parser.state=S.TEXT}else if(isQuote(c)){parser.state=S.SGML_DECL_QUOTED;parser.sgmlDecl+=c}else{parser.sgmlDecl+=c}continue;case S.SGML_DECL_QUOTED:if(c===parser.q){parser.state=S.SGML_DECL;parser.q=""}parser.sgmlDecl+=c;continue;case S.DOCTYPE:if(c===">"){parser.state=S.TEXT;emitNode(parser,"ondoctype",parser.doctype);parser.doctype=true}else{parser.doctype+=c;if(c==="["){parser.state=S.DOCTYPE_DTD}else if(isQuote(c)){parser.state=S.DOCTYPE_QUOTED;parser.q=c}}continue;case S.DOCTYPE_QUOTED:parser.doctype+=c;if(c===parser.q){parser.q="";parser.state=S.DOCTYPE}continue;case S.DOCTYPE_DTD:parser.doctype+=c;if(c==="]"){parser.state=S.DOCTYPE}else if(isQuote(c)){parser.state=S.DOCTYPE_DTD_QUOTED;parser.q=c}continue;case S.DOCTYPE_DTD_QUOTED:parser.doctype+=c;if(c===parser.q){parser.state=S.DOCTYPE_DTD;parser.q=""}continue;case S.COMMENT:if(c==="-"){parser.state=S.COMMENT_ENDING}else{parser.comment+=c}continue;case S.COMMENT_ENDING:if(c==="-"){parser.state=S.COMMENT_ENDED;parser.comment=textopts(parser.opt,parser.comment);if(parser.comment){emitNode(parser,"oncomment",parser.comment)}parser.comment=""}else{parser.comment+="-"+c;parser.state=S.COMMENT}continue;case S.COMMENT_ENDED:if(c!==">"){strictFail(parser,"Malformed comment");parser.comment+="--"+c;parser.state=S.COMMENT}else{parser.state=S.TEXT}continue;case S.CDATA:if(c==="]"){parser.state=S.CDATA_ENDING}else{parser.cdata+=c}continue;case S.CDATA_ENDING:if(c==="]"){parser.state=S.CDATA_ENDING_2}else{parser.cdata+="]"+c;parser.state=S.CDATA}continue;case S.CDATA_ENDING_2:if(c===">"){if(parser.cdata){emitNode(parser,"oncdata",parser.cdata)}emitNode(parser,"onclosecdata");parser.cdata="";parser.state=S.TEXT}else if(c==="]"){parser.cdata+="]"}else{parser.cdata+="]]"+c;parser.state=S.CDATA}continue;case S.PROC_INST:if(c==="?"){parser.state=S.PROC_INST_ENDING}else if(isWhitespace(c)){parser.state=S.PROC_INST_BODY}else{parser.procInstName+=c}continue;case S.PROC_INST_BODY:if(!parser.procInstBody&&isWhitespace(c)){continue}else if(c==="?"){parser.state=S.PROC_INST_ENDING}else{parser.procInstBody+=c}continue;case S.PROC_INST_ENDING:if(c===">"){emitNode(parser,"onprocessinginstruction",{name:parser.procInstName,body:parser.procInstBody});parser.procInstName=parser.procInstBody="";parser.state=S.TEXT}else{parser.procInstBody+="?"+c;parser.state=S.PROC_INST_BODY}continue;case S.OPEN_TAG:if(isMatch(nameBody,c)){parser.tagName+=c}else{newTag(parser);if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else{if(!isWhitespace(c)){strictFail(parser,"Invalid character in tag name")}parser.state=S.ATTRIB}}continue;case S.OPEN_TAG_SLASH:if(c===">"){openTag(parser,true);closeTag(parser)}else{strictFail(parser,"Forward-slash in opening tag not followed by >");parser.state=S.ATTRIB}continue;case S.ATTRIB:if(isWhitespace(c)){continue}else if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else if(isMatch(nameStart,c)){parser.attribName=c;parser.attribValue="";parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_NAME:if(c==="="){parser.state=S.ATTRIB_VALUE}else if(c===">"){strictFail(parser,"Attribute without value");parser.attribValue=parser.attribName;attrib(parser);openTag(parser)}else if(isWhitespace(c)){parser.state=S.ATTRIB_NAME_SAW_WHITE}else if(isMatch(nameBody,c)){parser.attribName+=c}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_NAME_SAW_WHITE:if(c==="="){parser.state=S.ATTRIB_VALUE}else if(isWhitespace(c)){continue}else{strictFail(parser,"Attribute without value");parser.tag.attributes[parser.attribName]="";parser.attribValue="";emitNode(parser,"onattribute",{name:parser.attribName,value:""});parser.attribName="";if(c===">"){openTag(parser)}else if(isMatch(nameStart,c)){parser.attribName=c;parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name");parser.state=S.ATTRIB}}continue;case S.ATTRIB_VALUE:if(isWhitespace(c)){continue}else if(isQuote(c)){parser.q=c;parser.state=S.ATTRIB_VALUE_QUOTED}else{strictFail(parser,"Unquoted attribute value");parser.state=S.ATTRIB_VALUE_UNQUOTED;parser.attribValue=c}continue;case S.ATTRIB_VALUE_QUOTED:if(c!==parser.q){if(c==="&"){parser.state=S.ATTRIB_VALUE_ENTITY_Q}else{parser.attribValue+=c}continue}attrib(parser);parser.q="";parser.state=S.ATTRIB_VALUE_CLOSED;continue;case S.ATTRIB_VALUE_CLOSED:if(isWhitespace(c)){parser.state=S.ATTRIB}else if(c===">"){openTag(parser)}else if(c==="/"){parser.state=S.OPEN_TAG_SLASH}else if(isMatch(nameStart,c)){strictFail(parser,"No whitespace between attributes");parser.attribName=c;parser.attribValue="";parser.state=S.ATTRIB_NAME}else{strictFail(parser,"Invalid attribute name")}continue;case S.ATTRIB_VALUE_UNQUOTED:if(!isAttribEnd(c)){if(c==="&"){parser.state=S.ATTRIB_VALUE_ENTITY_U}else{parser.attribValue+=c}continue}attrib(parser);if(c===">"){openTag(parser)}else{parser.state=S.ATTRIB}continue;case S.CLOSE_TAG:if(!parser.tagName){if(isWhitespace(c)){continue}else if(notMatch(nameStart,c)){if(parser.script){parser.script+="</"+c;parser.state=S.SCRIPT}else{strictFail(parser,"Invalid tagname in closing tag.")}}else{parser.tagName=c}}else if(c===">"){closeTag(parser)}else if(isMatch(nameBody,c)){parser.tagName+=c}else if(parser.script){parser.script+="</"+parser.tagName;parser.tagName="";parser.state=S.SCRIPT}else{if(!isWhitespace(c)){strictFail(parser,"Invalid tagname in closing tag")}parser.state=S.CLOSE_TAG_SAW_WHITE}continue;case S.CLOSE_TAG_SAW_WHITE:if(isWhitespace(c)){continue}if(c===">"){closeTag(parser)}else{strictFail(parser,"Invalid characters in closing tag")}continue;case S.TEXT_ENTITY:case S.ATTRIB_VALUE_ENTITY_Q:case S.ATTRIB_VALUE_ENTITY_U:var returnState;var buffer;switch(parser.state){case S.TEXT_ENTITY:returnState=S.TEXT;buffer="textNode";break;case S.ATTRIB_VALUE_ENTITY_Q:returnState=S.ATTRIB_VALUE_QUOTED;buffer="attribValue";break;case S.ATTRIB_VALUE_ENTITY_U:returnState=S.ATTRIB_VALUE_UNQUOTED;buffer="attribValue";break}if(c===";"){var parsedEntity=parseEntity(parser);if(parser.state===S.TEXT_ENTITY&&!sax.ENTITIES[parser.entity]&&parsedEntity!=="&"+parser.entity+";"){chunk=chunk.slice(0,i)+parsedEntity+chunk.slice(i)}else{parser[buffer]+=parsedEntity}parser.entity="";parser.state=returnState}else if(isMatch(parser.entity.length?entityBody:entityStart,c)){parser.entity+=c}else{strictFail(parser,"Invalid character in entity name");parser[buffer]+="&"+parser.entity+c;parser.entity="";parser.state=returnState}continue;default:throw new Error(parser,"Unknown state: "+parser.state)}}if(parser.position>=parser.bufferCheckPosition){checkBufferLength(parser)}return parser}})(exports)})(sax);var _collections={};(function(exports){exports.elemsGroups={animation:new Set(["animate","animateColor","animateMotion","animateTransform","set"]),descriptive:new Set(["desc","metadata","title"]),shape:new Set(["circle","ellipse","line","path","polygon","polyline","rect"]),structural:new Set(["defs","g","svg","symbol","use"]),paintServer:new Set(["hatch","linearGradient","meshGradient","pattern","radialGradient","solidColor"]),nonRendering:new Set(["clipPath","filter","linearGradient","marker","mask","pattern","radialGradient","solidColor","symbol"]),container:new Set(["a","defs","foreignObject","g","marker","mask","missing-glyph","pattern","svg","switch","symbol"]),textContent:new Set(["altGlyph","altGlyphDef","altGlyphItem","glyph","glyphRef","text","textPath","tref","tspan"]),textContentChild:new Set(["altGlyph","textPath","tref","tspan"]),lightSource:new Set(["feDiffuseLighting","feDistantLight","fePointLight","feSpecularLighting","feSpotLight"]),filterPrimitive:new Set(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence"])};exports.textElems=new Set([...exports.elemsGroups.textContent,"pre","title"]);exports.pathElems=new Set(["glyph","missing-glyph","path"]);exports.attrsGroups={animationAddition:new Set(["additive","accumulate"]),animationAttributeTarget:new Set(["attributeType","attributeName"]),animationEvent:new Set(["onbegin","onend","onrepeat","onload"]),animationTiming:new Set(["begin","dur","end","fill","max","min","repeatCount","repeatDur","restart"]),animationValue:new Set(["by","calcMode","from","keySplines","keyTimes","to","values"]),conditionalProcessing:new Set(["requiredExtensions","requiredFeatures","systemLanguage"]),core:new Set(["id","tabindex","xml:base","xml:lang","xml:space"]),graphicalEvent:new Set(["onactivate","onclick","onfocusin","onfocusout","onload","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup"]),presentation:new Set(["alignment-baseline","baseline-shift","clip-path","clip-rule","clip","color-interpolation-filters","color-interpolation","color-profile","color-rendering","color","cursor","direction","display","dominant-baseline","enable-background","fill-opacity","fill-rule","fill","filter","flood-color","flood-opacity","font-family","font-size-adjust","font-size","font-stretch","font-style","font-variant","font-weight","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","stroke","text-anchor","text-decoration","text-overflow","text-rendering","transform-origin","transform","unicode-bidi","vector-effect","visibility","word-spacing","writing-mode"]),xlink:new Set(["xlink:actuate","xlink:arcrole","xlink:href","xlink:role","xlink:show","xlink:title","xlink:type"]),documentEvent:new Set(["onabort","onerror","onresize","onscroll","onunload","onzoom"]),documentElementEvent:new Set(["oncopy","oncut","onpaste"]),globalEvent:new Set(["oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onvolumechange","onwaiting"]),filterPrimitive:new Set(["x","y","width","height","result"]),transferFunction:new Set(["amplitude","exponent","intercept","offset","slope","tableValues","type"])};exports.attrsGroupsDefaults={core:{"xml:space":"default"},presentation:{clip:"auto","clip-path":"none","clip-rule":"nonzero",mask:"none",opacity:"1","stop-color":"#000","stop-opacity":"1","fill-opacity":"1","fill-rule":"nonzero",fill:"#000",stroke:"none","stroke-width":"1","stroke-linecap":"butt","stroke-linejoin":"miter","stroke-miterlimit":"4","stroke-dasharray":"none","stroke-dashoffset":"0","stroke-opacity":"1","paint-order":"normal","vector-effect":"none",display:"inline",visibility:"visible","marker-start":"none","marker-mid":"none","marker-end":"none","color-interpolation":"sRGB","color-interpolation-filters":"linearRGB","color-rendering":"auto","shape-rendering":"auto","text-rendering":"auto","image-rendering":"auto","font-style":"normal","font-variant":"normal","font-weight":"normal","font-stretch":"normal","font-size":"medium","font-size-adjust":"none",kerning:"auto","letter-spacing":"normal","word-spacing":"normal","text-decoration":"none","text-anchor":"start","text-overflow":"clip","writing-mode":"lr-tb","glyph-orientation-vertical":"auto","glyph-orientation-horizontal":"0deg",direction:"ltr","unicode-bidi":"normal","dominant-baseline":"auto","alignment-baseline":"baseline","baseline-shift":"baseline"},transferFunction:{slope:"1",intercept:"0",amplitude:"1",exponent:"1",offset:"0"}};exports.elems={a:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","style","target","transform"]),defaults:{target:"_self"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view","tspan"])},altGlyph:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","dx","dy","externalResourcesRequired","format","glyphRef","rotate","style","x","y"])},altGlyphDef:{attrsGroups:new Set(["core"]),content:new Set(["glyphRef"])},altGlyphItem:{attrsGroups:new Set(["core"]),content:new Set(["glyphRef","altGlyphItem"])},animate:{attrsGroups:new Set(["animationAddition","animationAttributeTarget","animationEvent","animationTiming","animationValue","conditionalProcessing","core","presentation","xlink"]),attrs:new Set(["externalResourcesRequired"]),contentGroups:new Set(["descriptive"])},animateColor:{attrsGroups:new Set(["animationAddition","animationAttributeTarget","animationEvent","animationTiming","animationValue","conditionalProcessing","core","presentation","xlink"]),attrs:new Set(["externalResourcesRequired"]),contentGroups:new Set(["descriptive"])},animateMotion:{attrsGroups:new Set(["animationAddition","animationEvent","animationTiming","animationValue","conditionalProcessing","core","xlink"]),attrs:new Set(["externalResourcesRequired","keyPoints","origin","path","rotate"]),defaults:{rotate:"0"},contentGroups:new Set(["descriptive"]),content:new Set(["mpath"])},animateTransform:{attrsGroups:new Set(["animationAddition","animationAttributeTarget","animationEvent","animationTiming","animationValue","conditionalProcessing","core","xlink"]),attrs:new Set(["externalResourcesRequired","type"]),contentGroups:new Set(["descriptive"])},circle:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","cx","cy","externalResourcesRequired","r","style","transform"]),defaults:{cx:"0",cy:"0"},contentGroups:new Set(["animation","descriptive"])},clipPath:{attrsGroups:new Set(["conditionalProcessing","core","presentation"]),attrs:new Set(["class","clipPathUnits","externalResourcesRequired","style","transform"]),defaults:{clipPathUnits:"userSpaceOnUse"},contentGroups:new Set(["animation","descriptive","shape"]),content:new Set(["text","use"])},"color-profile":{attrsGroups:new Set(["core","xlink"]),attrs:new Set(["local","name","rendering-intent"]),defaults:{name:"sRGB","rendering-intent":"auto"},contentGroups:new Set(["descriptive"])},cursor:{attrsGroups:new Set(["core","conditionalProcessing","xlink"]),attrs:new Set(["externalResourcesRequired","x","y"]),defaults:{x:"0",y:"0"},contentGroups:new Set(["descriptive"])},defs:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","style","transform"]),contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},desc:{attrsGroups:new Set(["core"]),attrs:new Set(["class","style"])},ellipse:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","cx","cy","externalResourcesRequired","rx","ry","style","transform"]),defaults:{cx:"0",cy:"0"},contentGroups:new Set(["animation","descriptive"])},feBlend:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in","in2","mode"]),defaults:{mode:"normal"},content:new Set(["animate","set"])},feColorMatrix:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in","type","values"]),defaults:{type:"matrix"},content:new Set(["animate","set"])},feComponentTransfer:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in"]),content:new Set(["feFuncA","feFuncB","feFuncG","feFuncR"])},feComposite:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","in","in2","k1","k2","k3","k4","operator","style"]),defaults:{operator:"over",k1:"0",k2:"0",k3:"0",k4:"0"},content:new Set(["animate","set"])},feConvolveMatrix:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","in","kernelMatrix","order","style","bias","divisor","edgeMode","targetX","targetY","kernelUnitLength","preserveAlpha"]),defaults:{order:"3",bias:"0",edgeMode:"duplicate",preserveAlpha:"false"},content:new Set(["animate","set"])},feDiffuseLighting:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","diffuseConstant","in","kernelUnitLength","style","surfaceScale"]),defaults:{surfaceScale:"1",diffuseConstant:"1"},contentGroups:new Set(["descriptive"]),content:new Set(["feDistantLight","fePointLight","feSpotLight"])},feDisplacementMap:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","in","in2","scale","style","xChannelSelector","yChannelSelector"]),defaults:{scale:"0",xChannelSelector:"A",yChannelSelector:"A"},content:new Set(["animate","set"])},feDistantLight:{attrsGroups:new Set(["core"]),attrs:new Set(["azimuth","elevation"]),defaults:{azimuth:"0",elevation:"0"},content:new Set(["animate","set"])},feFlood:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style"]),content:new Set(["animate","animateColor","set"])},feFuncA:{attrsGroups:new Set(["core","transferFunction"]),content:new Set(["set","animate"])},feFuncB:{attrsGroups:new Set(["core","transferFunction"]),content:new Set(["set","animate"])},feFuncG:{attrsGroups:new Set(["core","transferFunction"]),content:new Set(["set","animate"])},feFuncR:{attrsGroups:new Set(["core","transferFunction"]),content:new Set(["set","animate"])},feGaussianBlur:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in","stdDeviation"]),defaults:{stdDeviation:"0"},content:new Set(["set","animate"])},feImage:{attrsGroups:new Set(["core","presentation","filterPrimitive","xlink"]),attrs:new Set(["class","externalResourcesRequired","href","preserveAspectRatio","style","xlink:href"]),defaults:{preserveAspectRatio:"xMidYMid meet"},content:new Set(["animate","animateTransform","set"])},feMerge:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style"]),content:new Set(["feMergeNode"])},feMergeNode:{attrsGroups:new Set(["core"]),attrs:new Set(["in"]),content:new Set(["animate","set"])},feMorphology:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in","operator","radius"]),defaults:{operator:"erode",radius:"0"},content:new Set(["animate","set"])},feOffset:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in","dx","dy"]),defaults:{dx:"0",dy:"0"},content:new Set(["animate","set"])},fePointLight:{attrsGroups:new Set(["core"]),attrs:new Set(["x","y","z"]),defaults:{x:"0",y:"0",z:"0"},content:new Set(["animate","set"])},feSpecularLighting:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","in","kernelUnitLength","specularConstant","specularExponent","style","surfaceScale"]),defaults:{surfaceScale:"1",specularConstant:"1",specularExponent:"1"},contentGroups:new Set(["descriptive","lightSource"])},feSpotLight:{attrsGroups:new Set(["core"]),attrs:new Set(["limitingConeAngle","pointsAtX","pointsAtY","pointsAtZ","specularExponent","x","y","z"]),defaults:{x:"0",y:"0",z:"0",pointsAtX:"0",pointsAtY:"0",pointsAtZ:"0",specularExponent:"1"},content:new Set(["animate","set"])},feTile:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["class","style","in"]),content:new Set(["animate","set"])},feTurbulence:{attrsGroups:new Set(["core","presentation","filterPrimitive"]),attrs:new Set(["baseFrequency","class","numOctaves","seed","stitchTiles","style","type"]),defaults:{baseFrequency:"0",numOctaves:"1",seed:"0",stitchTiles:"noStitch",type:"turbulence"},content:new Set(["animate","set"])},filter:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","filterRes","filterUnits","height","href","primitiveUnits","style","width","x","xlink:href","y"]),defaults:{primitiveUnits:"userSpaceOnUse",x:"-10%",y:"-10%",width:"120%",height:"120%"},contentGroups:new Set(["descriptive","filterPrimitive"]),content:new Set(["animate","set"])},font:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","externalResourcesRequired","horiz-adv-x","horiz-origin-x","horiz-origin-y","style","vert-adv-y","vert-origin-x","vert-origin-y"]),defaults:{"horiz-origin-x":"0","horiz-origin-y":"0"},contentGroups:new Set(["descriptive"]),content:new Set(["font-face","glyph","hkern","missing-glyph","vkern"])},"font-face":{attrsGroups:new Set(["core"]),attrs:new Set(["font-family","font-style","font-variant","font-weight","font-stretch","font-size","unicode-range","units-per-em","panose-1","stemv","stemh","slope","cap-height","x-height","accent-height","ascent","descent","widths","bbox","ideographic","alphabetic","mathematical","hanging","v-ideographic","v-alphabetic","v-mathematical","v-hanging","underline-position","underline-thickness","strikethrough-position","strikethrough-thickness","overline-position","overline-thickness"]),defaults:{"font-style":"all","font-variant":"normal","font-weight":"all","font-stretch":"normal","unicode-range":"U+0-10FFFF","units-per-em":"1000","panose-1":"0 0 0 0 0 0 0 0 0 0",slope:"0"},contentGroups:new Set(["descriptive"]),content:new Set(["font-face-src"])},"font-face-format":{attrsGroups:new Set(["core"]),attrs:new Set(["string"])},"font-face-name":{attrsGroups:new Set(["core"]),attrs:new Set(["name"])},"font-face-src":{attrsGroups:new Set(["core"]),content:new Set(["font-face-name","font-face-uri"])},"font-face-uri":{attrsGroups:new Set(["core","xlink"]),attrs:new Set(["href","xlink:href"]),content:new Set(["font-face-format"])},foreignObject:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","height","style","transform","width","x","y"]),defaults:{x:"0",y:"0"}},g:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","style","transform"]),contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},glyph:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["arabic-form","class","d","glyph-name","horiz-adv-x","lang","orientation","style","unicode","vert-adv-y","vert-origin-x","vert-origin-y"]),defaults:{"arabic-form":"initial"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},glyphRef:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","d","horiz-adv-x","style","vert-adv-y","vert-origin-x","vert-origin-y"]),contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},hatch:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","hatchContentUnits","hatchUnits","pitch","rotate","style","transform","x","y"]),defaults:{hatchUnits:"objectBoundingBox",hatchContentUnits:"userSpaceOnUse",x:"0",y:"0",pitch:"0",rotate:"0"},contentGroups:new Set(["animation","descriptive"]),content:new Set(["hatchPath"])},hatchPath:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","style","d","offset"]),defaults:{offset:"0"},contentGroups:new Set(["animation","descriptive"])},hkern:{attrsGroups:new Set(["core"]),attrs:new Set(["u1","g1","u2","g2","k"])},image:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","height","href","preserveAspectRatio","style","transform","width","x","xlink:href","y"]),defaults:{x:"0",y:"0",preserveAspectRatio:"xMidYMid meet"},contentGroups:new Set(["animation","descriptive"])},line:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","style","transform","x1","x2","y1","y2"]),defaults:{x1:"0",y1:"0",x2:"0",y2:"0"},contentGroups:new Set(["animation","descriptive"])},linearGradient:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","gradientTransform","gradientUnits","href","spreadMethod","style","x1","x2","xlink:href","y1","y2"]),defaults:{x1:"0",y1:"0",x2:"100%",y2:"0",spreadMethod:"pad"},contentGroups:new Set(["descriptive"]),content:new Set(["animate","animateTransform","set","stop"])},marker:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","externalResourcesRequired","markerHeight","markerUnits","markerWidth","orient","preserveAspectRatio","refX","refY","style","viewBox"]),defaults:{markerUnits:"strokeWidth",refX:"0",refY:"0",markerWidth:"3",markerHeight:"3"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},mask:{attrsGroups:new Set(["conditionalProcessing","core","presentation"]),attrs:new Set(["class","externalResourcesRequired","height","mask-type","maskContentUnits","maskUnits","style","width","x","y"]),defaults:{maskUnits:"objectBoundingBox",maskContentUnits:"userSpaceOnUse",x:"-10%",y:"-10%",width:"120%",height:"120%"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},metadata:{attrsGroups:new Set(["core"])},"missing-glyph":{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","d","horiz-adv-x","style","vert-adv-y","vert-origin-x","vert-origin-y"]),contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},mpath:{attrsGroups:new Set(["core","xlink"]),attrs:new Set(["externalResourcesRequired","href","xlink:href"]),contentGroups:new Set(["descriptive"])},path:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","d","externalResourcesRequired","pathLength","style","transform"]),contentGroups:new Set(["animation","descriptive"])},pattern:{attrsGroups:new Set(["conditionalProcessing","core","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","height","href","patternContentUnits","patternTransform","patternUnits","preserveAspectRatio","style","viewBox","width","x","xlink:href","y"]),defaults:{patternUnits:"objectBoundingBox",patternContentUnits:"userSpaceOnUse",x:"0",y:"0",width:"0",height:"0",preserveAspectRatio:"xMidYMid meet"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},polygon:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","points","style","transform"]),contentGroups:new Set(["animation","descriptive"])},polyline:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","points","style","transform"]),contentGroups:new Set(["animation","descriptive"])},radialGradient:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","cx","cy","externalResourcesRequired","fr","fx","fy","gradientTransform","gradientUnits","href","r","spreadMethod","style","xlink:href"]),defaults:{gradientUnits:"objectBoundingBox",cx:"50%",cy:"50%",r:"50%"},contentGroups:new Set(["descriptive"]),content:new Set(["animate","animateTransform","set","stop"])},meshGradient:{attrsGroups:new Set(["core","presentation","xlink"]),attrs:new Set(["class","style","x","y","gradientUnits","transform"]),contentGroups:new Set(["descriptive","paintServer","animation"]),content:new Set(["meshRow"])},meshRow:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","style"]),contentGroups:new Set(["descriptive"]),content:new Set(["meshPatch"])},meshPatch:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","style"]),contentGroups:new Set(["descriptive"]),content:new Set(["stop"])},rect:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","height","rx","ry","style","transform","width","x","y"]),defaults:{x:"0",y:"0"},contentGroups:new Set(["animation","descriptive"])},script:{attrsGroups:new Set(["core","xlink"]),attrs:new Set(["externalResourcesRequired","type","href","xlink:href"])},set:{attrsGroups:new Set(["animation","animationAttributeTarget","animationTiming","conditionalProcessing","core","xlink"]),attrs:new Set(["externalResourcesRequired","to"]),contentGroups:new Set(["descriptive"])},solidColor:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","style"]),contentGroups:new Set(["paintServer"])},stop:{attrsGroups:new Set(["core","presentation"]),attrs:new Set(["class","style","offset","path"]),content:new Set(["animate","animateColor","set"])},style:{attrsGroups:new Set(["core"]),attrs:new Set(["type","media","title"]),defaults:{type:"text/css"}},svg:{attrsGroups:new Set(["conditionalProcessing","core","documentEvent","graphicalEvent","presentation"]),attrs:new Set(["baseProfile","class","contentScriptType","contentStyleType","height","preserveAspectRatio","style","version","viewBox","width","x","y","zoomAndPan"]),defaults:{x:"0",y:"0",width:"100%",height:"100%",preserveAspectRatio:"xMidYMid meet",zoomAndPan:"magnify",version:"1.1",baseProfile:"none",contentScriptType:"application/ecmascript",contentStyleType:"text/css"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},switch:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","style","transform"]),contentGroups:new Set(["animation","descriptive","shape"]),content:new Set(["a","foreignObject","g","image","svg","switch","text","use"])},symbol:{attrsGroups:new Set(["core","graphicalEvent","presentation"]),attrs:new Set(["class","externalResourcesRequired","preserveAspectRatio","refX","refY","style","viewBox"]),defaults:{refX:"0",refY:"0"},contentGroups:new Set(["animation","descriptive","paintServer","shape","structural"]),content:new Set(["a","altGlyphDef","clipPath","color-profile","cursor","filter","font-face","font","foreignObject","image","marker","mask","pattern","script","style","switch","text","view"])},text:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","dx","dy","externalResourcesRequired","lengthAdjust","rotate","style","textLength","transform","x","y"]),defaults:{x:"0",y:"0",lengthAdjust:"spacing"},contentGroups:new Set(["animation","descriptive","textContentChild"]),content:new Set(["a"])},textPath:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","d","externalResourcesRequired","href","method","spacing","startOffset","style","xlink:href"]),defaults:{startOffset:"0",method:"align",spacing:"exact"},contentGroups:new Set(["descriptive"]),content:new Set(["a","altGlyph","animate","animateColor","set","tref","tspan"])},title:{attrsGroups:new Set(["core"]),attrs:new Set(["class","style"])},tref:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","href","style","xlink:href"]),contentGroups:new Set(["descriptive"]),content:new Set(["animate","animateColor","set"])},tspan:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation"]),attrs:new Set(["class","dx","dy","externalResourcesRequired","lengthAdjust","rotate","style","textLength","x","y"]),contentGroups:new Set(["descriptive"]),content:new Set(["a","altGlyph","animate","animateColor","set","tref","tspan"])},use:{attrsGroups:new Set(["conditionalProcessing","core","graphicalEvent","presentation","xlink"]),attrs:new Set(["class","externalResourcesRequired","height","href","style","transform","width","x","xlink:href","y"]),defaults:{x:"0",y:"0"},contentGroups:new Set(["animation","descriptive"])},view:{attrsGroups:new Set(["core"]),attrs:new Set(["externalResourcesRequired","preserveAspectRatio","viewBox","viewTarget","zoomAndPan"]),contentGroups:new Set(["descriptive"])},vkern:{attrsGroups:new Set(["core"]),attrs:new Set(["u1","g1","u2","g2","k"])}};exports.editorNamespaces=new Set(["http://creativecommons.org/ns#","http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd","http://ns.adobe.com/AdobeIllustrator/10.0/","http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/","http://ns.adobe.com/Extensibility/1.0/","http://ns.adobe.com/Flows/1.0/","http://ns.adobe.com/GenericCustomNamespace/1.0/","http://ns.adobe.com/Graphs/1.0/","http://ns.adobe.com/ImageReplacement/1.0/","http://ns.adobe.com/SaveForWeb/1.0/","http://ns.adobe.com/Variables/1.0/","http://ns.adobe.com/XPath/1.0/","http://purl.org/dc/elements/1.1/","http://schemas.microsoft.com/visio/2003/SVGExtensions/","http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd","http://taptrix.com/vectorillustrator/svg_extensions","http://www.bohemiancoding.com/sketch/ns","http://www.figma.com/figma/ns","http://www.inkscape.org/namespaces/inkscape","http://www.serif.com/","http://www.vector.evaxdesign.sk","http://www.w3.org/1999/02/22-rdf-syntax-ns#"]);exports.referencesProps=new Set(["clip-path","color-profile","fill","filter","marker-end","marker-mid","marker-start","mask","stroke","style"]);exports.inheritableAttrs=new Set(["clip-rule","color-interpolation-filters","color-interpolation","color-profile","color-rendering","color","cursor","direction","dominant-baseline","fill-opacity","fill-rule","fill","font-family","font-size-adjust","font-size","font-stretch","font-style","font-variant","font-weight","font","glyph-orientation-horizontal","glyph-orientation-vertical","image-rendering","letter-spacing","marker-end","marker-mid","marker-start","marker","paint-order","pointer-events","shape-rendering","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","stroke","text-anchor","text-rendering","transform","visibility","word-spacing","writing-mode"]);exports.presentationNonInheritableGroupAttrs=new Set(["clip-path","display","filter","mask","opacity","text-decoration","transform","unicode-bidi"]);exports.colorsNames={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#639",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"};exports.colorsShortNames={"#f0ffff":"azure","#f5f5dc":"beige","#ffe4c4":"bisque","#a52a2a":"brown","#ff7f50":"coral","#ffd700":"gold","#808080":"gray","#008000":"green","#4b0082":"indigo","#fffff0":"ivory","#f0e68c":"khaki","#faf0e6":"linen","#800000":"maroon","#000080":"navy","#808000":"olive","#ffa500":"orange","#da70d6":"orchid","#cd853f":"peru","#ffc0cb":"pink","#dda0dd":"plum","#800080":"purple","#f00":"red","#ff0000":"red","#fa8072":"salmon","#a0522d":"sienna","#c0c0c0":"silver","#fffafa":"snow","#d2b48c":"tan","#008080":"teal","#ff6347":"tomato","#ee82ee":"violet","#f5deb3":"wheat"};exports.colorsProps=new Set(["color","fill","flood-color","lighting-color","stop-color","stroke"]);exports.pseudoClasses={displayState:new Set(["fullscreen","modal","picture-in-picture"]),input:new Set(["autofill","blank","checked","default","disabled","enabled","in-range","indetermined","invalid","optional","out-of-range","placeholder-shown","read-only","read-write","required","user-invalid","valid"]),linguistic:new Set(["dir","lang"]),location:new Set(["any-link","link","local-link","scope","target-within","target","visited"]),resourceState:new Set(["playing","paused"]),timeDimensional:new Set(["current","past","future"]),treeStructural:new Set(["empty","first-child","first-of-type","last-child","last-of-type","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","root"]),userAction:new Set(["active","focus-visible","focus-within","focus","hover"]),functional:new Set(["is","not","where","has"])}})(_collections);const SAX=sax;const{textElems:textElems$1}=_collections;class SvgoParserError extends Error{constructor(message,line,column,source,file){super(message);this.name="SvgoParserError";this.message=`${file||"<input>"}:${line}:${column}: ${message}`;this.reason=message;this.line=line;this.column=column;this.source=source;if(Error.captureStackTrace){Error.captureStackTrace(this,SvgoParserError)}}toString(){const lines=this.source.split(/\r?\n/);const startLine=Math.max(this.line-3,0);const endLine=Math.min(this.line+2,lines.length);const lineNumberWidth=String(endLine).length;const startColumn=Math.max(this.column-54,0);const endColumn=Math.max(this.column+20,80);const code=lines.slice(startLine,endLine).map(((line,index)=>{const lineSlice=line.slice(startColumn,endColumn);let ellipsisPrefix="";let ellipsisSuffix="";if(startColumn!==0){ellipsisPrefix=startColumn>line.length-1?" ":"…"}if(endColumn<line.length-1){ellipsisSuffix="…"}const number=startLine+1+index;const gutter=` ${number.toString().padStart(lineNumberWidth)} | `;if(number===this.line){const gutterSpacing=gutter.replace(/[^|]/g," ");const lineSpacing=(ellipsisPrefix+line.slice(startColumn,this.column-1)).replace(/[^\t]/g," ");const spacing=gutterSpacing+lineSpacing;return`>${gutter}${ellipsisPrefix}${lineSlice}${ellipsisSuffix}\n ${spacing}^`}return` ${gutter}${ellipsisPrefix}${lineSlice}${ellipsisSuffix}`})).join("\n");return`${this.name}: ${this.message}\n\n${code}\n`}}const entityDeclaration=/<!ENTITY\s+(\S+)\s+(?:'([^']+)'|"([^"]+)")\s*>/g;const config$4={strict:true,trim:false,normalize:false,lowercase:true,xmlns:true,position:true};const parseSvg$1=(data,from)=>{const sax=SAX.parser(config$4.strict,config$4);const root={type:"root",children:[]};let current=root;const stack=[root];const pushToContent=node=>{Object.defineProperty(node,"parentNode",{writable:true,value:current});current.children.push(node)};sax.ondoctype=doctype=>{const node={type:"doctype",name:"svg",data:{doctype:doctype}};pushToContent(node);const subsetStart=doctype.indexOf("[");if(subsetStart>=0){entityDeclaration.lastIndex=subsetStart;let entityMatch=entityDeclaration.exec(data);while(entityMatch!=null){sax.ENTITIES[entityMatch[1]]=entityMatch[2]||entityMatch[3];entityMatch=entityDeclaration.exec(data)}}};sax.onprocessinginstruction=data=>{const node={type:"instruction",name:data.name,value:data.body};pushToContent(node)};sax.oncomment=comment=>{const node={type:"comment",value:comment.trim()};pushToContent(node)};sax.oncdata=cdata=>{const node={type:"cdata",value:cdata};pushToContent(node)};sax.onopentag=data=>{let element={type:"element",name:data.name,attributes:{},children:[]};for(const[name,attr]of Object.entries(data.attributes)){element.attributes[name]=attr.value}pushToContent(element);current=element;stack.push(element)};sax.ontext=text=>{if(current.type==="element"){if(textElems$1.has(current.name)){const node={type:"text",value:text};pushToContent(node)}else if(/\S/.test(text)){const node={type:"text",value:text.trim()};pushToContent(node)}}};sax.onclosetag=()=>{stack.pop();current=stack[stack.length-1]};sax.onerror=e=>{const error=new SvgoParserError(e.reason,e.line+1,e.column,data,from);if(e.message.indexOf("Unexpected end")===-1){throw error}};sax.write(data).close();return root};parser$4.parseSvg=parseSvg$1;var stringifier={};const{textElems:textElems}=_collections;const encodeEntity=char=>entities[char];const defaults={doctypeStart:"<!DOCTYPE",doctypeEnd:">",procInstStart:"<?",procInstEnd:"?>",tagOpenStart:"<",tagOpenEnd:">",tagCloseStart:"</",tagCloseEnd:">",tagShortStart:"<",tagShortEnd:"/>",attrStart:'="',attrEnd:'"',commentStart:"\x3c!--",commentEnd:"--\x3e",cdataStart:"<![CDATA[",cdataEnd:"]]>",textStart:"",textEnd:"",indent:4,regEntities:/[&'"<>]/g,regValEntities:/[&"<>]/g,encodeEntity:encodeEntity,pretty:false,useShortTags:true,eol:"lf",finalNewline:false};const entities={"&":"&amp;","'":"&apos;",'"':"&quot;",">":"&gt;","<":"&lt;"};const stringifySvg$1=(data,userOptions={})=>{const config={...defaults,...userOptions};const indent=config.indent;let newIndent=" ";if(typeof indent==="number"&&Number.isNaN(indent)===false){newIndent=indent<0?"\t":" ".repeat(indent)}else if(typeof indent==="string"){newIndent=indent}const state={indent:newIndent,textContext:null,indentLevel:0};const eol=config.eol==="crlf"?"\r\n":"\n";if(config.pretty){config.doctypeEnd+=eol;config.procInstEnd+=eol;config.commentEnd+=eol;config.cdataEnd+=eol;config.tagShortEnd+=eol;config.tagOpenEnd+=eol;config.tagCloseEnd+=eol;config.textEnd+=eol}let svg=stringifyNode(data,config,state);if(config.finalNewline&&svg.length>0&&!svg.endsWith("\n")){svg+=eol}return svg};stringifier.stringifySvg=stringifySvg$1;const stringifyNode=(data,config,state)=>{let svg="";state.indentLevel+=1;for(const item of data.children){if(item.type==="element"){svg+=stringifyElement(item,config,state)}if(item.type==="text"){svg+=stringifyText(item,config,state)}if(item.type==="doctype"){svg+=stringifyDoctype(item,config)}if(item.type==="instruction"){svg+=stringifyInstruction(item,config)}if(item.type==="comment"){svg+=stringifyComment(item,config)}if(item.type==="cdata"){svg+=stringifyCdata(item,config,state)}}state.indentLevel-=1;return svg};const createIndent=(config,state)=>{let indent="";if(config.pretty&&state.textContext==null){indent=state.indent.repeat(state.indentLevel-1)}return indent};const stringifyDoctype=(node,config)=>config.doctypeStart+node.data.doctype+config.doctypeEnd;const stringifyInstruction=(node,config)=>config.procInstStart+node.name+" "+node.value+config.procInstEnd;const stringifyComment=(node,config)=>config.commentStart+node.value+config.commentEnd;const stringifyCdata=(node,config,state)=>createIndent(config,state)+config.cdataStart+node.value+config.cdataEnd;const stringifyElement=(node,config,state)=>{if(node.children.length===0){if(config.useShortTags){return createIndent(config,state)+config.tagShortStart+node.name+stringifyAttributes(node,config)+config.tagShortEnd}else{return createIndent(config,state)+config.tagShortStart+node.name+stringifyAttributes(node,config)+config.tagOpenEnd+config.tagCloseStart+node.name+config.tagCloseEnd}}else{let tagOpenStart=config.tagOpenStart;let tagOpenEnd=config.tagOpenEnd;let tagCloseStart=config.tagCloseStart;let tagCloseEnd=config.tagCloseEnd;let openIndent=createIndent(config,state);let closeIndent=createIndent(config,state);if(state.textContext){tagOpenStart=defaults.tagOpenStart;tagOpenEnd=defaults.tagOpenEnd;tagCloseStart=defaults.tagCloseStart;tagCloseEnd=defaults.tagCloseEnd;openIndent=""}else if(textElems.has(node.name)){tagOpenEnd=defaults.tagOpenEnd;tagCloseStart=defaults.tagCloseStart;closeIndent="";state.textContext=node}const children=stringifyNode(node,config,state);if(state.textContext===node){state.textContext=null}return openIndent+tagOpenStart+node.name+stringifyAttributes(node,config)+tagOpenEnd+children+closeIndent+tagCloseStart+node.name+tagCloseEnd}};const stringifyAttributes=(node,config)=>{let attrs="";for(const[name,value]of Object.entries(node.attributes)){if(value!==undefined){const encodedValue=value.toString().replace(config.regValEntities,config.encodeEntity);attrs+=" "+name+config.attrStart+encodedValue+config.attrEnd}else{attrs+=" "+name}}return attrs};const stringifyText=(node,config,state)=>createIndent(config,state)+config.textStart+node.value.replace(config.regEntities,config.encodeEntity)+(state.textContext?"":config.textEnd);var builtin$1={};var plugins={};var xast={};var lib$6={};var lib$5={};var stringify$1={};var lib$4={};var lib$3={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.Doctype=exports.CDATA=exports.Tag=exports.Style=exports.Script=exports.Comment=exports.Directive=exports.Text=exports.Root=exports.isTag=exports.ElementType=void 0;var ElementType;(function(ElementType){ElementType["Root"]="root";ElementType["Text"]="text";ElementType["Directive"]="directive";ElementType["Comment"]="comment";ElementType["Script"]="script";ElementType["Style"]="style";ElementType["Tag"]="tag";ElementType["CDATA"]="cdata";ElementType["Doctype"]="doctype"})(ElementType=exports.ElementType||(exports.ElementType={}));function isTag(elem){return elem.type===ElementType.Tag||elem.type===ElementType.Script||elem.type===ElementType.Style}exports.isTag=isTag;exports.Root=ElementType.Root;exports.Text=ElementType.Text;exports.Directive=ElementType.Directive;exports.Comment=ElementType.Comment;exports.Script=ElementType.Script;exports.Style=ElementType.Style;exports.Tag=ElementType.Tag;exports.CDATA=ElementType.CDATA;exports.Doctype=ElementType.Doctype})(lib$3);var node$2={};var __extends=commonjsGlobal&&commonjsGlobal.__extends||function(){var extendStatics=function(d,b){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)if(Object.prototype.hasOwnProperty.call(b,p))d[p]=b[p]};return extendStatics(d,b)};return function(d,b){if(typeof b!=="function"&&b!==null)throw new TypeError("Class extends value "+String(b)+" is not a constructor or null");extendStatics(d,b);function __(){this.constructor=d}d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __)}}();var __assign$1=commonjsGlobal&&commonjsGlobal.__assign||function(){__assign$1=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign$1.apply(this,arguments)};Object.defineProperty(node$2,"__esModule",{value:true});node$2.cloneNode=node$2.hasChildren=node$2.isDocument=node$2.isDirective=node$2.isComment=node$2.isText=node$2.isCDATA=node$2.isTag=node$2.Element=node$2.Document=node$2.CDATA=node$2.NodeWithChildren=node$2.ProcessingInstruction=node$2.Comment=node$2.Text=node$2.DataNode=node$2.Node=void 0;var domelementtype_1$1=lib$3;var Node=function(){function Node(){this.parent=null;this.prev=null;this.next=null;this.startIndex=null;this.endIndex=null}Object.defineProperty(Node.prototype,"parentNode",{get:function(){return this.parent},set:function(parent){this.parent=parent},enumerable:false,configurable:true});Object.defineProperty(Node.prototype,"previousSibling",{get:function(){return this.prev},set:function(prev){this.prev=prev},enumerable:false,configurable:true});Object.defineProperty(Node.prototype,"nextSibling",{get:function(){return this.next},set:function(next){this.next=next},enumerable:false,configurable:true});Node.prototype.cloneNode=function(recursive){if(recursive===void 0){recursive=false}return cloneNode(this,recursive)};return Node}();node$2.Node=Node;var DataNode=function(_super){__extends(DataNode,_super);function DataNode(data){var _this=_super.call(this)||this;_this.data=data;return _this}Object.defineProperty(DataNode.prototype,"nodeValue",{get:function(){return this.data},set:function(data){this.data=data},enumerable:false,configurable:true});return DataNode}(Node);node$2.DataNode=DataNode;var Text=function(_super){__extends(Text,_super);function Text(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Text;return _this}Object.defineProperty(Text.prototype,"nodeType",{get:function(){return 3},enumerable:false,configurable:true});return Text}(DataNode);node$2.Text=Text;var Comment$a=function(_super){__extends(Comment,_super);function Comment(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Comment;return _this}Object.defineProperty(Comment.prototype,"nodeType",{get:function(){return 8},enumerable:false,configurable:true});return Comment}(DataNode);node$2.Comment=Comment$a;var ProcessingInstruction=function(_super){__extends(ProcessingInstruction,_super);function ProcessingInstruction(name,data){var _this=_super.call(this,data)||this;_this.name=name;_this.type=domelementtype_1$1.ElementType.Directive;return _this}Object.defineProperty(ProcessingInstruction.prototype,"nodeType",{get:function(){return 1},enumerable:false,configurable:true});return ProcessingInstruction}(DataNode);node$2.ProcessingInstruction=ProcessingInstruction;var NodeWithChildren=function(_super){__extends(NodeWithChildren,_super);function NodeWithChildren(children){var _this=_super.call(this)||this;_this.children=children;return _this}Object.defineProperty(NodeWithChildren.prototype,"firstChild",{get:function(){var _a;return(_a=this.children[0])!==null&&_a!==void 0?_a:null},enumerable:false,configurable:true});Object.defineProperty(NodeWithChildren.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:false,configurable:true});Object.defineProperty(NodeWithChildren.prototype,"childNodes",{get:function(){return this.children},set:function(children){this.children=children},enumerable:false,configurable:true});return NodeWithChildren}(Node);node$2.NodeWithChildren=NodeWithChildren;var CDATA=function(_super){__extends(CDATA,_super);function CDATA(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.CDATA;return _this}Object.defineProperty(CDATA.prototype,"nodeType",{get:function(){return 4},enumerable:false,configurable:true});return CDATA}(NodeWithChildren);node$2.CDATA=CDATA;var Document=function(_super){__extends(Document,_super);function Document(){var _this=_super!==null&&_super.apply(this,arguments)||this;_this.type=domelementtype_1$1.ElementType.Root;return _this}Object.defineProperty(Document.prototype,"nodeType",{get:function(){return 9},enumerable:false,configurable:true});return Document}(NodeWithChildren);node$2.Document=Document;var Element=function(_super){__extends(Element,_super);function Element(name,attribs,children,type){if(children===void 0){children=[]}if(type===void 0){type=name==="script"?domelementtype_1$1.ElementType.Script:name==="style"?domelementtype_1$1.ElementType.Style:domelementtype_1$1.ElementType.Tag}var _this=_super.call(this,children)||this;_this.name=name;_this.attribs=attribs;_this.type=type;return _this}Object.defineProperty(Element.prototype,"nodeType",{get:function(){return 1},enumerable:false,configurable:true});Object.defineProperty(Element.prototype,"tagName",{get:function(){return this.name},set:function(name){this.name=name},enumerable:false,configurable:true});Object.defineProperty(Element.prototype,"attributes",{get:function(){var _this=this;return Object.keys(this.attribs).map((function(name){var _a,_b;return{name:name,value:_this.attribs[name],namespace:(_a=_this["x-attribsNamespace"])===null||_a===void 0?void 0:_a[name],prefix:(_b=_this["x-attribsPrefix"])===null||_b===void 0?void 0:_b[name]}}))},enumerable:false,configurable:true});return Element}(NodeWithChildren);node$2.Element=Element;function isTag$1(node){return(0,domelementtype_1$1.isTag)(node)}node$2.isTag=isTag$1;function isCDATA(node){return node.type===domelementtype_1$1.ElementType.CDATA}node$2.isCDATA=isCDATA;function isText(node){return node.type===domelementtype_1$1.ElementType.Text}node$2.isText=isText;function isComment(node){return node.type===domelementtype_1$1.ElementType.Comment}node$2.isComment=isComment;function isDirective(node){return node.type===domelementtype_1$1.ElementType.Directive}node$2.isDirective=isDirective;function isDocument(node){return node.type===domelementtype_1$1.ElementType.Root}node$2.isDocument=isDocument;function hasChildren(node){return Object.prototype.hasOwnProperty.call(node,"children")}node$2.hasChildren=hasChildren;function cloneNode(node,recursive){if(recursive===void 0){recursive=false}var result;if(isText(node)){result=new Text(node.data)}else if(isComment(node)){result=new Comment$a(node.data)}else if(isTag$1(node)){var children=recursive?cloneChildren(node.children):[];var clone_1=new Element(node.name,__assign$1({},node.attribs),children);children.forEach((function(child){return child.parent=clone_1}));if(node.namespace!=null){clone_1.namespace=node.namespace}if(node["x-attribsNamespace"]){clone_1["x-attribsNamespace"]=__assign$1({},node["x-attribsNamespace"])}if(node["x-attribsPrefix"]){clone_1["x-attribsPrefix"]=__assign$1({},node["x-attribsPrefix"])}result=clone_1}else if(isCDATA(node)){var children=recursive?cloneChildren(node.children):[];var clone_2=new CDATA(children);children.forEach((function(child){return child.parent=clone_2}));result=clone_2}else if(isDocument(node)){var children=recursive?cloneChildren(node.children):[];var clone_3=new Document(children);children.forEach((function(child){return child.parent=clone_3}));if(node["x-mode"]){clone_3["x-mode"]=node["x-mode"]}result=clone_3}else if(isDirective(node)){var instruction=new ProcessingInstruction(node.name,node.data);if(node["x-name"]!=null){instruction["x-name"]=node["x-name"];instruction["x-publicId"]=node["x-publicId"];instruction["x-systemId"]=node["x-systemId"]}result=instruction}else{throw new Error("Not implemented yet: ".concat(node.type))}result.startIndex=node.startIndex;result.endIndex=node.endIndex;if(node.sourceCodeLocation!=null){result.sourceCodeLocation=node.sourceCodeLocation}return result}node$2.cloneNode=cloneNode;function cloneChildren(childs){var children=childs.map((function(child){return cloneNode(child,true)}));for(var i=1;i<children.length;i++){children[i].prev=children[i-1];children[i-1].next=children[i]}return children}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __exportStar=commonjsGlobal&&commonjsGlobal.__exportStar||function(m,exports){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports,p))__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:true});exports.DomHandler=void 0;var domelementtype_1=lib$3;var node_js_1=node$2;__exportStar(node$2,exports);var defaultOpts={withStartIndices:false,withEndIndices:false,xmlMode:false};var DomHandler=function(){function DomHandler(callback,options,elementCB){this.dom=[];this.root=new node_js_1.Document(this.dom);this.done=false;this.tagStack=[this.root];this.lastNode=null;this.parser=null;if(typeof options==="function"){elementCB=options;options=defaultOpts}if(typeof callback==="object"){options=callback;callback=undefined}this.callback=callback!==null&&callback!==void 0?callback:null;this.options=options!==null&&options!==void 0?options:defaultOpts;this.elementCB=elementCB!==null&&elementCB!==void 0?elementCB:null}DomHandler.prototype.onparserinit=function(parser){this.parser=parser};DomHandler.prototype.onreset=function(){this.dom=[];this.root=new node_js_1.Document(this.dom);this.done=false;this.tagStack=[this.root];this.lastNode=null;this.parser=null};DomHandler.prototype.onend=function(){if(this.done)return;this.done=true;this.parser=null;this.handleCallback(null)};DomHandler.prototype.onerror=function(error){this.handleCallback(error)};DomHandler.prototype.onclosetag=function(){this.lastNode=null;var elem=this.tagStack.pop();if(this.options.withEndIndices){elem.endIndex=this.parser.endIndex}if(this.elementCB)this.elementCB(elem)};DomHandler.prototype.onopentag=function(name,attribs){var type=this.options.xmlMode?domelementtype_1.ElementType.Tag:undefined;var element=new node_js_1.Element(name,attribs,undefined,type);this.addNode(element);this.tagStack.push(element)};DomHandler.prototype.ontext=function(data){var lastNode=this.lastNode;if(lastNode&&lastNode.type===domelementtype_1.ElementType.Text){lastNode.data+=data;if(this.options.withEndIndices){lastNode.endIndex=this.parser.endIndex}}else{var node=new node_js_1.Text(data);this.addNode(node);this.lastNode=node}};DomHandler.prototype.oncomment=function(data){if(this.lastNode&&this.lastNode.type===domelementtype_1.ElementType.Comment){this.lastNode.data+=data;return}var node=new node_js_1.Comment(data);this.addNode(node);this.lastNode=node};DomHandler.prototype.oncommentend=function(){this.lastNode=null};DomHandler.prototype.oncdatastart=function(){var text=new node_js_1.Text("");var node=new node_js_1.CDATA([text]);this.addNode(node);text.parent=node;this.lastNode=text};DomHandler.prototype.oncdataend=function(){this.lastNode=null};DomHandler.prototype.onprocessinginstruction=function(name,data){var node=new node_js_1.ProcessingInstruction(name,data);this.addNode(node)};DomHandler.prototype.handleCallback=function(error){if(typeof this.callback==="function"){this.callback(error,this.dom)}else if(error){throw error}};DomHandler.prototype.addNode=function(node){var parent=this.tagStack[this.tagStack.length-1];var previousSibling=parent.children[parent.children.length-1];if(this.options.withStartIndices){node.startIndex=this.parser.startIndex}if(this.options.withEndIndices){node.endIndex=this.parser.endIndex}parent.children.push(node);if(previousSibling){node.prev=previousSibling;previousSibling.next=node}node.parent=parent;this.lastNode=null};return DomHandler}();exports.DomHandler=DomHandler;exports.default=DomHandler})(lib$4);var lib$2={};var lib$1={};var decode$6={};var decodeDataHtml={};Object.defineProperty(decodeDataHtml,"__esModule",{value:true});decodeDataHtml.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(c){return c.charCodeAt(0)})));var decodeDataXml={};Object.defineProperty(decodeDataXml,"__esModule",{value:true});decodeDataXml.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(c){return c.charCodeAt(0)})));var decode_codepoint={};(function(exports){var _a;Object.defineProperty(exports,"__esModule",{value:true});exports.replaceCodePoint=exports.fromCodePoint=void 0;var decodeMap=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);exports.fromCodePoint=(_a=String.fromCodePoint)!==null&&_a!==void 0?_a:function(codePoint){var output="";if(codePoint>65535){codePoint-=65536;output+=String.fromCharCode(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}output+=String.fromCharCode(codePoint);return output};function replaceCodePoint(codePoint){var _a;if(codePoint>=55296&&codePoint<=57343||codePoint>1114111){return 65533}return(_a=decodeMap.get(codePoint))!==null&&_a!==void 0?_a:codePoint}exports.replaceCodePoint=replaceCodePoint;function decodeCodePoint(codePoint){return(0,exports.fromCodePoint)(replaceCodePoint(codePoint))}exports.default=decodeCodePoint})(decode_codepoint);(function(exports){var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.decodeXML=exports.decodeHTMLStrict=exports.decodeHTML=exports.determineBranch=exports.BinTrieFlags=exports.fromCodePoint=exports.replaceCodePoint=exports.decodeCodePoint=exports.xmlDecodeTree=exports.htmlDecodeTree=void 0;var decode_data_html_js_1=__importDefault(decodeDataHtml);exports.htmlDecodeTree=decode_data_html_js_1.default;var decode_data_xml_js_1=__importDefault(decodeDataXml);exports.xmlDecodeTree=decode_data_xml_js_1.default;var decode_codepoint_js_1=__importDefault(decode_codepoint);exports.decodeCodePoint=decode_codepoint_js_1.default;var decode_codepoint_js_2=decode_codepoint;Object.defineProperty(exports,"replaceCodePoint",{enumerable:true,get:function(){return decode_codepoint_js_2.replaceCodePoint}});Object.defineProperty(exports,"fromCodePoint",{enumerable:true,get:function(){return decode_codepoint_js_2.fromCodePoint}});var CharCodes;(function(CharCodes){CharCodes[CharCodes["NUM"]=35]="NUM";CharCodes[CharCodes["SEMI"]=59]="SEMI";CharCodes[CharCodes["ZERO"]=48]="ZERO";CharCodes[CharCodes["NINE"]=57]="NINE";CharCodes[CharCodes["LOWER_A"]=97]="LOWER_A";CharCodes[CharCodes["LOWER_F"]=102]="LOWER_F";CharCodes[CharCodes["LOWER_X"]=120]="LOWER_X";CharCodes[CharCodes["To_LOWER_BIT"]=32]="To_LOWER_BIT"})(CharCodes||(CharCodes={}));var BinTrieFlags;(function(BinTrieFlags){BinTrieFlags[BinTrieFlags["VALUE_LENGTH"]=49152]="VALUE_LENGTH";BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"]=16256]="BRANCH_LENGTH";BinTrieFlags[BinTrieFlags["JUMP_TABLE"]=127]="JUMP_TABLE"})(BinTrieFlags=exports.BinTrieFlags||(exports.BinTrieFlags={}));function getDecoder(decodeTree){return function decodeHTMLBinary(str,strict){var ret="";var lastIdx=0;var strIdx=0;while((strIdx=str.indexOf("&",strIdx))>=0){ret+=str.slice(lastIdx,strIdx);lastIdx=strIdx;strIdx+=1;if(str.charCodeAt(strIdx)===CharCodes.NUM){var start=strIdx+1;var base=10;var cp=str.charCodeAt(start);if((cp|CharCodes.To_LOWER_BIT)===CharCodes.LOWER_X){base=16;strIdx+=1;start+=1}do{cp=str.charCodeAt(++strIdx)}while(cp>=CharCodes.ZERO&&cp<=CharCodes.NINE||base===16&&(cp|CharCodes.To_LOWER_BIT)>=CharCodes.LOWER_A&&(cp|CharCodes.To_LOWER_BIT)<=CharCodes.LOWER_F);if(start!==strIdx){var entity=str.substring(start,strIdx);var parsed=parseInt(entity,base);if(str.charCodeAt(strIdx)===CharCodes.SEMI){strIdx+=1}else if(strict){continue}ret+=(0,decode_codepoint_js_1.default)(parsed);lastIdx=strIdx}continue}var resultIdx=0;var excess=1;var treeIdx=0;var current=decodeTree[treeIdx];for(;strIdx<str.length;strIdx++,excess++){treeIdx=determineBranch(decodeTree,current,treeIdx+1,str.charCodeAt(strIdx));if(treeIdx<0)break;current=decodeTree[treeIdx];var masked=current&BinTrieFlags.VALUE_LENGTH;if(masked){if(!strict||str.charCodeAt(strIdx)===CharCodes.SEMI){resultIdx=treeIdx;excess=0}var valueLength=(masked>>14)-1;if(valueLength===0)break;treeIdx+=valueLength}}if(resultIdx!==0){var valueLength=(decodeTree[resultIdx]&BinTrieFlags.VALUE_LENGTH)>>14;ret+=valueLength===1?String.fromCharCode(decodeTree[resultIdx]&~BinTrieFlags.VALUE_LENGTH):valueLength===2?String.fromCharCode(decodeTree[resultIdx+1]):String.fromCharCode(decodeTree[resultIdx+1],decodeTree[resultIdx+2]);lastIdx=strIdx-excess+1}}return ret+str.slice(lastIdx)}}function determineBranch(decodeTree,current,nodeIdx,char){var branchCount=(current&BinTrieFlags.BRANCH_LENGTH)>>7;var jumpOffset=current&BinTrieFlags.JUMP_TABLE;if(branchCount===0){return jumpOffset!==0&&char===jumpOffset?nodeIdx:-1}if(jumpOffset){var value=char-jumpOffset;return value<0||value>=branchCount?-1:decodeTree[nodeIdx+value]-1}var lo=nodeIdx;var hi=lo+branchCount-1;while(lo<=hi){var mid=lo+hi>>>1;var midVal=decodeTree[mid];if(midVal<char){lo=mid+1}else if(midVal>char){hi=mid-1}else{return decodeTree[mid+branchCount]}}return-1}exports.determineBranch=determineBranch;var htmlDecoder=getDecoder(decode_data_html_js_1.default);var xmlDecoder=getDecoder(decode_data_xml_js_1.default);function decodeHTML(str){return htmlDecoder(str,false)}exports.decodeHTML=decodeHTML;function decodeHTMLStrict(str){return htmlDecoder(str,true)}exports.decodeHTMLStrict=decodeHTMLStrict;function decodeXML(str){return xmlDecoder(str,true)}exports.decodeXML=decodeXML})(decode$6);var encode$6={};var encodeHtml={};Object.defineProperty(encodeHtml,"__esModule",{value:true});function restoreDiff(arr){for(var i=1;i<arr.length;i++){arr[i][0]+=arr[i-1][0]+1}return arr}encodeHtml.default=new Map(restoreDiff([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(restoreDiff([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(restoreDiff([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(restoreDiff([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]]));var _escape={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.escapeText=exports.escapeAttribute=exports.escapeUTF8=exports.escape=exports.encodeXML=exports.getCodePoint=exports.xmlReplacer=void 0;exports.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var xmlCodeMap=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]);exports.getCodePoint=String.prototype.codePointAt!=null?function(str,index){return str.codePointAt(index)}:function(c,index){return(c.charCodeAt(index)&64512)===55296?(c.charCodeAt(index)-55296)*1024+c.charCodeAt(index+1)-56320+65536:c.charCodeAt(index)};function encodeXML(str){var ret="";var lastIdx=0;var match;while((match=exports.xmlReplacer.exec(str))!==null){var i=match.index;var char=str.charCodeAt(i);var next=xmlCodeMap.get(char);if(next!==undefined){ret+=str.substring(lastIdx,i)+next;lastIdx=i+1}else{ret+="".concat(str.substring(lastIdx,i),"&#x").concat((0,exports.getCodePoint)(str,i).toString(16),";");lastIdx=exports.xmlReplacer.lastIndex+=Number((char&64512)===55296)}}return ret+str.substr(lastIdx)}exports.encodeXML=encodeXML;exports.escape=encodeXML;function getEscaper(regex,map){return function escape(data){var match;var lastIdx=0;var result="";while(match=regex.exec(data)){if(lastIdx!==match.index){result+=data.substring(lastIdx,match.index)}result+=map.get(match[0].charCodeAt(0));lastIdx=match.index+1}return result+data.substring(lastIdx)}}exports.escapeUTF8=getEscaper(/[&<>'"]/g,xmlCodeMap);exports.escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]]));exports.escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]]))})(_escape);var __importDefault$4=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(encode$6,"__esModule",{value:true});encode$6.encodeNonAsciiHTML=encode$6.encodeHTML=void 0;var encode_html_js_1=__importDefault$4(encodeHtml);var escape_js_1=_escape;var htmlReplacer=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function encodeHTML(data){return encodeHTMLTrieRe(htmlReplacer,data)}encode$6.encodeHTML=encodeHTML;function encodeNonAsciiHTML(data){return encodeHTMLTrieRe(escape_js_1.xmlReplacer,data)}encode$6.encodeNonAsciiHTML=encodeNonAsciiHTML;function encodeHTMLTrieRe(regExp,str){var ret="";var lastIdx=0;var match;while((match=regExp.exec(str))!==null){var i=match.index;ret+=str.substring(lastIdx,i);var char=str.charCodeAt(i);var next=encode_html_js_1.default.get(char);if(typeof next==="object"){if(i+1<str.length){var nextChar=str.charCodeAt(i+1);var value=typeof next.n==="number"?next.n===nextChar?next.o:undefined:next.n.get(nextChar);if(value!==undefined){ret+=value;lastIdx=regExp.lastIndex+=1;continue}}next=next.v}if(next!==undefined){ret+=next;lastIdx=i+1}else{var cp=(0,escape_js_1.getCodePoint)(str,i);ret+="&#x".concat(cp.toString(16),";");lastIdx=regExp.lastIndex+=Number(cp!==char)}}return ret+str.substr(lastIdx)}(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.decodeXMLStrict=exports.decodeHTML5Strict=exports.decodeHTML4Strict=exports.decodeHTML5=exports.decodeHTML4=exports.decodeHTMLStrict=exports.decodeHTML=exports.decodeXML=exports.encodeHTML5=exports.encodeHTML4=exports.encodeNonAsciiHTML=exports.encodeHTML=exports.escapeText=exports.escapeAttribute=exports.escapeUTF8=exports.escape=exports.encodeXML=exports.encode=exports.decodeStrict=exports.decode=exports.EncodingMode=exports.DecodingMode=exports.EntityLevel=void 0;var decode_js_1=decode$6;var encode_js_1=encode$6;var escape_js_1=_escape;var EntityLevel;(function(EntityLevel){EntityLevel[EntityLevel["XML"]=0]="XML";EntityLevel[EntityLevel["HTML"]=1]="HTML"})(EntityLevel=exports.EntityLevel||(exports.EntityLevel={}));var DecodingMode;(function(DecodingMode){DecodingMode[DecodingMode["Legacy"]=0]="Legacy";DecodingMode[DecodingMode["Strict"]=1]="Strict"})(DecodingMode=exports.DecodingMode||(exports.DecodingMode={}));var EncodingMode;(function(EncodingMode){EncodingMode[EncodingMode["UTF8"]=0]="UTF8";EncodingMode[EncodingMode["ASCII"]=1]="ASCII";EncodingMode[EncodingMode["Extensive"]=2]="Extensive";EncodingMode[EncodingMode["Attribute"]=3]="Attribute";EncodingMode[EncodingMode["Text"]=4]="Text"})(EncodingMode=exports.EncodingMode||(exports.EncodingMode={}));function decode(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.level===EntityLevel.HTML){if(opts.mode===DecodingMode.Strict){return(0,decode_js_1.decodeHTMLStrict)(data)}return(0,decode_js_1.decodeHTML)(data)}return(0,decode_js_1.decodeXML)(data)}exports.decode=decode;function decodeStrict(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.level===EntityLevel.HTML){if(opts.mode===DecodingMode.Legacy){return(0,decode_js_1.decodeHTML)(data)}return(0,decode_js_1.decodeHTMLStrict)(data)}return(0,decode_js_1.decodeXML)(data)}exports.decodeStrict=decodeStrict;function encode(data,options){if(options===void 0){options=EntityLevel.XML}var opts=typeof options==="number"?{level:options}:options;if(opts.mode===EncodingMode.UTF8)return(0,escape_js_1.escapeUTF8)(data);if(opts.mode===EncodingMode.Attribute)return(0,escape_js_1.escapeAttribute)(data);if(opts.mode===EncodingMode.Text)return(0,escape_js_1.escapeText)(data);if(opts.level===EntityLevel.HTML){if(opts.mode===EncodingMode.ASCII){return(0,encode_js_1.encodeNonAsciiHTML)(data)}return(0,encode_js_1.encodeHTML)(data)}return(0,escape_js_1.encodeXML)(data)}exports.encode=encode;var escape_js_2=_escape;Object.defineProperty(exports,"encodeXML",{enumerable:true,get:function(){return escape_js_2.encodeXML}});Object.defineProperty(exports,"escape",{enumerable:true,get:function(){return escape_js_2.escape}});Object.defineProperty(exports,"escapeUTF8",{enumerable:true,get:function(){return escape_js_2.escapeUTF8}});Object.defineProperty(exports,"escapeAttribute",{enumerable:true,get:function(){return escape_js_2.escapeAttribute}});Object.defineProperty(exports,"escapeText",{enumerable:true,get:function(){return escape_js_2.escapeText}});var encode_js_2=encode$6;Object.defineProperty(exports,"encodeHTML",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});Object.defineProperty(exports,"encodeNonAsciiHTML",{enumerable:true,get:function(){return encode_js_2.encodeNonAsciiHTML}});Object.defineProperty(exports,"encodeHTML4",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});Object.defineProperty(exports,"encodeHTML5",{enumerable:true,get:function(){return encode_js_2.encodeHTML}});var decode_js_2=decode$6;Object.defineProperty(exports,"decodeXML",{enumerable:true,get:function(){return decode_js_2.decodeXML}});Object.defineProperty(exports,"decodeHTML",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTMLStrict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeHTML4",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTML5",{enumerable:true,get:function(){return decode_js_2.decodeHTML}});Object.defineProperty(exports,"decodeHTML4Strict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeHTML5Strict",{enumerable:true,get:function(){return decode_js_2.decodeHTMLStrict}});Object.defineProperty(exports,"decodeXMLStrict",{enumerable:true,get:function(){return decode_js_2.decodeXML}})})(lib$1);var foreignNames={};Object.defineProperty(foreignNames,"__esModule",{value:true});foreignNames.attributeNames=foreignNames.elementNames=void 0;foreignNames.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(val){return[val.toLowerCase(),val]})));foreignNames.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(val){return[val.toLowerCase(),val]})));var __assign=commonjsGlobal&&commonjsGlobal.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};var __createBinding$1=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault$1=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar$1=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding$1(result,mod,k);__setModuleDefault$1(result,mod);return result};Object.defineProperty(lib$2,"__esModule",{value:true});lib$2.render=void 0;var ElementType=__importStar$1(lib$3);var entities_1=lib$1;var foreignNames_js_1=foreignNames;var unencodedElements=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function replaceQuotes(value){return value.replace(/"/g,"&quot;")}function formatAttributes(attributes,opts){var _a;if(!attributes)return;var encode=((_a=opts.encodeEntities)!==null&&_a!==void 0?_a:opts.decodeEntities)===false?replaceQuotes:opts.xmlMode||opts.encodeEntities!=="utf8"?entities_1.encodeXML:entities_1.escapeAttribute;return Object.keys(attributes).map((function(key){var _a,_b;var value=(_a=attributes[key])!==null&&_a!==void 0?_a:"";if(opts.xmlMode==="foreign"){key=(_b=foreignNames_js_1.attributeNames.get(key))!==null&&_b!==void 0?_b:key}if(!opts.emptyAttrs&&!opts.xmlMode&&value===""){return key}return"".concat(key,'="').concat(encode(value),'"')})).join(" ")}var singleTag=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function render(node,options){if(options===void 0){options={}}var nodes="length"in node?node:[node];var output="";for(var i=0;i<nodes.length;i++){output+=renderNode(nodes[i],options)}return output}lib$2.render=render;lib$2.default=render;function renderNode(node,options){switch(node.type){case ElementType.Root:return render(node.children,options);case ElementType.Doctype:case ElementType.Directive:return renderDirective(node);case ElementType.Comment:return renderComment(node);case ElementType.CDATA:return renderCdata(node);case ElementType.Script:case ElementType.Style:case ElementType.Tag:return renderTag(node,options);case ElementType.Text:return renderText(node,options)}}var foreignModeIntegrationPoints=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]);var foreignElements=new Set(["svg","math"]);function renderTag(elem,opts){var _a;if(opts.xmlMode==="foreign"){elem.name=(_a=foreignNames_js_1.elementNames.get(elem.name))!==null&&_a!==void 0?_a:elem.name;if(elem.parent&&foreignModeIntegrationPoints.has(elem.parent.name)){opts=__assign(__assign({},opts),{xmlMode:false})}}if(!opts.xmlMode&&foreignElements.has(elem.name)){opts=__assign(__assign({},opts),{xmlMode:"foreign"})}var tag="<".concat(elem.name);var attribs=formatAttributes(elem.attribs,opts);if(attribs){tag+=" ".concat(attribs)}if(elem.children.length===0&&(opts.xmlMode?opts.selfClosingTags!==false:opts.selfClosingTags&&singleTag.has(elem.name))){if(!opts.xmlMode)tag+=" ";tag+="/>"}else{tag+=">";if(elem.children.length>0){tag+=render(elem.children,opts)}if(opts.xmlMode||!singleTag.has(elem.name)){tag+="</".concat(elem.name,">")}}return tag}function renderDirective(elem){return"<".concat(elem.data,">")}function renderText(elem,opts){var _a;var data=elem.data||"";if(((_a=opts.encodeEntities)!==null&&_a!==void 0?_a:opts.decodeEntities)!==false&&!(!opts.xmlMode&&elem.parent&&unencodedElements.has(elem.parent.name))){data=opts.xmlMode||opts.encodeEntities!=="utf8"?(0,entities_1.encodeXML)(data):(0,entities_1.escapeText)(data)}return data}function renderCdata(elem){return"<![CDATA[".concat(elem.children[0].data,"]]>")}function renderComment(elem){return"\x3c!--".concat(elem.data,"--\x3e")}var __importDefault$3=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(stringify$1,"__esModule",{value:true});stringify$1.innerText=stringify$1.textContent=stringify$1.getText=stringify$1.getInnerHTML=stringify$1.getOuterHTML=void 0;var domhandler_1$3=lib$4;var dom_serializer_1=__importDefault$3(lib$2);var domelementtype_1=lib$3;function getOuterHTML(node,options){return(0,dom_serializer_1.default)(node,options)}stringify$1.getOuterHTML=getOuterHTML;function getInnerHTML(node,options){return(0,domhandler_1$3.hasChildren)(node)?node.children.map((function(node){return getOuterHTML(node,options)})).join(""):""}stringify$1.getInnerHTML=getInnerHTML;function getText$1(node){if(Array.isArray(node))return node.map(getText$1).join("");if((0,domhandler_1$3.isTag)(node))return node.name==="br"?"\n":getText$1(node.children);if((0,domhandler_1$3.isCDATA)(node))return getText$1(node.children);if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.getText=getText$1;function textContent(node){if(Array.isArray(node))return node.map(textContent).join("");if((0,domhandler_1$3.hasChildren)(node)&&!(0,domhandler_1$3.isComment)(node)){return textContent(node.children)}if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.textContent=textContent;function innerText(node){if(Array.isArray(node))return node.map(innerText).join("");if((0,domhandler_1$3.hasChildren)(node)&&(node.type===domelementtype_1.ElementType.Tag||(0,domhandler_1$3.isCDATA)(node))){return innerText(node.children)}if((0,domhandler_1$3.isText)(node))return node.data;return""}stringify$1.innerText=innerText;var traversal={};Object.defineProperty(traversal,"__esModule",{value:true});traversal.prevElementSibling=traversal.nextElementSibling=traversal.getName=traversal.hasAttrib=traversal.getAttributeValue=traversal.getSiblings=traversal.getParent=traversal.getChildren=void 0;var domhandler_1$2=lib$4;function getChildren$1(elem){return(0,domhandler_1$2.hasChildren)(elem)?elem.children:[]}traversal.getChildren=getChildren$1;function getParent$1(elem){return elem.parent||null}traversal.getParent=getParent$1;function getSiblings$1(elem){var _a,_b;var parent=getParent$1(elem);if(parent!=null)return getChildren$1(parent);var siblings=[elem];var prev=elem.prev,next=elem.next;while(prev!=null){siblings.unshift(prev);_a=prev,prev=_a.prev}while(next!=null){siblings.push(next);_b=next,next=_b.next}return siblings}traversal.getSiblings=getSiblings$1;function getAttributeValue$1(elem,name){var _a;return(_a=elem.attribs)===null||_a===void 0?void 0:_a[name]}traversal.getAttributeValue=getAttributeValue$1;function hasAttrib$1(elem,name){return elem.attribs!=null&&Object.prototype.hasOwnProperty.call(elem.attribs,name)&&elem.attribs[name]!=null}traversal.hasAttrib=hasAttrib$1;function getName$1(elem){return elem.name}traversal.getName=getName$1;function nextElementSibling(elem){var _a;var next=elem.next;while(next!==null&&!(0,domhandler_1$2.isTag)(next))_a=next,next=_a.next;return next}traversal.nextElementSibling=nextElementSibling;function prevElementSibling(elem){var _a;var prev=elem.prev;while(prev!==null&&!(0,domhandler_1$2.isTag)(prev))_a=prev,prev=_a.prev;return prev}traversal.prevElementSibling=prevElementSibling;var manipulation={};Object.defineProperty(manipulation,"__esModule",{value:true});manipulation.prepend=manipulation.prependChild=manipulation.append=manipulation.appendChild=manipulation.replaceElement=manipulation.removeElement=void 0;function removeElement(elem){if(elem.prev)elem.prev.next=elem.next;if(elem.next)elem.next.prev=elem.prev;if(elem.parent){var childs=elem.parent.children;childs.splice(childs.lastIndexOf(elem),1)}}manipulation.removeElement=removeElement;function replaceElement(elem,replacement){var prev=replacement.prev=elem.prev;if(prev){prev.next=replacement}var next=replacement.next=elem.next;if(next){next.prev=replacement}var parent=replacement.parent=elem.parent;if(parent){var childs=parent.children;childs[childs.lastIndexOf(elem)]=replacement;elem.parent=null}}manipulation.replaceElement=replaceElement;function appendChild(elem,child){removeElement(child);child.next=null;child.parent=elem;if(elem.children.push(child)>1){var sibling=elem.children[elem.children.length-2];sibling.next=child;child.prev=sibling}else{child.prev=null}}manipulation.appendChild=appendChild;function append$1(elem,next){removeElement(next);var parent=elem.parent;var currNext=elem.next;next.next=currNext;next.prev=elem;elem.next=next;next.parent=parent;if(currNext){currNext.prev=next;if(parent){var childs=parent.children;childs.splice(childs.lastIndexOf(currNext),0,next)}}else if(parent){parent.children.push(next)}}manipulation.append=append$1;function prependChild(elem,child){removeElement(child);child.parent=elem;child.prev=null;if(elem.children.unshift(child)!==1){var sibling=elem.children[1];sibling.prev=child;child.next=sibling}else{child.next=null}}manipulation.prependChild=prependChild;function prepend(elem,prev){removeElement(prev);var parent=elem.parent;if(parent){var childs=parent.children;childs.splice(childs.indexOf(elem),0,prev)}if(elem.prev){elem.prev.next=prev}prev.parent=parent;prev.prev=elem.prev;prev.next=elem;elem.prev=prev}manipulation.prepend=prepend;var querying={};Object.defineProperty(querying,"__esModule",{value:true});querying.findAll=querying.existsOne=querying.findOne=querying.findOneChild=querying.find=querying.filter=void 0;var domhandler_1$1=lib$4;function filter(test,node,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}if(!Array.isArray(node))node=[node];return find$3(test,node,recurse,limit)}querying.filter=filter;function find$3(test,nodes,recurse,limit){var result=[];for(var _i=0,nodes_1=nodes;_i<nodes_1.length;_i++){var elem=nodes_1[_i];if(test(elem)){result.push(elem);if(--limit<=0)break}if(recurse&&(0,domhandler_1$1.hasChildren)(elem)&&elem.children.length>0){var children=find$3(test,elem.children,recurse,limit);result.push.apply(result,children);limit-=children.length;if(limit<=0)break}}return result}querying.find=find$3;function findOneChild(test,nodes){return nodes.find(test)}querying.findOneChild=findOneChild;function findOne$1(test,nodes,recurse){if(recurse===void 0){recurse=true}var elem=null;for(var i=0;i<nodes.length&&!elem;i++){var checked=nodes[i];if(!(0,domhandler_1$1.isTag)(checked)){continue}else if(test(checked)){elem=checked}else if(recurse&&checked.children.length>0){elem=findOne$1(test,checked.children,true)}}return elem}querying.findOne=findOne$1;function existsOne$1(test,nodes){return nodes.some((function(checked){return(0,domhandler_1$1.isTag)(checked)&&(test(checked)||checked.children.length>0&&existsOne$1(test,checked.children))}))}querying.existsOne=existsOne$1;function findAll$4(test,nodes){var _a;var result=[];var stack=nodes.filter(domhandler_1$1.isTag);var elem;while(elem=stack.shift()){var children=(_a=elem.children)===null||_a===void 0?void 0:_a.filter(domhandler_1$1.isTag);if(children&&children.length>0){stack.unshift.apply(stack,children)}if(test(elem))result.push(elem)}return result}querying.findAll=findAll$4;var legacy={};Object.defineProperty(legacy,"__esModule",{value:true});legacy.getElementsByTagType=legacy.getElementsByTagName=legacy.getElementById=legacy.getElements=legacy.testElement=void 0;var domhandler_1=lib$4;var querying_js_1=querying;var Checks={tag_name:function(name){if(typeof name==="function"){return function(elem){return(0,domhandler_1.isTag)(elem)&&name(elem.name)}}else if(name==="*"){return domhandler_1.isTag}return function(elem){return(0,domhandler_1.isTag)(elem)&&elem.name===name}},tag_type:function(type){if(typeof type==="function"){return function(elem){return type(elem.type)}}return function(elem){return elem.type===type}},tag_contains:function(data){if(typeof data==="function"){return function(elem){return(0,domhandler_1.isText)(elem)&&data(elem.data)}}return function(elem){return(0,domhandler_1.isText)(elem)&&elem.data===data}}};function getAttribCheck(attrib,value){if(typeof value==="function"){return function(elem){return(0,domhandler_1.isTag)(elem)&&value(elem.attribs[attrib])}}return function(elem){return(0,domhandler_1.isTag)(elem)&&elem.attribs[attrib]===value}}function combineFuncs(a,b){return function(elem){return a(elem)||b(elem)}}function compileTest(options){var funcs=Object.keys(options).map((function(key){var value=options[key];return Object.prototype.hasOwnProperty.call(Checks,key)?Checks[key](value):getAttribCheck(key,value)}));return funcs.length===0?null:funcs.reduce(combineFuncs)}function testElement(options,node){var test=compileTest(options);return test?test(node):true}legacy.testElement=testElement;function getElements(options,nodes,recurse,limit){if(limit===void 0){limit=Infinity}var test=compileTest(options);return test?(0,querying_js_1.filter)(test,nodes,recurse,limit):[]}legacy.getElements=getElements;function getElementById(id,nodes,recurse){if(recurse===void 0){recurse=true}if(!Array.isArray(nodes))nodes=[nodes];return(0,querying_js_1.findOne)(getAttribCheck("id",id),nodes,recurse)}legacy.getElementById=getElementById;function getElementsByTagName(tagName,nodes,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}return(0,querying_js_1.filter)(Checks["tag_name"](tagName),nodes,recurse,limit)}legacy.getElementsByTagName=getElementsByTagName;function getElementsByTagType(type,nodes,recurse,limit){if(recurse===void 0){recurse=true}if(limit===void 0){limit=Infinity}return(0,querying_js_1.filter)(Checks["tag_type"](type),nodes,recurse,limit)}legacy.getElementsByTagType=getElementsByTagType;var helpers={};(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.uniqueSort=exports.compareDocumentPosition=exports.DocumentPosition=exports.removeSubsets=void 0;var domhandler_1=lib$4;function removeSubsets(nodes){var idx=nodes.length;while(--idx>=0){var node=nodes[idx];if(idx>0&&nodes.lastIndexOf(node,idx-1)>=0){nodes.splice(idx,1);continue}for(var ancestor=node.parent;ancestor;ancestor=ancestor.parent){if(nodes.includes(ancestor)){nodes.splice(idx,1);break}}}return nodes}exports.removeSubsets=removeSubsets;var DocumentPosition;(function(DocumentPosition){DocumentPosition[DocumentPosition["DISCONNECTED"]=1]="DISCONNECTED";DocumentPosition[DocumentPosition["PRECEDING"]=2]="PRECEDING";DocumentPosition[DocumentPosition["FOLLOWING"]=4]="FOLLOWING";DocumentPosition[DocumentPosition["CONTAINS"]=8]="CONTAINS";DocumentPosition[DocumentPosition["CONTAINED_BY"]=16]="CONTAINED_BY"})(DocumentPosition=exports.DocumentPosition||(exports.DocumentPosition={}));function compareDocumentPosition(nodeA,nodeB){var aParents=[];var bParents=[];if(nodeA===nodeB){return 0}var current=(0,domhandler_1.hasChildren)(nodeA)?nodeA:nodeA.parent;while(current){aParents.unshift(current);current=current.parent}current=(0,domhandler_1.hasChildren)(nodeB)?nodeB:nodeB.parent;while(current){bParents.unshift(current);current=current.parent}var maxIdx=Math.min(aParents.length,bParents.length);var idx=0;while(idx<maxIdx&&aParents[idx]===bParents[idx]){idx++}if(idx===0){return DocumentPosition.DISCONNECTED}var sharedParent=aParents[idx-1];var siblings=sharedParent.children;var aSibling=aParents[idx];var bSibling=bParents[idx];if(siblings.indexOf(aSibling)>siblings.indexOf(bSibling)){if(sharedParent===nodeB){return DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY}return DocumentPosition.FOLLOWING}if(sharedParent===nodeA){return DocumentPosition.PRECEDING|DocumentPosition.CONTAINS}return DocumentPosition.PRECEDING}exports.compareDocumentPosition=compareDocumentPosition;function uniqueSort(nodes){nodes=nodes.filter((function(node,i,arr){return!arr.includes(node,i+1)}));nodes.sort((function(a,b){var relative=compareDocumentPosition(a,b);if(relative&DocumentPosition.PRECEDING){return-1}else if(relative&DocumentPosition.FOLLOWING){return 1}return 0}));return nodes}exports.uniqueSort=uniqueSort})(helpers);var feeds={};Object.defineProperty(feeds,"__esModule",{value:true});feeds.getFeed=void 0;var stringify_js_1=stringify$1;var legacy_js_1=legacy;function getFeed(doc){var feedRoot=getOneElement(isValidFeed,doc);return!feedRoot?null:feedRoot.name==="feed"?getAtomFeed(feedRoot):getRssFeed(feedRoot)}feeds.getFeed=getFeed;function getAtomFeed(feedRoot){var _a;var childs=feedRoot.children;var feed={type:"atom",items:(0,legacy_js_1.getElementsByTagName)("entry",childs).map((function(item){var _a;var children=item.children;var entry={media:getMediaElements(children)};addConditionally(entry,"id","id",children);addConditionally(entry,"title","title",children);var href=(_a=getOneElement("link",children))===null||_a===void 0?void 0:_a.attribs["href"];if(href){entry.link=href}var description=fetch("summary",children)||fetch("content",children);if(description){entry.description=description}var pubDate=fetch("updated",children);if(pubDate){entry.pubDate=new Date(pubDate)}return entry}))};addConditionally(feed,"id","id",childs);addConditionally(feed,"title","title",childs);var href=(_a=getOneElement("link",childs))===null||_a===void 0?void 0:_a.attribs["href"];if(href){feed.link=href}addConditionally(feed,"description","subtitle",childs);var updated=fetch("updated",childs);if(updated){feed.updated=new Date(updated)}addConditionally(feed,"author","email",childs,true);return feed}function getRssFeed(feedRoot){var _a,_b;var childs=(_b=(_a=getOneElement("channel",feedRoot.children))===null||_a===void 0?void 0:_a.children)!==null&&_b!==void 0?_b:[];var feed={type:feedRoot.name.substr(0,3),id:"",items:(0,legacy_js_1.getElementsByTagName)("item",feedRoot.children).map((function(item){var children=item.children;var entry={media:getMediaElements(children)};addConditionally(entry,"id","guid",children);addConditionally(entry,"title","title",children);addConditionally(entry,"link","link",children);addConditionally(entry,"description","description",children);var pubDate=fetch("pubDate",children);if(pubDate)entry.pubDate=new Date(pubDate);return entry}))};addConditionally(feed,"title","title",childs);addConditionally(feed,"link","link",childs);addConditionally(feed,"description","description",childs);var updated=fetch("lastBuildDate",childs);if(updated){feed.updated=new Date(updated)}addConditionally(feed,"author","managingEditor",childs,true);return feed}var MEDIA_KEYS_STRING=["url","type","lang"];var MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function getMediaElements(where){return(0,legacy_js_1.getElementsByTagName)("media:content",where).map((function(elem){var attribs=elem.attribs;var media={medium:attribs["medium"],isDefault:!!attribs["isDefault"]};for(var _i=0,MEDIA_KEYS_STRING_1=MEDIA_KEYS_STRING;_i<MEDIA_KEYS_STRING_1.length;_i++){var attrib=MEDIA_KEYS_STRING_1[_i];if(attribs[attrib]){media[attrib]=attribs[attrib]}}for(var _a=0,MEDIA_KEYS_INT_1=MEDIA_KEYS_INT;_a<MEDIA_KEYS_INT_1.length;_a++){var attrib=MEDIA_KEYS_INT_1[_a];if(attribs[attrib]){media[attrib]=parseInt(attribs[attrib],10)}}if(attribs["expression"]){media.expression=attribs["expression"]}return media}))}function getOneElement(tagName,node){return(0,legacy_js_1.getElementsByTagName)(tagName,node,true,1)[0]}function fetch(tagName,where,recurse){if(recurse===void 0){recurse=false}return(0,stringify_js_1.textContent)((0,legacy_js_1.getElementsByTagName)(tagName,where,recurse,1)).trim()}function addConditionally(obj,prop,tagName,where,recurse){if(recurse===void 0){recurse=false}var val=fetch(tagName,where,recurse);if(val)obj[prop]=val}function isValidFeed(value){return value==="rss"||value==="feed"||value==="rdf:RDF"}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __exportStar=commonjsGlobal&&commonjsGlobal.__exportStar||function(m,exports){for(var p in m)if(p!=="default"&&!Object.prototype.hasOwnProperty.call(exports,p))__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:true});exports.hasChildren=exports.isDocument=exports.isComment=exports.isText=exports.isCDATA=exports.isTag=void 0;__exportStar(stringify$1,exports);__exportStar(traversal,exports);__exportStar(manipulation,exports);__exportStar(querying,exports);__exportStar(legacy,exports);__exportStar(helpers,exports);__exportStar(feeds,exports);var domhandler_1=lib$4;Object.defineProperty(exports,"isTag",{enumerable:true,get:function(){return domhandler_1.isTag}});Object.defineProperty(exports,"isCDATA",{enumerable:true,get:function(){return domhandler_1.isCDATA}});Object.defineProperty(exports,"isText",{enumerable:true,get:function(){return domhandler_1.isText}});Object.defineProperty(exports,"isComment",{enumerable:true,get:function(){return domhandler_1.isComment}});Object.defineProperty(exports,"isDocument",{enumerable:true,get:function(){return domhandler_1.isDocument}});Object.defineProperty(exports,"hasChildren",{enumerable:true,get:function(){return domhandler_1.hasChildren}})})(lib$5);var boolbase={trueFunc:function trueFunc(){return true},falseFunc:function falseFunc(){return false}};var compile$3={};var SelectorType;(function(SelectorType){SelectorType["Attribute"]="attribute";SelectorType["Pseudo"]="pseudo";SelectorType["PseudoElement"]="pseudo-element";SelectorType["Tag"]="tag";SelectorType["Universal"]="universal";SelectorType["Adjacent"]="adjacent";SelectorType["Child"]="child";SelectorType["Descendant"]="descendant";SelectorType["Parent"]="parent";SelectorType["Sibling"]="sibling";SelectorType["ColumnCombinator"]="column-combinator"})(SelectorType||(SelectorType={}));const IgnoreCaseMode={Unknown:null,QuirksMode:"quirks",IgnoreCase:true,CaseSensitive:false};var AttributeAction;(function(AttributeAction){AttributeAction["Any"]="any";AttributeAction["Element"]="element";AttributeAction["End"]="end";AttributeAction["Equals"]="equals";AttributeAction["Exists"]="exists";AttributeAction["Hyphen"]="hyphen";AttributeAction["Not"]="not";AttributeAction["Start"]="start"})(AttributeAction||(AttributeAction={}));const reName=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/;const reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi;const actionTypes=new Map([[126,AttributeAction.Element],[94,AttributeAction.Start],[36,AttributeAction.End],[42,AttributeAction.Any],[33,AttributeAction.Not],[124,AttributeAction.Hyphen]]);const unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]);function isTraversal$1(selector){switch(selector.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return true;default:return false}}const stripQuotesFromPseudos=new Set(["contains","icontains"]);function funescape(_,escaped,escapedWhitespace){const high=parseInt(escaped,16)-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)}function unescapeCSS(str){return str.replace(reEscape,funescape)}function isQuote(c){return c===39||c===34}function isWhitespace(c){return c===32||c===9||c===10||c===12||c===13}function parse$1x(selector){const subselects=[];const endIndex=parseSelector(subselects,`${selector}`,0);if(endIndex<selector.length){throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`)}return subselects}function parseSelector(subselects,selector,selectorIndex){let tokens=[];function getName(offset){const match=selector.slice(selectorIndex+offset).match(reName);if(!match){throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`)}const[name]=match;selectorIndex+=offset+name.length;return unescapeCSS(name)}function stripWhitespace(offset){selectorIndex+=offset;while(selectorIndex<selector.length&&isWhitespace(selector.charCodeAt(selectorIndex))){selectorIndex++}}function readValueWithParenthesis(){selectorIndex+=1;const start=selectorIndex;let counter=1;for(;counter>0&&selectorIndex<selector.length;selectorIndex++){if(selector.charCodeAt(selectorIndex)===40&&!isEscaped(selectorIndex)){counter++}else if(selector.charCodeAt(selectorIndex)===41&&!isEscaped(selectorIndex)){counter--}}if(counter){throw new Error("Parenthesis not matched")}return unescapeCSS(selector.slice(start,selectorIndex-1))}function isEscaped(pos){let slashCount=0;while(selector.charCodeAt(--pos)===92)slashCount++;return(slashCount&1)===1}function ensureNotTraversal(){if(tokens.length>0&&isTraversal$1(tokens[tokens.length-1])){throw new Error("Did not expect successive traversals.")}}function addTraversal(type){if(tokens.length>0&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens[tokens.length-1].type=type;return}ensureNotTraversal();tokens.push({type:type})}function addSpecialAttribute(name,action){tokens.push({type:SelectorType.Attribute,name:name,action:action,value:getName(1),namespace:null,ignoreCase:"quirks"})}function finalizeSubselector(){if(tokens.length&&tokens[tokens.length-1].type===SelectorType.Descendant){tokens.pop()}if(tokens.length===0){throw new Error("Empty sub-selector")}subselects.push(tokens)}stripWhitespace(0);if(selector.length===selectorIndex){return selectorIndex}loop:while(selectorIndex<selector.length){const firstChar=selector.charCodeAt(selectorIndex);switch(firstChar){case 32:case 9:case 10:case 12:case 13:{if(tokens.length===0||tokens[0].type!==SelectorType.Descendant){ensureNotTraversal();tokens.push({type:SelectorType.Descendant})}stripWhitespace(1);break}case 62:{addTraversal(SelectorType.Child);stripWhitespace(1);break}case 60:{addTraversal(SelectorType.Parent);stripWhitespace(1);break}case 126:{addTraversal(SelectorType.Sibling);stripWhitespace(1);break}case 43:{addTraversal(SelectorType.Adjacent);stripWhitespace(1);break}case 46:{addSpecialAttribute("class",AttributeAction.Element);break}case 35:{addSpecialAttribute("id",AttributeAction.Equals);break}case 91:{stripWhitespace(1);let name;let namespace=null;if(selector.charCodeAt(selectorIndex)===124){name=getName(1)}else if(selector.startsWith("*|",selectorIndex)){namespace="*";name=getName(2)}else{name=getName(0);if(selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==61){namespace=name;name=getName(1)}}stripWhitespace(0);let action=AttributeAction.Exists;const possibleAction=actionTypes.get(selector.charCodeAt(selectorIndex));if(possibleAction){action=possibleAction;if(selector.charCodeAt(selectorIndex+1)!==61){throw new Error("Expected `=`")}stripWhitespace(2)}else if(selector.charCodeAt(selectorIndex)===61){action=AttributeAction.Equals;stripWhitespace(1)}let value="";let ignoreCase=null;if(action!=="exists"){if(isQuote(selector.charCodeAt(selectorIndex))){const quote=selector.charCodeAt(selectorIndex);let sectionEnd=selectorIndex+1;while(sectionEnd<selector.length&&(selector.charCodeAt(sectionEnd)!==quote||isEscaped(sectionEnd))){sectionEnd+=1}if(selector.charCodeAt(sectionEnd)!==quote){throw new Error("Attribute value didn't end")}value=unescapeCSS(selector.slice(selectorIndex+1,sectionEnd));selectorIndex=sectionEnd+1}else{const valueStart=selectorIndex;while(selectorIndex<selector.length&&(!isWhitespace(selector.charCodeAt(selectorIndex))&&selector.charCodeAt(selectorIndex)!==93||isEscaped(selectorIndex))){selectorIndex+=1}value=unescapeCSS(selector.slice(valueStart,selectorIndex))}stripWhitespace(0);const forceIgnore=selector.charCodeAt(selectorIndex)|32;if(forceIgnore===115){ignoreCase=false;stripWhitespace(1)}else if(forceIgnore===105){ignoreCase=true;stripWhitespace(1)}}if(selector.charCodeAt(selectorIndex)!==93){throw new Error("Attribute selector didn't terminate")}selectorIndex+=1;const attributeSelector={type:SelectorType.Attribute,name:name,action:action,value:value,namespace:namespace,ignoreCase:ignoreCase};tokens.push(attributeSelector);break}case 58:{if(selector.charCodeAt(selectorIndex+1)===58){tokens.push({type:SelectorType.PseudoElement,name:getName(2).toLowerCase(),data:selector.charCodeAt(selectorIndex)===40?readValueWithParenthesis():null});continue}const name=getName(1).toLowerCase();let data=null;if(selector.charCodeAt(selectorIndex)===40){if(unpackPseudos.has(name)){if(isQuote(selector.charCodeAt(selectorIndex+1))){throw new Error(`Pseudo-selector ${name} cannot be quoted`)}data=[];selectorIndex=parseSelector(data,selector,selectorIndex+1);if(selector.charCodeAt(selectorIndex)!==41){throw new Error(`Missing closing parenthesis in :${name} (${selector})`)}selectorIndex+=1}else{data=readValueWithParenthesis();if(stripQuotesFromPseudos.has(name)){const quot=data.charCodeAt(0);if(quot===data.charCodeAt(data.length-1)&&isQuote(quot)){data=data.slice(1,-1)}}data=unescapeCSS(data)}}tokens.push({type:SelectorType.Pseudo,name:name,data:data});break}case 44:{finalizeSubselector();tokens=[];stripWhitespace(1);break}default:{if(selector.startsWith("/*",selectorIndex)){const endIndex=selector.indexOf("*/",selectorIndex+2);if(endIndex<0){throw new Error("Comment was not terminated")}selectorIndex=endIndex+2;if(tokens.length===0){stripWhitespace(0)}break}let namespace=null;let name;if(firstChar===42){selectorIndex+=1;name="*"}else if(firstChar===124){name="";if(selector.charCodeAt(selectorIndex+1)===124){addTraversal(SelectorType.ColumnCombinator);stripWhitespace(2);break}}else if(reName.test(selector.slice(selectorIndex))){name=getName(0)}else{break loop}if(selector.charCodeAt(selectorIndex)===124&&selector.charCodeAt(selectorIndex+1)!==124){namespace=name;if(selector.charCodeAt(selectorIndex+1)===42){name="*";selectorIndex+=2}else{name=getName(1)}}tokens.push(name==="*"?{type:SelectorType.Universal,namespace:namespace}:{type:SelectorType.Tag,name:name,namespace:namespace})}}}finalizeSubselector();return selectorIndex}const attribValChars=["\\",'"'];const pseudoValChars=[...attribValChars,"(",")"];const charsToEscapeInAttributeValue=new Set(attribValChars.map((c=>c.charCodeAt(0))));const charsToEscapeInPseudoValue=new Set(pseudoValChars.map((c=>c.charCodeAt(0))));const charsToEscapeInName=new Set([...pseudoValChars,"~","^","$","*","+","!","|",":","[","]"," ","."].map((c=>c.charCodeAt(0))));function stringify(selector){return selector.map((token=>token.map(stringifyToken).join(""))).join(", ")}function stringifyToken(token,index,arr){switch(token.type){case SelectorType.Child:return index===0?"> ":" > ";case SelectorType.Parent:return index===0?"< ":" < ";case SelectorType.Sibling:return index===0?"~ ":" ~ ";case SelectorType.Adjacent:return index===0?"+ ":" + ";case SelectorType.Descendant:return" ";case SelectorType.ColumnCombinator:return index===0?"|| ":" || ";case SelectorType.Universal:return token.namespace==="*"&&index+1<arr.length&&"name"in arr[index+1]?"":`${getNamespace(token.namespace)}*`;case SelectorType.Tag:return getNamespacedName(token);case SelectorType.PseudoElement:return`::${escapeName(token.name,charsToEscapeInName)}${token.data===null?"":`(${escapeName(token.data,charsToEscapeInPseudoValue)})`}`;case SelectorType.Pseudo:return`:${escapeName(token.name,charsToEscapeInName)}${token.data===null?"":`(${typeof token.data==="string"?escapeName(token.data,charsToEscapeInPseudoValue):stringify(token.data)})`}`;case SelectorType.Attribute:{if(token.name==="id"&&token.action===AttributeAction.Equals&&token.ignoreCase==="quirks"&&!token.namespace){return`#${escapeName(token.value,charsToEscapeInName)}`}if(token.name==="class"&&token.action===AttributeAction.Element&&token.ignoreCase==="quirks"&&!token.namespace){return`.${escapeName(token.value,charsToEscapeInName)}`}const name=getNamespacedName(token);if(token.action===AttributeAction.Exists){return`[${name}]`}return`[${name}${getActionValue(token.action)}="${escapeName(token.value,charsToEscapeInAttributeValue)}"${token.ignoreCase===null?"":token.ignoreCase?" i":" s"}]`}}}function getActionValue(action){switch(action){case AttributeAction.Equals:return"";case AttributeAction.Element:return"~";case AttributeAction.Start:return"^";case AttributeAction.End:return"$";case AttributeAction.Any:return"*";case AttributeAction.Not:return"!";case AttributeAction.Hyphen:return"|";case AttributeAction.Exists:throw new Error("Shouldn't be here")}}function getNamespacedName(token){return`${getNamespace(token.namespace)}${escapeName(token.name,charsToEscapeInName)}`}function getNamespace(namespace){return namespace!==null?`${namespace==="*"?"*":escapeName(namespace,charsToEscapeInName)}|`:""}function escapeName(str,charsToEscape){let lastIdx=0;let ret="";for(let i=0;i<str.length;i++){if(charsToEscape.has(str.charCodeAt(i))){ret+=`${str.slice(lastIdx,i)}\\${str.charAt(i)}`;lastIdx=i+1}}return ret.length>0?ret+str.slice(lastIdx):str}var es=Object.freeze({__proto__:null,isTraversal:isTraversal$1,parse:parse$1x,stringify:stringify,get SelectorType(){return SelectorType},IgnoreCaseMode:IgnoreCaseMode,get AttributeAction(){return AttributeAction}});var require$$1=getAugmentedNamespace(es);var sort={};Object.defineProperty(sort,"__esModule",{value:true});sort.isTraversal=void 0;var css_what_1$2=require$$1;var procedure=new Map([[css_what_1$2.SelectorType.Universal,50],[css_what_1$2.SelectorType.Tag,30],[css_what_1$2.SelectorType.Attribute,1],[css_what_1$2.SelectorType.Pseudo,0]]);function isTraversal(token){return!procedure.has(token.type)}sort.isTraversal=isTraversal;var attributes$1=new Map([[css_what_1$2.AttributeAction.Exists,10],[css_what_1$2.AttributeAction.Equals,8],[css_what_1$2.AttributeAction.Not,7],[css_what_1$2.AttributeAction.Start,6],[css_what_1$2.AttributeAction.End,6],[css_what_1$2.AttributeAction.Any,5]]);function sortByProcedure(arr){var procs=arr.map(getProcedure);for(var i=1;i<arr.length;i++){var procNew=procs[i];if(procNew<0)continue;for(var j=i-1;j>=0&&procNew<procs[j];j--){var token=arr[j+1];arr[j+1]=arr[j];arr[j]=token;procs[j+1]=procs[j];procs[j]=procNew}}}sort.default=sortByProcedure;function getProcedure(token){var _a,_b;var proc=(_a=procedure.get(token.type))!==null&&_a!==void 0?_a:-1;if(token.type===css_what_1$2.SelectorType.Attribute){proc=(_b=attributes$1.get(token.action))!==null&&_b!==void 0?_b:4;if(token.action===css_what_1$2.AttributeAction.Equals&&token.name==="id"){proc=9}if(token.ignoreCase){proc>>=1}}else if(token.type===css_what_1$2.SelectorType.Pseudo){if(!token.data){proc=3}else if(token.name==="has"||token.name==="contains"){proc=0}else if(Array.isArray(token.data)){proc=Math.min.apply(Math,token.data.map((function(d){return Math.min.apply(Math,d.map(getProcedure))})));if(proc<0){proc=0}}else{proc=2}}return proc}var general={};var attributes={};var __importDefault$2=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(attributes,"__esModule",{value:true});attributes.attributeRules=void 0;var boolbase_1$2=__importDefault$2(boolbase);var reChars=/[-[\]{}()*+?.,\\^$|#\s]/g;function escapeRegex(value){return value.replace(reChars,"\\$&")}var caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function shouldIgnoreCase(selector,options){return typeof selector.ignoreCase==="boolean"?selector.ignoreCase:selector.ignoreCase==="quirks"?!!options.quirksMode:!options.xmlMode&&caseInsensitiveAttributes.has(selector.name)}attributes.attributeRules={equals:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length===value.length&&attr.toLowerCase()===value&&next(elem)}}return function(elem){return adapter.getAttributeValue(elem,name)===value&&next(elem)}},hyphen:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=value.length;if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function hyphenIC(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&(attr.length===len||attr.charAt(len)==="-")&&attr.substr(0,len).toLowerCase()===value&&next(elem)}}return function hyphen(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&(attr.length===len||attr.charAt(len)==="-")&&attr.substr(0,len)===value&&next(elem)}},element:function(next,data,options){var adapter=options.adapter;var name=data.name,value=data.value;if(/\s/.test(value)){return boolbase_1$2.default.falseFunc}var regex=new RegExp("(?:^|\\s)".concat(escapeRegex(value),"(?:$|\\s)"),shouldIgnoreCase(data,options)?"i":"");return function element(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=value.length&&regex.test(attr)&&next(elem)}},exists:function(next,_a,_b){var name=_a.name;var adapter=_b.adapter;return function(elem){return adapter.hasAttrib(elem,name)&&next(elem)}},start:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=value.length;if(len===0){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=len&&attr.substr(0,len).toLowerCase()===value&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.startsWith(value))&&next(elem)}},end:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;var len=-value.length;if(len===0){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var _a;return((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.substr(len).toLowerCase())===value&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.endsWith(value))&&next(elem)}},any:function(next,data,options){var adapter=options.adapter;var name=data.name,value=data.value;if(value===""){return boolbase_1$2.default.falseFunc}if(shouldIgnoreCase(data,options)){var regex_1=new RegExp(escapeRegex(value),"i");return function anyIC(elem){var attr=adapter.getAttributeValue(elem,name);return attr!=null&&attr.length>=value.length&&regex_1.test(attr)&&next(elem)}}return function(elem){var _a;return!!((_a=adapter.getAttributeValue(elem,name))===null||_a===void 0?void 0:_a.includes(value))&&next(elem)}},not:function(next,data,options){var adapter=options.adapter;var name=data.name;var value=data.value;if(value===""){return function(elem){return!!adapter.getAttributeValue(elem,name)&&next(elem)}}else if(shouldIgnoreCase(data,options)){value=value.toLowerCase();return function(elem){var attr=adapter.getAttributeValue(elem,name);return(attr==null||attr.length!==value.length||attr.toLowerCase()!==value)&&next(elem)}}return function(elem){return adapter.getAttributeValue(elem,name)!==value&&next(elem)}}};var pseudoSelectors={};var filters$1={};var lib={};var parse$1w={};Object.defineProperty(parse$1w,"__esModule",{value:true});parse$1w.parse=void 0;var whitespace=new Set([9,10,12,13,32]);var ZERO="0".charCodeAt(0);var NINE="9".charCodeAt(0);function parse$1v(formula){formula=formula.trim().toLowerCase();if(formula==="even"){return[2,0]}else if(formula==="odd"){return[2,1]}var idx=0;var a=0;var sign=readSign();var number=readNumber();if(idx<formula.length&&formula.charAt(idx)==="n"){idx++;a=sign*(number!==null&&number!==void 0?number:1);skipWhitespace();if(idx<formula.length){sign=readSign();skipWhitespace();number=readNumber()}else{sign=number=0}}if(number===null||idx<formula.length){throw new Error("n-th rule couldn't be parsed ('".concat(formula,"')"))}return[a,sign*number];function readSign(){if(formula.charAt(idx)==="-"){idx++;return-1}if(formula.charAt(idx)==="+"){idx++}return 1}function readNumber(){var start=idx;var value=0;while(idx<formula.length&&formula.charCodeAt(idx)>=ZERO&&formula.charCodeAt(idx)<=NINE){value=value*10+(formula.charCodeAt(idx)-ZERO);idx++}return idx===start?null:value}function skipWhitespace(){while(idx<formula.length&&whitespace.has(formula.charCodeAt(idx))){idx++}}}parse$1w.parse=parse$1v;var compile$2={};var __importDefault$1=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(compile$2,"__esModule",{value:true});compile$2.generate=compile$2.compile=void 0;var boolbase_1$1=__importDefault$1(boolbase);function compile$1(parsed){var a=parsed[0];var b=parsed[1]-1;if(b<0&&a<=0)return boolbase_1$1.default.falseFunc;if(a===-1)return function(index){return index<=b};if(a===0)return function(index){return index===b};if(a===1)return b<0?boolbase_1$1.default.trueFunc:function(index){return index>=b};var absA=Math.abs(a);var bMod=(b%absA+absA)%absA;return a>1?function(index){return index>=b&&index%absA===bMod}:function(index){return index<=b&&index%absA===bMod}}compile$2.compile=compile$1;function generate$1v(parsed){var a=parsed[0];var b=parsed[1]-1;var n=0;if(a<0){var aPos_1=-a;var minValue_1=(b%aPos_1+aPos_1)%aPos_1;return function(){var val=minValue_1+aPos_1*n++;return val>b?null:val}}if(a===0)return b<0?function(){return null}:function(){return n++===0?b:null};if(b<0){b+=a*Math.ceil(-b/a)}return function(){return a*n+++b}}compile$2.generate=generate$1v;(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.sequence=exports.generate=exports.compile=exports.parse=void 0;var parse_js_1=parse$1w;Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return parse_js_1.parse}});var compile_js_1=compile$2;Object.defineProperty(exports,"compile",{enumerable:true,get:function(){return compile_js_1.compile}});Object.defineProperty(exports,"generate",{enumerable:true,get:function(){return compile_js_1.generate}});function nthCheck(formula){return(0,compile_js_1.compile)((0,parse_js_1.parse)(formula))}exports.default=nthCheck;function sequence(formula){return(0,compile_js_1.generate)((0,parse_js_1.parse)(formula))}exports.sequence=sequence})(lib);(function(exports){var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.filters=void 0;var nth_check_1=__importDefault(lib);var boolbase_1=__importDefault(boolbase);function getChildFunc(next,adapter){return function(elem){var parent=adapter.getParent(elem);return parent!=null&&adapter.isTag(parent)&&next(elem)}}exports.filters={contains:function(next,text,_a){var adapter=_a.adapter;return function contains(elem){return next(elem)&&adapter.getText(elem).includes(text)}},icontains:function(next,text,_a){var adapter=_a.adapter;var itext=text.toLowerCase();return function icontains(elem){return next(elem)&&adapter.getText(elem).toLowerCase().includes(itext)}},"nth-child":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthChild(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=0;i<siblings.length;i++){if(equals(elem,siblings[i]))break;if(adapter.isTag(siblings[i])){pos++}}return func(pos)&&next(elem)}},"nth-last-child":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthLastChild(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=siblings.length-1;i>=0;i--){if(equals(elem,siblings[i]))break;if(adapter.isTag(siblings[i])){pos++}}return func(pos)&&next(elem)}},"nth-of-type":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthOfType(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)){pos++}}return func(pos)&&next(elem)}},"nth-last-of-type":function(next,rule,_a){var adapter=_a.adapter,equals=_a.equals;var func=(0,nth_check_1.default)(rule);if(func===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;if(func===boolbase_1.default.trueFunc)return getChildFunc(next,adapter);return function nthLastOfType(elem){var siblings=adapter.getSiblings(elem);var pos=0;for(var i=siblings.length-1;i>=0;i--){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===adapter.getName(elem)){pos++}}return func(pos)&&next(elem)}},root:function(next,_rule,_a){var adapter=_a.adapter;return function(elem){var parent=adapter.getParent(elem);return(parent==null||!adapter.isTag(parent))&&next(elem)}},scope:function(next,rule,options,context){var equals=options.equals;if(!context||context.length===0){return exports.filters["root"](next,rule,options)}if(context.length===1){return function(elem){return equals(context[0],elem)&&next(elem)}}return function(elem){return context.includes(elem)&&next(elem)}},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};function dynamicStatePseudo(name){return function dynamicPseudo(next,_rule,_a){var adapter=_a.adapter;var func=adapter[name];if(typeof func!=="function"){return boolbase_1.default.falseFunc}return function active(elem){return func(elem)&&next(elem)}}}})(filters$1);var pseudos={};Object.defineProperty(pseudos,"__esModule",{value:true});pseudos.verifyPseudoArgs=pseudos.pseudos=void 0;pseudos.pseudos={empty:function(elem,_a){var adapter=_a.adapter;return!adapter.getChildren(elem).some((function(elem){return adapter.isTag(elem)||adapter.getText(elem)!==""}))},"first-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;if(adapter.prevElementSibling){return adapter.prevElementSibling(elem)==null}var firstChild=adapter.getSiblings(elem).find((function(elem){return adapter.isTag(elem)}));return firstChild!=null&&equals(elem,firstChild)},"last-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);for(var i=siblings.length-1;i>=0;i--){if(equals(elem,siblings[i]))return true;if(adapter.isTag(siblings[i]))break}return false},"first-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);var elemName=adapter.getName(elem);for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))return true;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName){break}}return false},"last-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var siblings=adapter.getSiblings(elem);var elemName=adapter.getName(elem);for(var i=siblings.length-1;i>=0;i--){var currentSibling=siblings[i];if(equals(elem,currentSibling))return true;if(adapter.isTag(currentSibling)&&adapter.getName(currentSibling)===elemName){break}}return false},"only-of-type":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;var elemName=adapter.getName(elem);return adapter.getSiblings(elem).every((function(sibling){return equals(elem,sibling)||!adapter.isTag(sibling)||adapter.getName(sibling)!==elemName}))},"only-child":function(elem,_a){var adapter=_a.adapter,equals=_a.equals;return adapter.getSiblings(elem).every((function(sibling){return equals(elem,sibling)||!adapter.isTag(sibling)}))}};function verifyPseudoArgs(func,name,subselect,argIndex){if(subselect===null){if(func.length>argIndex){throw new Error("Pseudo-class :".concat(name," requires an argument"))}}else if(func.length===argIndex){throw new Error("Pseudo-class :".concat(name," doesn't have any arguments"))}}pseudos.verifyPseudoArgs=verifyPseudoArgs;var aliases={};Object.defineProperty(aliases,"__esModule",{value:true});aliases.aliases=void 0;aliases.aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )",enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"};var subselects={};(function(exports){var __spreadArray=commonjsGlobal&&commonjsGlobal.__spreadArray||function(to,from,pack){if(pack||arguments.length===2)for(var i=0,l=from.length,ar;i<l;i++){if(ar||!(i in from)){if(!ar)ar=Array.prototype.slice.call(from,0,i);ar[i]=from[i]}}return to.concat(ar||Array.prototype.slice.call(from))};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.subselects=exports.getNextSiblings=exports.ensureIsTag=exports.PLACEHOLDER_ELEMENT=void 0;var boolbase_1=__importDefault(boolbase);var sort_js_1=sort;exports.PLACEHOLDER_ELEMENT={};function ensureIsTag(next,adapter){if(next===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;return function(elem){return adapter.isTag(elem)&&next(elem)}}exports.ensureIsTag=ensureIsTag;function getNextSiblings(elem,adapter){var siblings=adapter.getSiblings(elem);if(siblings.length<=1)return[];var elemIndex=siblings.indexOf(elem);if(elemIndex<0||elemIndex===siblings.length-1)return[];return siblings.slice(elemIndex+1).filter(adapter.isTag)}exports.getNextSiblings=getNextSiblings;function copyOptions(options){return{xmlMode:!!options.xmlMode,lowerCaseAttributeNames:!!options.lowerCaseAttributeNames,lowerCaseTags:!!options.lowerCaseTags,quirksMode:!!options.quirksMode,cacheResults:!!options.cacheResults,pseudos:options.pseudos,adapter:options.adapter,equals:options.equals}}var is=function(next,token,options,context,compileToken){var func=compileToken(token,copyOptions(options),context);return func===boolbase_1.default.trueFunc?next:func===boolbase_1.default.falseFunc?boolbase_1.default.falseFunc:function(elem){return func(elem)&&next(elem)}};exports.subselects={is:is,matches:is,where:is,not:function(next,token,options,context,compileToken){var func=compileToken(token,copyOptions(options),context);return func===boolbase_1.default.falseFunc?next:func===boolbase_1.default.trueFunc?boolbase_1.default.falseFunc:function(elem){return!func(elem)&&next(elem)}},has:function(next,subselect,options,_context,compileToken){var adapter=options.adapter;var opts=copyOptions(options);opts.relativeSelector=true;var context=subselect.some((function(s){return s.some(sort_js_1.isTraversal)}))?[exports.PLACEHOLDER_ELEMENT]:undefined;var compiled=compileToken(subselect,opts,context);if(compiled===boolbase_1.default.falseFunc)return boolbase_1.default.falseFunc;var hasElement=ensureIsTag(compiled,adapter);if(context&&compiled!==boolbase_1.default.trueFunc){var _a=compiled.shouldTestNextSiblings,shouldTestNextSiblings_1=_a===void 0?false:_a;return function(elem){if(!next(elem))return false;context[0]=elem;var childs=adapter.getChildren(elem);var nextElements=shouldTestNextSiblings_1?__spreadArray(__spreadArray([],childs,true),getNextSiblings(elem,adapter),true):childs;return adapter.existsOne(hasElement,nextElements)}}return function(elem){return next(elem)&&adapter.existsOne(hasElement,adapter.getChildren(elem))}}}})(subselects);(function(exports){Object.defineProperty(exports,"__esModule",{value:true});exports.compilePseudoSelector=exports.aliases=exports.pseudos=exports.filters=void 0;var css_what_1=require$$1;var filters_js_1=filters$1;Object.defineProperty(exports,"filters",{enumerable:true,get:function(){return filters_js_1.filters}});var pseudos_js_1=pseudos;Object.defineProperty(exports,"pseudos",{enumerable:true,get:function(){return pseudos_js_1.pseudos}});var aliases_js_1=aliases;Object.defineProperty(exports,"aliases",{enumerable:true,get:function(){return aliases_js_1.aliases}});var subselects_js_1=subselects;function compilePseudoSelector(next,selector,options,context,compileToken){var _a;var name=selector.name,data=selector.data;if(Array.isArray(data)){if(!(name in subselects_js_1.subselects)){throw new Error("Unknown pseudo-class :".concat(name,"(").concat(data,")"))}return subselects_js_1.subselects[name](next,data,options,context,compileToken)}var userPseudo=(_a=options.pseudos)===null||_a===void 0?void 0:_a[name];var stringPseudo=typeof userPseudo==="string"?userPseudo:aliases_js_1.aliases[name];if(typeof stringPseudo==="string"){if(data!=null){throw new Error("Pseudo ".concat(name," doesn't have any arguments"))}var alias=(0,css_what_1.parse)(stringPseudo);return subselects_js_1.subselects["is"](next,alias,options,context,compileToken)}if(typeof userPseudo==="function"){(0,pseudos_js_1.verifyPseudoArgs)(userPseudo,name,data,1);return function(elem){return userPseudo(elem,data)&&next(elem)}}if(name in filters_js_1.filters){return filters_js_1.filters[name](next,data,options,context)}if(name in pseudos_js_1.pseudos){var pseudo_1=pseudos_js_1.pseudos[name];(0,pseudos_js_1.verifyPseudoArgs)(pseudo_1,name,data,2);return function(elem){return pseudo_1(elem,options,data)&&next(elem)}}throw new Error("Unknown pseudo-class :".concat(name))}exports.compilePseudoSelector=compilePseudoSelector})(pseudoSelectors);Object.defineProperty(general,"__esModule",{value:true});general.compileGeneralSelector=void 0;var attributes_js_1=attributes;var index_js_1=pseudoSelectors;var css_what_1$1=require$$1;function getElementParent(node,adapter){var parent=adapter.getParent(node);if(parent&&adapter.isTag(parent)){return parent}return null}function compileGeneralSelector(next,selector,options,context,compileToken){var adapter=options.adapter,equals=options.equals;switch(selector.type){case css_what_1$1.SelectorType.PseudoElement:{throw new Error("Pseudo-elements are not supported by css-select")}case css_what_1$1.SelectorType.ColumnCombinator:{throw new Error("Column combinators are not yet supported by css-select")}case css_what_1$1.SelectorType.Attribute:{if(selector.namespace!=null){throw new Error("Namespaced attributes are not yet supported by css-select")}if(!options.xmlMode||options.lowerCaseAttributeNames){selector.name=selector.name.toLowerCase()}return attributes_js_1.attributeRules[selector.action](next,selector,options)}case css_what_1$1.SelectorType.Pseudo:{return(0,index_js_1.compilePseudoSelector)(next,selector,options,context,compileToken)}case css_what_1$1.SelectorType.Tag:{if(selector.namespace!=null){throw new Error("Namespaced tag names are not yet supported by css-select")}var name_1=selector.name;if(!options.xmlMode||options.lowerCaseTags){name_1=name_1.toLowerCase()}return function tag(elem){return adapter.getName(elem)===name_1&&next(elem)}}case css_what_1$1.SelectorType.Descendant:{if(options.cacheResults===false||typeof WeakSet==="undefined"){return function descendant(elem){var current=elem;while(current=getElementParent(current,adapter)){if(next(current)){return true}}return false}}var isFalseCache_1=new WeakSet;return function cachedDescendant(elem){var current=elem;while(current=getElementParent(current,adapter)){if(!isFalseCache_1.has(current)){if(adapter.isTag(current)&&next(current)){return true}isFalseCache_1.add(current)}}return false}}case"_flexibleDescendant":{return function flexibleDescendant(elem){var current=elem;do{if(next(current))return true}while(current=getElementParent(current,adapter));return false}}case css_what_1$1.SelectorType.Parent:{return function parent(elem){return adapter.getChildren(elem).some((function(elem){return adapter.isTag(elem)&&next(elem)}))}}case css_what_1$1.SelectorType.Child:{return function child(elem){var parent=adapter.getParent(elem);return parent!=null&&adapter.isTag(parent)&&next(parent)}}case css_what_1$1.SelectorType.Sibling:{return function sibling(elem){var siblings=adapter.getSiblings(elem);for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)&&next(currentSibling)){return true}}return false}}case css_what_1$1.SelectorType.Adjacent:{if(adapter.prevElementSibling){return function adjacent(elem){var previous=adapter.prevElementSibling(elem);return previous!=null&&next(previous)}}return function adjacent(elem){var siblings=adapter.getSiblings(elem);var lastElement;for(var i=0;i<siblings.length;i++){var currentSibling=siblings[i];if(equals(elem,currentSibling))break;if(adapter.isTag(currentSibling)){lastElement=currentSibling}}return!!lastElement&&next(lastElement)}}case css_what_1$1.SelectorType.Universal:{if(selector.namespace!=null&&selector.namespace!=="*"){throw new Error("Namespaced universal selectors are not yet supported by css-select")}return next}}}general.compileGeneralSelector=compileGeneralSelector;var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(compile$3,"__esModule",{value:true});compile$3.compileToken=compile$3.compileUnsafe=compile$3.compile=void 0;var css_what_1=require$$1;var boolbase_1=__importDefault(boolbase);var sort_js_1=__importStar(sort);var general_js_1=general;var subselects_js_1=subselects;function compile(selector,options,context){var next=compileUnsafe(selector,options,context);return(0,subselects_js_1.ensureIsTag)(next,options.adapter)}compile$3.compile=compile;function compileUnsafe(selector,options,context){var token=typeof selector==="string"?(0,css_what_1.parse)(selector):selector;return compileToken(token,options,context)}compile$3.compileUnsafe=compileUnsafe;function includesScopePseudo(t){return t.type===css_what_1.SelectorType.Pseudo&&(t.name==="scope"||Array.isArray(t.data)&&t.data.some((function(data){return data.some(includesScopePseudo)})))}var DESCENDANT_TOKEN={type:css_what_1.SelectorType.Descendant};var FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"};var SCOPE_TOKEN={type:css_what_1.SelectorType.Pseudo,name:"scope",data:null};function absolutize(token,_a,context){var adapter=_a.adapter;var hasContext=!!(context===null||context===void 0?void 0:context.every((function(e){var parent=adapter.isTag(e)&&adapter.getParent(e);return e===subselects_js_1.PLACEHOLDER_ELEMENT||parent&&adapter.isTag(parent)})));for(var _i=0,token_1=token;_i<token_1.length;_i++){var t=token_1[_i];if(t.length>0&&(0,sort_js_1.isTraversal)(t[0])&&t[0].type!==css_what_1.SelectorType.Descendant);else if(hasContext&&!t.some(includesScopePseudo)){t.unshift(DESCENDANT_TOKEN)}else{continue}t.unshift(SCOPE_TOKEN)}}function compileToken(token,options,context){var _a;token.forEach(sort_js_1.default);context=(_a=options.context)!==null&&_a!==void 0?_a:context;var isArrayContext=Array.isArray(context);var finalContext=context&&(Array.isArray(context)?context:[context]);if(options.relativeSelector!==false){absolutize(token,options,finalContext)}else if(token.some((function(t){return t.length>0&&(0,sort_js_1.isTraversal)(t[0])}))){throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled")}var shouldTestNextSiblings=false;var query=token.map((function(rules){if(rules.length>=2){var first=rules[0],second=rules[1];if(first.type!==css_what_1.SelectorType.Pseudo||first.name!=="scope");else if(isArrayContext&&second.type===css_what_1.SelectorType.Descendant){rules[1]=FLEXIBLE_DESCENDANT_TOKEN}else if(second.type===css_what_1.SelectorType.Adjacent||second.type===css_what_1.SelectorType.Sibling){shouldTestNextSiblings=true}}return compileRules(rules,options,finalContext)})).reduce(reduceRules,boolbase_1.default.falseFunc);query.shouldTestNextSiblings=shouldTestNextSiblings;return query}compile$3.compileToken=compileToken;function compileRules(rules,options,context){var _a;return rules.reduce((function(previous,rule){return previous===boolbase_1.default.falseFunc?boolbase_1.default.falseFunc:(0,general_js_1.compileGeneralSelector)(previous,rule,options,context,compileToken)}),(_a=options.rootFunc)!==null&&_a!==void 0?_a:boolbase_1.default.trueFunc)}function reduceRules(a,b){if(b===boolbase_1.default.falseFunc||a===boolbase_1.default.trueFunc){return a}if(a===boolbase_1.default.falseFunc||b===boolbase_1.default.trueFunc){return b}return function combine(elem){return a(elem)||b(elem)}}(function(exports){var __createBinding=commonjsGlobal&&commonjsGlobal.__createBinding||(Object.create?function(o,m,k,k2){if(k2===undefined)k2=k;var desc=Object.getOwnPropertyDescriptor(m,k);if(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable)){desc={enumerable:true,get:function(){return m[k]}}}Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){if(k2===undefined)k2=k;o[k2]=m[k]});var __setModuleDefault=commonjsGlobal&&commonjsGlobal.__setModuleDefault||(Object.create?function(o,v){Object.defineProperty(o,"default",{enumerable:true,value:v})}:function(o,v){o["default"]=v});var __importStar=commonjsGlobal&&commonjsGlobal.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)if(k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k))__createBinding(result,mod,k);__setModuleDefault(result,mod);return result};var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});exports.aliases=exports.pseudos=exports.filters=exports.is=exports.selectOne=exports.selectAll=exports.prepareContext=exports._compileToken=exports._compileUnsafe=exports.compile=void 0;var DomUtils=__importStar(lib$5);var boolbase_1=__importDefault(boolbase);var compile_js_1=compile$3;var subselects_js_1=subselects;var defaultEquals=function(a,b){return a===b};var defaultOptions={adapter:DomUtils,equals:defaultEquals};function convertOptionFormats(options){var _a,_b,_c,_d;var opts=options!==null&&options!==void 0?options:defaultOptions;(_a=opts.adapter)!==null&&_a!==void 0?_a:opts.adapter=DomUtils;(_b=opts.equals)!==null&&_b!==void 0?_b:opts.equals=(_d=(_c=opts.adapter)===null||_c===void 0?void 0:_c.equals)!==null&&_d!==void 0?_d:defaultEquals;return opts}function wrapCompile(func){return function addAdapter(selector,options,context){var opts=convertOptionFormats(options);return func(selector,opts,context)}}exports.compile=wrapCompile(compile_js_1.compile);exports._compileUnsafe=wrapCompile(compile_js_1.compileUnsafe);exports._compileToken=wrapCompile(compile_js_1.compileToken);function getSelectorFunc(searchFunc){return function select(query,elements,options){var opts=convertOptionFormats(options);if(typeof query!=="function"){query=(0,compile_js_1.compileUnsafe)(query,opts,elements)}var filteredElements=prepareContext(elements,opts.adapter,query.shouldTestNextSiblings);return searchFunc(query,filteredElements,opts)}}function prepareContext(elems,adapter,shouldTestNextSiblings){if(shouldTestNextSiblings===void 0){shouldTestNextSiblings=false}if(shouldTestNextSiblings){elems=appendNextSiblings(elems,adapter)}return Array.isArray(elems)?adapter.removeSubsets(elems):adapter.getChildren(elems)}exports.prepareContext=prepareContext;function appendNextSiblings(elem,adapter){var elems=Array.isArray(elem)?elem.slice(0):[elem];var elemsLength=elems.length;for(var i=0;i<elemsLength;i++){var nextSiblings=(0,subselects_js_1.getNextSiblings)(elems[i],adapter);elems.push.apply(elems,nextSiblings)}return elems}exports.selectAll=getSelectorFunc((function(query,elems,options){return query===boolbase_1.default.falseFunc||!elems||elems.length===0?[]:options.adapter.findAll(query,elems)}));exports.selectOne=getSelectorFunc((function(query,elems,options){return query===boolbase_1.default.falseFunc||!elems||elems.length===0?null:options.adapter.findOne(query,elems)}));function is(elem,query,options){var opts=convertOptionFormats(options);return(typeof query==="function"?query:(0,compile_js_1.compile)(query,opts))(elem)}exports.is=is;exports.default=exports.selectAll;var index_js_1=pseudoSelectors;Object.defineProperty(exports,"filters",{enumerable:true,get:function(){return index_js_1.filters}});Object.defineProperty(exports,"pseudos",{enumerable:true,get:function(){return index_js_1.pseudos}});Object.defineProperty(exports,"aliases",{enumerable:true,get:function(){return index_js_1.aliases}})})(lib$6);const isTag=node=>node.type==="element";const existsOne=(test,elems)=>elems.some((elem=>{if(isTag(elem)){return test(elem)||existsOne(test,getChildren(elem))}else{return false}}));const getAttributeValue=(elem,name)=>elem.attributes[name];const getChildren=node=>node.children||[];const getName=elemAst=>elemAst.name;const getParent=node=>node.parentNode||null;const getSiblings=elem=>{var parent=getParent(elem);return parent?getChildren(parent):[]};const getText=node=>{if(node.children[0].type==="text"&&node.children[0].type==="cdata"){return node.children[0].value}return""};const hasAttrib=(elem,name)=>elem.attributes[name]!==undefined;const removeSubsets=nodes=>{let idx=nodes.length;let node;let ancestor;let replace;while(--idx>-1){node=ancestor=nodes[idx];nodes[idx]=null;replace=true;while(ancestor){if(nodes.includes(ancestor)){replace=false;nodes.splice(idx,1);break}ancestor=getParent(ancestor)}if(replace){nodes[idx]=node}}return nodes};const findAll$3=(test,elems)=>{const result=[];for(const elem of elems){if(isTag(elem)){if(test(elem)){result.push(elem)}result.push(...findAll$3(test,getChildren(elem)))}}return result};const findOne=(test,elems)=>{for(const elem of elems){if(isTag(elem)){if(test(elem)){return elem}const result=findOne(test,getChildren(elem));if(result){return result}}}return null};const svgoCssSelectAdapter={isTag:isTag,existsOne:existsOne,getAttributeValue:getAttributeValue,getChildren:getChildren,getName:getName,getParent:getParent,getSiblings:getSiblings,getText:getText,hasAttrib:hasAttrib,removeSubsets:removeSubsets,findAll:findAll$3,findOne:findOne};var cssSelectAdapter=svgoCssSelectAdapter;const{selectAll:selectAll,selectOne:selectOne,is:is}=lib$6;const xastAdaptor=cssSelectAdapter;const cssSelectOptions={xmlMode:true,adapter:xastAdaptor};const querySelectorAll$4=(node,selector)=>selectAll(selector,node,cssSelectOptions);xast.querySelectorAll=querySelectorAll$4;const querySelector$2=(node,selector)=>selectOne(selector,node,cssSelectOptions);xast.querySelector=querySelector$2;const matches$1=(node,selector)=>is(node,selector,cssSelectOptions);xast.matches=matches$1;const visitSkip$7=Symbol();xast.visitSkip=visitSkip$7;const visit$7=(node,visitor,parentNode)=>{const callbacks=visitor[node.type];if(callbacks&&callbacks.enter){const symbol=callbacks.enter(node,parentNode);if(symbol===visitSkip$7){return}}if(node.type==="root"){for(const child of node.children){visit$7(child,visitor,node)}}if(node.type==="element"){if(parentNode.children.includes(node)){for(const child of node.children){visit$7(child,visitor,node)}}}if(callbacks&&callbacks.exit){callbacks.exit(node,parentNode)}};xast.visit=visit$7;const detachNodeFromParent$o=(node,parentNode)=>{parentNode.children=parentNode.children.filter((child=>child!==node))};xast.detachNodeFromParent=detachNodeFromParent$o;const{visit:visit$6}=xast;const invokePlugins$1=(ast,info,plugins,overrides,globalOverrides)=>{for(const plugin of plugins){const override=overrides?.[plugin.name];if(override===false){continue}const params={...plugin.params,...globalOverrides,...override};const visitor=plugin.fn(ast,params,info);if(visitor!=null){visit$6(ast,visitor)}}};plugins.invokePlugins=invokePlugins$1;const createPreset$1=({name:name,plugins:plugins})=>({name:name,fn:(ast,params,info)=>{const{floatPrecision:floatPrecision,overrides:overrides}=params;const globalOverrides={};if(floatPrecision!=null){globalOverrides.floatPrecision=floatPrecision}if(overrides){const pluginNames=plugins.map((({name:name})=>name));for(const pluginName of Object.keys(overrides)){if(!pluginNames.includes(pluginName)){console.warn(`You are trying to configure ${pluginName} which is not part of ${name}.\n`+`Try to put it before or after, for example\n\n`+`plugins: [\n`+` {\n`+` name: '${name}',\n`+` },\n`+` '${pluginName}'\n`+`]\n`)}}}invokePlugins$1(ast,info,plugins,overrides,globalOverrides)}});plugins.createPreset=createPreset$1;var removeDoctype$1={};const{detachNodeFromParent:detachNodeFromParent$n}=xast;removeDoctype$1.name="removeDoctype";removeDoctype$1.description="removes doctype declaration";removeDoctype$1.fn=()=>({doctype:{enter:(node,parentNode)=>{detachNodeFromParent$n(node,parentNode)}}});var removeXMLProcInst$1={};const{detachNodeFromParent:detachNodeFromParent$m}=xast;removeXMLProcInst$1.name="removeXMLProcInst";removeXMLProcInst$1.description="removes XML processing instructions";removeXMLProcInst$1.fn=()=>({instruction:{enter:(node,parentNode)=>{if(node.name==="xml"){detachNodeFromParent$m(node,parentNode)}}}});var removeComments$1={};const{detachNodeFromParent:detachNodeFromParent$l}=xast;removeComments$1.name="removeComments";removeComments$1.description="removes comments";const DEFAULT_PRESERVE_PATTERNS=[/^!/];removeComments$1.fn=(_root,params)=>{const{preservePatterns:preservePatterns=DEFAULT_PRESERVE_PATTERNS}=params;return{comment:{enter:(node,parentNode)=>{if(preservePatterns){if(!Array.isArray(preservePatterns)){throw Error(`Expected array in removeComments preservePatterns parameter but received ${preservePatterns}`)}const matches=preservePatterns.some((pattern=>new RegExp(pattern).test(node.value)));if(matches){return}}detachNodeFromParent$l(node,parentNode)}}}};var removeMetadata$1={};const{detachNodeFromParent:detachNodeFromParent$k}=xast;removeMetadata$1.name="removeMetadata";removeMetadata$1.description="removes <metadata>";removeMetadata$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="metadata"){detachNodeFromParent$k(node,parentNode)}}}});var removeEditorsNSData$1={};const{detachNodeFromParent:detachNodeFromParent$j}=xast;const{editorNamespaces:editorNamespaces}=_collections;removeEditorsNSData$1.name="removeEditorsNSData";removeEditorsNSData$1.description="removes editors namespaces, elements and attributes";removeEditorsNSData$1.fn=(_root,params)=>{let namespaces=[...editorNamespaces];if(Array.isArray(params.additionalNamespaces)){namespaces=[...editorNamespaces,...params.additionalNamespaces]}const prefixes=[];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"){for(const[name,value]of Object.entries(node.attributes)){if(name.startsWith("xmlns:")&&namespaces.includes(value)){prefixes.push(name.slice("xmlns:".length));delete node.attributes[name]}}}for(const name of Object.keys(node.attributes)){if(name.includes(":")){const[prefix]=name.split(":");if(prefixes.includes(prefix)){delete node.attributes[name]}}}if(node.name.includes(":")){const[prefix]=node.name.split(":");if(prefixes.includes(prefix)){detachNodeFromParent$j(node,parentNode)}}}}}};var cleanupAttrs$1={};cleanupAttrs$1.name="cleanupAttrs";cleanupAttrs$1.description="cleanups attributes from newlines, trailing and repeating spaces";const regNewlinesNeedSpace=/(\S)\r?\n(\S)/g;const regNewlines=/\r?\n/g;const regSpaces=/\s{2,}/g;cleanupAttrs$1.fn=(root,params)=>{const{newlines:newlines=true,trim:trim=true,spaces:spaces=true}=params;return{element:{enter:node=>{for(const name of Object.keys(node.attributes)){if(newlines){node.attributes[name]=node.attributes[name].replace(regNewlinesNeedSpace,((match,p1,p2)=>p1+" "+p2));node.attributes[name]=node.attributes[name].replace(regNewlines,"")}if(trim){node.attributes[name]=node.attributes[name].trim()}if(spaces){node.attributes[name]=node.attributes[name].replace(regSpaces," ")}}}}}};var mergeStyles$1={};const{visitSkip:visitSkip$6,detachNodeFromParent:detachNodeFromParent$i}=xast;mergeStyles$1.name="mergeStyles";mergeStyles$1.description="merge multiple style elements into one";mergeStyles$1.fn=()=>{let firstStyleElement=null;let collectedStyles="";let styleContentType="text";return{element:{enter:(node,parentNode)=>{if(node.name==="foreignObject"){return visitSkip$6}if(node.name!=="style"){return}if(node.attributes.type!=null&&node.attributes.type!==""&&node.attributes.type!=="text/css"){return}let css="";for(const child of node.children){if(child.type==="text"){css+=child.value}if(child.type==="cdata"){styleContentType="cdata";css+=child.value}}if(css.trim().length===0){detachNodeFromParent$i(node,parentNode);return}if(node.attributes.media==null){collectedStyles+=css}else{collectedStyles+=`@media ${node.attributes.media}{${css}}`;delete node.attributes.media}if(firstStyleElement==null){firstStyleElement=node}else{detachNodeFromParent$i(node,parentNode);const child={type:styleContentType,value:collectedStyles};Object.defineProperty(child,"parentNode",{writable:true,value:firstStyleElement});firstStyleElement.children=[child]}}}}};var inlineStyles$1={};var cjs$2={};var tokenizer$5={};var types$1I={};const EOF$3=0;const Ident$1=1;const Function$5=2;const AtKeyword$1=3;const Hash$7=4;const String$4=5;const BadString$1=6;const Url$9=7;const BadUrl$1=8;const Delim$1=9;const Number$5=10;const Percentage$9=11;const Dimension$9=12;const WhiteSpace$9=13;const CDO$7=14;const CDC$7=15;const Colon$1=16;const Semicolon$1=17;const Comma$1=18;const LeftSquareBracket$1=19;const RightSquareBracket$1=20;const LeftParenthesis$1=21;const RightParenthesis$1=22;const LeftCurlyBracket$1=23;const RightCurlyBracket$1=24;const Comment$9=25;types$1I.AtKeyword=AtKeyword$1;types$1I.BadString=BadString$1;types$1I.BadUrl=BadUrl$1;types$1I.CDC=CDC$7;types$1I.CDO=CDO$7;types$1I.Colon=Colon$1;types$1I.Comma=Comma$1;types$1I.Comment=Comment$9;types$1I.Delim=Delim$1;types$1I.Dimension=Dimension$9;types$1I.EOF=EOF$3;types$1I.Function=Function$5;types$1I.Hash=Hash$7;types$1I.Ident=Ident$1;types$1I.LeftCurlyBracket=LeftCurlyBracket$1;types$1I.LeftParenthesis=LeftParenthesis$1;types$1I.LeftSquareBracket=LeftSquareBracket$1;types$1I.Number=Number$5;types$1I.Percentage=Percentage$9;types$1I.RightCurlyBracket=RightCurlyBracket$1;types$1I.RightParenthesis=RightParenthesis$1;types$1I.RightSquareBracket=RightSquareBracket$1;types$1I.Semicolon=Semicolon$1;types$1I.String=String$4;types$1I.Url=Url$9;types$1I.WhiteSpace=WhiteSpace$9;var charCodeDefinitions$p={};const EOF$2=0;function isDigit$2(code){return code>=48&&code<=57}function isHexDigit$1(code){return isDigit$2(code)||code>=65&&code<=70||code>=97&&code<=102}function isUppercaseLetter$1(code){return code>=65&&code<=90}function isLowercaseLetter$1(code){return code>=97&&code<=122}function isLetter$1(code){return isUppercaseLetter$1(code)||isLowercaseLetter$1(code)}function isNonAscii$1(code){return code>=128}function isNameStart$1(code){return isLetter$1(code)||isNonAscii$1(code)||code===95}function isName$1(code){return isNameStart$1(code)||isDigit$2(code)||code===45}function isNonPrintable$1(code){return code>=0&&code<=8||code===11||code>=14&&code<=31||code===127}function isNewline$1(code){return code===10||code===13||code===12}function isWhiteSpace$1(code){return isNewline$1(code)||code===32||code===9}function isValidEscape$1(first,second){if(first!==92){return false}if(isNewline$1(second)||second===EOF$2){return false}return true}function isIdentifierStart$1(first,second,third){if(first===45){return isNameStart$1(second)||second===45||isValidEscape$1(second,third)}if(isNameStart$1(first)){return true}if(first===92){return isValidEscape$1(first,second)}return false}function isNumberStart$1(first,second,third){if(first===43||first===45){if(isDigit$2(second)){return 2}return second===46&&isDigit$2(third)?3:0}if(first===46){return isDigit$2(second)?2:0}if(isDigit$2(first)){return 1}return 0}function isBOM$1(code){if(code===65279){return 1}if(code===65534){return 1}return 0}const CATEGORY$1=new Array(128);const EofCategory$1=128;const WhiteSpaceCategory$1=130;const DigitCategory$1=131;const NameStartCategory$1=132;const NonPrintableCategory$1=133;for(let i=0;i<CATEGORY$1.length;i++){CATEGORY$1[i]=isWhiteSpace$1(i)&&WhiteSpaceCategory$1||isDigit$2(i)&&DigitCategory$1||isNameStart$1(i)&&NameStartCategory$1||isNonPrintable$1(i)&&NonPrintableCategory$1||i||EofCategory$1}function charCodeCategory$1(code){return code<128?CATEGORY$1[code]:NameStartCategory$1}charCodeDefinitions$p.DigitCategory=DigitCategory$1;charCodeDefinitions$p.EofCategory=EofCategory$1;charCodeDefinitions$p.NameStartCategory=NameStartCategory$1;charCodeDefinitions$p.NonPrintableCategory=NonPrintableCategory$1;charCodeDefinitions$p.WhiteSpaceCategory=WhiteSpaceCategory$1;charCodeDefinitions$p.charCodeCategory=charCodeCategory$1;charCodeDefinitions$p.isBOM=isBOM$1;charCodeDefinitions$p.isDigit=isDigit$2;charCodeDefinitions$p.isHexDigit=isHexDigit$1;charCodeDefinitions$p.isIdentifierStart=isIdentifierStart$1;charCodeDefinitions$p.isLetter=isLetter$1;charCodeDefinitions$p.isLowercaseLetter=isLowercaseLetter$1;charCodeDefinitions$p.isName=isName$1;charCodeDefinitions$p.isNameStart=isNameStart$1;charCodeDefinitions$p.isNewline=isNewline$1;charCodeDefinitions$p.isNonAscii=isNonAscii$1;charCodeDefinitions$p.isNonPrintable=isNonPrintable$1;charCodeDefinitions$p.isNumberStart=isNumberStart$1;charCodeDefinitions$p.isUppercaseLetter=isUppercaseLetter$1;charCodeDefinitions$p.isValidEscape=isValidEscape$1;charCodeDefinitions$p.isWhiteSpace=isWhiteSpace$1;var utils$u={};const charCodeDefinitions$o=charCodeDefinitions$p;function getCharCode$1(source,offset){return offset<source.length?source.charCodeAt(offset):0}function getNewlineLength$1(source,offset,code){if(code===13&&getCharCode$1(source,offset+1)===10){return 2}return 1}function cmpChar$1(testStr,offset,referenceCode){let code=testStr.charCodeAt(offset);if(charCodeDefinitions$o.isUppercaseLetter(code)){code=code|32}return code===referenceCode}function cmpStr$1(testStr,start,end,referenceStr){if(end-start!==referenceStr.length){return false}if(start<0||end>testStr.length){return false}for(let i=start;i<end;i++){const referenceCode=referenceStr.charCodeAt(i-start);let testCode=testStr.charCodeAt(i);if(charCodeDefinitions$o.isUppercaseLetter(testCode)){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function findWhiteSpaceStart$1(source,offset){for(;offset>=0;offset--){if(!charCodeDefinitions$o.isWhiteSpace(source.charCodeAt(offset))){break}}return offset+1}function findWhiteSpaceEnd$1(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$o.isWhiteSpace(source.charCodeAt(offset))){break}}return offset}function findDecimalNumberEnd$1(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$o.isDigit(source.charCodeAt(offset))){break}}return offset}function consumeEscaped$1(source,offset){offset+=2;if(charCodeDefinitions$o.isHexDigit(getCharCode$1(source,offset-1))){for(const maxOffset=Math.min(source.length,offset+5);offset<maxOffset;offset++){if(!charCodeDefinitions$o.isHexDigit(getCharCode$1(source,offset))){break}}const code=getCharCode$1(source,offset);if(charCodeDefinitions$o.isWhiteSpace(code)){offset+=getNewlineLength$1(source,offset,code)}}return offset}function consumeName$1(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(charCodeDefinitions$o.isName(code)){continue}if(charCodeDefinitions$o.isValidEscape(code,getCharCode$1(source,offset+1))){offset=consumeEscaped$1(source,offset)-1;continue}break}return offset}function consumeNumber$3(source,offset){let code=source.charCodeAt(offset);if(code===43||code===45){code=source.charCodeAt(offset+=1)}if(charCodeDefinitions$o.isDigit(code)){offset=findDecimalNumberEnd$1(source,offset+1);code=source.charCodeAt(offset)}if(code===46&&charCodeDefinitions$o.isDigit(source.charCodeAt(offset+1))){offset+=2;offset=findDecimalNumberEnd$1(source,offset)}if(cmpChar$1(source,offset,101)){let sign=0;code=source.charCodeAt(offset+1);if(code===45||code===43){sign=1;code=source.charCodeAt(offset+2)}if(charCodeDefinitions$o.isDigit(code)){offset=findDecimalNumberEnd$1(source,offset+1+sign+1)}}return offset}function consumeBadUrlRemnants$1(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(code===41){offset++;break}if(charCodeDefinitions$o.isValidEscape(code,getCharCode$1(source,offset+1))){offset=consumeEscaped$1(source,offset)}}return offset}function decodeEscaped$1(escaped){if(escaped.length===1&&!charCodeDefinitions$o.isHexDigit(escaped.charCodeAt(0))){return escaped[0]}let code=parseInt(escaped,16);if(code===0||code>=55296&&code<=57343||code>1114111){code=65533}return String.fromCodePoint(code)}utils$u.cmpChar=cmpChar$1;utils$u.cmpStr=cmpStr$1;utils$u.consumeBadUrlRemnants=consumeBadUrlRemnants$1;utils$u.consumeEscaped=consumeEscaped$1;utils$u.consumeName=consumeName$1;utils$u.consumeNumber=consumeNumber$3;utils$u.decodeEscaped=decodeEscaped$1;utils$u.findDecimalNumberEnd=findDecimalNumberEnd$1;utils$u.findWhiteSpaceEnd=findWhiteSpaceEnd$1;utils$u.findWhiteSpaceStart=findWhiteSpaceStart$1;utils$u.getNewlineLength=getNewlineLength$1;const tokenNames$1=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token"];var names$g=tokenNames$1;var OffsetToLocation$7={};var adoptBuffer$7={};const MIN_SIZE$1=16*1024;function adoptBuffer$6(buffer=null,size){if(buffer===null||buffer.length<size){return new Uint32Array(Math.max(size+1024,MIN_SIZE$1))}return buffer}adoptBuffer$7.adoptBuffer=adoptBuffer$6;const adoptBuffer$5=adoptBuffer$7;const charCodeDefinitions$n=charCodeDefinitions$p;const N$9=10;const F$5=12;const R$5=13;function computeLinesAndColumns$1(host){const source=host.source;const sourceLength=source.length;const startOffset=source.length>0?charCodeDefinitions$n.isBOM(source.charCodeAt(0)):0;const lines=adoptBuffer$5.adoptBuffer(host.lines,sourceLength);const columns=adoptBuffer$5.adoptBuffer(host.columns,sourceLength);let line=host.startLine;let column=host.startColumn;for(let i=startOffset;i<sourceLength;i++){const code=source.charCodeAt(i);lines[i]=line;columns[i]=column++;if(code===N$9||code===R$5||code===F$5){if(code===R$5&&i+1<sourceLength&&source.charCodeAt(i+1)===N$9){i++;lines[i]=line;columns[i]=column}line++;column=1}}lines[sourceLength]=line;columns[sourceLength]=column;host.lines=lines;host.columns=columns;host.computed=true}class OffsetToLocation$6{constructor(){this.lines=null;this.columns=null;this.computed=false}setSource(source,startOffset=0,startLine=1,startColumn=1){this.source=source;this.startOffset=startOffset;this.startLine=startLine;this.startColumn=startColumn;this.computed=false}getLocation(offset,filename){if(!this.computed){computeLinesAndColumns$1(this)}return{source:filename,offset:this.startOffset+offset,line:this.lines[offset],column:this.columns[offset]}}getLocationRange(start,end,filename){if(!this.computed){computeLinesAndColumns$1(this)}return{source:filename,start:{offset:this.startOffset+start,line:this.lines[start],column:this.columns[start]},end:{offset:this.startOffset+end,line:this.lines[end],column:this.columns[end]}}}}OffsetToLocation$7.OffsetToLocation=OffsetToLocation$6;var TokenStream$9={};const adoptBuffer$4=adoptBuffer$7;const utils$t=utils$u;const names$f=names$g;const types$1H=types$1I;const OFFSET_MASK$1=16777215;const TYPE_SHIFT$1=24;const balancePair$3=new Map([[types$1H.Function,types$1H.RightParenthesis],[types$1H.LeftParenthesis,types$1H.RightParenthesis],[types$1H.LeftSquareBracket,types$1H.RightSquareBracket],[types$1H.LeftCurlyBracket,types$1H.RightCurlyBracket]]);class TokenStream$8{constructor(source,tokenize){this.setSource(source,tokenize)}reset(){this.eof=false;this.tokenIndex=-1;this.tokenType=0;this.tokenStart=this.firstCharOffset;this.tokenEnd=this.firstCharOffset}setSource(source="",tokenize=(()=>{})){source=String(source||"");const sourceLength=source.length;const offsetAndType=adoptBuffer$4.adoptBuffer(this.offsetAndType,source.length+1);const balance=adoptBuffer$4.adoptBuffer(this.balance,source.length+1);let tokenCount=0;let balanceCloseType=0;let balanceStart=0;let firstCharOffset=-1;this.offsetAndType=null;this.balance=null;tokenize(source,((type,start,end)=>{switch(type){default:balance[tokenCount]=sourceLength;break;case balanceCloseType:{let balancePrev=balanceStart&OFFSET_MASK$1;balanceStart=balance[balancePrev];balanceCloseType=balanceStart>>TYPE_SHIFT$1;balance[tokenCount]=balancePrev;balance[balancePrev++]=tokenCount;for(;balancePrev<tokenCount;balancePrev++){if(balance[balancePrev]===sourceLength){balance[balancePrev]=tokenCount}}break}case types$1H.LeftParenthesis:case types$1H.Function:case types$1H.LeftSquareBracket:case types$1H.LeftCurlyBracket:balance[tokenCount]=balanceStart;balanceCloseType=balancePair$3.get(type);balanceStart=balanceCloseType<<TYPE_SHIFT$1|tokenCount;break}offsetAndType[tokenCount++]=type<<TYPE_SHIFT$1|end;if(firstCharOffset===-1){firstCharOffset=start}}));offsetAndType[tokenCount]=types$1H.EOF<<TYPE_SHIFT$1|sourceLength;balance[tokenCount]=sourceLength;balance[sourceLength]=sourceLength;while(balanceStart!==0){const balancePrev=balanceStart&OFFSET_MASK$1;balanceStart=balance[balancePrev];balance[balancePrev]=sourceLength}this.source=source;this.firstCharOffset=firstCharOffset===-1?0:firstCharOffset;this.tokenCount=tokenCount;this.offsetAndType=offsetAndType;this.balance=balance;this.reset();this.next()}lookupType(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset]>>TYPE_SHIFT$1}return types$1H.EOF}lookupOffset(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset-1]&OFFSET_MASK$1}return this.source.length}lookupValue(offset,referenceStr){offset+=this.tokenIndex;if(offset<this.tokenCount){return utils$t.cmpStr(this.source,this.offsetAndType[offset-1]&OFFSET_MASK$1,this.offsetAndType[offset]&OFFSET_MASK$1,referenceStr)}return false}getTokenStart(tokenIndex){if(tokenIndex===this.tokenIndex){return this.tokenStart}if(tokenIndex>0){return tokenIndex<this.tokenCount?this.offsetAndType[tokenIndex-1]&OFFSET_MASK$1:this.offsetAndType[this.tokenCount]&OFFSET_MASK$1}return this.firstCharOffset}substrToCursor(start){return this.source.substring(start,this.tokenStart)}isBalanceEdge(pos){return this.balance[this.tokenIndex]<pos}isDelim(code,offset){if(offset){return this.lookupType(offset)===types$1H.Delim&&this.source.charCodeAt(this.lookupOffset(offset))===code}return this.tokenType===types$1H.Delim&&this.source.charCodeAt(this.tokenStart)===code}skip(tokenCount){let next=this.tokenIndex+tokenCount;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.offsetAndType[next-1]&OFFSET_MASK$1;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT$1;this.tokenEnd=next&OFFSET_MASK$1}else{this.tokenIndex=this.tokenCount;this.next()}}next(){let next=this.tokenIndex+1;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.tokenEnd;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT$1;this.tokenEnd=next&OFFSET_MASK$1}else{this.eof=true;this.tokenIndex=this.tokenCount;this.tokenType=types$1H.EOF;this.tokenStart=this.tokenEnd=this.source.length}}skipSC(){while(this.tokenType===types$1H.WhiteSpace||this.tokenType===types$1H.Comment){this.next()}}skipUntilBalanced(startToken,stopConsume){let cursor=startToken;let balanceEnd;let offset;loop:for(;cursor<this.tokenCount;cursor++){balanceEnd=this.balance[cursor];if(balanceEnd<startToken){break loop}offset=cursor>0?this.offsetAndType[cursor-1]&OFFSET_MASK$1:this.firstCharOffset;switch(stopConsume(this.source.charCodeAt(offset))){case 1:break loop;case 2:cursor++;break loop;default:if(this.balance[balanceEnd]===cursor){cursor=balanceEnd}}}this.skip(cursor-this.tokenIndex)}forEachToken(fn){for(let i=0,offset=this.firstCharOffset;i<this.tokenCount;i++){const start=offset;const item=this.offsetAndType[i];const end=item&OFFSET_MASK$1;const type=item>>TYPE_SHIFT$1;offset=end;fn(type,start,end,i)}}dump(){const tokens=new Array(this.tokenCount);this.forEachToken(((type,start,end,index)=>{tokens[index]={idx:index,type:names$f[type],chunk:this.source.substring(start,end),balance:this.balance[index]}}));return tokens}}TokenStream$9.TokenStream=TokenStream$8;const types$1G=types$1I;const charCodeDefinitions$m=charCodeDefinitions$p;const utils$s=utils$u;const names$e=names$g;const OffsetToLocation$5=OffsetToLocation$7;const TokenStream$7=TokenStream$9;function tokenize$4(source,onToken){function getCharCode(offset){return offset<sourceLength?source.charCodeAt(offset):0}function consumeNumericToken(){offset=utils$s.consumeNumber(source,offset);if(charCodeDefinitions$m.isIdentifierStart(getCharCode(offset),getCharCode(offset+1),getCharCode(offset+2))){type=types$1G.Dimension;offset=utils$s.consumeName(source,offset);return}if(getCharCode(offset)===37){type=types$1G.Percentage;offset++;return}type=types$1G.Number}function consumeIdentLikeToken(){const nameStartOffset=offset;offset=utils$s.consumeName(source,offset);if(utils$s.cmpStr(source,nameStartOffset,offset,"url")&&getCharCode(offset)===40){offset=utils$s.findWhiteSpaceEnd(source,offset+1);if(getCharCode(offset)===34||getCharCode(offset)===39){type=types$1G.Function;offset=nameStartOffset+4;return}consumeUrlToken();return}if(getCharCode(offset)===40){type=types$1G.Function;offset++;return}type=types$1G.Ident}function consumeStringToken(endingCodePoint){if(!endingCodePoint){endingCodePoint=getCharCode(offset++)}type=types$1G.String;for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$m.charCodeCategory(code)){case endingCodePoint:offset++;return;case charCodeDefinitions$m.WhiteSpaceCategory:if(charCodeDefinitions$m.isNewline(code)){offset+=utils$s.getNewlineLength(source,offset,code);type=types$1G.BadString;return}break;case 92:if(offset===source.length-1){break}const nextCode=getCharCode(offset+1);if(charCodeDefinitions$m.isNewline(nextCode)){offset+=utils$s.getNewlineLength(source,offset+1,nextCode)}else if(charCodeDefinitions$m.isValidEscape(code,nextCode)){offset=utils$s.consumeEscaped(source,offset)-1}break}}}function consumeUrlToken(){type=types$1G.Url;offset=utils$s.findWhiteSpaceEnd(source,offset);for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$m.charCodeCategory(code)){case 41:offset++;return;case charCodeDefinitions$m.WhiteSpaceCategory:offset=utils$s.findWhiteSpaceEnd(source,offset);if(getCharCode(offset)===41||offset>=source.length){if(offset<source.length){offset++}return}offset=utils$s.consumeBadUrlRemnants(source,offset);type=types$1G.BadUrl;return;case 34:case 39:case 40:case charCodeDefinitions$m.NonPrintableCategory:offset=utils$s.consumeBadUrlRemnants(source,offset);type=types$1G.BadUrl;return;case 92:if(charCodeDefinitions$m.isValidEscape(code,getCharCode(offset+1))){offset=utils$s.consumeEscaped(source,offset)-1;break}offset=utils$s.consumeBadUrlRemnants(source,offset);type=types$1G.BadUrl;return}}}source=String(source||"");const sourceLength=source.length;let start=charCodeDefinitions$m.isBOM(getCharCode(0));let offset=start;let type;while(offset<sourceLength){const code=source.charCodeAt(offset);switch(charCodeDefinitions$m.charCodeCategory(code)){case charCodeDefinitions$m.WhiteSpaceCategory:type=types$1G.WhiteSpace;offset=utils$s.findWhiteSpaceEnd(source,offset+1);break;case 34:consumeStringToken();break;case 35:if(charCodeDefinitions$m.isName(getCharCode(offset+1))||charCodeDefinitions$m.isValidEscape(getCharCode(offset+1),getCharCode(offset+2))){type=types$1G.Hash;offset=utils$s.consumeName(source,offset+1)}else{type=types$1G.Delim;offset++}break;case 39:consumeStringToken();break;case 40:type=types$1G.LeftParenthesis;offset++;break;case 41:type=types$1G.RightParenthesis;offset++;break;case 43:if(charCodeDefinitions$m.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$1G.Delim;offset++}break;case 44:type=types$1G.Comma;offset++;break;case 45:if(charCodeDefinitions$m.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{if(getCharCode(offset+1)===45&&getCharCode(offset+2)===62){type=types$1G.CDC;offset=offset+3}else{if(charCodeDefinitions$m.isIdentifierStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeIdentLikeToken()}else{type=types$1G.Delim;offset++}}}break;case 46:if(charCodeDefinitions$m.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$1G.Delim;offset++}break;case 47:if(getCharCode(offset+1)===42){type=types$1G.Comment;offset=source.indexOf("*/",offset+2);offset=offset===-1?source.length:offset+2}else{type=types$1G.Delim;offset++}break;case 58:type=types$1G.Colon;offset++;break;case 59:type=types$1G.Semicolon;offset++;break;case 60:if(getCharCode(offset+1)===33&&getCharCode(offset+2)===45&&getCharCode(offset+3)===45){type=types$1G.CDO;offset=offset+4}else{type=types$1G.Delim;offset++}break;case 64:if(charCodeDefinitions$m.isIdentifierStart(getCharCode(offset+1),getCharCode(offset+2),getCharCode(offset+3))){type=types$1G.AtKeyword;offset=utils$s.consumeName(source,offset+1)}else{type=types$1G.Delim;offset++}break;case 91:type=types$1G.LeftSquareBracket;offset++;break;case 92:if(charCodeDefinitions$m.isValidEscape(code,getCharCode(offset+1))){consumeIdentLikeToken()}else{type=types$1G.Delim;offset++}break;case 93:type=types$1G.RightSquareBracket;offset++;break;case 123:type=types$1G.LeftCurlyBracket;offset++;break;case 125:type=types$1G.RightCurlyBracket;offset++;break;case charCodeDefinitions$m.DigitCategory:consumeNumericToken();break;case charCodeDefinitions$m.NameStartCategory:consumeIdentLikeToken();break;default:type=types$1G.Delim;offset++}onToken(type,start,start=offset)}}tokenizer$5.AtKeyword=types$1G.AtKeyword;tokenizer$5.BadString=types$1G.BadString;tokenizer$5.BadUrl=types$1G.BadUrl;tokenizer$5.CDC=types$1G.CDC;tokenizer$5.CDO=types$1G.CDO;tokenizer$5.Colon=types$1G.Colon;tokenizer$5.Comma=types$1G.Comma;tokenizer$5.Comment=types$1G.Comment;tokenizer$5.Delim=types$1G.Delim;tokenizer$5.Dimension=types$1G.Dimension;tokenizer$5.EOF=types$1G.EOF;tokenizer$5.Function=types$1G.Function;tokenizer$5.Hash=types$1G.Hash;tokenizer$5.Ident=types$1G.Ident;tokenizer$5.LeftCurlyBracket=types$1G.LeftCurlyBracket;tokenizer$5.LeftParenthesis=types$1G.LeftParenthesis;tokenizer$5.LeftSquareBracket=types$1G.LeftSquareBracket;tokenizer$5.Number=types$1G.Number;tokenizer$5.Percentage=types$1G.Percentage;tokenizer$5.RightCurlyBracket=types$1G.RightCurlyBracket;tokenizer$5.RightParenthesis=types$1G.RightParenthesis;tokenizer$5.RightSquareBracket=types$1G.RightSquareBracket;tokenizer$5.Semicolon=types$1G.Semicolon;tokenizer$5.String=types$1G.String;tokenizer$5.Url=types$1G.Url;tokenizer$5.WhiteSpace=types$1G.WhiteSpace;tokenizer$5.tokenTypes=types$1G;tokenizer$5.DigitCategory=charCodeDefinitions$m.DigitCategory;tokenizer$5.EofCategory=charCodeDefinitions$m.EofCategory;tokenizer$5.NameStartCategory=charCodeDefinitions$m.NameStartCategory;tokenizer$5.NonPrintableCategory=charCodeDefinitions$m.NonPrintableCategory;tokenizer$5.WhiteSpaceCategory=charCodeDefinitions$m.WhiteSpaceCategory;tokenizer$5.charCodeCategory=charCodeDefinitions$m.charCodeCategory;tokenizer$5.isBOM=charCodeDefinitions$m.isBOM;tokenizer$5.isDigit=charCodeDefinitions$m.isDigit;tokenizer$5.isHexDigit=charCodeDefinitions$m.isHexDigit;tokenizer$5.isIdentifierStart=charCodeDefinitions$m.isIdentifierStart;tokenizer$5.isLetter=charCodeDefinitions$m.isLetter;tokenizer$5.isLowercaseLetter=charCodeDefinitions$m.isLowercaseLetter;tokenizer$5.isName=charCodeDefinitions$m.isName;tokenizer$5.isNameStart=charCodeDefinitions$m.isNameStart;tokenizer$5.isNewline=charCodeDefinitions$m.isNewline;tokenizer$5.isNonAscii=charCodeDefinitions$m.isNonAscii;tokenizer$5.isNonPrintable=charCodeDefinitions$m.isNonPrintable;tokenizer$5.isNumberStart=charCodeDefinitions$m.isNumberStart;tokenizer$5.isUppercaseLetter=charCodeDefinitions$m.isUppercaseLetter;tokenizer$5.isValidEscape=charCodeDefinitions$m.isValidEscape;tokenizer$5.isWhiteSpace=charCodeDefinitions$m.isWhiteSpace;tokenizer$5.cmpChar=utils$s.cmpChar;tokenizer$5.cmpStr=utils$s.cmpStr;tokenizer$5.consumeBadUrlRemnants=utils$s.consumeBadUrlRemnants;tokenizer$5.consumeEscaped=utils$s.consumeEscaped;tokenizer$5.consumeName=utils$s.consumeName;tokenizer$5.consumeNumber=utils$s.consumeNumber;tokenizer$5.decodeEscaped=utils$s.decodeEscaped;tokenizer$5.findDecimalNumberEnd=utils$s.findDecimalNumberEnd;tokenizer$5.findWhiteSpaceEnd=utils$s.findWhiteSpaceEnd;tokenizer$5.findWhiteSpaceStart=utils$s.findWhiteSpaceStart;tokenizer$5.getNewlineLength=utils$s.getNewlineLength;tokenizer$5.tokenNames=names$e;tokenizer$5.OffsetToLocation=OffsetToLocation$5.OffsetToLocation;tokenizer$5.TokenStream=TokenStream$7.TokenStream;tokenizer$5.tokenize=tokenize$4;var create$e={};var List$f={};let releasedCursors$1=null;class List$e{static createItem(data){return{prev:null,next:null,data:data}}constructor(){this.head=null;this.tail=null;this.cursor=null}createItem(data){return List$e.createItem(data)}allocateCursor(prev,next){let cursor;if(releasedCursors$1!==null){cursor=releasedCursors$1;releasedCursors$1=releasedCursors$1.cursor;cursor.prev=prev;cursor.next=next;cursor.cursor=this.cursor}else{cursor={prev:prev,next:next,cursor:this.cursor}}this.cursor=cursor;return cursor}releaseCursor(){const{cursor:cursor}=this;this.cursor=cursor.cursor;cursor.prev=null;cursor.next=null;cursor.cursor=releasedCursors$1;releasedCursors$1=cursor}updateCursors(prevOld,prevNew,nextOld,nextNew){let{cursor:cursor}=this;while(cursor!==null){if(cursor.prev===prevOld){cursor.prev=prevNew}if(cursor.next===nextOld){cursor.next=nextNew}cursor=cursor.cursor}}*[Symbol.iterator](){for(let cursor=this.head;cursor!==null;cursor=cursor.next){yield cursor.data}}get size(){let size=0;for(let cursor=this.head;cursor!==null;cursor=cursor.next){size++}return size}get isEmpty(){return this.head===null}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(array){let cursor=null;this.head=null;for(let data of array){const item=List$e.createItem(data);if(cursor!==null){cursor.next=item}else{this.head=item}item.prev=cursor;cursor=item}this.tail=cursor;return this}toArray(){return[...this]}toJSON(){return[...this]}forEach(fn,thisArg=this){const cursor=this.allocateCursor(null,this.head);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}forEachRight(fn,thisArg=this){const cursor=this.allocateCursor(this.tail,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}reduce(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(null,this.head);let acc=initialValue;let item;while(cursor.next!==null){item=cursor.next;cursor.next=item.next;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}reduceRight(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(this.tail,null);let acc=initialValue;let item;while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}some(fn,thisArg=this){for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){return true}}return false}map(fn,thisArg=this){const result=new List$e;for(let cursor=this.head;cursor!==null;cursor=cursor.next){result.appendData(fn.call(thisArg,cursor.data,cursor,this))}return result}filter(fn,thisArg=this){const result=new List$e;for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){result.appendData(cursor.data)}}return result}nextUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(null,start);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}prevUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(start,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}clear(){this.head=null;this.tail=null}copy(){const result=new List$e;for(let data of this){result.appendData(data)}return result}prepend(item){this.updateCursors(null,item,this.head,item);if(this.head!==null){this.head.prev=item;item.next=this.head}else{this.tail=item}this.head=item;return this}prependData(data){return this.prepend(List$e.createItem(data))}append(item){return this.insert(item)}appendData(data){return this.insert(List$e.createItem(data))}insert(item,before=null){if(before!==null){this.updateCursors(before.prev,item,before,item);if(before.prev===null){if(this.head!==before){throw new Error("before doesn't belong to list")}this.head=item;before.prev=item;item.next=before;this.updateCursors(null,item)}else{before.prev.next=item;item.prev=before.prev;before.prev=item;item.next=before}}else{this.updateCursors(this.tail,item,null,item);if(this.tail!==null){this.tail.next=item;item.prev=this.tail}else{this.head=item}this.tail=item}return this}insertData(data,before){return this.insert(List$e.createItem(data),before)}remove(item){this.updateCursors(item,item.prev,item,item.next);if(item.prev!==null){item.prev.next=item.next}else{if(this.head!==item){throw new Error("item doesn't belong to list")}this.head=item.next}if(item.next!==null){item.next.prev=item.prev}else{if(this.tail!==item){throw new Error("item doesn't belong to list")}this.tail=item.prev}item.prev=null;item.next=null;return item}push(data){this.insert(List$e.createItem(data))}pop(){return this.tail!==null?this.remove(this.tail):null}unshift(data){this.prepend(List$e.createItem(data))}shift(){return this.head!==null?this.remove(this.head):null}prependList(list){return this.insertList(list,this.head)}appendList(list){return this.insertList(list)}insertList(list,before){if(list.head===null){return this}if(before!==undefined&&before!==null){this.updateCursors(before.prev,list.tail,before,list.head);if(before.prev!==null){before.prev.next=list.head;list.head.prev=before.prev}else{this.head=list.head}before.prev=list.tail;list.tail.next=before}else{this.updateCursors(this.tail,list.tail,null,list.head);if(this.tail!==null){this.tail.next=list.head;list.head.prev=this.tail}else{this.head=list.head}this.tail=list.tail}list.head=null;list.tail=null;return this}replace(oldItem,newItemOrList){if("head"in newItemOrList){this.insertList(newItemOrList,oldItem)}else{this.insert(newItemOrList,oldItem)}this.remove(oldItem)}}List$f.List=List$e;var _SyntaxError$3={};var createCustomError$9={};function createCustomError$8(name,message){const error=Object.create(SyntaxError.prototype);const errorStack=new Error;return Object.assign(error,{name:name,message:message,get stack(){return(errorStack.stack||"").replace(/^(.+\n){1,3}/,`${name}: ${message}\n`)}})}createCustomError$9.createCustomError=createCustomError$8;const createCustomError$7=createCustomError$9;const MAX_LINE_LENGTH$1=100;const OFFSET_CORRECTION$1=60;const TAB_REPLACEMENT$1=" ";function sourceFragment$1({source:source,line:line,column:column},extraLines){function processLines(start,end){return lines.slice(start,end).map(((line,idx)=>String(start+idx+1).padStart(maxNumLength)+" |"+line)).join("\n")}const lines=source.split(/\r\n?|\n|\f/);const startLine=Math.max(1,line-extraLines)-1;const endLine=Math.min(line+extraLines,lines.length+1);const maxNumLength=Math.max(4,String(endLine).length)+1;let cutLeft=0;column+=(TAB_REPLACEMENT$1.length-1)*(lines[line-1].substr(0,column-1).match(/\t/g)||[]).length;if(column>MAX_LINE_LENGTH$1){cutLeft=column-OFFSET_CORRECTION$1+3;column=OFFSET_CORRECTION$1-2}for(let i=startLine;i<=endLine;i++){if(i>=0&&i<lines.length){lines[i]=lines[i].replace(/\t/g,TAB_REPLACEMENT$1);lines[i]=(cutLeft>0&&lines[i].length>cutLeft?"…":"")+lines[i].substr(cutLeft,MAX_LINE_LENGTH$1-2)+(lines[i].length>cutLeft+MAX_LINE_LENGTH$1-1?"…":"")}}return[processLines(startLine,line),new Array(column+maxNumLength+2).join("-")+"^",processLines(line,endLine)].filter(Boolean).join("\n")}function SyntaxError$a(message,source,offset,line,column){const error=Object.assign(createCustomError$7.createCustomError("SyntaxError",message),{source:source,offset:offset,line:line,column:column,sourceFragment(extraLines){return sourceFragment$1({source:source,line:line,column:column},isNaN(extraLines)?0:extraLines)},get formattedMessage(){return`Parse error: ${message}\n`+sourceFragment$1({source:source,line:line,column:column},2)}});return error}_SyntaxError$3.SyntaxError=SyntaxError$a;var sequence$3={};const types$1F=types$1I;function readSequence$3(recognizer){const children=this.createList();let space=false;const context={recognizer:recognizer};while(!this.eof){switch(this.tokenType){case types$1F.Comment:this.next();continue;case types$1F.WhiteSpace:space=true;this.next();continue}let child=recognizer.getNode.call(this,context);if(child===undefined){break}if(space){if(recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,child,children,context)}space=false}children.push(child)}if(space&&recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,null,children,context)}return children}sequence$3.readSequence=readSequence$3;const List$d=List$f;const SyntaxError$9=_SyntaxError$3;const index$j=tokenizer$5;const sequence$2=sequence$3;const OffsetToLocation$4=OffsetToLocation$7;const TokenStream$6=TokenStream$9;const utils$r=utils$u;const types$1E=types$1I;const names$d=names$g;const NOOP$1=()=>{};const EXCLAMATIONMARK$7=33;const NUMBERSIGN$9=35;const SEMICOLON$1=59;const LEFTCURLYBRACKET$3=123;const NULL$1=0;function createParseContext$1(name){return function(){return this[name]()}}function fetchParseValues$1(dict){const result=Object.create(null);for(const name in dict){const item=dict[name];const fn=item.parse||item;if(fn){result[name]=fn}}return result}function processConfig$1(config){const parseConfig={context:Object.create(null),scope:Object.assign(Object.create(null),config.scope),atrule:fetchParseValues$1(config.atrule),pseudo:fetchParseValues$1(config.pseudo),node:fetchParseValues$1(config.node)};for(const name in config.parseContext){switch(typeof config.parseContext[name]){case"function":parseConfig.context[name]=config.parseContext[name];break;case"string":parseConfig.context[name]=createParseContext$1(config.parseContext[name]);break}}return{config:parseConfig,...parseConfig,...parseConfig.node}}function createParser$1(config){let source="";let filename="<unknown>";let needPositions=false;let onParseError=NOOP$1;let onParseErrorThrow=false;const locationMap=new OffsetToLocation$4.OffsetToLocation;const parser=Object.assign(new TokenStream$6.TokenStream,processConfig$1(config||{}),{parseAtrulePrelude:true,parseRulePrelude:true,parseValue:true,parseCustomProperty:false,readSequence:sequence$2.readSequence,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(code){return code===LEFTCURLYBRACKET$3?1:0},consumeUntilLeftCurlyBracketOrSemicolon(code){return code===LEFTCURLYBRACKET$3||code===SEMICOLON$1?1:0},consumeUntilExclamationMarkOrSemicolon(code){return code===EXCLAMATIONMARK$7||code===SEMICOLON$1?1:0},consumeUntilSemicolonIncluded(code){return code===SEMICOLON$1?2:0},createList(){return new List$d.List},createSingleNodeList(node){return(new List$d.List).appendData(node)},getFirstListNode(list){return list&&list.first},getLastListNode(list){return list&&list.last},parseWithFallback(consumer,fallback){const startToken=this.tokenIndex;try{return consumer.call(this)}catch(e){if(onParseErrorThrow){throw e}const fallbackNode=fallback.call(this,startToken);onParseErrorThrow=true;onParseError(e,fallbackNode);onParseErrorThrow=false;return fallbackNode}},lookupNonWSType(offset){let type;do{type=this.lookupType(offset++);if(type!==types$1E.WhiteSpace){return type}}while(type!==NULL$1);return NULL$1},charCodeAt(offset){return offset>=0&&offset<source.length?source.charCodeAt(offset):0},substring(offsetStart,offsetEnd){return source.substring(offsetStart,offsetEnd)},substrToCursor(start){return this.source.substring(start,this.tokenStart)},cmpChar(offset,charCode){return utils$r.cmpChar(source,offset,charCode)},cmpStr(offsetStart,offsetEnd,str){return utils$r.cmpStr(source,offsetStart,offsetEnd,str)},consume(tokenType){const start=this.tokenStart;this.eat(tokenType);return this.substrToCursor(start)},consumeFunctionName(){const name=source.substring(this.tokenStart,this.tokenEnd-1);this.eat(types$1E.Function);return name},consumeNumber(type){const number=source.substring(this.tokenStart,utils$r.consumeNumber(source,this.tokenStart));this.eat(type);return number},eat(tokenType){if(this.tokenType!==tokenType){const tokenName=names$d[tokenType].slice(0,-6).replace(/-/g," ").replace(/^./,(m=>m.toUpperCase()));let message=`${/[[\](){}]/.test(tokenName)?`"${tokenName}"`:tokenName} is expected`;let offset=this.tokenStart;switch(tokenType){case types$1E.Ident:if(this.tokenType===types$1E.Function||this.tokenType===types$1E.Url){offset=this.tokenEnd-1;message="Identifier is expected but function found"}else{message="Identifier is expected"}break;case types$1E.Hash:if(this.isDelim(NUMBERSIGN$9)){this.next();offset++;message="Name is expected"}break;case types$1E.Percentage:if(this.tokenType===types$1E.Number){offset=this.tokenEnd;message="Percent sign is expected"}break}this.error(message,offset)}this.next()},eatIdent(name){if(this.tokenType!==types$1E.Ident||this.lookupValue(0,name)===false){this.error(`Identifier "${name}" is expected`)}this.next()},eatDelim(code){if(!this.isDelim(code)){this.error(`Delim "${String.fromCharCode(code)}" is expected`)}this.next()},getLocation(start,end){if(needPositions){return locationMap.getLocationRange(start,end,filename)}return null},getLocationFromList(list){if(needPositions){const head=this.getFirstListNode(list);const tail=this.getLastListNode(list);return locationMap.getLocationRange(head!==null?head.loc.start.offset-locationMap.startOffset:this.tokenStart,tail!==null?tail.loc.end.offset-locationMap.startOffset:this.tokenStart,filename)}return null},error(message,offset){const location=typeof offset!=="undefined"&&offset<source.length?locationMap.getLocation(offset):this.eof?locationMap.getLocation(utils$r.findWhiteSpaceStart(source,source.length-1)):locationMap.getLocation(this.tokenStart);throw new SyntaxError$9.SyntaxError(message||"Unexpected input",source,location.offset,location.line,location.column)}});const parse=function(source_,options){source=source_;options=options||{};parser.setSource(source,index$j.tokenize);locationMap.setSource(source,options.offset,options.line,options.column);filename=options.filename||"<unknown>";needPositions=Boolean(options.positions);onParseError=typeof options.onParseError==="function"?options.onParseError:NOOP$1;onParseErrorThrow=false;parser.parseAtrulePrelude="parseAtrulePrelude"in options?Boolean(options.parseAtrulePrelude):true;parser.parseRulePrelude="parseRulePrelude"in options?Boolean(options.parseRulePrelude):true;parser.parseValue="parseValue"in options?Boolean(options.parseValue):true;parser.parseCustomProperty="parseCustomProperty"in options?Boolean(options.parseCustomProperty):false;const{context:context="default",onComment:onComment}=options;if(context in parser.context===false){throw new Error("Unknown context `"+context+"`")}if(typeof onComment==="function"){parser.forEachToken(((type,start,end)=>{if(type===types$1E.Comment){const loc=parser.getLocation(start,end);const value=utils$r.cmpStr(source,end-2,end,"*/")?source.slice(start+2,end-2):source.slice(start+2,end);onComment(value,loc)}}))}const ast=parser.context[context].call(parser,options);if(!parser.eof){parser.error()}return ast};return Object.assign(parse,{SyntaxError:SyntaxError$9.SyntaxError,config:parser.config})}create$e.createParser=createParser$1;var create$d={};var sourceMap$3={};var sourceMapGenerator={};var base64Vlq={};var base64$1={};var intToCharMap="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");base64$1.encode=function(number){if(0<=number&&number<intToCharMap.length){return intToCharMap[number]}throw new TypeError("Must be between 0 and 63: "+number)};base64$1.decode=function(charCode){var bigA=65;var bigZ=90;var littleA=97;var littleZ=122;var zero=48;var nine=57;var plus=43;var slash=47;var littleOffset=26;var numberOffset=52;if(bigA<=charCode&&charCode<=bigZ){return charCode-bigA}if(littleA<=charCode&&charCode<=littleZ){return charCode-littleA+littleOffset}if(zero<=charCode&&charCode<=nine){return charCode-zero+numberOffset}if(charCode==plus){return 62}if(charCode==slash){return 63}return-1};var base64=base64$1;var VLQ_BASE_SHIFT=5;var VLQ_BASE=1<<VLQ_BASE_SHIFT;var VLQ_BASE_MASK=VLQ_BASE-1;var VLQ_CONTINUATION_BIT=VLQ_BASE;function toVLQSigned(aValue){return aValue<0?(-aValue<<1)+1:(aValue<<1)+0}function fromVLQSigned(aValue){var isNegative=(aValue&1)===1;var shifted=aValue>>1;return isNegative?-shifted:shifted}base64Vlq.encode=function base64VLQ_encode(aValue){var encoded="";var digit;var vlq=toVLQSigned(aValue);do{digit=vlq&VLQ_BASE_MASK;vlq>>>=VLQ_BASE_SHIFT;if(vlq>0){digit|=VLQ_CONTINUATION_BIT}encoded+=base64.encode(digit)}while(vlq>0);return encoded};base64Vlq.decode=function base64VLQ_decode(aStr,aIndex,aOutParam){var strLen=aStr.length;var result=0;var shift=0;var continuation,digit;do{if(aIndex>=strLen){throw new Error("Expected more digits in base 64 VLQ value.")}digit=base64.decode(aStr.charCodeAt(aIndex++));if(digit===-1){throw new Error("Invalid base64 digit: "+aStr.charAt(aIndex-1))}continuation=!!(digit&VLQ_CONTINUATION_BIT);digit&=VLQ_BASE_MASK;result=result+(digit<<shift);shift+=VLQ_BASE_SHIFT}while(continuation);aOutParam.value=fromVLQSigned(result);aOutParam.rest=aIndex};var util$3={};(function(exports){function getArg(aArgs,aName,aDefaultValue){if(aName in aArgs){return aArgs[aName]}else if(arguments.length===3){return aDefaultValue}else{throw new Error('"'+aName+'" is a required argument.')}}exports.getArg=getArg;var urlRegexp=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var dataUrlRegexp=/^data:.+\,.+$/;function urlParse(aUrl){var match=aUrl.match(urlRegexp);if(!match){return null}return{scheme:match[1],auth:match[2],host:match[3],port:match[4],path:match[5]}}exports.urlParse=urlParse;function urlGenerate(aParsedUrl){var url="";if(aParsedUrl.scheme){url+=aParsedUrl.scheme+":"}url+="//";if(aParsedUrl.auth){url+=aParsedUrl.auth+"@"}if(aParsedUrl.host){url+=aParsedUrl.host}if(aParsedUrl.port){url+=":"+aParsedUrl.port}if(aParsedUrl.path){url+=aParsedUrl.path}return url}exports.urlGenerate=urlGenerate;var MAX_CACHED_INPUTS=32;function lruMemoize(f){var cache=[];return function(input){for(var i=0;i<cache.length;i++){if(cache[i].input===input){var temp=cache[0];cache[0]=cache[i];cache[i]=temp;return cache[0].result}}var result=f(input);cache.unshift({input:input,result:result});if(cache.length>MAX_CACHED_INPUTS){cache.pop()}return result}}var normalize=lruMemoize((function normalize(aPath){var path=aPath;var url=urlParse(aPath);if(url){if(!url.path){return aPath}path=url.path}var isAbsolute=exports.isAbsolute(path);var parts=[];var start=0;var i=0;while(true){start=i;i=path.indexOf("/",start);if(i===-1){parts.push(path.slice(start));break}else{parts.push(path.slice(start,i));while(i<path.length&&path[i]==="/"){i++}}}for(var part,up=0,i=parts.length-1;i>=0;i--){part=parts[i];if(part==="."){parts.splice(i,1)}else if(part===".."){up++}else if(up>0){if(part===""){parts.splice(i+1,up);up=0}else{parts.splice(i,2);up--}}}path=parts.join("/");if(path===""){path=isAbsolute?"/":"."}if(url){url.path=path;return urlGenerate(url)}return path}));exports.normalize=normalize;function join(aRoot,aPath){if(aRoot===""){aRoot="."}if(aPath===""){aPath="."}var aPathUrl=urlParse(aPath);var aRootUrl=urlParse(aRoot);if(aRootUrl){aRoot=aRootUrl.path||"/"}if(aPathUrl&&!aPathUrl.scheme){if(aRootUrl){aPathUrl.scheme=aRootUrl.scheme}return urlGenerate(aPathUrl)}if(aPathUrl||aPath.match(dataUrlRegexp)){return aPath}if(aRootUrl&&!aRootUrl.host&&!aRootUrl.path){aRootUrl.host=aPath;return urlGenerate(aRootUrl)}var joined=aPath.charAt(0)==="/"?aPath:normalize(aRoot.replace(/\/+$/,"")+"/"+aPath);if(aRootUrl){aRootUrl.path=joined;return urlGenerate(aRootUrl)}return joined}exports.join=join;exports.isAbsolute=function(aPath){return aPath.charAt(0)==="/"||urlRegexp.test(aPath)};function relative(aRoot,aPath){if(aRoot===""){aRoot="."}aRoot=aRoot.replace(/\/$/,"");var level=0;while(aPath.indexOf(aRoot+"/")!==0){var index=aRoot.lastIndexOf("/");if(index<0){return aPath}aRoot=aRoot.slice(0,index);if(aRoot.match(/^([^\/]+:\/)?\/*$/)){return aPath}++level}return Array(level+1).join("../")+aPath.substr(aRoot.length+1)}exports.relative=relative;var supportsNullProto=function(){var obj=Object.create(null);return!("__proto__"in obj)}();function identity(s){return s}function toSetString(aStr){if(isProtoString(aStr)){return"$"+aStr}return aStr}exports.toSetString=supportsNullProto?identity:toSetString;function fromSetString(aStr){if(isProtoString(aStr)){return aStr.slice(1)}return aStr}exports.fromSetString=supportsNullProto?identity:fromSetString;function isProtoString(s){if(!s){return false}var length=s.length;if(length<9){return false}if(s.charCodeAt(length-1)!==95||s.charCodeAt(length-2)!==95||s.charCodeAt(length-3)!==111||s.charCodeAt(length-4)!==116||s.charCodeAt(length-5)!==111||s.charCodeAt(length-6)!==114||s.charCodeAt(length-7)!==112||s.charCodeAt(length-8)!==95||s.charCodeAt(length-9)!==95){return false}for(var i=length-10;i>=0;i--){if(s.charCodeAt(i)!==36){return false}}return true}function compareByOriginalPositions(mappingA,mappingB,onlyCompareOriginal){var cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByOriginalPositions=compareByOriginalPositions;function compareByOriginalPositionsNoSource(mappingA,mappingB,onlyCompareOriginal){var cmp;cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByOriginalPositionsNoSource=compareByOriginalPositionsNoSource;function compareByGeneratedPositionsDeflated(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function compareByGeneratedPositionsDeflatedNoLine(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsDeflatedNoLine=compareByGeneratedPositionsDeflatedNoLine;function strcmp(aStr1,aStr2){if(aStr1===aStr2){return 0}if(aStr1===null){return 1}if(aStr2===null){return-1}if(aStr1>aStr2){return 1}return-1}function compareByGeneratedPositionsInflated(mappingA,mappingB){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp}return strcmp(mappingA.name,mappingB.name)}exports.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(str){return JSON.parse(str.replace(/^\)]}'[^\n]*\n/,""))}exports.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(sourceRoot,sourceURL,sourceMapURL){sourceURL=sourceURL||"";if(sourceRoot){if(sourceRoot[sourceRoot.length-1]!=="/"&&sourceURL[0]!=="/"){sourceRoot+="/"}sourceURL=sourceRoot+sourceURL}if(sourceMapURL){var parsed=urlParse(sourceMapURL);if(!parsed){throw new Error("sourceMapURL could not be parsed")}if(parsed.path){var index=parsed.path.lastIndexOf("/");if(index>=0){parsed.path=parsed.path.substring(0,index+1)}}sourceURL=join(urlGenerate(parsed),sourceURL)}return normalize(sourceURL)}exports.computeSourceURL=computeSourceURL})(util$3);var arraySet={};var util$2=util$3;var has=Object.prototype.hasOwnProperty;var hasNativeMap=typeof Map!=="undefined";function ArraySet$1(){this._array=[];this._set=hasNativeMap?new Map:Object.create(null)}ArraySet$1.fromArray=function ArraySet_fromArray(aArray,aAllowDuplicates){var set=new ArraySet$1;for(var i=0,len=aArray.length;i<len;i++){set.add(aArray[i],aAllowDuplicates)}return set};ArraySet$1.prototype.size=function ArraySet_size(){return hasNativeMap?this._set.size:Object.getOwnPropertyNames(this._set).length};ArraySet$1.prototype.add=function ArraySet_add(aStr,aAllowDuplicates){var sStr=hasNativeMap?aStr:util$2.toSetString(aStr);var isDuplicate=hasNativeMap?this.has(aStr):has.call(this._set,sStr);var idx=this._array.length;if(!isDuplicate||aAllowDuplicates){this._array.push(aStr)}if(!isDuplicate){if(hasNativeMap){this._set.set(aStr,idx)}else{this._set[sStr]=idx}}};ArraySet$1.prototype.has=function ArraySet_has(aStr){if(hasNativeMap){return this._set.has(aStr)}else{var sStr=util$2.toSetString(aStr);return has.call(this._set,sStr)}};ArraySet$1.prototype.indexOf=function ArraySet_indexOf(aStr){if(hasNativeMap){var idx=this._set.get(aStr);if(idx>=0){return idx}}else{var sStr=util$2.toSetString(aStr);if(has.call(this._set,sStr)){return this._set[sStr]}}throw new Error('"'+aStr+'" is not in the set.')};ArraySet$1.prototype.at=function ArraySet_at(aIdx){if(aIdx>=0&&aIdx<this._array.length){return this._array[aIdx]}throw new Error("No element indexed by "+aIdx)};ArraySet$1.prototype.toArray=function ArraySet_toArray(){return this._array.slice()};arraySet.ArraySet=ArraySet$1;var mappingList={};var util$1=util$3;function generatedPositionAfter(mappingA,mappingB){var lineA=mappingA.generatedLine;var lineB=mappingB.generatedLine;var columnA=mappingA.generatedColumn;var columnB=mappingB.generatedColumn;return lineB>lineA||lineB==lineA&&columnB>=columnA||util$1.compareByGeneratedPositionsInflated(mappingA,mappingB)<=0}function MappingList$1(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList$1.prototype.unsortedForEach=function MappingList_forEach(aCallback,aThisArg){this._array.forEach(aCallback,aThisArg)};MappingList$1.prototype.add=function MappingList_add(aMapping){if(generatedPositionAfter(this._last,aMapping)){this._last=aMapping;this._array.push(aMapping)}else{this._sorted=false;this._array.push(aMapping)}};MappingList$1.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(util$1.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};mappingList.MappingList=MappingList$1;var base64VLQ=base64Vlq;var util=util$3;var ArraySet=arraySet.ArraySet;var MappingList=mappingList.MappingList;function SourceMapGenerator(aArgs){if(!aArgs){aArgs={}}this._file=util.getArg(aArgs,"file",null);this._sourceRoot=util.getArg(aArgs,"sourceRoot",null);this._skipValidation=util.getArg(aArgs,"skipValidation",false);this._sources=new ArraySet;this._names=new ArraySet;this._mappings=new MappingList;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(aSourceMapConsumer){var sourceRoot=aSourceMapConsumer.sourceRoot;var generator=new SourceMapGenerator({file:aSourceMapConsumer.file,sourceRoot:sourceRoot});aSourceMapConsumer.eachMapping((function(mapping){var newMapping={generated:{line:mapping.generatedLine,column:mapping.generatedColumn}};if(mapping.source!=null){newMapping.source=mapping.source;if(sourceRoot!=null){newMapping.source=util.relative(sourceRoot,newMapping.source)}newMapping.original={line:mapping.originalLine,column:mapping.originalColumn};if(mapping.name!=null){newMapping.name=mapping.name}}generator.addMapping(newMapping)}));aSourceMapConsumer.sources.forEach((function(sourceFile){var sourceRelative=sourceFile;if(sourceRoot!==null){sourceRelative=util.relative(sourceRoot,sourceFile)}if(!generator._sources.has(sourceRelative)){generator._sources.add(sourceRelative)}var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){generator.setSourceContent(sourceFile,content)}}));return generator};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(aArgs){var generated=util.getArg(aArgs,"generated");var original=util.getArg(aArgs,"original",null);var source=util.getArg(aArgs,"source",null);var name=util.getArg(aArgs,"name",null);if(!this._skipValidation){this._validateMapping(generated,original,source,name)}if(source!=null){source=String(source);if(!this._sources.has(source)){this._sources.add(source)}}if(name!=null){name=String(name);if(!this._names.has(name)){this._names.add(name)}}this._mappings.add({generatedLine:generated.line,generatedColumn:generated.column,originalLine:original!=null&&original.line,originalColumn:original!=null&&original.column,source:source,name:name})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(aSourceFile,aSourceContent){var source=aSourceFile;if(this._sourceRoot!=null){source=util.relative(this._sourceRoot,source)}if(aSourceContent!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[util.toSetString(source)]=aSourceContent}else if(this._sourcesContents){delete this._sourcesContents[util.toSetString(source)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(aSourceMapConsumer,aSourceFile,aSourceMapPath){var sourceFile=aSourceFile;if(aSourceFile==null){if(aSourceMapConsumer.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}sourceFile=aSourceMapConsumer.file}var sourceRoot=this._sourceRoot;if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}var newSources=new ArraySet;var newNames=new ArraySet;this._mappings.unsortedForEach((function(mapping){if(mapping.source===sourceFile&&mapping.originalLine!=null){var original=aSourceMapConsumer.originalPositionFor({line:mapping.originalLine,column:mapping.originalColumn});if(original.source!=null){mapping.source=original.source;if(aSourceMapPath!=null){mapping.source=util.join(aSourceMapPath,mapping.source)}if(sourceRoot!=null){mapping.source=util.relative(sourceRoot,mapping.source)}mapping.originalLine=original.line;mapping.originalColumn=original.column;if(original.name!=null){mapping.name=original.name}}}var source=mapping.source;if(source!=null&&!newSources.has(source)){newSources.add(source)}var name=mapping.name;if(name!=null&&!newNames.has(name)){newNames.add(name)}}),this);this._sources=newSources;this._names=newNames;aSourceMapConsumer.sources.forEach((function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){if(aSourceMapPath!=null){sourceFile=util.join(aSourceMapPath,sourceFile)}if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile)}this.setSourceContent(sourceFile,content)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(aGenerated,aOriginal,aSource,aName){if(aOriginal&&typeof aOriginal.line!=="number"&&typeof aOriginal.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aGenerated.line>0&&aGenerated.column>=0&&!aOriginal&&!aSource&&!aName){return}else if(aGenerated&&"line"in aGenerated&&"column"in aGenerated&&aOriginal&&"line"in aOriginal&&"column"in aOriginal&&aGenerated.line>0&&aGenerated.column>=0&&aOriginal.line>0&&aOriginal.column>=0&&aSource){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:aGenerated,source:aSource,original:aOriginal,name:aName}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var previousGeneratedColumn=0;var previousGeneratedLine=1;var previousOriginalColumn=0;var previousOriginalLine=0;var previousName=0;var previousSource=0;var result="";var next;var mapping;var nameIdx;var sourceIdx;var mappings=this._mappings.toArray();for(var i=0,len=mappings.length;i<len;i++){mapping=mappings[i];next="";if(mapping.generatedLine!==previousGeneratedLine){previousGeneratedColumn=0;while(mapping.generatedLine!==previousGeneratedLine){next+=";";previousGeneratedLine++}}else{if(i>0){if(!util.compareByGeneratedPositionsInflated(mapping,mappings[i-1])){continue}next+=","}}next+=base64VLQ.encode(mapping.generatedColumn-previousGeneratedColumn);previousGeneratedColumn=mapping.generatedColumn;if(mapping.source!=null){sourceIdx=this._sources.indexOf(mapping.source);next+=base64VLQ.encode(sourceIdx-previousSource);previousSource=sourceIdx;next+=base64VLQ.encode(mapping.originalLine-1-previousOriginalLine);previousOriginalLine=mapping.originalLine-1;next+=base64VLQ.encode(mapping.originalColumn-previousOriginalColumn);previousOriginalColumn=mapping.originalColumn;if(mapping.name!=null){nameIdx=this._names.indexOf(mapping.name);next+=base64VLQ.encode(nameIdx-previousName);previousName=nameIdx}}result+=next}return result};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(aSources,aSourceRoot){return aSources.map((function(source){if(!this._sourcesContents){return null}if(aSourceRoot!=null){source=util.relative(aSourceRoot,source)}var key=util.toSetString(source);return Object.prototype.hasOwnProperty.call(this._sourcesContents,key)?this._sourcesContents[key]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var map={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){map.file=this._file}if(this._sourceRoot!=null){map.sourceRoot=this._sourceRoot}if(this._sourcesContents){map.sourcesContent=this._generateSourcesContent(map.sources,map.sourceRoot)}return map};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};sourceMapGenerator.SourceMapGenerator=SourceMapGenerator;const sourceMapGenerator_js$1=sourceMapGenerator;const trackNodes$1=new Set(["Atrule","Selector","Declaration"]);function generateSourceMap$1(handlers){const map=new sourceMapGenerator_js$1.SourceMapGenerator;const generated={line:1,column:0};const original={line:0,column:0};const activatedGenerated={line:1,column:0};const activatedMapping={generated:activatedGenerated};let line=1;let column=0;let sourceMappingActive=false;const origHandlersNode=handlers.node;handlers.node=function(node){if(node.loc&&node.loc.start&&trackNodes$1.has(node.type)){const nodeLine=node.loc.start.line;const nodeColumn=node.loc.start.column-1;if(original.line!==nodeLine||original.column!==nodeColumn){original.line=nodeLine;original.column=nodeColumn;generated.line=line;generated.column=column;if(sourceMappingActive){sourceMappingActive=false;if(generated.line!==activatedGenerated.line||generated.column!==activatedGenerated.column){map.addMapping(activatedMapping)}}sourceMappingActive=true;map.addMapping({source:node.loc.source,original:original,generated:generated})}}origHandlersNode.call(this,node);if(sourceMappingActive&&trackNodes$1.has(node.type)){activatedGenerated.line=line;activatedGenerated.column=column}};const origHandlersEmit=handlers.emit;handlers.emit=function(value,type,auto){for(let i=0;i<value.length;i++){if(value.charCodeAt(i)===10){line++;column=0}else{column++}}origHandlersEmit(value,type,auto)};const origHandlersResult=handlers.result;handlers.result=function(){if(sourceMappingActive){map.addMapping(activatedMapping)}return{css:origHandlersResult(),map:map}};return handlers}sourceMap$3.generateSourceMap=generateSourceMap$1;var tokenBefore$3={};const types$1D=types$1I;const PLUSSIGN$j=43;const HYPHENMINUS$d=45;const code$1=(type,value)=>{if(type===types$1D.Delim){type=value}if(typeof type==="string"){const charCode=type.charCodeAt(0);return charCode>127?32768:charCode<<8}return type};const specPairs$1=[[types$1D.Ident,types$1D.Ident],[types$1D.Ident,types$1D.Function],[types$1D.Ident,types$1D.Url],[types$1D.Ident,types$1D.BadUrl],[types$1D.Ident,"-"],[types$1D.Ident,types$1D.Number],[types$1D.Ident,types$1D.Percentage],[types$1D.Ident,types$1D.Dimension],[types$1D.Ident,types$1D.CDC],[types$1D.Ident,types$1D.LeftParenthesis],[types$1D.AtKeyword,types$1D.Ident],[types$1D.AtKeyword,types$1D.Function],[types$1D.AtKeyword,types$1D.Url],[types$1D.AtKeyword,types$1D.BadUrl],[types$1D.AtKeyword,"-"],[types$1D.AtKeyword,types$1D.Number],[types$1D.AtKeyword,types$1D.Percentage],[types$1D.AtKeyword,types$1D.Dimension],[types$1D.AtKeyword,types$1D.CDC],[types$1D.Hash,types$1D.Ident],[types$1D.Hash,types$1D.Function],[types$1D.Hash,types$1D.Url],[types$1D.Hash,types$1D.BadUrl],[types$1D.Hash,"-"],[types$1D.Hash,types$1D.Number],[types$1D.Hash,types$1D.Percentage],[types$1D.Hash,types$1D.Dimension],[types$1D.Hash,types$1D.CDC],[types$1D.Dimension,types$1D.Ident],[types$1D.Dimension,types$1D.Function],[types$1D.Dimension,types$1D.Url],[types$1D.Dimension,types$1D.BadUrl],[types$1D.Dimension,"-"],[types$1D.Dimension,types$1D.Number],[types$1D.Dimension,types$1D.Percentage],[types$1D.Dimension,types$1D.Dimension],[types$1D.Dimension,types$1D.CDC],["#",types$1D.Ident],["#",types$1D.Function],["#",types$1D.Url],["#",types$1D.BadUrl],["#","-"],["#",types$1D.Number],["#",types$1D.Percentage],["#",types$1D.Dimension],["#",types$1D.CDC],["-",types$1D.Ident],["-",types$1D.Function],["-",types$1D.Url],["-",types$1D.BadUrl],["-","-"],["-",types$1D.Number],["-",types$1D.Percentage],["-",types$1D.Dimension],["-",types$1D.CDC],[types$1D.Number,types$1D.Ident],[types$1D.Number,types$1D.Function],[types$1D.Number,types$1D.Url],[types$1D.Number,types$1D.BadUrl],[types$1D.Number,types$1D.Number],[types$1D.Number,types$1D.Percentage],[types$1D.Number,types$1D.Dimension],[types$1D.Number,"%"],[types$1D.Number,types$1D.CDC],["@",types$1D.Ident],["@",types$1D.Function],["@",types$1D.Url],["@",types$1D.BadUrl],["@","-"],["@",types$1D.CDC],[".",types$1D.Number],[".",types$1D.Percentage],[".",types$1D.Dimension],["+",types$1D.Number],["+",types$1D.Percentage],["+",types$1D.Dimension],["/","*"]];const safePairs$1=specPairs$1.concat([[types$1D.Ident,types$1D.Hash],[types$1D.Dimension,types$1D.Hash],[types$1D.Hash,types$1D.Hash],[types$1D.AtKeyword,types$1D.LeftParenthesis],[types$1D.AtKeyword,types$1D.String],[types$1D.AtKeyword,types$1D.Colon],[types$1D.Percentage,types$1D.Percentage],[types$1D.Percentage,types$1D.Dimension],[types$1D.Percentage,types$1D.Function],[types$1D.Percentage,"-"],[types$1D.RightParenthesis,types$1D.Ident],[types$1D.RightParenthesis,types$1D.Function],[types$1D.RightParenthesis,types$1D.Percentage],[types$1D.RightParenthesis,types$1D.Dimension],[types$1D.RightParenthesis,types$1D.Hash],[types$1D.RightParenthesis,"-"]]);function createMap$1(pairs){const isWhiteSpaceRequired=new Set(pairs.map((([prev,next])=>code$1(prev)<<16|code$1(next))));return function(prevCode,type,value){const nextCode=code$1(type,value);const nextCharCode=value.charCodeAt(0);const emitWs=nextCharCode===HYPHENMINUS$d&&type!==types$1D.Ident&&type!==types$1D.Function&&type!==types$1D.CDC||nextCharCode===PLUSSIGN$j?isWhiteSpaceRequired.has(prevCode<<16|nextCharCode<<8):isWhiteSpaceRequired.has(prevCode<<16|nextCode);if(emitWs){this.emit(" ",types$1D.WhiteSpace,true)}return nextCode}}const spec$1=createMap$1(specPairs$1);const safe$1=createMap$1(safePairs$1);tokenBefore$3.safe=safe$1;tokenBefore$3.spec=spec$1;const index$i=tokenizer$5;const sourceMap$2=sourceMap$3;const tokenBefore$2=tokenBefore$3;const types$1C=types$1I;const REVERSESOLIDUS$1=92;function processChildren$1(node,delimeter){if(typeof delimeter==="function"){let prev=null;node.children.forEach((node=>{if(prev!==null){delimeter.call(this,prev)}this.node(node);prev=node}));return}node.children.forEach(this.node,this)}function processChunk$1(chunk){index$i.tokenize(chunk,((type,start,end)=>{this.token(type,chunk.slice(start,end))}))}function createGenerator$1(config){const types$1=new Map;for(let name in config.node){const item=config.node[name];const fn=item.generate||item;if(typeof fn==="function"){types$1.set(name,item.generate||item)}}return function(node,options){let buffer="";let prevCode=0;let handlers={node(node){if(types$1.has(node.type)){types$1.get(node.type).call(publicApi,node)}else{throw new Error("Unknown node type: "+node.type)}},tokenBefore:tokenBefore$2.safe,token(type,value){prevCode=this.tokenBefore(prevCode,type,value);this.emit(value,type,false);if(type===types$1C.Delim&&value.charCodeAt(0)===REVERSESOLIDUS$1){this.emit("\n",types$1C.WhiteSpace,true)}},emit(value){buffer+=value},result(){return buffer}};if(options){if(typeof options.decorator==="function"){handlers=options.decorator(handlers)}if(options.sourceMap){handlers=sourceMap$2.generateSourceMap(handlers)}if(options.mode in tokenBefore$2){handlers.tokenBefore=tokenBefore$2[options.mode]}}const publicApi={node:node=>handlers.node(node),children:processChildren$1,token:(type,value)=>handlers.token(type,value),tokenize:processChunk$1};handlers.node(node);return handlers.result()}}create$d.createGenerator=createGenerator$1;var create$c={};const List$c=List$f;function createConvertor$1(walk){return{fromPlainObject(ast){walk(ast,{enter(node){if(node.children&&node.children instanceof List$c.List===false){node.children=(new List$c.List).fromArray(node.children)}}});return ast},toPlainObject(ast){walk(ast,{leave(node){if(node.children&&node.children instanceof List$c.List){node.children=node.children.toArray()}}});return ast}}}create$c.createConvertor=createConvertor$1;var create$b={};const{hasOwnProperty:hasOwnProperty$b}=Object.prototype;const noop$5=function(){};function ensureFunction$3(value){return typeof value==="function"?value:noop$5}function invokeForType$1(fn,type){return function(node,item,list){if(node.type===type){fn.call(this,node,item,list)}}}function getWalkersFromStructure$1(name,nodeType){const structure=nodeType.structure;const walkers=[];for(const key in structure){if(hasOwnProperty$b.call(structure,key)===false){continue}let fieldTypes=structure[key];const walker={name:key,type:false,nullable:false};if(!Array.isArray(fieldTypes)){fieldTypes=[fieldTypes]}for(const fieldType of fieldTypes){if(fieldType===null){walker.nullable=true}else if(typeof fieldType==="string"){walker.type="node"}else if(Array.isArray(fieldType)){walker.type="list"}}if(walker.type){walkers.push(walker)}}if(walkers.length){return{context:nodeType.walkContext,fields:walkers}}return null}function getTypesFromConfig$1(config){const types={};for(const name in config.node){if(hasOwnProperty$b.call(config.node,name)){const nodeType=config.node[name];if(!nodeType.structure){throw new Error("Missed `structure` field in `"+name+"` node type definition")}types[name]=getWalkersFromStructure$1(name,nodeType)}}return types}function createTypeIterator$1(config,reverse){const fields=config.fields.slice();const contextName=config.context;const useContext=typeof contextName==="string";if(reverse){fields.reverse()}return function(node,context,walk,walkReducer){let prevContextValue;if(useContext){prevContextValue=context[contextName];context[contextName]=node}for(const field of fields){const ref=node[field.name];if(!field.nullable||ref){if(field.type==="list"){const breakWalk=reverse?ref.reduceRight(walkReducer,false):ref.reduce(walkReducer,false);if(breakWalk){return true}}else if(walk(ref)){return true}}}if(useContext){context[contextName]=prevContextValue}}}function createFastTraveralMap$1({StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}){return{Atrule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Rule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Declaration:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}}}function createWalker$1(config){const types=getTypesFromConfig$1(config);const iteratorsNatural={};const iteratorsReverse={};const breakWalk=Symbol("break-walk");const skipNode=Symbol("skip-node");for(const name in types){if(hasOwnProperty$b.call(types,name)&&types[name]!==null){iteratorsNatural[name]=createTypeIterator$1(types[name],false);iteratorsReverse[name]=createTypeIterator$1(types[name],true)}}const fastTraversalIteratorsNatural=createFastTraveralMap$1(iteratorsNatural);const fastTraversalIteratorsReverse=createFastTraveralMap$1(iteratorsReverse);const walk=function(root,options){function walkNode(node,item,list){const enterRet=enter.call(context,node,item,list);if(enterRet===breakWalk){return true}if(enterRet===skipNode){return false}if(iterators.hasOwnProperty(node.type)){if(iterators[node.type](node,context,walkNode,walkReducer)){return true}}if(leave.call(context,node,item,list)===breakWalk){return true}return false}let enter=noop$5;let leave=noop$5;let iterators=iteratorsNatural;let walkReducer=(ret,data,item,list)=>ret||walkNode(data,item,list);const context={break:breakWalk,skip:skipNode,root:root,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction$3(options.enter);leave=ensureFunction$3(options.leave);if(options.reverse){iterators=iteratorsReverse}if(options.visit){if(fastTraversalIteratorsNatural.hasOwnProperty(options.visit)){iterators=options.reverse?fastTraversalIteratorsReverse[options.visit]:fastTraversalIteratorsNatural[options.visit]}else if(!types.hasOwnProperty(options.visit)){throw new Error("Bad value `"+options.visit+"` for `visit` option (should be: "+Object.keys(types).sort().join(", ")+")")}enter=invokeForType$1(enter,options.visit);leave=invokeForType$1(leave,options.visit)}}if(enter===noop$5&&leave===noop$5){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walkNode(root)};walk.break=breakWalk;walk.skip=skipNode;walk.find=function(ast,fn){let found=null;walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}));return found};walk.findLast=function(ast,fn){let found=null;walk(ast,{reverse:true,enter(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}});return found};walk.findAll=function(ast,fn){const found=[];walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found.push(node)}}));return found};return walk}create$b.createWalker=createWalker$1;var Lexer$7={};var error$4={};var generate$1u={};function noop$4(value){return value}function generateMultiplier$1(multiplier){const{min:min,max:max,comma:comma}=multiplier;if(min===0&&max===0){return comma?"#?":"*"}if(min===0&&max===1){return"?"}if(min===1&&max===0){return comma?"#":"+"}if(min===1&&max===1){return""}return(comma?"#":"")+(min===max?"{"+min+"}":"{"+min+","+(max!==0?max:"")+"}")}function generateTypeOpts$1(node){switch(node.type){case"Range":return" ["+(node.min===null?"-∞":node.min)+","+(node.max===null?"∞":node.max)+"]";default:throw new Error("Unknown node type `"+node.type+"`")}}function generateSequence$1(node,decorate,forceBraces,compact){const combinator=node.combinator===" "||compact?node.combinator:" "+node.combinator+" ";const result=node.terms.map((term=>internalGenerate$1(term,decorate,forceBraces,compact))).join(combinator);if(node.explicit||forceBraces){return(compact||result[0]===","?"[":"[ ")+result+(compact?"]":" ]")}return result}function internalGenerate$1(node,decorate,forceBraces,compact){let result;switch(node.type){case"Group":result=generateSequence$1(node,decorate,forceBraces,compact)+(node.disallowEmpty?"!":"");break;case"Multiplier":return internalGenerate$1(node.term,decorate,forceBraces,compact)+decorate(generateMultiplier$1(node),node);case"Type":result="<"+node.name+(node.opts?decorate(generateTypeOpts$1(node.opts),node.opts):"")+">";break;case"Property":result="<'"+node.name+"'>";break;case"Keyword":result=node.name;break;case"AtKeyword":result="@"+node.name;break;case"Function":result=node.name+"(";break;case"String":case"Token":result=node.value;break;case"Comma":result=",";break;default:throw new Error("Unknown node type `"+node.type+"`")}return decorate(result,node)}function generate$1t(node,options){let decorate=noop$4;let forceBraces=false;let compact=false;if(typeof options==="function"){decorate=options}else if(options){forceBraces=Boolean(options.forceBraces);compact=Boolean(options.compact);if(typeof options.decorate==="function"){decorate=options.decorate}}return internalGenerate$1(node,decorate,forceBraces,compact)}generate$1u.generate=generate$1t;const createCustomError$6=createCustomError$9;const generate$1s=generate$1u;const defaultLoc$1={offset:0,line:1,column:1};function locateMismatch$1(matchResult,node){const tokens=matchResult.tokens;const longestMatch=matchResult.longestMatch;const mismatchNode=longestMatch<tokens.length?tokens[longestMatch].node||null:null;const badNode=mismatchNode!==node?mismatchNode:null;let mismatchOffset=0;let mismatchLength=0;let entries=0;let css="";let start;let end;for(let i=0;i<tokens.length;i++){const token=tokens[i].value;if(i===longestMatch){mismatchLength=token.length;mismatchOffset=css.length}if(badNode!==null&&tokens[i].node===badNode){if(i<=longestMatch){entries++}else{entries=0}}css+=token}if(longestMatch===tokens.length||entries>1){start=fromLoc$1(badNode||node,"end")||buildLoc$1(defaultLoc$1,css);end=buildLoc$1(start)}else{start=fromLoc$1(badNode,"start")||buildLoc$1(fromLoc$1(node,"start")||defaultLoc$1,css.slice(0,mismatchOffset));end=fromLoc$1(badNode,"end")||buildLoc$1(start,css.substr(mismatchOffset,mismatchLength))}return{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}}function fromLoc$1(node,point){const value=node&&node.loc&&node.loc[point];if(value){return"line"in value?buildLoc$1(value):value}return null}function buildLoc$1({offset:offset,line:line,column:column},extra){const loc={offset:offset,line:line,column:column};if(extra){const lines=extra.split(/\n|\r\n?|\f/);loc.offset+=extra.length;loc.line+=lines.length-1;loc.column=lines.length===1?loc.column+extra.length:lines.pop().length+1}return loc}const SyntaxReferenceError$1=function(type,referenceName){const error=createCustomError$6.createCustomError("SyntaxReferenceError",type+(referenceName?" `"+referenceName+"`":""));error.reference=referenceName;return error};const SyntaxMatchError$1=function(message,syntax,node,matchResult){const error=createCustomError$6.createCustomError("SyntaxMatchError",message);const{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}=locateMismatch$1(matchResult,node);error.rawMessage=message;error.syntax=syntax?generate$1s.generate(syntax):"<generic>";error.css=css;error.mismatchOffset=mismatchOffset;error.mismatchLength=mismatchLength;error.message=message+"\n"+" syntax: "+error.syntax+"\n"+" value: "+(css||"<empty string>")+"\n"+" --------"+new Array(error.mismatchOffset+1).join("-")+"^";Object.assign(error,start);error.loc={source:node&&node.loc&&node.loc.source||"<unknown>",start:start,end:end};return error};error$4.SyntaxMatchError=SyntaxMatchError$1;error$4.SyntaxReferenceError=SyntaxReferenceError$1;var names$c={};const keywords$1=new Map;const properties$1=new Map;const HYPHENMINUS$c=45;const keyword$1=getKeywordDescriptor$1;const property$1=getPropertyDescriptor$1;const vendorPrefix$1=getVendorPrefix$1;function isCustomProperty$1(str,offset){offset=offset||0;return str.length-offset>=2&&str.charCodeAt(offset)===HYPHENMINUS$c&&str.charCodeAt(offset+1)===HYPHENMINUS$c}function getVendorPrefix$1(str,offset){offset=offset||0;if(str.length-offset>=3){if(str.charCodeAt(offset)===HYPHENMINUS$c&&str.charCodeAt(offset+1)!==HYPHENMINUS$c){const secondDashIndex=str.indexOf("-",offset+2);if(secondDashIndex!==-1){return str.substring(offset,secondDashIndex+1)}}}return""}function getKeywordDescriptor$1(keyword){if(keywords$1.has(keyword)){return keywords$1.get(keyword)}const name=keyword.toLowerCase();let descriptor=keywords$1.get(name);if(descriptor===undefined){const custom=isCustomProperty$1(name,0);const vendor=!custom?getVendorPrefix$1(name,0):"";descriptor=Object.freeze({basename:name.substr(vendor.length),name:name,prefix:vendor,vendor:vendor,custom:custom})}keywords$1.set(keyword,descriptor);return descriptor}function getPropertyDescriptor$1(property){if(properties$1.has(property)){return properties$1.get(property)}let name=property;let hack=property[0];if(hack==="/"){hack=property[1]==="/"?"//":"/"}else if(hack!=="_"&&hack!=="*"&&hack!=="$"&&hack!=="#"&&hack!=="+"&&hack!=="&"){hack=""}const custom=isCustomProperty$1(name,hack.length);if(!custom){name=name.toLowerCase();if(properties$1.has(name)){const descriptor=properties$1.get(name);properties$1.set(property,descriptor);return descriptor}}const vendor=!custom?getVendorPrefix$1(name,hack.length):"";const prefix=name.substr(0,hack.length+vendor.length);const descriptor=Object.freeze({basename:name.substr(prefix.length),name:name.substr(hack.length),hack:hack,vendor:vendor,prefix:prefix,custom:custom});properties$1.set(property,descriptor);return descriptor}names$c.isCustomProperty=isCustomProperty$1;names$c.keyword=keyword$1;names$c.property=property$1;names$c.vendorPrefix=vendorPrefix$1;var genericConst$5={};const cssWideKeywords$1=["initial","inherit","unset","revert","revert-layer"];genericConst$5.cssWideKeywords=cssWideKeywords$1;var generic$3={};const charCodeDefinitions$l=charCodeDefinitions$p;const types$1B=types$1I;const utils$q=utils$u;const PLUSSIGN$i=43;const HYPHENMINUS$b=45;const N$8=110;const DISALLOW_SIGN$3=true;const ALLOW_SIGN$3=false;function isDelim$3(token,code){return token!==null&&token.type===types$1B.Delim&&token.value.charCodeAt(0)===code}function skipSC$1(token,offset,getNextToken){while(token!==null&&(token.type===types$1B.WhiteSpace||token.type===types$1B.Comment)){token=getNextToken(++offset)}return offset}function checkInteger$3(token,valueOffset,disallowSign,offset){if(!token){return 0}const code=token.value.charCodeAt(valueOffset);if(code===PLUSSIGN$i||code===HYPHENMINUS$b){if(disallowSign){return 0}valueOffset++}for(;valueOffset<token.value.length;valueOffset++){if(!charCodeDefinitions$l.isDigit(token.value.charCodeAt(valueOffset))){return 0}}return offset+1}function consumeB$3(token,offset_,getNextToken){let sign=false;let offset=skipSC$1(token,offset_,getNextToken);token=getNextToken(offset);if(token===null){return offset_}if(token.type!==types$1B.Number){if(isDelim$3(token,PLUSSIGN$i)||isDelim$3(token,HYPHENMINUS$b)){sign=true;offset=skipSC$1(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);if(token===null||token.type!==types$1B.Number){return 0}}else{return offset_}}if(!sign){const code=token.value.charCodeAt(0);if(code!==PLUSSIGN$i&&code!==HYPHENMINUS$b){return 0}}return checkInteger$3(token,sign?0:1,sign,offset)}function anPlusB$1(token,getNextToken){let offset=0;if(!token){return 0}if(token.type===types$1B.Number){return checkInteger$3(token,0,ALLOW_SIGN$3,offset)}else if(token.type===types$1B.Ident&&token.value.charCodeAt(0)===HYPHENMINUS$b){if(!utils$q.cmpChar(token.value,1,N$8)){return 0}switch(token.value.length){case 2:return consumeB$3(getNextToken(++offset),offset,getNextToken);case 3:if(token.value.charCodeAt(2)!==HYPHENMINUS$b){return 0}offset=skipSC$1(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$3(token,0,DISALLOW_SIGN$3,offset);default:if(token.value.charCodeAt(2)!==HYPHENMINUS$b){return 0}return checkInteger$3(token,3,DISALLOW_SIGN$3,offset)}}else if(token.type===types$1B.Ident||isDelim$3(token,PLUSSIGN$i)&&getNextToken(offset+1).type===types$1B.Ident){if(token.type!==types$1B.Ident){token=getNextToken(++offset)}if(token===null||!utils$q.cmpChar(token.value,0,N$8)){return 0}switch(token.value.length){case 1:return consumeB$3(getNextToken(++offset),offset,getNextToken);case 2:if(token.value.charCodeAt(1)!==HYPHENMINUS$b){return 0}offset=skipSC$1(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$3(token,0,DISALLOW_SIGN$3,offset);default:if(token.value.charCodeAt(1)!==HYPHENMINUS$b){return 0}return checkInteger$3(token,2,DISALLOW_SIGN$3,offset)}}else if(token.type===types$1B.Dimension){let code=token.value.charCodeAt(0);let sign=code===PLUSSIGN$i||code===HYPHENMINUS$b?1:0;let i=sign;for(;i<token.value.length;i++){if(!charCodeDefinitions$l.isDigit(token.value.charCodeAt(i))){break}}if(i===sign){return 0}if(!utils$q.cmpChar(token.value,i,N$8)){return 0}if(i+1===token.value.length){return consumeB$3(getNextToken(++offset),offset,getNextToken)}else{if(token.value.charCodeAt(i+1)!==HYPHENMINUS$b){return 0}if(i+2===token.value.length){offset=skipSC$1(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$3(token,0,DISALLOW_SIGN$3,offset)}else{return checkInteger$3(token,i+2,DISALLOW_SIGN$3,offset)}}}return 0}var genericAnPlusB$3=anPlusB$1;const charCodeDefinitions$k=charCodeDefinitions$p;const types$1A=types$1I;const utils$p=utils$u;const PLUSSIGN$h=43;const HYPHENMINUS$a=45;const QUESTIONMARK$5=63;const U$3=117;function isDelim$2(token,code){return token!==null&&token.type===types$1A.Delim&&token.value.charCodeAt(0)===code}function startsWith$3(token,code){return token.value.charCodeAt(0)===code}function hexSequence$1(token,offset,allowDash){let hexlen=0;for(let pos=offset;pos<token.value.length;pos++){const code=token.value.charCodeAt(pos);if(code===HYPHENMINUS$a&&allowDash&&hexlen!==0){hexSequence$1(token,offset+hexlen+1,false);return 6}if(!charCodeDefinitions$k.isHexDigit(code)){return 0}if(++hexlen>6){return 0}}return hexlen}function withQuestionMarkSequence$1(consumed,length,getNextToken){if(!consumed){return 0}while(isDelim$2(getNextToken(length),QUESTIONMARK$5)){if(++consumed>6){return 0}length++}return length}function urange$1(token,getNextToken){let length=0;if(token===null||token.type!==types$1A.Ident||!utils$p.cmpChar(token.value,0,U$3)){return 0}token=getNextToken(++length);if(token===null){return 0}if(isDelim$2(token,PLUSSIGN$h)){token=getNextToken(++length);if(token===null){return 0}if(token.type===types$1A.Ident){return withQuestionMarkSequence$1(hexSequence$1(token,0,true),++length,getNextToken)}if(isDelim$2(token,QUESTIONMARK$5)){return withQuestionMarkSequence$1(1,++length,getNextToken)}return 0}if(token.type===types$1A.Number){const consumedHexLength=hexSequence$1(token,1,true);if(consumedHexLength===0){return 0}token=getNextToken(++length);if(token===null){return length}if(token.type===types$1A.Dimension||token.type===types$1A.Number){if(!startsWith$3(token,HYPHENMINUS$a)||!hexSequence$1(token,1,false)){return 0}return length+1}return withQuestionMarkSequence$1(consumedHexLength,length,getNextToken)}if(token.type===types$1A.Dimension){return withQuestionMarkSequence$1(hexSequence$1(token,1,true),++length,getNextToken)}return 0}var genericUrange$3=urange$1;const genericConst$4=genericConst$5;const genericAnPlusB$2=genericAnPlusB$3;const genericUrange$2=genericUrange$3;const types$1z=types$1I;const charCodeDefinitions$j=charCodeDefinitions$p;const utils$o=utils$u;const calcFunctionNames$1=["calc(","-moz-calc(","-webkit-calc("];const balancePair$2=new Map([[types$1z.Function,types$1z.RightParenthesis],[types$1z.LeftParenthesis,types$1z.RightParenthesis],[types$1z.LeftSquareBracket,types$1z.RightSquareBracket],[types$1z.LeftCurlyBracket,types$1z.RightCurlyBracket]]);function charCodeAt$1(str,index){return index<str.length?str.charCodeAt(index):0}function eqStr$1(actual,expected){return utils$o.cmpStr(actual,0,actual.length,expected)}function eqStrAny$1(actual,expected){for(let i=0;i<expected.length;i++){if(eqStr$1(actual,expected[i])){return true}}return false}function isPostfixIeHack$1(str,offset){if(offset!==str.length-2){return false}return charCodeAt$1(str,offset)===92&&charCodeDefinitions$j.isDigit(charCodeAt$1(str,offset+1))}function outOfRange$1(opts,value,numEnd){if(opts&&opts.type==="Range"){const num=Number(numEnd!==undefined&&numEnd!==value.length?value.substr(0,numEnd):value);if(isNaN(num)){return true}if(opts.min!==null&&num<opts.min&&typeof opts.min!=="string"){return true}if(opts.max!==null&&num>opts.max&&typeof opts.max!=="string"){return true}}return false}function consumeFunction$1(token,getNextToken){let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$1z.RightCurlyBracket:case types$1z.RightParenthesis:case types$1z.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();if(balanceStash.length===0){length++;break scan}break;case types$1z.Function:case types$1z.LeftParenthesis:case types$1z.LeftSquareBracket:case types$1z.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair$2.get(token.type);break}length++}while(token=getNextToken(length));return length}function calc$1(next){return function(token,getNextToken,opts){if(token===null){return 0}if(token.type===types$1z.Function&&eqStrAny$1(token.value,calcFunctionNames$1)){return consumeFunction$1(token,getNextToken)}return next(token,getNextToken,opts)}}function tokenType$1(expectedTokenType){return function(token){if(token===null||token.type!==expectedTokenType){return 0}return 1}}function customIdent$1(token){if(token===null||token.type!==types$1z.Ident){return 0}const name=token.value.toLowerCase();if(eqStrAny$1(name,genericConst$4.cssWideKeywords)){return 0}if(eqStr$1(name,"default")){return 0}return 1}function customPropertyName$1(token){if(token===null||token.type!==types$1z.Ident){return 0}if(charCodeAt$1(token.value,0)!==45||charCodeAt$1(token.value,1)!==45){return 0}return 1}function hexColor$1(token){if(token===null||token.type!==types$1z.Hash){return 0}const length=token.value.length;if(length!==4&&length!==5&&length!==7&&length!==9){return 0}for(let i=1;i<length;i++){if(!charCodeDefinitions$j.isHexDigit(charCodeAt$1(token.value,i))){return 0}}return 1}function idSelector$1(token){if(token===null||token.type!==types$1z.Hash){return 0}if(!charCodeDefinitions$j.isIdentifierStart(charCodeAt$1(token.value,1),charCodeAt$1(token.value,2),charCodeAt$1(token.value,3))){return 0}return 1}function declarationValue$1(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$1z.BadString:case types$1z.BadUrl:break scan;case types$1z.RightCurlyBracket:case types$1z.RightParenthesis:case types$1z.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$1z.Semicolon:if(balanceCloseType===0){break scan}break;case types$1z.Delim:if(balanceCloseType===0&&token.value==="!"){break scan}break;case types$1z.Function:case types$1z.LeftParenthesis:case types$1z.LeftSquareBracket:case types$1z.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair$2.get(token.type);break}length++}while(token=getNextToken(length));return length}function anyValue$1(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$1z.BadString:case types$1z.BadUrl:break scan;case types$1z.RightCurlyBracket:case types$1z.RightParenthesis:case types$1z.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$1z.Function:case types$1z.LeftParenthesis:case types$1z.LeftSquareBracket:case types$1z.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair$2.get(token.type);break}length++}while(token=getNextToken(length));return length}function dimension$1(type){if(type){type=new Set(type)}return function(token,getNextToken,opts){if(token===null||token.type!==types$1z.Dimension){return 0}const numberEnd=utils$o.consumeNumber(token.value,0);if(type!==null){const reverseSolidusOffset=token.value.indexOf("\\",numberEnd);const unit=reverseSolidusOffset===-1||!isPostfixIeHack$1(token.value,reverseSolidusOffset)?token.value.substr(numberEnd):token.value.substring(numberEnd,reverseSolidusOffset);if(type.has(unit.toLowerCase())===false){return 0}}if(outOfRange$1(opts,token.value,numberEnd)){return 0}return 1}}function percentage$1(token,getNextToken,opts){if(token===null||token.type!==types$1z.Percentage){return 0}if(outOfRange$1(opts,token.value,token.value.length-1)){return 0}return 1}function zero$1(next){if(typeof next!=="function"){next=function(){return 0}}return function(token,getNextToken,opts){if(token!==null&&token.type===types$1z.Number){if(Number(token.value)===0){return 1}}return next(token,getNextToken,opts)}}function number$1(token,getNextToken,opts){if(token===null){return 0}const numberEnd=utils$o.consumeNumber(token.value,0);const isNumber=numberEnd===token.value.length;if(!isNumber&&!isPostfixIeHack$1(token.value,numberEnd)){return 0}if(outOfRange$1(opts,token.value,numberEnd)){return 0}return 1}function integer$1(token,getNextToken,opts){if(token===null||token.type!==types$1z.Number){return 0}let i=charCodeAt$1(token.value,0)===43||charCodeAt$1(token.value,0)===45?1:0;for(;i<token.value.length;i++){if(!charCodeDefinitions$j.isDigit(charCodeAt$1(token.value,i))){return 0}}if(outOfRange$1(opts,token.value,i)){return 0}return 1}const tokenTypes={"ident-token":tokenType$1(types$1z.Ident),"function-token":tokenType$1(types$1z.Function),"at-keyword-token":tokenType$1(types$1z.AtKeyword),"hash-token":tokenType$1(types$1z.Hash),"string-token":tokenType$1(types$1z.String),"bad-string-token":tokenType$1(types$1z.BadString),"url-token":tokenType$1(types$1z.Url),"bad-url-token":tokenType$1(types$1z.BadUrl),"delim-token":tokenType$1(types$1z.Delim),"number-token":tokenType$1(types$1z.Number),"percentage-token":tokenType$1(types$1z.Percentage),"dimension-token":tokenType$1(types$1z.Dimension),"whitespace-token":tokenType$1(types$1z.WhiteSpace),"CDO-token":tokenType$1(types$1z.CDO),"CDC-token":tokenType$1(types$1z.CDC),"colon-token":tokenType$1(types$1z.Colon),"semicolon-token":tokenType$1(types$1z.Semicolon),"comma-token":tokenType$1(types$1z.Comma),"[-token":tokenType$1(types$1z.LeftSquareBracket),"]-token":tokenType$1(types$1z.RightSquareBracket),"(-token":tokenType$1(types$1z.LeftParenthesis),")-token":tokenType$1(types$1z.RightParenthesis),"{-token":tokenType$1(types$1z.LeftCurlyBracket),"}-token":tokenType$1(types$1z.RightCurlyBracket)};const productionTypes={string:tokenType$1(types$1z.String),ident:tokenType$1(types$1z.Ident),percentage:calc$1(percentage$1),zero:zero$1(),number:calc$1(number$1),integer:calc$1(integer$1),"custom-ident":customIdent$1,"custom-property-name":customPropertyName$1,"hex-color":hexColor$1,"id-selector":idSelector$1,"an-plus-b":genericAnPlusB$2,urange:genericUrange$2,"declaration-value":declarationValue$1,"any-value":anyValue$1};function createDemensionTypes(units){const{angle:angle,decibel:decibel,frequency:frequency,flex:flex,length:length,resolution:resolution,semitones:semitones,time:time}=units||{};return{dimension:calc$1(dimension$1(null)),angle:calc$1(dimension$1(angle)),decibel:calc$1(dimension$1(decibel)),frequency:calc$1(dimension$1(frequency)),flex:calc$1(dimension$1(flex)),length:calc$1(zero$1(dimension$1(length))),resolution:calc$1(dimension$1(resolution)),semitones:calc$1(dimension$1(semitones)),time:calc$1(dimension$1(time))}}function createGenericTypes(units){return{...tokenTypes,...productionTypes,...createDemensionTypes(units)}}generic$3.createDemensionTypes=createDemensionTypes;generic$3.createGenericTypes=createGenericTypes;generic$3.productionTypes=productionTypes;generic$3.tokenTypes=tokenTypes;var units$1={};const length=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"];const angle=["deg","grad","rad","turn"];const time=["s","ms"];const frequency=["hz","khz"];const resolution=["dpi","dpcm","dppx","x"];const flex=["fr"];const decibel=["db"];const semitones=["st"];units$1.angle=angle;units$1.decibel=decibel;units$1.flex=flex;units$1.frequency=frequency;units$1.length=length;units$1.resolution=resolution;units$1.semitones=semitones;units$1.time=time;const index$h=tokenizer$5;const astToTokens$1={decorator(handlers){const tokens=[];let curNode=null;return{...handlers,node(node){const tmp=curNode;curNode=node;handlers.node.call(this,node);curNode=tmp},emit(value,type,auto){tokens.push({type:type,value:value,node:auto?null:curNode})},result(){return tokens}}}};function stringToTokens$1(str){const tokens=[];index$h.tokenize(str,((type,start,end)=>tokens.push({type:type,value:str.slice(start,end),node:null})));return tokens}function prepareTokens$3(value,syntax){if(typeof value==="string"){return stringToTokens$1(value)}return syntax.generate(value,astToTokens$1)}var prepareTokens_1$1=prepareTokens$3;var matchGraph$5={};var parse$1u={};var tokenizer$4={};var _SyntaxError$2={};const createCustomError$5=createCustomError$9;function SyntaxError$8(message,input,offset){return Object.assign(createCustomError$5.createCustomError("SyntaxError",message),{input:input,offset:offset,rawMessage:message,message:message+"\n"+" "+input+"\n"+"--"+new Array((offset||input.length)+1).join("-")+"^"})}_SyntaxError$2.SyntaxError=SyntaxError$8;const SyntaxError$7=_SyntaxError$2;const TAB$3=9;const N$7=10;const F$4=12;const R$4=13;const SPACE$7=32;class Tokenizer$1{constructor(str){this.str=str;this.pos=0}charCodeAt(pos){return pos<this.str.length?this.str.charCodeAt(pos):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(pos){return this.charCodeAt(this.findWsEnd(pos))}findWsEnd(pos){for(;pos<this.str.length;pos++){const code=this.str.charCodeAt(pos);if(code!==R$4&&code!==N$7&&code!==F$4&&code!==SPACE$7&&code!==TAB$3){break}}return pos}substringToPos(end){return this.str.substring(this.pos,this.pos=end)}eat(code){if(this.charCode()!==code){this.error("Expect `"+String.fromCharCode(code)+"`")}this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(message){throw new SyntaxError$7.SyntaxError(message,this.str,this.pos)}}tokenizer$4.Tokenizer=Tokenizer$1;const tokenizer$3=tokenizer$4;const TAB$2=9;const N$6=10;const F$3=12;const R$3=13;const SPACE$6=32;const EXCLAMATIONMARK$6=33;const NUMBERSIGN$8=35;const AMPERSAND$7=38;const APOSTROPHE$5=39;const LEFTPARENTHESIS$5=40;const RIGHTPARENTHESIS$5=41;const ASTERISK$d=42;const PLUSSIGN$g=43;const COMMA$1=44;const HYPERMINUS$1=45;const LESSTHANSIGN$1=60;const GREATERTHANSIGN$5=62;const QUESTIONMARK$4=63;const COMMERCIALAT$1=64;const LEFTSQUAREBRACKET$1=91;const RIGHTSQUAREBRACKET$1=93;const LEFTCURLYBRACKET$2=123;const VERTICALLINE$7=124;const RIGHTCURLYBRACKET$1=125;const INFINITY$1=8734;const NAME_CHAR$1=new Uint8Array(128).map(((_,idx)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(idx))?1:0));const COMBINATOR_PRECEDENCE$1={" ":1,"&&":2,"||":3,"|":4};function scanSpaces$1(tokenizer){return tokenizer.substringToPos(tokenizer.findWsEnd(tokenizer.pos))}function scanWord$1(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code>=128||NAME_CHAR$1[code]===0){break}}if(tokenizer.pos===end){tokenizer.error("Expect a keyword")}return tokenizer.substringToPos(end)}function scanNumber$1(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code<48||code>57){break}}if(tokenizer.pos===end){tokenizer.error("Expect a number")}return tokenizer.substringToPos(end)}function scanString$1(tokenizer){const end=tokenizer.str.indexOf("'",tokenizer.pos+1);if(end===-1){tokenizer.pos=tokenizer.str.length;tokenizer.error("Expect an apostrophe")}return tokenizer.substringToPos(end+1)}function readMultiplierRange$1(tokenizer){let min=null;let max=null;tokenizer.eat(LEFTCURLYBRACKET$2);min=scanNumber$1(tokenizer);if(tokenizer.charCode()===COMMA$1){tokenizer.pos++;if(tokenizer.charCode()!==RIGHTCURLYBRACKET$1){max=scanNumber$1(tokenizer)}}else{max=min}tokenizer.eat(RIGHTCURLYBRACKET$1);return{min:Number(min),max:max?Number(max):0}}function readMultiplier$1(tokenizer){let range=null;let comma=false;switch(tokenizer.charCode()){case ASTERISK$d:tokenizer.pos++;range={min:0,max:0};break;case PLUSSIGN$g:tokenizer.pos++;range={min:1,max:0};break;case QUESTIONMARK$4:tokenizer.pos++;range={min:0,max:1};break;case NUMBERSIGN$8:tokenizer.pos++;comma=true;if(tokenizer.charCode()===LEFTCURLYBRACKET$2){range=readMultiplierRange$1(tokenizer)}else if(tokenizer.charCode()===QUESTIONMARK$4){tokenizer.pos++;range={min:0,max:0}}else{range={min:1,max:0}}break;case LEFTCURLYBRACKET$2:range=readMultiplierRange$1(tokenizer);break;default:return null}return{type:"Multiplier",comma:comma,min:range.min,max:range.max,term:null}}function maybeMultiplied$1(tokenizer,node){const multiplier=readMultiplier$1(tokenizer);if(multiplier!==null){multiplier.term=node;if(tokenizer.charCode()===NUMBERSIGN$8&&tokenizer.charCodeAt(tokenizer.pos-1)===PLUSSIGN$g){return maybeMultiplied$1(tokenizer,multiplier)}return multiplier}return node}function maybeToken$1(tokenizer){const ch=tokenizer.peek();if(ch===""){return null}return{type:"Token",value:ch}}function readProperty$3(tokenizer){let name;tokenizer.eat(LESSTHANSIGN$1);tokenizer.eat(APOSTROPHE$5);name=scanWord$1(tokenizer);tokenizer.eat(APOSTROPHE$5);tokenizer.eat(GREATERTHANSIGN$5);return maybeMultiplied$1(tokenizer,{type:"Property",name:name})}function readTypeRange$1(tokenizer){let min=null;let max=null;let sign=1;tokenizer.eat(LEFTSQUAREBRACKET$1);if(tokenizer.charCode()===HYPERMINUS$1){tokenizer.peek();sign=-1}if(sign==-1&&tokenizer.charCode()===INFINITY$1){tokenizer.peek()}else{min=sign*Number(scanNumber$1(tokenizer));if(NAME_CHAR$1[tokenizer.charCode()]!==0){min+=scanWord$1(tokenizer)}}scanSpaces$1(tokenizer);tokenizer.eat(COMMA$1);scanSpaces$1(tokenizer);if(tokenizer.charCode()===INFINITY$1){tokenizer.peek()}else{sign=1;if(tokenizer.charCode()===HYPERMINUS$1){tokenizer.peek();sign=-1}max=sign*Number(scanNumber$1(tokenizer));if(NAME_CHAR$1[tokenizer.charCode()]!==0){max+=scanWord$1(tokenizer)}}tokenizer.eat(RIGHTSQUAREBRACKET$1);return{type:"Range",min:min,max:max}}function readType$1(tokenizer){let name;let opts=null;tokenizer.eat(LESSTHANSIGN$1);name=scanWord$1(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$5&&tokenizer.nextCharCode()===RIGHTPARENTHESIS$5){tokenizer.pos+=2;name+="()"}if(tokenizer.charCodeAt(tokenizer.findWsEnd(tokenizer.pos))===LEFTSQUAREBRACKET$1){scanSpaces$1(tokenizer);opts=readTypeRange$1(tokenizer)}tokenizer.eat(GREATERTHANSIGN$5);return maybeMultiplied$1(tokenizer,{type:"Type",name:name,opts:opts})}function readKeywordOrFunction$1(tokenizer){const name=scanWord$1(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$5){tokenizer.pos++;return{type:"Function",name:name}}return maybeMultiplied$1(tokenizer,{type:"Keyword",name:name})}function regroupTerms$1(terms,combinators){function createGroup(terms,combinator){return{type:"Group",terms:terms,combinator:combinator,disallowEmpty:false,explicit:false}}let combinator;combinators=Object.keys(combinators).sort(((a,b)=>COMBINATOR_PRECEDENCE$1[a]-COMBINATOR_PRECEDENCE$1[b]));while(combinators.length>0){combinator=combinators.shift();let i=0;let subgroupStart=0;for(;i<terms.length;i++){const term=terms[i];if(term.type==="Combinator"){if(term.value===combinator){if(subgroupStart===-1){subgroupStart=i-1}terms.splice(i,1);i--}else{if(subgroupStart!==-1&&i-subgroupStart>1){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator));i=subgroupStart+1}subgroupStart=-1}}}if(subgroupStart!==-1&&combinators.length){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator))}}return combinator}function readImplicitGroup$1(tokenizer){const terms=[];const combinators={};let token;let prevToken=null;let prevTokenPos=tokenizer.pos;while(token=peek$1(tokenizer)){if(token.type!=="Spaces"){if(token.type==="Combinator"){if(prevToken===null||prevToken.type==="Combinator"){tokenizer.pos=prevTokenPos;tokenizer.error("Unexpected combinator")}combinators[token.value]=true}else if(prevToken!==null&&prevToken.type!=="Combinator"){combinators[" "]=true;terms.push({type:"Combinator",value:" "})}terms.push(token);prevToken=token;prevTokenPos=tokenizer.pos}}if(prevToken!==null&&prevToken.type==="Combinator"){tokenizer.pos-=prevTokenPos;tokenizer.error("Unexpected combinator")}return{type:"Group",terms:terms,combinator:regroupTerms$1(terms,combinators)||" ",disallowEmpty:false,explicit:false}}function readGroup$1(tokenizer){let result;tokenizer.eat(LEFTSQUAREBRACKET$1);result=readImplicitGroup$1(tokenizer);tokenizer.eat(RIGHTSQUAREBRACKET$1);result.explicit=true;if(tokenizer.charCode()===EXCLAMATIONMARK$6){tokenizer.pos++;result.disallowEmpty=true}return result}function peek$1(tokenizer){let code=tokenizer.charCode();if(code<128&&NAME_CHAR$1[code]===1){return readKeywordOrFunction$1(tokenizer)}switch(code){case RIGHTSQUAREBRACKET$1:break;case LEFTSQUAREBRACKET$1:return maybeMultiplied$1(tokenizer,readGroup$1(tokenizer));case LESSTHANSIGN$1:return tokenizer.nextCharCode()===APOSTROPHE$5?readProperty$3(tokenizer):readType$1(tokenizer);case VERTICALLINE$7:return{type:"Combinator",value:tokenizer.substringToPos(tokenizer.pos+(tokenizer.nextCharCode()===VERTICALLINE$7?2:1))};case AMPERSAND$7:tokenizer.pos++;tokenizer.eat(AMPERSAND$7);return{type:"Combinator",value:"&&"};case COMMA$1:tokenizer.pos++;return{type:"Comma"};case APOSTROPHE$5:return maybeMultiplied$1(tokenizer,{type:"String",value:scanString$1(tokenizer)});case SPACE$6:case TAB$2:case N$6:case R$3:case F$3:return{type:"Spaces",value:scanSpaces$1(tokenizer)};case COMMERCIALAT$1:code=tokenizer.nextCharCode();if(code<128&&NAME_CHAR$1[code]===1){tokenizer.pos++;return{type:"AtKeyword",name:scanWord$1(tokenizer)}}return maybeToken$1(tokenizer);case ASTERISK$d:case PLUSSIGN$g:case QUESTIONMARK$4:case NUMBERSIGN$8:case EXCLAMATIONMARK$6:break;case LEFTCURLYBRACKET$2:code=tokenizer.nextCharCode();if(code<48||code>57){return maybeToken$1(tokenizer)}break;default:return maybeToken$1(tokenizer)}}function parse$1t(source){const tokenizer$1=new tokenizer$3.Tokenizer(source);const result=readImplicitGroup$1(tokenizer$1);if(tokenizer$1.pos!==source.length){tokenizer$1.error("Unexpected input")}if(result.terms.length===1&&result.terms[0].type==="Group"){return result.terms[0]}return result}parse$1u.parse=parse$1t;const parse$1s=parse$1u;const MATCH$1={type:"Match"};const MISMATCH$1={type:"Mismatch"};const DISALLOW_EMPTY$1={type:"DisallowEmpty"};const LEFTPARENTHESIS$4=40;const RIGHTPARENTHESIS$4=41;function createCondition$1(match,thenBranch,elseBranch){if(thenBranch===MATCH$1&&elseBranch===MISMATCH$1){return match}if(match===MATCH$1&&thenBranch===MATCH$1&&elseBranch===MATCH$1){return match}if(match.type==="If"&&match.else===MISMATCH$1&&thenBranch===MATCH$1){thenBranch=match.then;match=match.match}return{type:"If",match:match,then:thenBranch,else:elseBranch}}function isFunctionType$1(name){return name.length>2&&name.charCodeAt(name.length-2)===LEFTPARENTHESIS$4&&name.charCodeAt(name.length-1)===RIGHTPARENTHESIS$4}function isEnumCapatible$1(term){return term.type==="Keyword"||term.type==="AtKeyword"||term.type==="Function"||term.type==="Type"&&isFunctionType$1(term.name)}function buildGroupMatchGraph$1(combinator,terms,atLeastOneTermMatched){switch(combinator){case" ":{let result=MATCH$1;for(let i=terms.length-1;i>=0;i--){const term=terms[i];result=createCondition$1(term,result,MISMATCH$1)}return result}case"|":{let result=MISMATCH$1;let map=null;for(let i=terms.length-1;i>=0;i--){let term=terms[i];if(isEnumCapatible$1(term)){if(map===null&&i>0&&isEnumCapatible$1(terms[i-1])){map=Object.create(null);result=createCondition$1({type:"Enum",map:map},MATCH$1,result)}if(map!==null){const key=(isFunctionType$1(term.name)?term.name.slice(0,-1):term.name).toLowerCase();if(key in map===false){map[key]=term;continue}}}map=null;result=createCondition$1(term,MATCH$1,result)}return result}case"&&":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:true}}let result=MISMATCH$1;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph$1(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),false)}else{thenClause=MATCH$1}result=createCondition$1(term,thenClause,result)}return result}case"||":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:false}}let result=atLeastOneTermMatched?MATCH$1:MISMATCH$1;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph$1(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),true)}else{thenClause=MATCH$1}result=createCondition$1(term,thenClause,result)}return result}}}function buildMultiplierMatchGraph$1(node){let result=MATCH$1;let matchTerm=buildMatchGraphInternal$1(node.term);if(node.max===0){matchTerm=createCondition$1(matchTerm,DISALLOW_EMPTY$1,MISMATCH$1);result=createCondition$1(matchTerm,null,MISMATCH$1);result.then=createCondition$1(MATCH$1,MATCH$1,result);if(node.comma){result.then.else=createCondition$1({type:"Comma",syntax:node},result,MISMATCH$1)}}else{for(let i=node.min||1;i<=node.max;i++){if(node.comma&&result!==MATCH$1){result=createCondition$1({type:"Comma",syntax:node},result,MISMATCH$1)}result=createCondition$1(matchTerm,createCondition$1(MATCH$1,MATCH$1,result),MISMATCH$1)}}if(node.min===0){result=createCondition$1(MATCH$1,MATCH$1,result)}else{for(let i=0;i<node.min-1;i++){if(node.comma&&result!==MATCH$1){result=createCondition$1({type:"Comma",syntax:node},result,MISMATCH$1)}result=createCondition$1(matchTerm,result,MISMATCH$1)}}return result}function buildMatchGraphInternal$1(node){if(typeof node==="function"){return{type:"Generic",fn:node}}switch(node.type){case"Group":{let result=buildGroupMatchGraph$1(node.combinator,node.terms.map(buildMatchGraphInternal$1),false);if(node.disallowEmpty){result=createCondition$1(result,DISALLOW_EMPTY$1,MISMATCH$1)}return result}case"Multiplier":return buildMultiplierMatchGraph$1(node);case"Type":case"Property":return{type:node.type,name:node.name,syntax:node};case"Keyword":return{type:node.type,name:node.name.toLowerCase(),syntax:node};case"AtKeyword":return{type:node.type,name:"@"+node.name.toLowerCase(),syntax:node};case"Function":return{type:node.type,name:node.name.toLowerCase()+"(",syntax:node};case"String":if(node.value.length===3){return{type:"Token",value:node.value.charAt(1),syntax:node}}return{type:node.type,value:node.value.substr(1,node.value.length-2).replace(/\\'/g,"'"),syntax:node};case"Token":return{type:node.type,value:node.value,syntax:node};case"Comma":return{type:node.type,syntax:node};default:throw new Error("Unknown node type:",node.type)}}function buildMatchGraph$1(syntaxTree,ref){if(typeof syntaxTree==="string"){syntaxTree=parse$1s.parse(syntaxTree)}return{type:"MatchGraph",match:buildMatchGraphInternal$1(syntaxTree),syntax:ref||null,source:syntaxTree}}matchGraph$5.DISALLOW_EMPTY=DISALLOW_EMPTY$1;matchGraph$5.MATCH=MATCH$1;matchGraph$5.MISMATCH=MISMATCH$1;matchGraph$5.buildMatchGraph=buildMatchGraph$1;var match$3={};const matchGraph$4=matchGraph$5;const types$1y=types$1I;const{hasOwnProperty:hasOwnProperty$a}=Object.prototype;const STUB$1=0;const TOKEN$1=1;const OPEN_SYNTAX$1=2;const CLOSE_SYNTAX$1=3;const EXIT_REASON_MATCH$1="Match";const EXIT_REASON_MISMATCH$1="Mismatch";const EXIT_REASON_ITERATION_LIMIT$1="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)";const ITERATION_LIMIT$1=15e3;function reverseList$1(list){let prev=null;let next=null;let item=list;while(item!==null){next=item.prev;item.prev=prev;prev=item;item=next}return prev}function areStringsEqualCaseInsensitive$1(testStr,referenceStr){if(testStr.length!==referenceStr.length){return false}for(let i=0;i<testStr.length;i++){const referenceCode=referenceStr.charCodeAt(i);let testCode=testStr.charCodeAt(i);if(testCode>=65&&testCode<=90){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function isContextEdgeDelim$1(token){if(token.type!==types$1y.Delim){return false}return token.value!=="?"}function isCommaContextStart$1(token){if(token===null){return true}return token.type===types$1y.Comma||token.type===types$1y.Function||token.type===types$1y.LeftParenthesis||token.type===types$1y.LeftSquareBracket||token.type===types$1y.LeftCurlyBracket||isContextEdgeDelim$1(token)}function isCommaContextEnd$1(token){if(token===null){return true}return token.type===types$1y.RightParenthesis||token.type===types$1y.RightSquareBracket||token.type===types$1y.RightCurlyBracket||token.type===types$1y.Delim&&token.value==="/"}function internalMatch$1(tokens,state,syntaxes){function moveToNextToken(){do{tokenIndex++;token=tokenIndex<tokens.length?tokens[tokenIndex]:null}while(token!==null&&(token.type===types$1y.WhiteSpace||token.type===types$1y.Comment))}function getNextToken(offset){const nextIndex=tokenIndex+offset;return nextIndex<tokens.length?tokens[nextIndex]:null}function stateSnapshotFromSyntax(nextState,prev){return{nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,thenStack:thenStack,tokenIndex:tokenIndex,prev:prev}}function pushThenStack(nextState){thenStack={nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,prev:thenStack}}function pushElseStack(nextState){elseStack=stateSnapshotFromSyntax(nextState,elseStack)}function addTokenToMatch(){matchStack={type:TOKEN$1,syntax:state.syntax,token:token,prev:matchStack};moveToNextToken();syntaxStash=null;if(tokenIndex>longestMatch){longestMatch=tokenIndex}}function openSyntax(){syntaxStack={syntax:state.syntax,opts:state.syntax.opts||syntaxStack!==null&&syntaxStack.opts||null,prev:syntaxStack};matchStack={type:OPEN_SYNTAX$1,syntax:state.syntax,token:matchStack.token,prev:matchStack}}function closeSyntax(){if(matchStack.type===OPEN_SYNTAX$1){matchStack=matchStack.prev}else{matchStack={type:CLOSE_SYNTAX$1,syntax:syntaxStack.syntax,token:matchStack.token,prev:matchStack}}syntaxStack=syntaxStack.prev}let syntaxStack=null;let thenStack=null;let elseStack=null;let syntaxStash=null;let iterationCount=0;let exitReason=null;let token=null;let tokenIndex=-1;let longestMatch=0;let matchStack={type:STUB$1,syntax:null,token:null,prev:null};moveToNextToken();while(exitReason===null&&++iterationCount<ITERATION_LIMIT$1){switch(state.type){case"Match":if(thenStack===null){if(token!==null){if(tokenIndex!==tokens.length-1||token.value!=="\\0"&&token.value!=="\\9"){state=matchGraph$4.MISMATCH;break}}exitReason=EXIT_REASON_MATCH$1;break}state=thenStack.nextState;if(state===matchGraph$4.DISALLOW_EMPTY){if(thenStack.matchStack===matchStack){state=matchGraph$4.MISMATCH;break}else{state=matchGraph$4.MATCH}}while(thenStack.syntaxStack!==syntaxStack){closeSyntax()}thenStack=thenStack.prev;break;case"Mismatch":if(syntaxStash!==null&&syntaxStash!==false){if(elseStack===null||tokenIndex>elseStack.tokenIndex){elseStack=syntaxStash;syntaxStash=false}}else if(elseStack===null){exitReason=EXIT_REASON_MISMATCH$1;break}state=elseStack.nextState;thenStack=elseStack.thenStack;syntaxStack=elseStack.syntaxStack;matchStack=elseStack.matchStack;tokenIndex=elseStack.tokenIndex;token=tokenIndex<tokens.length?tokens[tokenIndex]:null;elseStack=elseStack.prev;break;case"MatchGraph":state=state.match;break;case"If":if(state.else!==matchGraph$4.MISMATCH){pushElseStack(state.else)}if(state.then!==matchGraph$4.MATCH){pushThenStack(state.then)}state=state.match;break;case"MatchOnce":state={type:"MatchOnceBuffer",syntax:state,index:0,mask:0};break;case"MatchOnceBuffer":{const terms=state.syntax.terms;if(state.index===terms.length){if(state.mask===0||state.syntax.all){state=matchGraph$4.MISMATCH;break}state=matchGraph$4.MATCH;break}if(state.mask===(1<<terms.length)-1){state=matchGraph$4.MATCH;break}for(;state.index<terms.length;state.index++){const matchFlag=1<<state.index;if((state.mask&matchFlag)===0){pushElseStack(state);pushThenStack({type:"AddMatchOnce",syntax:state.syntax,mask:state.mask|matchFlag});state=terms[state.index++];break}}break}case"AddMatchOnce":state={type:"MatchOnceBuffer",syntax:state.syntax,index:0,mask:state.mask};break;case"Enum":if(token!==null){let name=token.value.toLowerCase();if(name.indexOf("\\")!==-1){name=name.replace(/\\[09].*$/,"")}if(hasOwnProperty$a.call(state.map,name)){state=state.map[name];break}}state=matchGraph$4.MISMATCH;break;case"Generic":{const opts=syntaxStack!==null?syntaxStack.opts:null;const lastTokenIndex=tokenIndex+Math.floor(state.fn(token,getNextToken,opts));if(!isNaN(lastTokenIndex)&&lastTokenIndex>tokenIndex){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$4.MATCH}else{state=matchGraph$4.MISMATCH}break}case"Type":case"Property":{const syntaxDict=state.type==="Type"?"types":"properties";const dictSyntax=hasOwnProperty$a.call(syntaxes,syntaxDict)?syntaxes[syntaxDict][state.name]:null;if(!dictSyntax||!dictSyntax.match){throw new Error("Bad syntax reference: "+(state.type==="Type"?"<"+state.name+">":"<'"+state.name+"'>"))}if(syntaxStash!==false&&token!==null&&state.type==="Type"){const lowPriorityMatching=state.name==="custom-ident"&&token.type===types$1y.Ident||state.name==="length"&&token.value==="0";if(lowPriorityMatching){if(syntaxStash===null){syntaxStash=stateSnapshotFromSyntax(state,elseStack)}state=matchGraph$4.MISMATCH;break}}openSyntax();state=dictSyntax.match;break}case"Keyword":{const name=state.name;if(token!==null){let keywordName=token.value;if(keywordName.indexOf("\\")!==-1){keywordName=keywordName.replace(/\\[09].*$/,"")}if(areStringsEqualCaseInsensitive$1(keywordName,name)){addTokenToMatch();state=matchGraph$4.MATCH;break}}state=matchGraph$4.MISMATCH;break}case"AtKeyword":case"Function":if(token!==null&&areStringsEqualCaseInsensitive$1(token.value,state.name)){addTokenToMatch();state=matchGraph$4.MATCH;break}state=matchGraph$4.MISMATCH;break;case"Token":if(token!==null&&token.value===state.value){addTokenToMatch();state=matchGraph$4.MATCH;break}state=matchGraph$4.MISMATCH;break;case"Comma":if(token!==null&&token.type===types$1y.Comma){if(isCommaContextStart$1(matchStack.token)){state=matchGraph$4.MISMATCH}else{addTokenToMatch();state=isCommaContextEnd$1(token)?matchGraph$4.MISMATCH:matchGraph$4.MATCH}}else{state=isCommaContextStart$1(matchStack.token)||isCommaContextEnd$1(token)?matchGraph$4.MATCH:matchGraph$4.MISMATCH}break;case"String":let string="";let lastTokenIndex=tokenIndex;for(;lastTokenIndex<tokens.length&&string.length<state.value.length;lastTokenIndex++){string+=tokens[lastTokenIndex].value}if(areStringsEqualCaseInsensitive$1(string,state.value)){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$4.MATCH}else{state=matchGraph$4.MISMATCH}break;default:throw new Error("Unknown node type: "+state.type)}}switch(exitReason){case null:console.warn("[csstree-match] BREAK after "+ITERATION_LIMIT$1+" iterations");exitReason=EXIT_REASON_ITERATION_LIMIT$1;matchStack=null;break;case EXIT_REASON_MATCH$1:while(syntaxStack!==null){closeSyntax()}break;default:matchStack=null}return{tokens:tokens,reason:exitReason,iterations:iterationCount,match:matchStack,longestMatch:longestMatch}}function matchAsList$1(tokens,matchGraph,syntaxes){const matchResult=internalMatch$1(tokens,matchGraph,syntaxes||{});if(matchResult.match!==null){let item=reverseList$1(matchResult.match).prev;matchResult.match=[];while(item!==null){switch(item.type){case OPEN_SYNTAX$1:case CLOSE_SYNTAX$1:matchResult.match.push({type:item.type,syntax:item.syntax});break;default:matchResult.match.push({token:item.token.value,node:item.token.node});break}item=item.prev}}return matchResult}function matchAsTree$1(tokens,matchGraph,syntaxes){const matchResult=internalMatch$1(tokens,matchGraph,syntaxes||{});if(matchResult.match===null){return matchResult}let item=matchResult.match;let host=matchResult.match={syntax:matchGraph.syntax||null,match:[]};const hostStack=[host];item=reverseList$1(item).prev;while(item!==null){switch(item.type){case OPEN_SYNTAX$1:host.match.push(host={syntax:item.syntax,match:[]});hostStack.push(host);break;case CLOSE_SYNTAX$1:hostStack.pop();host=hostStack[hostStack.length-1];break;default:host.match.push({syntax:item.syntax||null,token:item.token.value,node:item.token.node})}item=item.prev}return matchResult}match$3.matchAsList=matchAsList$1;match$3.matchAsTree=matchAsTree$1;var trace$3={};function getTrace$1(node){function shouldPutToTrace(syntax){if(syntax===null){return false}return syntax.type==="Type"||syntax.type==="Property"||syntax.type==="Keyword"}function hasMatch(matchNode){if(Array.isArray(matchNode.match)){for(let i=0;i<matchNode.match.length;i++){if(hasMatch(matchNode.match[i])){if(shouldPutToTrace(matchNode.syntax)){result.unshift(matchNode.syntax)}return true}}}else if(matchNode.node===node){result=shouldPutToTrace(matchNode.syntax)?[matchNode.syntax]:[];return true}return false}let result=null;if(this.matched!==null){hasMatch(this.matched)}return result}function isType$1(node,type){return testNode$1(this,node,(match=>match.type==="Type"&&match.name===type))}function isProperty$1(node,property){return testNode$1(this,node,(match=>match.type==="Property"&&match.name===property))}function isKeyword$1(node){return testNode$1(this,node,(match=>match.type==="Keyword"))}function testNode$1(match,node,fn){const trace=getTrace$1.call(match,node);if(trace===null){return false}return trace.some(fn)}trace$3.getTrace=getTrace$1;trace$3.isKeyword=isKeyword$1;trace$3.isProperty=isProperty$1;trace$3.isType=isType$1;var search$3={};const List$b=List$f;function getFirstMatchNode$1(matchNode){if("node"in matchNode){return matchNode.node}return getFirstMatchNode$1(matchNode.match[0])}function getLastMatchNode$1(matchNode){if("node"in matchNode){return matchNode.node}return getLastMatchNode$1(matchNode.match[matchNode.match.length-1])}function matchFragments$1(lexer,ast,match,type,name){function findFragments(matchNode){if(matchNode.syntax!==null&&matchNode.syntax.type===type&&matchNode.syntax.name===name){const start=getFirstMatchNode$1(matchNode);const end=getLastMatchNode$1(matchNode);lexer.syntax.walk(ast,(function(node,item,list){if(node===start){const nodes=new List$b.List;do{nodes.appendData(item.data);if(item.data===end){break}item=item.next}while(item!==null);fragments.push({parent:list,nodes:nodes})}}))}if(Array.isArray(matchNode.match)){matchNode.match.forEach(findFragments)}}const fragments=[];if(match.matched!==null){findFragments(match.matched)}return fragments}search$3.matchFragments=matchFragments$1;var structure$1k={};const List$a=List$f;const{hasOwnProperty:hasOwnProperty$9}=Object.prototype;function isValidNumber$1(value){return typeof value==="number"&&isFinite(value)&&Math.floor(value)===value&&value>=0}function isValidLocation$1(loc){return Boolean(loc)&&isValidNumber$1(loc.offset)&&isValidNumber$1(loc.line)&&isValidNumber$1(loc.column)}function createNodeStructureChecker$1(type,fields){return function checkNode(node,warn){if(!node||node.constructor!==Object){return warn(node,"Type of node should be an Object")}for(let key in node){let valid=true;if(hasOwnProperty$9.call(node,key)===false){continue}if(key==="type"){if(node.type!==type){warn(node,"Wrong node type `"+node.type+"`, expected `"+type+"`")}}else if(key==="loc"){if(node.loc===null){continue}else if(node.loc&&node.loc.constructor===Object){if(typeof node.loc.source!=="string"){key+=".source"}else if(!isValidLocation$1(node.loc.start)){key+=".start"}else if(!isValidLocation$1(node.loc.end)){key+=".end"}else{continue}}valid=false}else if(fields.hasOwnProperty(key)){valid=false;for(let i=0;!valid&&i<fields[key].length;i++){const fieldType=fields[key][i];switch(fieldType){case String:valid=typeof node[key]==="string";break;case Boolean:valid=typeof node[key]==="boolean";break;case null:valid=node[key]===null;break;default:if(typeof fieldType==="string"){valid=node[key]&&node[key].type===fieldType}else if(Array.isArray(fieldType)){valid=node[key]instanceof List$a.List}}}}else{warn(node,"Unknown field `"+key+"` for "+type+" node type")}if(!valid){warn(node,"Bad value for `"+type+"."+key+"`")}}for(const key in fields){if(hasOwnProperty$9.call(fields,key)&&hasOwnProperty$9.call(node,key)===false){warn(node,"Field `"+type+"."+key+"` is missed")}}}}function processStructure$1(name,nodeType){const structure=nodeType.structure;const fields={type:String,loc:true};const docs={type:'"'+name+'"'};for(const key in structure){if(hasOwnProperty$9.call(structure,key)===false){continue}const docsTypes=[];const fieldTypes=fields[key]=Array.isArray(structure[key])?structure[key].slice():[structure[key]];for(let i=0;i<fieldTypes.length;i++){const fieldType=fieldTypes[i];if(fieldType===String||fieldType===Boolean){docsTypes.push(fieldType.name)}else if(fieldType===null){docsTypes.push("null")}else if(typeof fieldType==="string"){docsTypes.push("<"+fieldType+">")}else if(Array.isArray(fieldType)){docsTypes.push("List")}else{throw new Error("Wrong value `"+fieldType+"` in `"+name+"."+key+"` structure definition")}}docs[key]=docsTypes.join(" | ")}return{docs:docs,check:createNodeStructureChecker$1(name,fields)}}function getStructureFromConfig$1(config){const structure={};if(config.node){for(const name in config.node){if(hasOwnProperty$9.call(config.node,name)){const nodeType=config.node[name];if(nodeType.structure){structure[name]=processStructure$1(name,nodeType)}else{throw new Error("Missed `structure` field in `"+name+"` node type definition")}}}}return structure}structure$1k.getStructureFromConfig=getStructureFromConfig$1;var walk$a={};const noop$3=function(){};function ensureFunction$2(value){return typeof value==="function"?value:noop$3}function walk$9(node,options,context){function walk(node){enter.call(context,node);switch(node.type){case"Group":node.terms.forEach(walk);break;case"Multiplier":walk(node.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+node.type)}leave.call(context,node)}let enter=noop$3;let leave=noop$3;if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction$2(options.enter);leave=ensureFunction$2(options.leave)}if(enter===noop$3&&leave===noop$3){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walk(node)}walk$a.walk=walk$9;const error$3=error$4;const names$b=names$c;const genericConst$3=genericConst$5;const generic$2=generic$3;const units=units$1;const prepareTokens$2=prepareTokens_1$1;const matchGraph$3=matchGraph$5;const match$2=match$3;const trace$2=trace$3;const search$2=search$3;const structure$1j=structure$1k;const parse$1r=parse$1u;const generate$1r=generate$1u;const walk$8=walk$a;const cssWideKeywordsSyntax$1=matchGraph$3.buildMatchGraph(genericConst$3.cssWideKeywords.join(" | "));function dumpMapSyntax$1(map,compact,syntaxAsAst){const result={};for(const name in map){if(map[name].syntax){result[name]=syntaxAsAst?map[name].syntax:generate$1r.generate(map[name].syntax,{compact:compact})}}return result}function dumpAtruleMapSyntax$1(map,compact,syntaxAsAst){const result={};for(const[name,atrule]of Object.entries(map)){result[name]={prelude:atrule.prelude&&(syntaxAsAst?atrule.prelude.syntax:generate$1r.generate(atrule.prelude.syntax,{compact:compact})),descriptors:atrule.descriptors&&dumpMapSyntax$1(atrule.descriptors,compact,syntaxAsAst)}}return result}function valueHasVar$1(tokens){for(let i=0;i<tokens.length;i++){if(tokens[i].value.toLowerCase()==="var("){return true}}return false}function buildMatchResult$1(matched,error,iterations){return{matched:matched,iterations:iterations,error:error,...trace$2}}function matchSyntax$1(lexer,syntax,value,useCssWideKeywords){const tokens=prepareTokens$2(value,lexer.syntax);let result;if(valueHasVar$1(tokens)){return buildMatchResult$1(null,new Error("Matching for a tree with var() is not supported"))}if(useCssWideKeywords){result=match$2.matchAsTree(tokens,lexer.cssWideKeywordsSyntax,lexer)}if(!useCssWideKeywords||!result.match){result=match$2.matchAsTree(tokens,syntax.match,lexer);if(!result.match){return buildMatchResult$1(null,new error$3.SyntaxMatchError(result.reason,syntax.syntax,value,result),result.iterations)}}return buildMatchResult$1(result.match,null,result.iterations)}class Lexer$6{constructor(config,syntax,structure$1){this.cssWideKeywordsSyntax=cssWideKeywordsSyntax$1;this.syntax=syntax;this.generic=false;this.units={...units};this.atrules=Object.create(null);this.properties=Object.create(null);this.types=Object.create(null);this.structure=structure$1||structure$1j.getStructureFromConfig(config);if(config){if(config.units){for(const group of Object.keys(units)){if(Array.isArray(config.units[group])){this.units[group]=config.units[group]}}}if(config.types){for(const name in config.types){this.addType_(name,config.types[name])}}if(config.generic){this.generic=true;for(const[name,value]of Object.entries(generic$2.createGenericTypes(this.units))){this.addType_(name,value)}}if(config.atrules){for(const name in config.atrules){this.addAtrule_(name,config.atrules[name])}}if(config.properties){for(const name in config.properties){this.addProperty_(name,config.properties[name])}}}}checkStructure(ast){function collectWarning(node,message){warns.push({node:node,message:message})}const structure=this.structure;const warns=[];this.syntax.walk(ast,(function(node){if(structure.hasOwnProperty(node.type)){structure[node.type].check(node,collectWarning)}else{collectWarning(node,"Unknown node type `"+node.type+"`")}}));return warns.length?warns:false}createDescriptor(syntax,type,name,parent=null){const ref={type:type,name:name};const descriptor={type:type,name:name,parent:parent,serializable:typeof syntax==="string"||syntax&&typeof syntax.type==="string",syntax:null,match:null};if(typeof syntax==="function"){descriptor.match=matchGraph$3.buildMatchGraph(syntax,ref)}else{if(typeof syntax==="string"){Object.defineProperty(descriptor,"syntax",{get(){Object.defineProperty(descriptor,"syntax",{value:parse$1r.parse(syntax)});return descriptor.syntax}})}else{descriptor.syntax=syntax}Object.defineProperty(descriptor,"match",{get(){Object.defineProperty(descriptor,"match",{value:matchGraph$3.buildMatchGraph(descriptor.syntax,ref)});return descriptor.match}})}return descriptor}addAtrule_(name,syntax){if(!syntax){return}this.atrules[name]={type:"Atrule",name:name,prelude:syntax.prelude?this.createDescriptor(syntax.prelude,"AtrulePrelude",name):null,descriptors:syntax.descriptors?Object.keys(syntax.descriptors).reduce(((map,descName)=>{map[descName]=this.createDescriptor(syntax.descriptors[descName],"AtruleDescriptor",descName,name);return map}),Object.create(null)):null}}addProperty_(name,syntax){if(!syntax){return}this.properties[name]=this.createDescriptor(syntax,"Property",name)}addType_(name,syntax){if(!syntax){return}this.types[name]=this.createDescriptor(syntax,"Type",name)}checkAtruleName(atruleName){if(!this.getAtrule(atruleName)){return new error$3.SyntaxReferenceError("Unknown at-rule","@"+atruleName)}}checkAtrulePrelude(atruleName,prelude){const error=this.checkAtruleName(atruleName);if(error){return error}const atrule=this.getAtrule(atruleName);if(!atrule.prelude&&prelude){return new SyntaxError("At-rule `@"+atruleName+"` should not contain a prelude")}if(atrule.prelude&&!prelude){if(!matchSyntax$1(this,atrule.prelude,"",false).matched){return new SyntaxError("At-rule `@"+atruleName+"` should contain a prelude")}}}checkAtruleDescriptorName(atruleName,descriptorName){const error$1=this.checkAtruleName(atruleName);if(error$1){return error$1}const atrule=this.getAtrule(atruleName);const descriptor=names$b.keyword(descriptorName);if(!atrule.descriptors){return new SyntaxError("At-rule `@"+atruleName+"` has no known descriptors")}if(!atrule.descriptors[descriptor.name]&&!atrule.descriptors[descriptor.basename]){return new error$3.SyntaxReferenceError("Unknown at-rule descriptor",descriptorName)}}checkPropertyName(propertyName){if(!this.getProperty(propertyName)){return new error$3.SyntaxReferenceError("Unknown property",propertyName)}}matchAtrulePrelude(atruleName,prelude){const error=this.checkAtrulePrelude(atruleName,prelude);if(error){return buildMatchResult$1(null,error)}const atrule=this.getAtrule(atruleName);if(!atrule.prelude){return buildMatchResult$1(null,null)}return matchSyntax$1(this,atrule.prelude,prelude||"",false)}matchAtruleDescriptor(atruleName,descriptorName,value){const error=this.checkAtruleDescriptorName(atruleName,descriptorName);if(error){return buildMatchResult$1(null,error)}const atrule=this.getAtrule(atruleName);const descriptor=names$b.keyword(descriptorName);return matchSyntax$1(this,atrule.descriptors[descriptor.name]||atrule.descriptors[descriptor.basename],value,false)}matchDeclaration(node){if(node.type!=="Declaration"){return buildMatchResult$1(null,new Error("Not a Declaration node"))}return this.matchProperty(node.property,node.value)}matchProperty(propertyName,value){if(names$b.property(propertyName).custom){return buildMatchResult$1(null,new Error("Lexer matching doesn't applicable for custom properties"))}const error=this.checkPropertyName(propertyName);if(error){return buildMatchResult$1(null,error)}return matchSyntax$1(this,this.getProperty(propertyName),value,true)}matchType(typeName,value){const typeSyntax=this.getType(typeName);if(!typeSyntax){return buildMatchResult$1(null,new error$3.SyntaxReferenceError("Unknown type",typeName))}return matchSyntax$1(this,typeSyntax,value,false)}match(syntax,value){if(typeof syntax!=="string"&&(!syntax||!syntax.type)){return buildMatchResult$1(null,new error$3.SyntaxReferenceError("Bad syntax"))}if(typeof syntax==="string"||!syntax.match){syntax=this.createDescriptor(syntax,"Type","anonymous")}return matchSyntax$1(this,syntax,value,false)}findValueFragments(propertyName,value,type,name){return search$2.matchFragments(this,value,this.matchProperty(propertyName,value),type,name)}findDeclarationValueFragments(declaration,type,name){return search$2.matchFragments(this,declaration.value,this.matchDeclaration(declaration),type,name)}findAllFragments(ast,type,name){const result=[];this.syntax.walk(ast,{visit:"Declaration",enter:declaration=>{result.push.apply(result,this.findDeclarationValueFragments(declaration,type,name))}});return result}getAtrule(atruleName,fallbackBasename=true){const atrule=names$b.keyword(atruleName);const atruleEntry=atrule.vendor&&fallbackBasename?this.atrules[atrule.name]||this.atrules[atrule.basename]:this.atrules[atrule.name];return atruleEntry||null}getAtrulePrelude(atruleName,fallbackBasename=true){const atrule=this.getAtrule(atruleName,fallbackBasename);return atrule&&atrule.prelude||null}getAtruleDescriptor(atruleName,name){return this.atrules.hasOwnProperty(atruleName)&&this.atrules.declarators?this.atrules[atruleName].declarators[name]||null:null}getProperty(propertyName,fallbackBasename=true){const property=names$b.property(propertyName);const propertyEntry=property.vendor&&fallbackBasename?this.properties[property.name]||this.properties[property.basename]:this.properties[property.name];return propertyEntry||null}getType(name){return hasOwnProperty.call(this.types,name)?this.types[name]:null}validate(){function validate(syntax,name,broken,descriptor){if(broken.has(name)){return broken.get(name)}broken.set(name,false);if(descriptor.syntax!==null){walk$8.walk(descriptor.syntax,(function(node){if(node.type!=="Type"&&node.type!=="Property"){return}const map=node.type==="Type"?syntax.types:syntax.properties;const brokenMap=node.type==="Type"?brokenTypes:brokenProperties;if(!hasOwnProperty.call(map,node.name)||validate(syntax,node.name,brokenMap,map[node.name])){broken.set(name,true)}}),this)}}let brokenTypes=new Map;let brokenProperties=new Map;for(const key in this.types){validate(this,key,brokenTypes,this.types[key])}for(const key in this.properties){validate(this,key,brokenProperties,this.properties[key])}brokenTypes=[...brokenTypes.keys()].filter((name=>brokenTypes.get(name)));brokenProperties=[...brokenProperties.keys()].filter((name=>brokenProperties.get(name)));if(brokenTypes.length||brokenProperties.length){return{types:brokenTypes,properties:brokenProperties}}return null}dump(syntaxAsAst,pretty){return{generic:this.generic,units:this.units,types:dumpMapSyntax$1(this.types,!pretty,syntaxAsAst),properties:dumpMapSyntax$1(this.properties,!pretty,syntaxAsAst),atrules:dumpAtruleMapSyntax$1(this.atrules,!pretty,syntaxAsAst)}}toString(){return JSON.stringify(this.dump())}}Lexer$7.Lexer=Lexer$6;function appendOrSet(a,b){if(typeof b==="string"&&/^\s*\|/.test(b)){return typeof a==="string"?a+b:b.replace(/^\s*\|\s*/,"")}return b||null}function sliceProps(obj,props){const result=Object.create(null);for(const[key,value]of Object.entries(obj)){if(value){result[key]={};for(const prop of Object.keys(value)){if(props.includes(prop)){result[key][prop]=value[prop]}}}}return result}function mix$3(dest,src){const result={...dest};for(const[prop,value]of Object.entries(src)){switch(prop){case"generic":result[prop]=Boolean(value);break;case"units":result[prop]={...dest[prop]};for(const[name,patch]of Object.entries(value)){result[prop][name]=Array.isArray(patch)?patch:[]}break;case"atrules":result[prop]={...dest[prop]};for(const[name,atrule]of Object.entries(value)){const exists=result[prop][name]||{};const current=result[prop][name]={prelude:exists.prelude||null,descriptors:{...exists.descriptors}};if(!atrule){continue}current.prelude=atrule.prelude?appendOrSet(current.prelude,atrule.prelude):current.prelude||null;for(const[descriptorName,descriptorValue]of Object.entries(atrule.descriptors||{})){current.descriptors[descriptorName]=descriptorValue?appendOrSet(current.descriptors[descriptorName],descriptorValue):null}if(!Object.keys(current.descriptors).length){current.descriptors=null}}break;case"types":case"properties":result[prop]={...dest[prop]};for(const[name,syntax]of Object.entries(value)){result[prop][name]=appendOrSet(result[prop][name],syntax)}break;case"scope":result[prop]={...dest[prop]};for(const[name,props]of Object.entries(value)){result[prop][name]={...result[prop][name],...props}}break;case"parseContext":result[prop]={...dest[prop],...value};break;case"atrule":case"pseudo":result[prop]={...dest[prop],...sliceProps(value,["parse"])};break;case"node":result[prop]={...dest[prop],...sliceProps(value,["name","structure","parse","generate","walkContext"])};break}}return result}var mix_1$1=mix$3;const index$g=tokenizer$5;const create$a=create$e;const create$2$2=create$d;const create$3$1=create$c;const create$1$2=create$b;const Lexer$5=Lexer$7;const mix$2=mix_1$1;function createSyntax$2(config){const parse=create$a.createParser(config);const walk=create$1$2.createWalker(config);const generate=create$2$2.createGenerator(config);const{fromPlainObject:fromPlainObject,toPlainObject:toPlainObject}=create$3$1.createConvertor(walk);const syntax={lexer:null,createLexer:config=>new Lexer$5.Lexer(config,syntax,syntax.lexer.structure),tokenize:index$g.tokenize,parse:parse,generate:generate,walk:walk,find:walk.find,findLast:walk.findLast,findAll:walk.findAll,fromPlainObject:fromPlainObject,toPlainObject:toPlainObject,fork(extension){const base=mix$2({},config);return createSyntax$2(typeof extension==="function"?extension(base,Object.assign):mix$2(base,extension))}};syntax.lexer=new Lexer$5.Lexer({generic:true,units:config.units,types:config.types,atrules:config.atrules,properties:config.properties,node:config.node},syntax);return syntax}const createSyntax$1$1=config=>createSyntax$2(mix$2({},config));var create_1$1=createSyntax$1$1;var data$3={generic:true,units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( <calc-sum> )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( <calc-sum> )","alpha-value":"<number>|<percentage>","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>","angular-color-stop":"<color>&&<color-stop-angle>?","angular-color-stop-list":"[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>","animateable-feature":"scroll-position|contents|<custom-ident>","asin()":"asin( <calc-sum> )","atan()":"atan( <calc-sum> )","atan2()":"atan2( <calc-sum> , <calc-sum> )",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",axis:"block|inline|vertical|horizontal","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>","bg-image":"none|<image>","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage>|auto]{1,2}|cover|contain","blur()":"blur( <length> )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-value":"<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )","calc-constant":"e|pi|infinity|-infinity|NaN","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( [<shape-radius>]? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"<angle-percentage>{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!","compound-selector-list":"<compound-selector>#","complex-selector":"<compound-selector> [<combinator>? <compound-selector>]*","complex-selector-list":"<complex-selector>#","conic-gradient()":"conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contrast()":"contrast( [<number-percentage>] )","cos()":"cos( <calc-sum> )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( [<shape-radius>{2}]? [at <position>]? )","ending-shape":"circle|ellipse","env()":"env( <custom-ident> , <declaration-value>? )","exp()":"exp( <calc-sum> )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","fill-rule":"nonzero|evenodd","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-function-list":"[<filter-function>|<url>]+","final-bg-layer":"<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|<number [1,1000]>","frequency-percentage":"<frequency>|<percentage>","general-enclosed":"[<function-token> <any-value> )]|( <ident> <any-value> )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )","hsla()":"hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )",hue:"<number>|<angle>","hue-rotate()":"hue-rotate( <angle> )","hwb()":"hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )","hypot()":"hypot( <calc-sum># )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length-percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident>|<string>","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-block-list":"<keyframe-block>+","keyframe-selector":"from|to|<percentage>","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[<line-names>|<name-repeat>]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-gradient()":"linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","log()":"log( <calc-sum> , <calc-sum>? )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )","mod()":"mod( <calc-sum> , <calc-sum> )","name-repeat":"repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"<ident>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"<an-plus-b>|even|odd","opacity()":"opacity( [<number-percentage>] )","overflow-position":"unsafe|safe","outline-radius":"<length>|<percentage>","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[<page-selector>#]?","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger","path()":"path( [<fill-rule> ,]? <string> )","paint()":"paint( <ident> , <declaration-value>? )","perspective()":"perspective( [<length [0,∞]>|none] )","polygon()":"polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","pow()":"pow( <calc-sum> , <calc-sum> )","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )",ratio:"<number [0,∞]> [/ <number [0,∞]>]?","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","rem()":"rem( <calc-sum> , <calc-sum> )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","repeating-linear-gradient()":"repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","reversed-counter-name":"reversed( <counter-name> )","rgb()":"rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )","rgba()":"rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","round()":"round( <rounding-strategy>? , <calc-sum> , <calc-sum> )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( <number-percentage> )","scale()":"scale( [<number>|<percentage>]#{1,2} )","scale3d()":"scale3d( [<number>|<percentage>]#{3} )","scaleX()":"scaleX( [<number>|<percentage>] )","scaleY()":"scaleY( [<number>|<percentage>] )","scaleZ()":"scaleZ( [<number>|<percentage>] )",scroller:"root|nearest","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"<length-percentage>|closest-side|farthest-side","sign()":"sign( <calc-sum> )","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sepia()":"sepia( <number-percentage> )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","sin()":"sin( <calc-sum> )","single-animation":"<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<timeline-name>|scroll( <axis>? <scroller>? )","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","sqrt()":"sqrt( <calc-sum> )","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-timing-function":"step-start|step-end|steps( <integer> [, <step-position>]? )","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-decl":"( <declaration> )","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>","tan()":"tan( <calc-sum> )",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","time-percentage":"<time>|<percentage>","timeline-name":"<custom-ident>|<string>","easing-function":"linear|<cubic-bezier-timing-function>|<step-timing-function>","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-width":"fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-webkit-mask-clip-style":"border|border-box|padding|padding-box|content|content-box|text","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )","-ms-filter":"<string>",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>","bg-clip":"<box>|border|text",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral",left:"<length>|auto","mask-image":"<mask-reference>#",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke",right:"<length>|auto","scroll-timeline-axis":"block|inline|vertical|horizontal","scroll-timeline-name":"none|<custom-ident>","single-animation-composition":"replace|add|accumulate","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,∞]>","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zooming":"none|zoom","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-image-region":"<shape>|auto","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<box>|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#",all:"initial|inherit|unset|revert|revert-layer",animation:"<single-animation>#","animation-composition":"<single-animation-composition>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<easing-function>#","animation-timeline":"<single-animation-timeline>#",appearance:"none|auto|textfield|menulist-button|<compat-auto>","aspect-ratio":"auto|<ratio>",azimuth:"<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards","backdrop-filter":"none|<filter-function-list>","backface-visibility":"visible|hidden",background:"[<bg-layer> ,]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-overflow":"clip|ellipsis|<string>","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-color":"<'border-top-color'>{1,2}","border-block-style":"<'border-top-style'>","border-block-width":"<'border-top-width'>","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"collapse|separate","border-color":"<color>{1,4}","border-end-end-radius":"<length-percentage>{1,2}","border-end-start-radius":"<length-percentage>{1,2}","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length>|<number>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"<number-percentage>{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage>|<number>|auto]{1,4}","border-inline":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-style":"<'border-top-style'>","border-inline-width":"<'border-top-width'>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage>{1,4} [/ <length-percentage>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length> <length>?","border-start-end-radius":"<length-percentage>{1,2}","border-start-start-radius":"<length-percentage>{1,2}","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"<length>|<percentage>|auto","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom|block-start|block-end|inline-start|inline-end",caret:"<'caret-color'>||<'caret-shape'>","caret-color":"auto|<color>","caret-shape":"auto|bar|block|underscore",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none",color:"<color>","print-color-adjust":"economy|exact","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance|balance-all","column-gap":"normal|<length-percentage>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"<length>|auto",columns:"<'column-width'>||<'column-count'>",contain:"none|strict|content|[[size||inline-size]||layout||style||paint]","contain-intrinsic-size":"[none|<length>|auto <length>]{1,2}","contain-intrinsic-block-size":"none|<length>|auto <length>","contain-intrinsic-height":"none|<length>|auto <length>","contain-intrinsic-inline-size":"none|<length>|auto <length>","contain-intrinsic-width":"none|<length>|auto <length>",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?","content-visibility":"visible|auto|hidden","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","empty-cells":"show|hide",filter:"none|<filter-function-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end",font:"[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-variation-settings":"normal|[<string> <number>]#","font-size":"<absolute-size>|<relative-size>|<length-percentage>","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps]","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-weight":"<font-weight-absolute>|bolder|lighter","forced-color-adjust":"auto|none",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","hyphenate-character":"auto|<string>",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>","input-security":"auto|none",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>",isolation:"auto|isolate","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"<length>|<percentage>|auto","letter-spacing":"normal|<length-percentage>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"[<length>|<percentage>|auto]{1,4}","margin-block":"<'margin-left'>{1,2}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length>|<percentage>|auto","margin-inline":"<'margin-left'>{1,2}","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length>|<percentage>|auto","margin-right":"<length>|<percentage>|auto","margin-top":"<length>|<percentage>|auto","margin-trim":"none|in-flow|all",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<geometry-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-depth":"auto-add|add( <integer> )|<integer>","math-shift":"normal|compact","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","min-block-size":"<'min-width'>","min-height":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","min-inline-size":"<'min-width'>","min-width":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","mix-blend-mode":"<blend-mode>|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]","offset-position":"auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<alpha-value>",order:"<integer>",orphans:"<integer>",outline:"[<'outline-color'>||<'outline-style'>||<'outline-width'>]","outline-color":"<color>|invert","outline-offset":"<length>","outline-style":"auto|<'border-style'>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,∞]>","overflow-inline":"visible|hidden|clip|scroll|auto","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto","overflow-y":"visible|hidden|clip|scroll|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"[<length>|<percentage>]{1,4}","padding-block":"<'padding-left'>{1,2}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length>|<percentage>","padding-inline":"<'padding-left'>{1,2}","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length>|<percentage>","padding-right":"<length>|<percentage>","padding-top":"<length>|<percentage>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky",quotes:"none|auto|[<string> <string>]+",resize:"none|both|horizontal|vertical|block|inline",right:"<length>|<percentage>|auto",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-position":"[alternate||[over|under]]|inter-character",scale:"none|<number>{1,3}","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","scroll-behavior":"auto|smooth","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-start":"<length>","scroll-margin-block-end":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-start":"<length>","scroll-margin-inline-end":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","scroll-timeline":"<scroll-timeline-name>||<scroll-timeline-axis>","scroll-timeline-axis":"block|inline|vertical|horizontal","scroll-timeline-name":"none|<custom-ident>","shape-image-threshold":"<alpha-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[over|under]&&[right|left]","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-transform":"none|capitalize|uppercase|lowercase|full-width|full-size-kana","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]",top:"<length>|<percentage>|auto","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|contain|all","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>",visibility:"visible|hidden|collapse","white-space":"normal|pre|nowrap|pre-wrap|pre-line|break-spaces",widows:"<integer>",width:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>","z-index":"auto|<integer>",zoom:"normal|reset|<number>|<percentage>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto","-webkit-user-select":"auto|none|text|all","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical","baseline-shift":"baseline|sub|super|<svg-length>",behavior:"<url>+","clip-rule":"nonzero|evenodd",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge",fill:"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero|evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision",src:"[<url> [format( <string># )]?|local( <family-name> )]#",speak:"auto|none|normal","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]",stroke:"<paint>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start|middle|end","unicode-range":"<urange>#","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"[auto|block|swap|fallback|optional]","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-variation-settings":"normal|[<string> <number>]#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-weight":"<font-weight-absolute>{1,2}","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]",size:"<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},property:{prelude:"<custom-property-name>",descriptors:{syntax:"<string>",inherits:"true|false","initial-value":"<string>"}},"scroll-timeline":{prelude:"<timeline-name>",descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},viewport:{prelude:null,descriptors:{height:"<viewport-length>{1,2}","max-height":"<viewport-length>","max-width":"<viewport-length>","max-zoom":"auto|<number>|<percentage>","min-height":"<viewport-length>","min-width":"<viewport-length>","min-zoom":"auto|<number>|<percentage>",orientation:"auto|portrait|landscape","user-zoom":"zoom|fixed","viewport-fit":"auto|contain|cover",width:"<viewport-length>{1,2}",zoom:"auto|<number>|<percentage>"}},nest:{prelude:"<complex-selector-list>",descriptors:null}}};var node$1={};var AnPlusB$5={};const types$1x=types$1I;const charCodeDefinitions$i=charCodeDefinitions$p;const PLUSSIGN$f=43;const HYPHENMINUS$9=45;const N$5=110;const DISALLOW_SIGN$2=true;const ALLOW_SIGN$2=false;function checkInteger$2(offset,disallowSign){let pos=this.tokenStart+offset;const code=this.charCodeAt(pos);if(code===PLUSSIGN$f||code===HYPHENMINUS$9){if(disallowSign){this.error("Number sign is not allowed")}pos++}for(;pos<this.tokenEnd;pos++){if(!charCodeDefinitions$i.isDigit(this.charCodeAt(pos))){this.error("Integer is expected",pos)}}}function checkTokenIsInteger$1(disallowSign){return checkInteger$2.call(this,0,disallowSign)}function expectCharCode$1(offset,code){if(!this.cmpChar(this.tokenStart+offset,code)){let msg="";switch(code){case N$5:msg="N is expected";break;case HYPHENMINUS$9:msg="HyphenMinus is expected";break}this.error(msg,this.tokenStart+offset)}}function consumeB$2(){let offset=0;let sign=0;let type=this.tokenType;while(type===types$1x.WhiteSpace||type===types$1x.Comment){type=this.lookupType(++offset)}if(type!==types$1x.Number){if(this.isDelim(PLUSSIGN$f,offset)||this.isDelim(HYPHENMINUS$9,offset)){sign=this.isDelim(PLUSSIGN$f,offset)?PLUSSIGN$f:HYPHENMINUS$9;do{type=this.lookupType(++offset)}while(type===types$1x.WhiteSpace||type===types$1x.Comment);if(type!==types$1x.Number){this.skip(offset);checkTokenIsInteger$1.call(this,DISALLOW_SIGN$2)}}else{return null}}if(offset>0){this.skip(offset)}if(sign===0){type=this.charCodeAt(this.tokenStart);if(type!==PLUSSIGN$f&&type!==HYPHENMINUS$9){this.error("Number sign is expected")}}checkTokenIsInteger$1.call(this,sign!==0);return sign===HYPHENMINUS$9?"-"+this.consume(types$1x.Number):this.consume(types$1x.Number)}const name$1g="AnPlusB";const structure$1i={a:[String,null],b:[String,null]};function parse$1q(){const start=this.tokenStart;let a=null;let b=null;if(this.tokenType===types$1x.Number){checkTokenIsInteger$1.call(this,ALLOW_SIGN$2);b=this.consume(types$1x.Number)}else if(this.tokenType===types$1x.Ident&&this.cmpChar(this.tokenStart,HYPHENMINUS$9)){a="-1";expectCharCode$1.call(this,1,N$5);switch(this.tokenEnd-this.tokenStart){case 2:this.next();b=consumeB$2.call(this);break;case 3:expectCharCode$1.call(this,2,HYPHENMINUS$9);this.next();this.skipSC();checkTokenIsInteger$1.call(this,DISALLOW_SIGN$2);b="-"+this.consume(types$1x.Number);break;default:expectCharCode$1.call(this,2,HYPHENMINUS$9);checkInteger$2.call(this,3,DISALLOW_SIGN$2);this.next();b=this.substrToCursor(start+2)}}else if(this.tokenType===types$1x.Ident||this.isDelim(PLUSSIGN$f)&&this.lookupType(1)===types$1x.Ident){let sign=0;a="1";if(this.isDelim(PLUSSIGN$f)){sign=1;this.next()}expectCharCode$1.call(this,0,N$5);switch(this.tokenEnd-this.tokenStart){case 1:this.next();b=consumeB$2.call(this);break;case 2:expectCharCode$1.call(this,1,HYPHENMINUS$9);this.next();this.skipSC();checkTokenIsInteger$1.call(this,DISALLOW_SIGN$2);b="-"+this.consume(types$1x.Number);break;default:expectCharCode$1.call(this,1,HYPHENMINUS$9);checkInteger$2.call(this,2,DISALLOW_SIGN$2);this.next();b=this.substrToCursor(start+sign+1)}}else if(this.tokenType===types$1x.Dimension){const code=this.charCodeAt(this.tokenStart);const sign=code===PLUSSIGN$f||code===HYPHENMINUS$9;let i=this.tokenStart+sign;for(;i<this.tokenEnd;i++){if(!charCodeDefinitions$i.isDigit(this.charCodeAt(i))){break}}if(i===this.tokenStart+sign){this.error("Integer is expected",this.tokenStart+sign)}expectCharCode$1.call(this,i-this.tokenStart,N$5);a=this.substring(start,i);if(i+1===this.tokenEnd){this.next();b=consumeB$2.call(this)}else{expectCharCode$1.call(this,i-this.tokenStart+1,HYPHENMINUS$9);if(i+2===this.tokenEnd){this.next();this.skipSC();checkTokenIsInteger$1.call(this,DISALLOW_SIGN$2);b="-"+this.consume(types$1x.Number)}else{checkInteger$2.call(this,i-this.tokenStart+2,DISALLOW_SIGN$2);this.next();b=this.substrToCursor(i+1)}}}else{this.error()}if(a!==null&&a.charCodeAt(0)===PLUSSIGN$f){a=a.substr(1)}if(b!==null&&b.charCodeAt(0)===PLUSSIGN$f){b=b.substr(1)}return{type:"AnPlusB",loc:this.getLocation(start,this.tokenStart),a:a,b:b}}function generate$1q(node){if(node.a){const a=node.a==="+1"&&"n"||node.a==="1"&&"n"||node.a==="-1"&&"-n"||node.a+"n";if(node.b){const b=node.b[0]==="-"||node.b[0]==="+"?node.b:"+"+node.b;this.tokenize(a+b)}else{this.tokenize(a)}}else{this.tokenize(node.b)}}AnPlusB$5.generate=generate$1q;AnPlusB$5.name=name$1g;AnPlusB$5.parse=parse$1q;AnPlusB$5.structure=structure$1i;var Atrule$9={};const types$1w=types$1I;function consumeRaw$b(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracketOrSemicolon,true)}function isDeclarationBlockAtrule$1(){for(let offset=1,type;type=this.lookupType(offset);offset++){if(type===types$1w.RightCurlyBracket){return true}if(type===types$1w.LeftCurlyBracket||type===types$1w.AtKeyword){return false}}return false}const name$1f="Atrule";const walkContext$j="atrule";const structure$1h={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function parse$1p(isDeclaration=false){const start=this.tokenStart;let name;let nameLowerCase;let prelude=null;let block=null;this.eat(types$1w.AtKeyword);name=this.substrToCursor(start+1);nameLowerCase=name.toLowerCase();this.skipSC();if(this.eof===false&&this.tokenType!==types$1w.LeftCurlyBracket&&this.tokenType!==types$1w.Semicolon){if(this.parseAtrulePrelude){prelude=this.parseWithFallback(this.AtrulePrelude.bind(this,name,isDeclaration),consumeRaw$b)}else{prelude=consumeRaw$b.call(this,this.tokenIndex)}this.skipSC()}switch(this.tokenType){case types$1w.Semicolon:this.next();break;case types$1w.LeftCurlyBracket:if(hasOwnProperty.call(this.atrule,nameLowerCase)&&typeof this.atrule[nameLowerCase].block==="function"){block=this.atrule[nameLowerCase].block.call(this,isDeclaration)}else{block=this.Block(isDeclarationBlockAtrule$1.call(this))}break}return{type:"Atrule",loc:this.getLocation(start,this.tokenStart),name:name,prelude:prelude,block:block}}function generate$1p(node){this.token(types$1w.AtKeyword,"@"+node.name);if(node.prelude!==null){this.node(node.prelude)}if(node.block){this.node(node.block)}else{this.token(types$1w.Semicolon,";")}}Atrule$9.generate=generate$1p;Atrule$9.name=name$1f;Atrule$9.parse=parse$1p;Atrule$9.structure=structure$1h;Atrule$9.walkContext=walkContext$j;var AtrulePrelude$5={};const types$1v=types$1I;const name$1e="AtrulePrelude";const walkContext$i="atrulePrelude";const structure$1g={children:[[]]};function parse$1o(name){let children=null;if(name!==null){name=name.toLowerCase()}this.skipSC();if(hasOwnProperty.call(this.atrule,name)&&typeof this.atrule[name].prelude==="function"){children=this.atrule[name].prelude.call(this)}else{children=this.readSequence(this.scope.AtrulePrelude)}this.skipSC();if(this.eof!==true&&this.tokenType!==types$1v.LeftCurlyBracket&&this.tokenType!==types$1v.Semicolon){this.error("Semicolon or block is expected")}return{type:"AtrulePrelude",loc:this.getLocationFromList(children),children:children}}function generate$1o(node){this.children(node)}AtrulePrelude$5.generate=generate$1o;AtrulePrelude$5.name=name$1e;AtrulePrelude$5.parse=parse$1o;AtrulePrelude$5.structure=structure$1g;AtrulePrelude$5.walkContext=walkContext$i;var AttributeSelector$7={};const types$1u=types$1I;const DOLLARSIGN$3=36;const ASTERISK$c=42;const EQUALSSIGN$1=61;const CIRCUMFLEXACCENT$1=94;const VERTICALLINE$6=124;const TILDE$5=126;function getAttributeName$1(){if(this.eof){this.error("Unexpected end of input")}const start=this.tokenStart;let expectIdent=false;if(this.isDelim(ASTERISK$c)){expectIdent=true;this.next()}else if(!this.isDelim(VERTICALLINE$6)){this.eat(types$1u.Ident)}if(this.isDelim(VERTICALLINE$6)){if(this.charCodeAt(this.tokenStart+1)!==EQUALSSIGN$1){this.next();this.eat(types$1u.Ident)}else if(expectIdent){this.error("Identifier is expected",this.tokenEnd)}}else if(expectIdent){this.error("Vertical line is expected")}return{type:"Identifier",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function getOperator$1(){const start=this.tokenStart;const code=this.charCodeAt(start);if(code!==EQUALSSIGN$1&&code!==TILDE$5&&code!==CIRCUMFLEXACCENT$1&&code!==DOLLARSIGN$3&&code!==ASTERISK$c&&code!==VERTICALLINE$6){this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected")}this.next();if(code!==EQUALSSIGN$1){if(!this.isDelim(EQUALSSIGN$1)){this.error("Equal sign is expected")}this.next()}return this.substrToCursor(start)}const name$1d="AttributeSelector";const structure$1f={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function parse$1n(){const start=this.tokenStart;let name;let matcher=null;let value=null;let flags=null;this.eat(types$1u.LeftSquareBracket);this.skipSC();name=getAttributeName$1.call(this);this.skipSC();if(this.tokenType!==types$1u.RightSquareBracket){if(this.tokenType!==types$1u.Ident){matcher=getOperator$1.call(this);this.skipSC();value=this.tokenType===types$1u.String?this.String():this.Identifier();this.skipSC()}if(this.tokenType===types$1u.Ident){flags=this.consume(types$1u.Ident);this.skipSC()}}this.eat(types$1u.RightSquareBracket);return{type:"AttributeSelector",loc:this.getLocation(start,this.tokenStart),name:name,matcher:matcher,value:value,flags:flags}}function generate$1n(node){this.token(types$1u.Delim,"[");this.node(node.name);if(node.matcher!==null){this.tokenize(node.matcher);this.node(node.value)}if(node.flags!==null){this.token(types$1u.Ident,node.flags)}this.token(types$1u.Delim,"]")}AttributeSelector$7.generate=generate$1n;AttributeSelector$7.name=name$1d;AttributeSelector$7.parse=parse$1n;AttributeSelector$7.structure=structure$1f;var Block$5={};const types$1t=types$1I;const AMPERSAND$6=38;function consumeRaw$a(startToken){return this.Raw(startToken,null,true)}function consumeRule$1(){return this.parseWithFallback(this.Rule,consumeRaw$a)}function consumeRawDeclaration$1(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}function consumeDeclaration$1(){if(this.tokenType===types$1t.Semicolon){return consumeRawDeclaration$1.call(this,this.tokenIndex)}const node=this.parseWithFallback(this.Declaration,consumeRawDeclaration$1);if(this.tokenType===types$1t.Semicolon){this.next()}return node}const name$1c="Block";const walkContext$h="block";const structure$1e={children:[["Atrule","Rule","Declaration"]]};function parse$1m(isStyleBlock){const consumer=isStyleBlock?consumeDeclaration$1:consumeRule$1;const start=this.tokenStart;let children=this.createList();this.eat(types$1t.LeftCurlyBracket);scan:while(!this.eof){switch(this.tokenType){case types$1t.RightCurlyBracket:break scan;case types$1t.WhiteSpace:case types$1t.Comment:this.next();break;case types$1t.AtKeyword:children.push(this.parseWithFallback(this.Atrule.bind(this,isStyleBlock),consumeRaw$a));break;default:if(isStyleBlock&&this.isDelim(AMPERSAND$6)){children.push(consumeRule$1.call(this))}else{children.push(consumer.call(this))}}}if(!this.eof){this.eat(types$1t.RightCurlyBracket)}return{type:"Block",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$1m(node){this.token(types$1t.LeftCurlyBracket,"{");this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$1t.Semicolon,";")}}));this.token(types$1t.RightCurlyBracket,"}")}Block$5.generate=generate$1m;Block$5.name=name$1c;Block$5.parse=parse$1m;Block$5.structure=structure$1e;Block$5.walkContext=walkContext$h;var Brackets$5={};const types$1s=types$1I;const name$1b="Brackets";const structure$1d={children:[[]]};function parse$1l(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$1s.LeftSquareBracket);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$1s.RightSquareBracket)}return{type:"Brackets",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$1l(node){this.token(types$1s.Delim,"[");this.children(node);this.token(types$1s.Delim,"]")}Brackets$5.generate=generate$1l;Brackets$5.name=name$1b;Brackets$5.parse=parse$1l;Brackets$5.structure=structure$1d;var CDC$6={};const types$1r=types$1I;const name$1a="CDC";const structure$1c=[];function parse$1k(){const start=this.tokenStart;this.eat(types$1r.CDC);return{type:"CDC",loc:this.getLocation(start,this.tokenStart)}}function generate$1k(){this.token(types$1r.CDC,"--\x3e")}CDC$6.generate=generate$1k;CDC$6.name=name$1a;CDC$6.parse=parse$1k;CDC$6.structure=structure$1c;var CDO$6={};const types$1q=types$1I;const name$19="CDO";const structure$1b=[];function parse$1j(){const start=this.tokenStart;this.eat(types$1q.CDO);return{type:"CDO",loc:this.getLocation(start,this.tokenStart)}}function generate$1j(){this.token(types$1q.CDO,"\x3c!--")}CDO$6.generate=generate$1j;CDO$6.name=name$19;CDO$6.parse=parse$1j;CDO$6.structure=structure$1b;var ClassSelector$5={};const types$1p=types$1I;const FULLSTOP$5=46;const name$18="ClassSelector";const structure$1a={name:String};function parse$1i(){this.eatDelim(FULLSTOP$5);return{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(types$1p.Ident)}}function generate$1i(node){this.token(types$1p.Delim,".");this.token(types$1p.Ident,node.name)}ClassSelector$5.generate=generate$1i;ClassSelector$5.name=name$18;ClassSelector$5.parse=parse$1i;ClassSelector$5.structure=structure$1a;var Combinator$5={};const types$1o=types$1I;const PLUSSIGN$e=43;const SOLIDUS$b=47;const GREATERTHANSIGN$4=62;const TILDE$4=126;const name$17="Combinator";const structure$19={name:String};function parse$1h(){const start=this.tokenStart;let name;switch(this.tokenType){case types$1o.WhiteSpace:name=" ";break;case types$1o.Delim:switch(this.charCodeAt(this.tokenStart)){case GREATERTHANSIGN$4:case PLUSSIGN$e:case TILDE$4:this.next();break;case SOLIDUS$b:this.next();this.eatIdent("deep");this.eatDelim(SOLIDUS$b);break;default:this.error("Combinator is expected")}name=this.substrToCursor(start);break}return{type:"Combinator",loc:this.getLocation(start,this.tokenStart),name:name}}function generate$1h(node){this.tokenize(node.name)}Combinator$5.generate=generate$1h;Combinator$5.name=name$17;Combinator$5.parse=parse$1h;Combinator$5.structure=structure$19;var Comment$8={};const types$1n=types$1I;const ASTERISK$b=42;const SOLIDUS$a=47;const name$16="Comment";const structure$18={value:String};function parse$1g(){const start=this.tokenStart;let end=this.tokenEnd;this.eat(types$1n.Comment);if(end-start+2>=2&&this.charCodeAt(end-2)===ASTERISK$b&&this.charCodeAt(end-1)===SOLIDUS$a){end-=2}return{type:"Comment",loc:this.getLocation(start,this.tokenStart),value:this.substring(start+2,end)}}function generate$1g(node){this.token(types$1n.Comment,"/*"+node.value+"*/")}Comment$8.generate=generate$1g;Comment$8.name=name$16;Comment$8.parse=parse$1g;Comment$8.structure=structure$18;var Declaration$7={};const names$a=names$c;const types$1m=types$1I;const EXCLAMATIONMARK$5=33;const NUMBERSIGN$7=35;const DOLLARSIGN$2=36;const AMPERSAND$5=38;const ASTERISK$a=42;const PLUSSIGN$d=43;const SOLIDUS$9=47;function consumeValueRaw$1(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,true)}function consumeCustomPropertyRaw$1(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,false)}function consumeValue$1(){const startValueToken=this.tokenIndex;const value=this.Value();if(value.type!=="Raw"&&this.eof===false&&this.tokenType!==types$1m.Semicolon&&this.isDelim(EXCLAMATIONMARK$5)===false&&this.isBalanceEdge(startValueToken)===false){this.error()}return value}const name$15="Declaration";const walkContext$g="declaration";const structure$17={important:[Boolean,String],property:String,value:["Value","Raw"]};function parse$1f(){const start=this.tokenStart;const startToken=this.tokenIndex;const property=readProperty$2.call(this);const customProperty=names$a.isCustomProperty(property);const parseValue=customProperty?this.parseCustomProperty:this.parseValue;const consumeRaw=customProperty?consumeCustomPropertyRaw$1:consumeValueRaw$1;let important=false;let value;this.skipSC();this.eat(types$1m.Colon);const valueStart=this.tokenIndex;if(!customProperty){this.skipSC()}if(parseValue){value=this.parseWithFallback(consumeValue$1,consumeRaw)}else{value=consumeRaw.call(this,this.tokenIndex)}if(customProperty&&value.type==="Value"&&value.children.isEmpty){for(let offset=valueStart-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$1m.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}if(this.isDelim(EXCLAMATIONMARK$5)){important=getImportant$1.call(this);this.skipSC()}if(this.eof===false&&this.tokenType!==types$1m.Semicolon&&this.isBalanceEdge(startToken)===false){this.error()}return{type:"Declaration",loc:this.getLocation(start,this.tokenStart),important:important,property:property,value:value}}function generate$1f(node){this.token(types$1m.Ident,node.property);this.token(types$1m.Colon,":");this.node(node.value);if(node.important){this.token(types$1m.Delim,"!");this.token(types$1m.Ident,node.important===true?"important":node.important)}}function readProperty$2(){const start=this.tokenStart;if(this.tokenType===types$1m.Delim){switch(this.charCodeAt(this.tokenStart)){case ASTERISK$a:case DOLLARSIGN$2:case PLUSSIGN$d:case NUMBERSIGN$7:case AMPERSAND$5:this.next();break;case SOLIDUS$9:this.next();if(this.isDelim(SOLIDUS$9)){this.next()}break}}if(this.tokenType===types$1m.Hash){this.eat(types$1m.Hash)}else{this.eat(types$1m.Ident)}return this.substrToCursor(start)}function getImportant$1(){this.eat(types$1m.Delim);this.skipSC();const important=this.consume(types$1m.Ident);return important==="important"?true:important}Declaration$7.generate=generate$1f;Declaration$7.name=name$15;Declaration$7.parse=parse$1f;Declaration$7.structure=structure$17;Declaration$7.walkContext=walkContext$g;var DeclarationList$5={};const types$1l=types$1I;const AMPERSAND$4=38;function consumeRaw$9(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}const name$14="DeclarationList";const structure$16={children:[["Declaration","Atrule","Rule"]]};function parse$1e(){const children=this.createList();while(!this.eof){switch(this.tokenType){case types$1l.WhiteSpace:case types$1l.Comment:case types$1l.Semicolon:this.next();break;case types$1l.AtKeyword:children.push(this.parseWithFallback(this.Atrule.bind(this,true),consumeRaw$9));break;default:if(this.isDelim(AMPERSAND$4)){children.push(this.parseWithFallback(this.Rule,consumeRaw$9))}else{children.push(this.parseWithFallback(this.Declaration,consumeRaw$9))}}}return{type:"DeclarationList",loc:this.getLocationFromList(children),children:children}}function generate$1e(node){this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$1l.Semicolon,";")}}))}DeclarationList$5.generate=generate$1e;DeclarationList$5.name=name$14;DeclarationList$5.parse=parse$1e;DeclarationList$5.structure=structure$16;var Dimension$8={};const types$1k=types$1I;const name$13="Dimension";const structure$15={value:String,unit:String};function parse$1d(){const start=this.tokenStart;const value=this.consumeNumber(types$1k.Dimension);return{type:"Dimension",loc:this.getLocation(start,this.tokenStart),value:value,unit:this.substring(start+value.length,this.tokenStart)}}function generate$1d(node){this.token(types$1k.Dimension,node.value+node.unit)}Dimension$8.generate=generate$1d;Dimension$8.name=name$13;Dimension$8.parse=parse$1d;Dimension$8.structure=structure$15;var _Function$1={};const types$1j=types$1I;const name$12="Function";const walkContext$f="function";const structure$14={name:String,children:[[]]};function parse$1c(readSequence,recognizer){const start=this.tokenStart;const name=this.consumeFunctionName();const nameLowerCase=name.toLowerCase();let children;children=recognizer.hasOwnProperty(nameLowerCase)?recognizer[nameLowerCase].call(this,recognizer):readSequence.call(this,recognizer);if(!this.eof){this.eat(types$1j.RightParenthesis)}return{type:"Function",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$1c(node){this.token(types$1j.Function,node.name+"(");this.children(node);this.token(types$1j.RightParenthesis,")")}_Function$1.generate=generate$1c;_Function$1.name=name$12;_Function$1.parse=parse$1c;_Function$1.structure=structure$14;_Function$1.walkContext=walkContext$f;var Hash$6={};const types$1i=types$1I;const xxx$1="XXX";const name$11="Hash";const structure$13={value:String};function parse$1b(){const start=this.tokenStart;this.eat(types$1i.Hash);return{type:"Hash",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start+1)}}function generate$1b(node){this.token(types$1i.Hash,"#"+node.value)}Hash$6.generate=generate$1b;Hash$6.name=name$11;Hash$6.parse=parse$1b;Hash$6.structure=structure$13;Hash$6.xxx=xxx$1;var Identifier$5={};const types$1h=types$1I;const name$10="Identifier";const structure$12={name:String};function parse$1a(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(types$1h.Ident)}}function generate$1a(node){this.token(types$1h.Ident,node.name)}Identifier$5.generate=generate$1a;Identifier$5.name=name$10;Identifier$5.parse=parse$1a;Identifier$5.structure=structure$12;var IdSelector$5={};const types$1g=types$1I;const name$$="IdSelector";const structure$11={name:String};function parse$19(){const start=this.tokenStart;this.eat(types$1g.Hash);return{type:"IdSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start+1)}}function generate$19(node){this.token(types$1g.Delim,"#"+node.name)}IdSelector$5.generate=generate$19;IdSelector$5.name=name$$;IdSelector$5.parse=parse$19;IdSelector$5.structure=structure$11;var MediaFeature$5={};const types$1f=types$1I;const name$_="MediaFeature";const structure$10={name:String,value:["Identifier","Number","Dimension","Ratio",null]};function parse$18(){const start=this.tokenStart;let name;let value=null;this.eat(types$1f.LeftParenthesis);this.skipSC();name=this.consume(types$1f.Ident);this.skipSC();if(this.tokenType!==types$1f.RightParenthesis){this.eat(types$1f.Colon);this.skipSC();switch(this.tokenType){case types$1f.Number:if(this.lookupNonWSType(1)===types$1f.Delim){value=this.Ratio()}else{value=this.Number()}break;case types$1f.Dimension:value=this.Dimension();break;case types$1f.Ident:value=this.Identifier();break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}this.eat(types$1f.RightParenthesis);return{type:"MediaFeature",loc:this.getLocation(start,this.tokenStart),name:name,value:value}}function generate$18(node){this.token(types$1f.LeftParenthesis,"(");this.token(types$1f.Ident,node.name);if(node.value!==null){this.token(types$1f.Colon,":");this.node(node.value)}this.token(types$1f.RightParenthesis,")")}MediaFeature$5.generate=generate$18;MediaFeature$5.name=name$_;MediaFeature$5.parse=parse$18;MediaFeature$5.structure=structure$10;var MediaQuery$5={};const types$1e=types$1I;const name$Z="MediaQuery";const structure$$={children:[["Identifier","MediaFeature","WhiteSpace"]]};function parse$17(){const children=this.createList();let child=null;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$1e.Comment:case types$1e.WhiteSpace:this.next();continue;case types$1e.Ident:child=this.Identifier();break;case types$1e.LeftParenthesis:child=this.MediaFeature();break;default:break scan}children.push(child)}if(child===null){this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocationFromList(children),children:children}}function generate$17(node){this.children(node)}MediaQuery$5.generate=generate$17;MediaQuery$5.name=name$Z;MediaQuery$5.parse=parse$17;MediaQuery$5.structure=structure$$;var MediaQueryList$5={};const types$1d=types$1I;const name$Y="MediaQueryList";const structure$_={children:[["MediaQuery"]]};function parse$16(){const children=this.createList();this.skipSC();while(!this.eof){children.push(this.MediaQuery());if(this.tokenType!==types$1d.Comma){break}this.next()}return{type:"MediaQueryList",loc:this.getLocationFromList(children),children:children}}function generate$16(node){this.children(node,(()=>this.token(types$1d.Comma,",")))}MediaQueryList$5.generate=generate$16;MediaQueryList$5.name=name$Y;MediaQueryList$5.parse=parse$16;MediaQueryList$5.structure=structure$_;var NestingSelector$2={};const types$1c=types$1I;const AMPERSAND$3=38;const name$X="NestingSelector";const structure$Z={};function parse$15(){const start=this.tokenStart;this.eatDelim(AMPERSAND$3);return{type:"NestingSelector",loc:this.getLocation(start,this.tokenStart)}}function generate$15(){this.token(types$1c.Delim,"&")}NestingSelector$2.generate=generate$15;NestingSelector$2.name=name$X;NestingSelector$2.parse=parse$15;NestingSelector$2.structure=structure$Z;var Nth$5={};const types$1b=types$1I;const name$W="Nth";const structure$Y={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function parse$14(){this.skipSC();const start=this.tokenStart;let end=start;let selector=null;let nth;if(this.lookupValue(0,"odd")||this.lookupValue(0,"even")){nth=this.Identifier()}else{nth=this.AnPlusB()}end=this.tokenStart;this.skipSC();if(this.lookupValue(0,"of")){this.next();selector=this.SelectorList();end=this.tokenStart}return{type:"Nth",loc:this.getLocation(start,end),nth:nth,selector:selector}}function generate$14(node){this.node(node.nth);if(node.selector!==null){this.token(types$1b.Ident,"of");this.node(node.selector)}}Nth$5.generate=generate$14;Nth$5.name=name$W;Nth$5.parse=parse$14;Nth$5.structure=structure$Y;var _Number$6={};const types$1a=types$1I;const name$V="Number";const structure$X={value:String};function parse$13(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(types$1a.Number)}}function generate$13(node){this.token(types$1a.Number,node.value)}_Number$6.generate=generate$13;_Number$6.name=name$V;_Number$6.parse=parse$13;_Number$6.structure=structure$X;var Operator$5={};const name$U="Operator";const structure$W={value:String};function parse$12(){const start=this.tokenStart;this.next();return{type:"Operator",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$12(node){this.tokenize(node.value)}Operator$5.generate=generate$12;Operator$5.name=name$U;Operator$5.parse=parse$12;Operator$5.structure=structure$W;var Parentheses$5={};const types$19=types$1I;const name$T="Parentheses";const structure$V={children:[[]]};function parse$11(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$19.LeftParenthesis);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$19.RightParenthesis)}return{type:"Parentheses",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$11(node){this.token(types$19.LeftParenthesis,"(");this.children(node);this.token(types$19.RightParenthesis,")")}Parentheses$5.generate=generate$11;Parentheses$5.name=name$T;Parentheses$5.parse=parse$11;Parentheses$5.structure=structure$V;var Percentage$8={};const types$18=types$1I;const name$S="Percentage";const structure$U={value:String};function parse$10(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(types$18.Percentage)}}function generate$10(node){this.token(types$18.Percentage,node.value+"%")}Percentage$8.generate=generate$10;Percentage$8.name=name$S;Percentage$8.parse=parse$10;Percentage$8.structure=structure$U;var PseudoClassSelector$5={};const types$17=types$1I;const name$R="PseudoClassSelector";const walkContext$e="function";const structure$T={name:String,children:[["Raw"],null]};function parse$$(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$17.Colon);if(this.tokenType===types$17.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$17.RightParenthesis)}else{name=this.consume(types$17.Ident)}return{type:"PseudoClassSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$$(node){this.token(types$17.Colon,":");if(node.children===null){this.token(types$17.Ident,node.name)}else{this.token(types$17.Function,node.name+"(");this.children(node);this.token(types$17.RightParenthesis,")")}}PseudoClassSelector$5.generate=generate$$;PseudoClassSelector$5.name=name$R;PseudoClassSelector$5.parse=parse$$;PseudoClassSelector$5.structure=structure$T;PseudoClassSelector$5.walkContext=walkContext$e;var PseudoElementSelector$5={};const types$16=types$1I;const name$Q="PseudoElementSelector";const walkContext$d="function";const structure$S={name:String,children:[["Raw"],null]};function parse$_(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$16.Colon);this.eat(types$16.Colon);if(this.tokenType===types$16.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$16.RightParenthesis)}else{name=this.consume(types$16.Ident)}return{type:"PseudoElementSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$_(node){this.token(types$16.Colon,":");this.token(types$16.Colon,":");if(node.children===null){this.token(types$16.Ident,node.name)}else{this.token(types$16.Function,node.name+"(");this.children(node);this.token(types$16.RightParenthesis,")")}}PseudoElementSelector$5.generate=generate$_;PseudoElementSelector$5.name=name$Q;PseudoElementSelector$5.parse=parse$_;PseudoElementSelector$5.structure=structure$S;PseudoElementSelector$5.walkContext=walkContext$d;var Ratio$5={};const types$15=types$1I;const charCodeDefinitions$h=charCodeDefinitions$p;const SOLIDUS$8=47;const FULLSTOP$4=46;function consumeNumber$2(){this.skipSC();const value=this.consume(types$15.Number);for(let i=0;i<value.length;i++){const code=value.charCodeAt(i);if(!charCodeDefinitions$h.isDigit(code)&&code!==FULLSTOP$4){this.error("Unsigned number is expected",this.tokenStart-value.length+i)}}if(Number(value)===0){this.error("Zero number is not allowed",this.tokenStart-value.length)}return value}const name$P="Ratio";const structure$R={left:String,right:String};function parse$Z(){const start=this.tokenStart;const left=consumeNumber$2.call(this);let right;this.skipSC();this.eatDelim(SOLIDUS$8);right=consumeNumber$2.call(this);return{type:"Ratio",loc:this.getLocation(start,this.tokenStart),left:left,right:right}}function generate$Z(node){this.token(types$15.Number,node.left);this.token(types$15.Delim,"/");this.token(types$15.Number,node.right)}Ratio$5.generate=generate$Z;Ratio$5.name=name$P;Ratio$5.parse=parse$Z;Ratio$5.structure=structure$R;var Raw$7={};const types$14=types$1I;function getOffsetExcludeWS$1(){if(this.tokenIndex>0){if(this.lookupType(-1)===types$14.WhiteSpace){return this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset}}return this.tokenStart}const name$O="Raw";const structure$Q={value:String};function parse$Y(startToken,consumeUntil,excludeWhiteSpace){const startOffset=this.getTokenStart(startToken);let endOffset;this.skipUntilBalanced(startToken,consumeUntil||this.consumeUntilBalanceEnd);if(excludeWhiteSpace&&this.tokenStart>startOffset){endOffset=getOffsetExcludeWS$1.call(this)}else{endOffset=this.tokenStart}return{type:"Raw",loc:this.getLocation(startOffset,endOffset),value:this.substring(startOffset,endOffset)}}function generate$Y(node){this.tokenize(node.value)}Raw$7.generate=generate$Y;Raw$7.name=name$O;Raw$7.parse=parse$Y;Raw$7.structure=structure$Q;var Rule$7={};const types$13=types$1I;function consumeRaw$8(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracket,true)}function consumePrelude$1(){const prelude=this.SelectorList();if(prelude.type!=="Raw"&&this.eof===false&&this.tokenType!==types$13.LeftCurlyBracket){this.error()}return prelude}const name$N="Rule";const walkContext$c="rule";const structure$P={prelude:["SelectorList","Raw"],block:["Block"]};function parse$X(){const startToken=this.tokenIndex;const startOffset=this.tokenStart;let prelude;let block;if(this.parseRulePrelude){prelude=this.parseWithFallback(consumePrelude$1,consumeRaw$8)}else{prelude=consumeRaw$8.call(this,startToken)}block=this.Block(true);return{type:"Rule",loc:this.getLocation(startOffset,this.tokenStart),prelude:prelude,block:block}}function generate$X(node){this.node(node.prelude);this.node(node.block)}Rule$7.generate=generate$X;Rule$7.name=name$N;Rule$7.parse=parse$X;Rule$7.structure=structure$P;Rule$7.walkContext=walkContext$c;var Selector$7={};const name$M="Selector";const structure$O={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator","WhiteSpace"]]};function parse$W(){const children=this.readSequence(this.scope.Selector);if(this.getFirstListNode(children)===null){this.error("Selector is expected")}return{type:"Selector",loc:this.getLocationFromList(children),children:children}}function generate$W(node){this.children(node)}Selector$7.generate=generate$W;Selector$7.name=name$M;Selector$7.parse=parse$W;Selector$7.structure=structure$O;var SelectorList$5={};const types$12=types$1I;const name$L="SelectorList";const walkContext$b="selector";const structure$N={children:[["Selector","Raw"]]};function parse$V(){const children=this.createList();while(!this.eof){children.push(this.Selector());if(this.tokenType===types$12.Comma){this.next();continue}break}return{type:"SelectorList",loc:this.getLocationFromList(children),children:children}}function generate$V(node){this.children(node,(()=>this.token(types$12.Comma,",")))}SelectorList$5.generate=generate$V;SelectorList$5.name=name$L;SelectorList$5.parse=parse$V;SelectorList$5.structure=structure$N;SelectorList$5.walkContext=walkContext$b;var _String$1={};var string$7={};const charCodeDefinitions$g=charCodeDefinitions$p;const utils$n=utils$u;const REVERSE_SOLIDUS$5=92;const QUOTATION_MARK$3=34;const APOSTROPHE$4=39;function decode$5(str){const len=str.length;const firstChar=str.charCodeAt(0);const start=firstChar===QUOTATION_MARK$3||firstChar===APOSTROPHE$4?1:0;const end=start===1&&len>1&&str.charCodeAt(len-1)===firstChar?len-2:len-1;let decoded="";for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$5){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$g.isValidEscape(REVERSE_SOLIDUS$5,code)){const escapeStart=i-1;const escapeEnd=utils$n.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$n.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$5(str,apostrophe){const quote=apostrophe?"'":'"';const quoteCode=apostrophe?APOSTROPHE$4:QUOTATION_MARK$3;let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===quoteCode||code===REVERSE_SOLIDUS$5){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&(charCodeDefinitions$g.isHexDigit(code)||charCodeDefinitions$g.isWhiteSpace(code))){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return quote+encoded+quote}string$7.decode=decode$5;string$7.encode=encode$5;const string$6=string$7;const types$11=types$1I;const name$K="String";const structure$M={value:String};function parse$U(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:string$6.decode(this.consume(types$11.String))}}function generate$U(node){this.token(types$11.String,string$6.encode(node.value))}_String$1.generate=generate$U;_String$1.name=name$K;_String$1.parse=parse$U;_String$1.structure=structure$M;var StyleSheet$5={};const types$10=types$1I;const EXCLAMATIONMARK$4=33;function consumeRaw$7(startToken){return this.Raw(startToken,null,false)}const name$J="StyleSheet";const walkContext$a="stylesheet";const structure$L={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function parse$T(){const start=this.tokenStart;const children=this.createList();let child;while(!this.eof){switch(this.tokenType){case types$10.WhiteSpace:this.next();continue;case types$10.Comment:if(this.charCodeAt(this.tokenStart+2)!==EXCLAMATIONMARK$4){this.next();continue}child=this.Comment();break;case types$10.CDO:child=this.CDO();break;case types$10.CDC:child=this.CDC();break;case types$10.AtKeyword:child=this.parseWithFallback(this.Atrule,consumeRaw$7);break;default:child=this.parseWithFallback(this.Rule,consumeRaw$7)}children.push(child)}return{type:"StyleSheet",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$T(node){this.children(node)}StyleSheet$5.generate=generate$T;StyleSheet$5.name=name$J;StyleSheet$5.parse=parse$T;StyleSheet$5.structure=structure$L;StyleSheet$5.walkContext=walkContext$a;var TypeSelector$7={};const types$$=types$1I;const ASTERISK$9=42;const VERTICALLINE$5=124;function eatIdentifierOrAsterisk$1(){if(this.tokenType!==types$$.Ident&&this.isDelim(ASTERISK$9)===false){this.error("Identifier or asterisk is expected")}this.next()}const name$I="TypeSelector";const structure$K={name:String};function parse$S(){const start=this.tokenStart;if(this.isDelim(VERTICALLINE$5)){this.next();eatIdentifierOrAsterisk$1.call(this)}else{eatIdentifierOrAsterisk$1.call(this);if(this.isDelim(VERTICALLINE$5)){this.next();eatIdentifierOrAsterisk$1.call(this)}}return{type:"TypeSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function generate$S(node){this.tokenize(node.name)}TypeSelector$7.generate=generate$S;TypeSelector$7.name=name$I;TypeSelector$7.parse=parse$S;TypeSelector$7.structure=structure$K;var UnicodeRange$5={};const types$_=types$1I;const charCodeDefinitions$f=charCodeDefinitions$p;const PLUSSIGN$c=43;const HYPHENMINUS$8=45;const QUESTIONMARK$3=63;function eatHexSequence$1(offset,allowDash){let len=0;for(let pos=this.tokenStart+offset;pos<this.tokenEnd;pos++){const code=this.charCodeAt(pos);if(code===HYPHENMINUS$8&&allowDash&&len!==0){eatHexSequence$1.call(this,offset+len+1,false);return-1}if(!charCodeDefinitions$f.isHexDigit(code)){this.error(allowDash&&len!==0?"Hyphen minus"+(len<6?" or hex digit":"")+" is expected":len<6?"Hex digit is expected":"Unexpected input",pos)}if(++len>6){this.error("Too many hex digits",pos)}}this.next();return len}function eatQuestionMarkSequence$1(max){let count=0;while(this.isDelim(QUESTIONMARK$3)){if(++count>max){this.error("Too many question marks")}this.next()}}function startsWith$2(code){if(this.charCodeAt(this.tokenStart)!==code){this.error((code===PLUSSIGN$c?"Plus sign":"Hyphen minus")+" is expected")}}function scanUnicodeRange$1(){let hexLength=0;switch(this.tokenType){case types$_.Number:hexLength=eatHexSequence$1.call(this,1,true);if(this.isDelim(QUESTIONMARK$3)){eatQuestionMarkSequence$1.call(this,6-hexLength);break}if(this.tokenType===types$_.Dimension||this.tokenType===types$_.Number){startsWith$2.call(this,HYPHENMINUS$8);eatHexSequence$1.call(this,1,false);break}break;case types$_.Dimension:hexLength=eatHexSequence$1.call(this,1,true);if(hexLength>0){eatQuestionMarkSequence$1.call(this,6-hexLength)}break;default:this.eatDelim(PLUSSIGN$c);if(this.tokenType===types$_.Ident){hexLength=eatHexSequence$1.call(this,0,true);if(hexLength>0){eatQuestionMarkSequence$1.call(this,6-hexLength)}break}if(this.isDelim(QUESTIONMARK$3)){this.next();eatQuestionMarkSequence$1.call(this,5);break}this.error("Hex digit or question mark is expected")}}const name$H="UnicodeRange";const structure$J={value:String};function parse$R(){const start=this.tokenStart;this.eatIdent("u");scanUnicodeRange$1.call(this);return{type:"UnicodeRange",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$R(node){this.tokenize(node.value)}UnicodeRange$5.generate=generate$R;UnicodeRange$5.name=name$H;UnicodeRange$5.parse=parse$R;UnicodeRange$5.structure=structure$J;var Url$8={};var url$5={};const charCodeDefinitions$e=charCodeDefinitions$p;const utils$m=utils$u;const SPACE$5=32;const REVERSE_SOLIDUS$4=92;const QUOTATION_MARK$2=34;const APOSTROPHE$3=39;const LEFTPARENTHESIS$3=40;const RIGHTPARENTHESIS$3=41;function decode$4(str){const len=str.length;let start=4;let end=str.charCodeAt(len-1)===RIGHTPARENTHESIS$3?len-2:len-1;let decoded="";while(start<end&&charCodeDefinitions$e.isWhiteSpace(str.charCodeAt(start))){start++}while(start<end&&charCodeDefinitions$e.isWhiteSpace(str.charCodeAt(end))){end--}for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$4){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$e.isValidEscape(REVERSE_SOLIDUS$4,code)){const escapeStart=i-1;const escapeEnd=utils$m.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$m.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$4(str){let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===SPACE$5||code===REVERSE_SOLIDUS$4||code===QUOTATION_MARK$2||code===APOSTROPHE$3||code===LEFTPARENTHESIS$3||code===RIGHTPARENTHESIS$3){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&charCodeDefinitions$e.isHexDigit(code)){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return"url("+encoded+")"}url$5.decode=decode$4;url$5.encode=encode$4;const url$4=url$5;const string$5=string$7;const types$Z=types$1I;const name$G="Url";const structure$I={value:String};function parse$Q(){const start=this.tokenStart;let value;switch(this.tokenType){case types$Z.Url:value=url$4.decode(this.consume(types$Z.Url));break;case types$Z.Function:if(!this.cmpStr(this.tokenStart,this.tokenEnd,"url(")){this.error("Function name must be `url`")}this.eat(types$Z.Function);this.skipSC();value=string$5.decode(this.consume(types$Z.String));this.skipSC();if(!this.eof){this.eat(types$Z.RightParenthesis)}break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(start,this.tokenStart),value:value}}function generate$Q(node){this.token(types$Z.Url,url$4.encode(node.value))}Url$8.generate=generate$Q;Url$8.name=name$G;Url$8.parse=parse$Q;Url$8.structure=structure$I;var Value$7={};const name$F="Value";const structure$H={children:[[]]};function parse$P(){const start=this.tokenStart;const children=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$P(node){this.children(node)}Value$7.generate=generate$P;Value$7.name=name$F;Value$7.parse=parse$P;Value$7.structure=structure$H;var WhiteSpace$8={};const types$Y=types$1I;const SPACE$4=Object.freeze({type:"WhiteSpace",loc:null,value:" "});const name$E="WhiteSpace";const structure$G={value:String};function parse$O(){this.eat(types$Y.WhiteSpace);return SPACE$4}function generate$O(node){this.token(types$Y.WhiteSpace,node.value)}WhiteSpace$8.generate=generate$O;WhiteSpace$8.name=name$E;WhiteSpace$8.parse=parse$O;WhiteSpace$8.structure=structure$G;const AnPlusB$4=AnPlusB$5;const Atrule$8=Atrule$9;const AtrulePrelude$4=AtrulePrelude$5;const AttributeSelector$6=AttributeSelector$7;const Block$4=Block$5;const Brackets$4=Brackets$5;const CDC$5=CDC$6;const CDO$5=CDO$6;const ClassSelector$4=ClassSelector$5;const Combinator$4=Combinator$5;const Comment$7=Comment$8;const Declaration$6=Declaration$7;const DeclarationList$4=DeclarationList$5;const Dimension$7=Dimension$8;const Function$4=_Function$1;const Hash$5=Hash$6;const Identifier$4=Identifier$5;const IdSelector$4=IdSelector$5;const MediaFeature$4=MediaFeature$5;const MediaQuery$4=MediaQuery$5;const MediaQueryList$4=MediaQueryList$5;const NestingSelector$1=NestingSelector$2;const Nth$4=Nth$5;const Number$1$2=_Number$6;const Operator$4=Operator$5;const Parentheses$4=Parentheses$5;const Percentage$7=Percentage$8;const PseudoClassSelector$4=PseudoClassSelector$5;const PseudoElementSelector$4=PseudoElementSelector$5;const Ratio$4=Ratio$5;const Raw$6=Raw$7;const Rule$6=Rule$7;const Selector$6=Selector$7;const SelectorList$4=SelectorList$5;const String$1$2=_String$1;const StyleSheet$4=StyleSheet$5;const TypeSelector$6=TypeSelector$7;const UnicodeRange$4=UnicodeRange$5;const Url$7=Url$8;const Value$6=Value$7;const WhiteSpace$7=WhiteSpace$8;node$1.AnPlusB=AnPlusB$4;node$1.Atrule=Atrule$8;node$1.AtrulePrelude=AtrulePrelude$4;node$1.AttributeSelector=AttributeSelector$6;node$1.Block=Block$4;node$1.Brackets=Brackets$4;node$1.CDC=CDC$5;node$1.CDO=CDO$5;node$1.ClassSelector=ClassSelector$4;node$1.Combinator=Combinator$4;node$1.Comment=Comment$7;node$1.Declaration=Declaration$6;node$1.DeclarationList=DeclarationList$4;node$1.Dimension=Dimension$7;node$1.Function=Function$4;node$1.Hash=Hash$5;node$1.Identifier=Identifier$4;node$1.IdSelector=IdSelector$4;node$1.MediaFeature=MediaFeature$4;node$1.MediaQuery=MediaQuery$4;node$1.MediaQueryList=MediaQueryList$4;node$1.NestingSelector=NestingSelector$1;node$1.Nth=Nth$4;node$1.Number=Number$1$2;node$1.Operator=Operator$4;node$1.Parentheses=Parentheses$4;node$1.Percentage=Percentage$7;node$1.PseudoClassSelector=PseudoClassSelector$4;node$1.PseudoElementSelector=PseudoElementSelector$4;node$1.Ratio=Ratio$4;node$1.Raw=Raw$6;node$1.Rule=Rule$6;node$1.Selector=Selector$6;node$1.SelectorList=SelectorList$4;node$1.String=String$1$2;node$1.StyleSheet=StyleSheet$4;node$1.TypeSelector=TypeSelector$6;node$1.UnicodeRange=UnicodeRange$4;node$1.Url=Url$7;node$1.Value=Value$6;node$1.WhiteSpace=WhiteSpace$7;const data$2=data$3;const index$f=node$1;const lexerConfig$1={generic:true,...data$2,node:index$f};var lexer$6=lexerConfig$1;var scope$1={};const types$X=types$1I;const NUMBERSIGN$6=35;const ASTERISK$8=42;const PLUSSIGN$b=43;const HYPHENMINUS$7=45;const SOLIDUS$7=47;const U$2=117;function defaultRecognizer$1(context){switch(this.tokenType){case types$X.Hash:return this.Hash();case types$X.Comma:return this.Operator();case types$X.LeftParenthesis:return this.Parentheses(this.readSequence,context.recognizer);case types$X.LeftSquareBracket:return this.Brackets(this.readSequence,context.recognizer);case types$X.String:return this.String();case types$X.Dimension:return this.Dimension();case types$X.Percentage:return this.Percentage();case types$X.Number:return this.Number();case types$X.Function:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,context.recognizer);case types$X.Url:return this.Url();case types$X.Ident:if(this.cmpChar(this.tokenStart,U$2)&&this.cmpChar(this.tokenStart+1,PLUSSIGN$b)){return this.UnicodeRange()}else{return this.Identifier()}case types$X.Delim:{const code=this.charCodeAt(this.tokenStart);if(code===SOLIDUS$7||code===ASTERISK$8||code===PLUSSIGN$b||code===HYPHENMINUS$7){return this.Operator()}if(code===NUMBERSIGN$6){this.error("Hex or identifier is expected",this.tokenStart+1)}break}}}var _default$5=defaultRecognizer$1;const _default$4=_default$5;const atrulePrelude$3={getNode:_default$4};var atrulePrelude_1$1=atrulePrelude$3;const types$W=types$1I;const NUMBERSIGN$5=35;const AMPERSAND$2=38;const ASTERISK$7=42;const PLUSSIGN$a=43;const SOLIDUS$6=47;const FULLSTOP$3=46;const GREATERTHANSIGN$3=62;const VERTICALLINE$4=124;const TILDE$3=126;function onWhiteSpace$1(next,children){if(children.last!==null&&children.last.type!=="Combinator"&&next!==null&&next.type!=="Combinator"){children.push({type:"Combinator",loc:null,name:" "})}}function getNode$1(){switch(this.tokenType){case types$W.LeftSquareBracket:return this.AttributeSelector();case types$W.Hash:return this.IdSelector();case types$W.Colon:if(this.lookupType(1)===types$W.Colon){return this.PseudoElementSelector()}else{return this.PseudoClassSelector()}case types$W.Ident:return this.TypeSelector();case types$W.Number:case types$W.Percentage:return this.Percentage();case types$W.Dimension:if(this.charCodeAt(this.tokenStart)===FULLSTOP$3){this.error("Identifier is expected",this.tokenStart+1)}break;case types$W.Delim:{const code=this.charCodeAt(this.tokenStart);switch(code){case PLUSSIGN$a:case GREATERTHANSIGN$3:case TILDE$3:case SOLIDUS$6:return this.Combinator();case FULLSTOP$3:return this.ClassSelector();case ASTERISK$7:case VERTICALLINE$4:return this.TypeSelector();case NUMBERSIGN$5:return this.IdSelector();case AMPERSAND$2:return this.NestingSelector()}break}}}const Selector$5={onWhiteSpace:onWhiteSpace$1,getNode:getNode$1};var selector$5=Selector$5;function expressionFn$1(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}var expression$3=expressionFn$1;const types$V=types$1I;function varFn$1(){const children=this.createList();this.skipSC();children.push(this.Identifier());this.skipSC();if(this.tokenType===types$V.Comma){children.push(this.Operator());const startIndex=this.tokenIndex;const value=this.parseCustomProperty?this.Value(null):this.Raw(this.tokenIndex,this.consumeUntilExclamationMarkOrSemicolon,false);if(value.type==="Value"&&value.children.isEmpty){for(let offset=startIndex-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$V.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}children.push(value)}return children}var _var$3=varFn$1;const _default$3=_default$5;const expression$2=expression$3;const _var$2=_var$3;function isPlusMinusOperator$1(node){return node!==null&&node.type==="Operator"&&(node.value[node.value.length-1]==="-"||node.value[node.value.length-1]==="+")}const value$3={getNode:_default$3,onWhiteSpace(next,children){if(isPlusMinusOperator$1(next)){next.value=" "+next.value}if(isPlusMinusOperator$1(children.last)){children.last.value+=" "}},expression:expression$2,var:_var$2};var value_1$1=value$3;const atrulePrelude$2=atrulePrelude_1$1;const selector$4=selector$5;const value$2=value_1$1;scope$1.AtrulePrelude=atrulePrelude$2;scope$1.Selector=selector$4;scope$1.Value=value$2;const fontFace$3={parse:{prelude:null,block(){return this.Block(true)}}};var fontFace_1$1=fontFace$3;const types$U=types$1I;const importAtrule$1={parse:{prelude(){const children=this.createList();this.skipSC();switch(this.tokenType){case types$U.String:children.push(this.String());break;case types$U.Url:case types$U.Function:children.push(this.Url());break;default:this.error("String or url() is expected")}if(this.lookupNonWSType(0)===types$U.Ident||this.lookupNonWSType(0)===types$U.LeftParenthesis){children.push(this.MediaQueryList())}return children},block:null}};var _import$3=importAtrule$1;const media$3={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(isStyleBlock=false){return this.Block(isStyleBlock)}}};var media_1$1=media$3;const nest$1={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(true)}}};var nest_1=nest$1;const page$3={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(true)}}};var page_1$1=page$3;const types$T=types$1I;function consumeRaw$6(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}function parentheses$1(){this.skipSC();if(this.tokenType===types$T.Ident&&this.lookupNonWSType(1)===types$T.Colon){return this.createSingleNodeList(this.Declaration())}return readSequence$2.call(this)}function readSequence$2(){const children=this.createList();let child;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$T.Comment:case types$T.WhiteSpace:this.next();continue;case types$T.Function:child=this.Function(consumeRaw$6,this.scope.AtrulePrelude);break;case types$T.Ident:child=this.Identifier();break;case types$T.LeftParenthesis:child=this.Parentheses(parentheses$1,this.scope.AtrulePrelude);break;default:break scan}children.push(child)}return children}const supports$3={parse:{prelude(){const children=readSequence$2.call(this);if(this.getFirstListNode(children)===null){this.error("Condition is expected")}return children},block(isStyleBlock=false){return this.Block(isStyleBlock)}}};var supports_1$1=supports$3;const fontFace$2=fontFace_1$1;const _import$2=_import$3;const media$2=media_1$1;const nest=nest_1;const page$2=page_1$1;const supports$2=supports_1$1;const atrule$1={"font-face":fontFace$2,import:_import$2,media:media$2,nest:nest,page:page$2,supports:supports$2};var atrule_1$1=atrule$1;const selectorList$1={parse(){return this.createSingleNodeList(this.SelectorList())}};const selector$3={parse(){return this.createSingleNodeList(this.Selector())}};const identList$1={parse(){return this.createSingleNodeList(this.Identifier())}};const nth$1={parse(){return this.createSingleNodeList(this.Nth())}};const pseudo$1={dir:identList$1,has:selectorList$1,lang:identList$1,matches:selectorList$1,is:selectorList$1,"-moz-any":selectorList$1,"-webkit-any":selectorList$1,where:selectorList$1,not:selectorList$1,"nth-child":nth$1,"nth-last-child":nth$1,"nth-last-of-type":nth$1,"nth-of-type":nth$1,slotted:selector$3,host:selector$3,"host-context":selector$3};var pseudo_1$1=pseudo$1;var indexParse$3={};const AnPlusB$3=AnPlusB$5;const Atrule$7=Atrule$9;const AtrulePrelude$3=AtrulePrelude$5;const AttributeSelector$5=AttributeSelector$7;const Block$3=Block$5;const Brackets$3=Brackets$5;const CDC$4=CDC$6;const CDO$4=CDO$6;const ClassSelector$3=ClassSelector$5;const Combinator$3=Combinator$5;const Comment$6=Comment$8;const Declaration$5=Declaration$7;const DeclarationList$3=DeclarationList$5;const Dimension$6=Dimension$8;const Function$3=_Function$1;const Hash$4=Hash$6;const Identifier$3=Identifier$5;const IdSelector$3=IdSelector$5;const MediaFeature$3=MediaFeature$5;const MediaQuery$3=MediaQuery$5;const MediaQueryList$3=MediaQueryList$5;const NestingSelector=NestingSelector$2;const Nth$3=Nth$5;const Number$4=_Number$6;const Operator$3=Operator$5;const Parentheses$3=Parentheses$5;const Percentage$6=Percentage$8;const PseudoClassSelector$3=PseudoClassSelector$5;const PseudoElementSelector$3=PseudoElementSelector$5;const Ratio$3=Ratio$5;const Raw$5=Raw$7;const Rule$5=Rule$7;const Selector$4=Selector$7;const SelectorList$3=SelectorList$5;const String$3=_String$1;const StyleSheet$3=StyleSheet$5;const TypeSelector$5=TypeSelector$7;const UnicodeRange$3=UnicodeRange$5;const Url$6=Url$8;const Value$5=Value$7;const WhiteSpace$6=WhiteSpace$8;indexParse$3.AnPlusB=AnPlusB$3.parse;indexParse$3.Atrule=Atrule$7.parse;indexParse$3.AtrulePrelude=AtrulePrelude$3.parse;indexParse$3.AttributeSelector=AttributeSelector$5.parse;indexParse$3.Block=Block$3.parse;indexParse$3.Brackets=Brackets$3.parse;indexParse$3.CDC=CDC$4.parse;indexParse$3.CDO=CDO$4.parse;indexParse$3.ClassSelector=ClassSelector$3.parse;indexParse$3.Combinator=Combinator$3.parse;indexParse$3.Comment=Comment$6.parse;indexParse$3.Declaration=Declaration$5.parse;indexParse$3.DeclarationList=DeclarationList$3.parse;indexParse$3.Dimension=Dimension$6.parse;indexParse$3.Function=Function$3.parse;indexParse$3.Hash=Hash$4.parse;indexParse$3.Identifier=Identifier$3.parse;indexParse$3.IdSelector=IdSelector$3.parse;indexParse$3.MediaFeature=MediaFeature$3.parse;indexParse$3.MediaQuery=MediaQuery$3.parse;indexParse$3.MediaQueryList=MediaQueryList$3.parse;indexParse$3.NestingSelector=NestingSelector.parse;indexParse$3.Nth=Nth$3.parse;indexParse$3.Number=Number$4.parse;indexParse$3.Operator=Operator$3.parse;indexParse$3.Parentheses=Parentheses$3.parse;indexParse$3.Percentage=Percentage$6.parse;indexParse$3.PseudoClassSelector=PseudoClassSelector$3.parse;indexParse$3.PseudoElementSelector=PseudoElementSelector$3.parse;indexParse$3.Ratio=Ratio$3.parse;indexParse$3.Raw=Raw$5.parse;indexParse$3.Rule=Rule$5.parse;indexParse$3.Selector=Selector$4.parse;indexParse$3.SelectorList=SelectorList$3.parse;indexParse$3.String=String$3.parse;indexParse$3.StyleSheet=StyleSheet$3.parse;indexParse$3.TypeSelector=TypeSelector$5.parse;indexParse$3.UnicodeRange=UnicodeRange$3.parse;indexParse$3.Url=Url$6.parse;indexParse$3.Value=Value$5.parse;indexParse$3.WhiteSpace=WhiteSpace$6.parse;const index$e=scope$1;const index$1$4=atrule_1$1;const index$2$2=pseudo_1$1;const indexParse$2=indexParse$3;const config$3={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(options){return this.AtrulePrelude(options.atrule?String(options.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(true)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:index$e,atrule:index$1$4,pseudo:index$2$2,node:indexParse$2};var parser$3=config$3;const index$d=node$1;const config$2={node:index$d};var walker$3=config$2;const create$9=create_1$1;const lexer$5=lexer$6;const parser$2=parser$3;const walker$2=walker$3;const syntax$3=create$9({...lexer$5,...parser$2,...walker$2});var syntax_1$1=syntax$3;var version$5="2.3.1";var definitionSyntax$1={};const SyntaxError$6=_SyntaxError$2;const generate$N=generate$1u;const parse$N=parse$1u;const walk$7=walk$a;definitionSyntax$1.SyntaxError=SyntaxError$6.SyntaxError;definitionSyntax$1.generate=generate$N.generate;definitionSyntax$1.parse=parse$N.parse;definitionSyntax$1.walk=walk$7.walk;var clone$5={};const List$9=List$f;function clone$4(node){const result={};for(const key in node){let value=node[key];if(value){if(Array.isArray(value)||value instanceof List$9.List){value=value.map(clone$4)}else if(value.constructor===Object){value=clone$4(value)}}result[key]=value}return result}clone$5.clone=clone$4;var ident$3={};const charCodeDefinitions$d=charCodeDefinitions$p;const utils$l=utils$u;const REVERSE_SOLIDUS$3=92;function decode$3(str){const end=str.length-1;let decoded="";for(let i=0;i<str.length;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$3){if(i===end){break}code=str.charCodeAt(++i);if(charCodeDefinitions$d.isValidEscape(REVERSE_SOLIDUS$3,code)){const escapeStart=i-1;const escapeEnd=utils$l.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$l.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$3(str){let encoded="";if(str.length===1&&str.charCodeAt(0)===45){return"\\-"}for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127||code>=48&&code<=57&&(i===0||i===1&&str.charCodeAt(0)===45)){encoded+="\\"+code.toString(16)+" ";continue}if(charCodeDefinitions$d.isName(code)){encoded+=str.charAt(i)}else{encoded+="\\"+str.charAt(i)}}return encoded}ident$3.decode=decode$3;ident$3.encode=encode$3;const index$1$3=syntax_1$1;const version$4=version$5;const create$8=create_1$1;const List$8=List$f;const Lexer$4=Lexer$7;const index$c=definitionSyntax$1;const clone$3=clone$5;const names$1$1=names$c;const ident$2=ident$3;const string$4=string$7;const url$3=url$5;const types$S=types$1I;const names$9=names$g;const TokenStream$5=TokenStream$9;const{tokenize:tokenize$3,parse:parse$M,generate:generate$M,lexer:lexer$4,createLexer:createLexer$1,walk:walk$6,find:find$2,findLast:findLast$2,findAll:findAll$2,toPlainObject:toPlainObject$2,fromPlainObject:fromPlainObject$2,fork:fork$1}=index$1$3;cjs$2.version=version$4.version;cjs$2.createSyntax=create$8;cjs$2.List=List$8.List;cjs$2.Lexer=Lexer$4.Lexer;cjs$2.definitionSyntax=index$c;cjs$2.clone=clone$3.clone;cjs$2.isCustomProperty=names$1$1.isCustomProperty;cjs$2.keyword=names$1$1.keyword;cjs$2.property=names$1$1.property;cjs$2.vendorPrefix=names$1$1.vendorPrefix;cjs$2.ident=ident$2;cjs$2.string=string$4;cjs$2.url=url$3;cjs$2.tokenTypes=types$S;cjs$2.tokenNames=names$9;cjs$2.TokenStream=TokenStream$5.TokenStream;cjs$2.createLexer=createLexer$1;cjs$2.find=find$2;cjs$2.findAll=findAll$2;cjs$2.findLast=findLast$2;cjs$2.fork=fork$1;cjs$2.fromPlainObject=fromPlainObject$2;cjs$2.generate=generate$M;cjs$2.lexer=lexer$4;cjs$2.parse=parse$M;cjs$2.toPlainObject=toPlainObject$2;cjs$2.tokenize=tokenize$3;cjs$2.walk=walk$6;var cjs$1={};var version$3="5.0.5";var syntax$2={};var cjs={};var tokenizer$2={};var types$R={};const EOF$1=0;const Ident=1;const Function$2=2;const AtKeyword=3;const Hash$3=4;const String$2=5;const BadString=6;const Url$5=7;const BadUrl=8;const Delim=9;const Number$3=10;const Percentage$5=11;const Dimension$5=12;const WhiteSpace$5=13;const CDO$3=14;const CDC$3=15;const Colon=16;const Semicolon=17;const Comma=18;const LeftSquareBracket=19;const RightSquareBracket=20;const LeftParenthesis=21;const RightParenthesis=22;const LeftCurlyBracket=23;const RightCurlyBracket=24;const Comment$5=25;types$R.AtKeyword=AtKeyword;types$R.BadString=BadString;types$R.BadUrl=BadUrl;types$R.CDC=CDC$3;types$R.CDO=CDO$3;types$R.Colon=Colon;types$R.Comma=Comma;types$R.Comment=Comment$5;types$R.Delim=Delim;types$R.Dimension=Dimension$5;types$R.EOF=EOF$1;types$R.Function=Function$2;types$R.Hash=Hash$3;types$R.Ident=Ident;types$R.LeftCurlyBracket=LeftCurlyBracket;types$R.LeftParenthesis=LeftParenthesis;types$R.LeftSquareBracket=LeftSquareBracket;types$R.Number=Number$3;types$R.Percentage=Percentage$5;types$R.RightCurlyBracket=RightCurlyBracket;types$R.RightParenthesis=RightParenthesis;types$R.RightSquareBracket=RightSquareBracket;types$R.Semicolon=Semicolon;types$R.String=String$2;types$R.Url=Url$5;types$R.WhiteSpace=WhiteSpace$5;var charCodeDefinitions$c={};const EOF=0;function isDigit$1(code){return code>=48&&code<=57}function isHexDigit(code){return isDigit$1(code)||code>=65&&code<=70||code>=97&&code<=102}function isUppercaseLetter(code){return code>=65&&code<=90}function isLowercaseLetter(code){return code>=97&&code<=122}function isLetter(code){return isUppercaseLetter(code)||isLowercaseLetter(code)}function isNonAscii(code){return code>=128}function isNameStart(code){return isLetter(code)||isNonAscii(code)||code===95}function isName(code){return isNameStart(code)||isDigit$1(code)||code===45}function isNonPrintable(code){return code>=0&&code<=8||code===11||code>=14&&code<=31||code===127}function isNewline(code){return code===10||code===13||code===12}function isWhiteSpace(code){return isNewline(code)||code===32||code===9}function isValidEscape(first,second){if(first!==92){return false}if(isNewline(second)||second===EOF){return false}return true}function isIdentifierStart(first,second,third){if(first===45){return isNameStart(second)||second===45||isValidEscape(second,third)}if(isNameStart(first)){return true}if(first===92){return isValidEscape(first,second)}return false}function isNumberStart(first,second,third){if(first===43||first===45){if(isDigit$1(second)){return 2}return second===46&&isDigit$1(third)?3:0}if(first===46){return isDigit$1(second)?2:0}if(isDigit$1(first)){return 1}return 0}function isBOM(code){if(code===65279){return 1}if(code===65534){return 1}return 0}const CATEGORY=new Array(128);const EofCategory=128;const WhiteSpaceCategory=130;const DigitCategory=131;const NameStartCategory=132;const NonPrintableCategory=133;for(let i=0;i<CATEGORY.length;i++){CATEGORY[i]=isWhiteSpace(i)&&WhiteSpaceCategory||isDigit$1(i)&&DigitCategory||isNameStart(i)&&NameStartCategory||isNonPrintable(i)&&NonPrintableCategory||i||EofCategory}function charCodeCategory(code){return code<128?CATEGORY[code]:NameStartCategory}charCodeDefinitions$c.DigitCategory=DigitCategory;charCodeDefinitions$c.EofCategory=EofCategory;charCodeDefinitions$c.NameStartCategory=NameStartCategory;charCodeDefinitions$c.NonPrintableCategory=NonPrintableCategory;charCodeDefinitions$c.WhiteSpaceCategory=WhiteSpaceCategory;charCodeDefinitions$c.charCodeCategory=charCodeCategory;charCodeDefinitions$c.isBOM=isBOM;charCodeDefinitions$c.isDigit=isDigit$1;charCodeDefinitions$c.isHexDigit=isHexDigit;charCodeDefinitions$c.isIdentifierStart=isIdentifierStart;charCodeDefinitions$c.isLetter=isLetter;charCodeDefinitions$c.isLowercaseLetter=isLowercaseLetter;charCodeDefinitions$c.isName=isName;charCodeDefinitions$c.isNameStart=isNameStart;charCodeDefinitions$c.isNewline=isNewline;charCodeDefinitions$c.isNonAscii=isNonAscii;charCodeDefinitions$c.isNonPrintable=isNonPrintable;charCodeDefinitions$c.isNumberStart=isNumberStart;charCodeDefinitions$c.isUppercaseLetter=isUppercaseLetter;charCodeDefinitions$c.isValidEscape=isValidEscape;charCodeDefinitions$c.isWhiteSpace=isWhiteSpace;var utils$k={};const charCodeDefinitions$b=charCodeDefinitions$c;function getCharCode(source,offset){return offset<source.length?source.charCodeAt(offset):0}function getNewlineLength(source,offset,code){if(code===13&&getCharCode(source,offset+1)===10){return 2}return 1}function cmpChar(testStr,offset,referenceCode){let code=testStr.charCodeAt(offset);if(charCodeDefinitions$b.isUppercaseLetter(code)){code=code|32}return code===referenceCode}function cmpStr(testStr,start,end,referenceStr){if(end-start!==referenceStr.length){return false}if(start<0||end>testStr.length){return false}for(let i=start;i<end;i++){const referenceCode=referenceStr.charCodeAt(i-start);let testCode=testStr.charCodeAt(i);if(charCodeDefinitions$b.isUppercaseLetter(testCode)){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function findWhiteSpaceStart(source,offset){for(;offset>=0;offset--){if(!charCodeDefinitions$b.isWhiteSpace(source.charCodeAt(offset))){break}}return offset+1}function findWhiteSpaceEnd(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$b.isWhiteSpace(source.charCodeAt(offset))){break}}return offset}function findDecimalNumberEnd(source,offset){for(;offset<source.length;offset++){if(!charCodeDefinitions$b.isDigit(source.charCodeAt(offset))){break}}return offset}function consumeEscaped(source,offset){offset+=2;if(charCodeDefinitions$b.isHexDigit(getCharCode(source,offset-1))){for(const maxOffset=Math.min(source.length,offset+5);offset<maxOffset;offset++){if(!charCodeDefinitions$b.isHexDigit(getCharCode(source,offset))){break}}const code=getCharCode(source,offset);if(charCodeDefinitions$b.isWhiteSpace(code)){offset+=getNewlineLength(source,offset,code)}}return offset}function consumeName(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(charCodeDefinitions$b.isName(code)){continue}if(charCodeDefinitions$b.isValidEscape(code,getCharCode(source,offset+1))){offset=consumeEscaped(source,offset)-1;continue}break}return offset}function consumeNumber$1(source,offset){let code=source.charCodeAt(offset);if(code===43||code===45){code=source.charCodeAt(offset+=1)}if(charCodeDefinitions$b.isDigit(code)){offset=findDecimalNumberEnd(source,offset+1);code=source.charCodeAt(offset)}if(code===46&&charCodeDefinitions$b.isDigit(source.charCodeAt(offset+1))){offset+=2;offset=findDecimalNumberEnd(source,offset)}if(cmpChar(source,offset,101)){let sign=0;code=source.charCodeAt(offset+1);if(code===45||code===43){sign=1;code=source.charCodeAt(offset+2)}if(charCodeDefinitions$b.isDigit(code)){offset=findDecimalNumberEnd(source,offset+1+sign+1)}}return offset}function consumeBadUrlRemnants(source,offset){for(;offset<source.length;offset++){const code=source.charCodeAt(offset);if(code===41){offset++;break}if(charCodeDefinitions$b.isValidEscape(code,getCharCode(source,offset+1))){offset=consumeEscaped(source,offset)}}return offset}function decodeEscaped(escaped){if(escaped.length===1&&!charCodeDefinitions$b.isHexDigit(escaped.charCodeAt(0))){return escaped[0]}let code=parseInt(escaped,16);if(code===0||code>=55296&&code<=57343||code>1114111){code=65533}return String.fromCodePoint(code)}utils$k.cmpChar=cmpChar;utils$k.cmpStr=cmpStr;utils$k.consumeBadUrlRemnants=consumeBadUrlRemnants;utils$k.consumeEscaped=consumeEscaped;utils$k.consumeName=consumeName;utils$k.consumeNumber=consumeNumber$1;utils$k.decodeEscaped=decodeEscaped;utils$k.findDecimalNumberEnd=findDecimalNumberEnd;utils$k.findWhiteSpaceEnd=findWhiteSpaceEnd;utils$k.findWhiteSpaceStart=findWhiteSpaceStart;utils$k.getNewlineLength=getNewlineLength;const tokenNames=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token"];var names$8=tokenNames;var OffsetToLocation$3={};var adoptBuffer$3={};const MIN_SIZE=16*1024;function adoptBuffer$2(buffer=null,size){if(buffer===null||buffer.length<size){return new Uint32Array(Math.max(size+1024,MIN_SIZE))}return buffer}adoptBuffer$3.adoptBuffer=adoptBuffer$2;const adoptBuffer$1=adoptBuffer$3;const charCodeDefinitions$a=charCodeDefinitions$c;const N$4=10;const F$2=12;const R$2=13;function computeLinesAndColumns(host){const source=host.source;const sourceLength=source.length;const startOffset=source.length>0?charCodeDefinitions$a.isBOM(source.charCodeAt(0)):0;const lines=adoptBuffer$1.adoptBuffer(host.lines,sourceLength);const columns=adoptBuffer$1.adoptBuffer(host.columns,sourceLength);let line=host.startLine;let column=host.startColumn;for(let i=startOffset;i<sourceLength;i++){const code=source.charCodeAt(i);lines[i]=line;columns[i]=column++;if(code===N$4||code===R$2||code===F$2){if(code===R$2&&i+1<sourceLength&&source.charCodeAt(i+1)===N$4){i++;lines[i]=line;columns[i]=column}line++;column=1}}lines[sourceLength]=line;columns[sourceLength]=column;host.lines=lines;host.columns=columns;host.computed=true}class OffsetToLocation$2{constructor(){this.lines=null;this.columns=null;this.computed=false}setSource(source,startOffset=0,startLine=1,startColumn=1){this.source=source;this.startOffset=startOffset;this.startLine=startLine;this.startColumn=startColumn;this.computed=false}getLocation(offset,filename){if(!this.computed){computeLinesAndColumns(this)}return{source:filename,offset:this.startOffset+offset,line:this.lines[offset],column:this.columns[offset]}}getLocationRange(start,end,filename){if(!this.computed){computeLinesAndColumns(this)}return{source:filename,start:{offset:this.startOffset+start,line:this.lines[start],column:this.columns[start]},end:{offset:this.startOffset+end,line:this.lines[end],column:this.columns[end]}}}}OffsetToLocation$3.OffsetToLocation=OffsetToLocation$2;var TokenStream$4={};const adoptBuffer=adoptBuffer$3;const utils$j=utils$k;const names$7=names$8;const types$Q=types$R;const OFFSET_MASK=16777215;const TYPE_SHIFT=24;const balancePair$1=new Map([[types$Q.Function,types$Q.RightParenthesis],[types$Q.LeftParenthesis,types$Q.RightParenthesis],[types$Q.LeftSquareBracket,types$Q.RightSquareBracket],[types$Q.LeftCurlyBracket,types$Q.RightCurlyBracket]]);class TokenStream$3{constructor(source,tokenize){this.setSource(source,tokenize)}reset(){this.eof=false;this.tokenIndex=-1;this.tokenType=0;this.tokenStart=this.firstCharOffset;this.tokenEnd=this.firstCharOffset}setSource(source="",tokenize=(()=>{})){source=String(source||"");const sourceLength=source.length;const offsetAndType=adoptBuffer.adoptBuffer(this.offsetAndType,source.length+1);const balance=adoptBuffer.adoptBuffer(this.balance,source.length+1);let tokenCount=0;let balanceCloseType=0;let balanceStart=0;let firstCharOffset=-1;this.offsetAndType=null;this.balance=null;tokenize(source,((type,start,end)=>{switch(type){default:balance[tokenCount]=sourceLength;break;case balanceCloseType:{let balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balanceCloseType=balanceStart>>TYPE_SHIFT;balance[tokenCount]=balancePrev;balance[balancePrev++]=tokenCount;for(;balancePrev<tokenCount;balancePrev++){if(balance[balancePrev]===sourceLength){balance[balancePrev]=tokenCount}}break}case types$Q.LeftParenthesis:case types$Q.Function:case types$Q.LeftSquareBracket:case types$Q.LeftCurlyBracket:balance[tokenCount]=balanceStart;balanceCloseType=balancePair$1.get(type);balanceStart=balanceCloseType<<TYPE_SHIFT|tokenCount;break}offsetAndType[tokenCount++]=type<<TYPE_SHIFT|end;if(firstCharOffset===-1){firstCharOffset=start}}));offsetAndType[tokenCount]=types$Q.EOF<<TYPE_SHIFT|sourceLength;balance[tokenCount]=sourceLength;balance[sourceLength]=sourceLength;while(balanceStart!==0){const balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balance[balancePrev]=sourceLength}this.source=source;this.firstCharOffset=firstCharOffset===-1?0:firstCharOffset;this.tokenCount=tokenCount;this.offsetAndType=offsetAndType;this.balance=balance;this.reset();this.next()}lookupType(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset]>>TYPE_SHIFT}return types$Q.EOF}lookupOffset(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset-1]&OFFSET_MASK}return this.source.length}lookupValue(offset,referenceStr){offset+=this.tokenIndex;if(offset<this.tokenCount){return utils$j.cmpStr(this.source,this.offsetAndType[offset-1]&OFFSET_MASK,this.offsetAndType[offset]&OFFSET_MASK,referenceStr)}return false}getTokenStart(tokenIndex){if(tokenIndex===this.tokenIndex){return this.tokenStart}if(tokenIndex>0){return tokenIndex<this.tokenCount?this.offsetAndType[tokenIndex-1]&OFFSET_MASK:this.offsetAndType[this.tokenCount]&OFFSET_MASK}return this.firstCharOffset}substrToCursor(start){return this.source.substring(start,this.tokenStart)}isBalanceEdge(pos){return this.balance[this.tokenIndex]<pos}isDelim(code,offset){if(offset){return this.lookupType(offset)===types$Q.Delim&&this.source.charCodeAt(this.lookupOffset(offset))===code}return this.tokenType===types$Q.Delim&&this.source.charCodeAt(this.tokenStart)===code}skip(tokenCount){let next=this.tokenIndex+tokenCount;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.offsetAndType[next-1]&OFFSET_MASK;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT;this.tokenEnd=next&OFFSET_MASK}else{this.tokenIndex=this.tokenCount;this.next()}}next(){let next=this.tokenIndex+1;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.tokenEnd;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT;this.tokenEnd=next&OFFSET_MASK}else{this.eof=true;this.tokenIndex=this.tokenCount;this.tokenType=types$Q.EOF;this.tokenStart=this.tokenEnd=this.source.length}}skipSC(){while(this.tokenType===types$Q.WhiteSpace||this.tokenType===types$Q.Comment){this.next()}}skipUntilBalanced(startToken,stopConsume){let cursor=startToken;let balanceEnd;let offset;loop:for(;cursor<this.tokenCount;cursor++){balanceEnd=this.balance[cursor];if(balanceEnd<startToken){break loop}offset=cursor>0?this.offsetAndType[cursor-1]&OFFSET_MASK:this.firstCharOffset;switch(stopConsume(this.source.charCodeAt(offset))){case 1:break loop;case 2:cursor++;break loop;default:if(this.balance[balanceEnd]===cursor){cursor=balanceEnd}}}this.skip(cursor-this.tokenIndex)}forEachToken(fn){for(let i=0,offset=this.firstCharOffset;i<this.tokenCount;i++){const start=offset;const item=this.offsetAndType[i];const end=item&OFFSET_MASK;const type=item>>TYPE_SHIFT;offset=end;fn(type,start,end,i)}}dump(){const tokens=new Array(this.tokenCount);this.forEachToken(((type,start,end,index)=>{tokens[index]={idx:index,type:names$7[type],chunk:this.source.substring(start,end),balance:this.balance[index]}}));return tokens}}TokenStream$4.TokenStream=TokenStream$3;const types$P=types$R;const charCodeDefinitions$9=charCodeDefinitions$c;const utils$i=utils$k;const names$6=names$8;const OffsetToLocation$1=OffsetToLocation$3;const TokenStream$2=TokenStream$4;function tokenize$2(source,onToken){function getCharCode(offset){return offset<sourceLength?source.charCodeAt(offset):0}function consumeNumericToken(){offset=utils$i.consumeNumber(source,offset);if(charCodeDefinitions$9.isIdentifierStart(getCharCode(offset),getCharCode(offset+1),getCharCode(offset+2))){type=types$P.Dimension;offset=utils$i.consumeName(source,offset);return}if(getCharCode(offset)===37){type=types$P.Percentage;offset++;return}type=types$P.Number}function consumeIdentLikeToken(){const nameStartOffset=offset;offset=utils$i.consumeName(source,offset);if(utils$i.cmpStr(source,nameStartOffset,offset,"url")&&getCharCode(offset)===40){offset=utils$i.findWhiteSpaceEnd(source,offset+1);if(getCharCode(offset)===34||getCharCode(offset)===39){type=types$P.Function;offset=nameStartOffset+4;return}consumeUrlToken();return}if(getCharCode(offset)===40){type=types$P.Function;offset++;return}type=types$P.Ident}function consumeStringToken(endingCodePoint){if(!endingCodePoint){endingCodePoint=getCharCode(offset++)}type=types$P.String;for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case endingCodePoint:offset++;return;case charCodeDefinitions$9.WhiteSpaceCategory:if(charCodeDefinitions$9.isNewline(code)){offset+=utils$i.getNewlineLength(source,offset,code);type=types$P.BadString;return}break;case 92:if(offset===source.length-1){break}const nextCode=getCharCode(offset+1);if(charCodeDefinitions$9.isNewline(nextCode)){offset+=utils$i.getNewlineLength(source,offset+1,nextCode)}else if(charCodeDefinitions$9.isValidEscape(code,nextCode)){offset=utils$i.consumeEscaped(source,offset)-1}break}}}function consumeUrlToken(){type=types$P.Url;offset=utils$i.findWhiteSpaceEnd(source,offset);for(;offset<source.length;offset++){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case 41:offset++;return;case charCodeDefinitions$9.WhiteSpaceCategory:offset=utils$i.findWhiteSpaceEnd(source,offset);if(getCharCode(offset)===41||offset>=source.length){if(offset<source.length){offset++}return}offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return;case 34:case 39:case 40:case charCodeDefinitions$9.NonPrintableCategory:offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return;case 92:if(charCodeDefinitions$9.isValidEscape(code,getCharCode(offset+1))){offset=utils$i.consumeEscaped(source,offset)-1;break}offset=utils$i.consumeBadUrlRemnants(source,offset);type=types$P.BadUrl;return}}}source=String(source||"");const sourceLength=source.length;let start=charCodeDefinitions$9.isBOM(getCharCode(0));let offset=start;let type;while(offset<sourceLength){const code=source.charCodeAt(offset);switch(charCodeDefinitions$9.charCodeCategory(code)){case charCodeDefinitions$9.WhiteSpaceCategory:type=types$P.WhiteSpace;offset=utils$i.findWhiteSpaceEnd(source,offset+1);break;case 34:consumeStringToken();break;case 35:if(charCodeDefinitions$9.isName(getCharCode(offset+1))||charCodeDefinitions$9.isValidEscape(getCharCode(offset+1),getCharCode(offset+2))){type=types$P.Hash;offset=utils$i.consumeName(source,offset+1)}else{type=types$P.Delim;offset++}break;case 39:consumeStringToken();break;case 40:type=types$P.LeftParenthesis;offset++;break;case 41:type=types$P.RightParenthesis;offset++;break;case 43:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$P.Delim;offset++}break;case 44:type=types$P.Comma;offset++;break;case 45:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{if(getCharCode(offset+1)===45&&getCharCode(offset+2)===62){type=types$P.CDC;offset=offset+3}else{if(charCodeDefinitions$9.isIdentifierStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeIdentLikeToken()}else{type=types$P.Delim;offset++}}}break;case 46:if(charCodeDefinitions$9.isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken()}else{type=types$P.Delim;offset++}break;case 47:if(getCharCode(offset+1)===42){type=types$P.Comment;offset=source.indexOf("*/",offset+2);offset=offset===-1?source.length:offset+2}else{type=types$P.Delim;offset++}break;case 58:type=types$P.Colon;offset++;break;case 59:type=types$P.Semicolon;offset++;break;case 60:if(getCharCode(offset+1)===33&&getCharCode(offset+2)===45&&getCharCode(offset+3)===45){type=types$P.CDO;offset=offset+4}else{type=types$P.Delim;offset++}break;case 64:if(charCodeDefinitions$9.isIdentifierStart(getCharCode(offset+1),getCharCode(offset+2),getCharCode(offset+3))){type=types$P.AtKeyword;offset=utils$i.consumeName(source,offset+1)}else{type=types$P.Delim;offset++}break;case 91:type=types$P.LeftSquareBracket;offset++;break;case 92:if(charCodeDefinitions$9.isValidEscape(code,getCharCode(offset+1))){consumeIdentLikeToken()}else{type=types$P.Delim;offset++}break;case 93:type=types$P.RightSquareBracket;offset++;break;case 123:type=types$P.LeftCurlyBracket;offset++;break;case 125:type=types$P.RightCurlyBracket;offset++;break;case charCodeDefinitions$9.DigitCategory:consumeNumericToken();break;case charCodeDefinitions$9.NameStartCategory:consumeIdentLikeToken();break;default:type=types$P.Delim;offset++}onToken(type,start,start=offset)}}tokenizer$2.AtKeyword=types$P.AtKeyword;tokenizer$2.BadString=types$P.BadString;tokenizer$2.BadUrl=types$P.BadUrl;tokenizer$2.CDC=types$P.CDC;tokenizer$2.CDO=types$P.CDO;tokenizer$2.Colon=types$P.Colon;tokenizer$2.Comma=types$P.Comma;tokenizer$2.Comment=types$P.Comment;tokenizer$2.Delim=types$P.Delim;tokenizer$2.Dimension=types$P.Dimension;tokenizer$2.EOF=types$P.EOF;tokenizer$2.Function=types$P.Function;tokenizer$2.Hash=types$P.Hash;tokenizer$2.Ident=types$P.Ident;tokenizer$2.LeftCurlyBracket=types$P.LeftCurlyBracket;tokenizer$2.LeftParenthesis=types$P.LeftParenthesis;tokenizer$2.LeftSquareBracket=types$P.LeftSquareBracket;tokenizer$2.Number=types$P.Number;tokenizer$2.Percentage=types$P.Percentage;tokenizer$2.RightCurlyBracket=types$P.RightCurlyBracket;tokenizer$2.RightParenthesis=types$P.RightParenthesis;tokenizer$2.RightSquareBracket=types$P.RightSquareBracket;tokenizer$2.Semicolon=types$P.Semicolon;tokenizer$2.String=types$P.String;tokenizer$2.Url=types$P.Url;tokenizer$2.WhiteSpace=types$P.WhiteSpace;tokenizer$2.tokenTypes=types$P;tokenizer$2.DigitCategory=charCodeDefinitions$9.DigitCategory;tokenizer$2.EofCategory=charCodeDefinitions$9.EofCategory;tokenizer$2.NameStartCategory=charCodeDefinitions$9.NameStartCategory;tokenizer$2.NonPrintableCategory=charCodeDefinitions$9.NonPrintableCategory;tokenizer$2.WhiteSpaceCategory=charCodeDefinitions$9.WhiteSpaceCategory;tokenizer$2.charCodeCategory=charCodeDefinitions$9.charCodeCategory;tokenizer$2.isBOM=charCodeDefinitions$9.isBOM;tokenizer$2.isDigit=charCodeDefinitions$9.isDigit;tokenizer$2.isHexDigit=charCodeDefinitions$9.isHexDigit;tokenizer$2.isIdentifierStart=charCodeDefinitions$9.isIdentifierStart;tokenizer$2.isLetter=charCodeDefinitions$9.isLetter;tokenizer$2.isLowercaseLetter=charCodeDefinitions$9.isLowercaseLetter;tokenizer$2.isName=charCodeDefinitions$9.isName;tokenizer$2.isNameStart=charCodeDefinitions$9.isNameStart;tokenizer$2.isNewline=charCodeDefinitions$9.isNewline;tokenizer$2.isNonAscii=charCodeDefinitions$9.isNonAscii;tokenizer$2.isNonPrintable=charCodeDefinitions$9.isNonPrintable;tokenizer$2.isNumberStart=charCodeDefinitions$9.isNumberStart;tokenizer$2.isUppercaseLetter=charCodeDefinitions$9.isUppercaseLetter;tokenizer$2.isValidEscape=charCodeDefinitions$9.isValidEscape;tokenizer$2.isWhiteSpace=charCodeDefinitions$9.isWhiteSpace;tokenizer$2.cmpChar=utils$i.cmpChar;tokenizer$2.cmpStr=utils$i.cmpStr;tokenizer$2.consumeBadUrlRemnants=utils$i.consumeBadUrlRemnants;tokenizer$2.consumeEscaped=utils$i.consumeEscaped;tokenizer$2.consumeName=utils$i.consumeName;tokenizer$2.consumeNumber=utils$i.consumeNumber;tokenizer$2.decodeEscaped=utils$i.decodeEscaped;tokenizer$2.findDecimalNumberEnd=utils$i.findDecimalNumberEnd;tokenizer$2.findWhiteSpaceEnd=utils$i.findWhiteSpaceEnd;tokenizer$2.findWhiteSpaceStart=utils$i.findWhiteSpaceStart;tokenizer$2.getNewlineLength=utils$i.getNewlineLength;tokenizer$2.tokenNames=names$6;tokenizer$2.OffsetToLocation=OffsetToLocation$1.OffsetToLocation;tokenizer$2.TokenStream=TokenStream$2.TokenStream;tokenizer$2.tokenize=tokenize$2;var create$7={};var List$7={};let releasedCursors=null;class List$6{static createItem(data){return{prev:null,next:null,data:data}}constructor(){this.head=null;this.tail=null;this.cursor=null}createItem(data){return List$6.createItem(data)}allocateCursor(prev,next){let cursor;if(releasedCursors!==null){cursor=releasedCursors;releasedCursors=releasedCursors.cursor;cursor.prev=prev;cursor.next=next;cursor.cursor=this.cursor}else{cursor={prev:prev,next:next,cursor:this.cursor}}this.cursor=cursor;return cursor}releaseCursor(){const{cursor:cursor}=this;this.cursor=cursor.cursor;cursor.prev=null;cursor.next=null;cursor.cursor=releasedCursors;releasedCursors=cursor}updateCursors(prevOld,prevNew,nextOld,nextNew){let{cursor:cursor}=this;while(cursor!==null){if(cursor.prev===prevOld){cursor.prev=prevNew}if(cursor.next===nextOld){cursor.next=nextNew}cursor=cursor.cursor}}*[Symbol.iterator](){for(let cursor=this.head;cursor!==null;cursor=cursor.next){yield cursor.data}}get size(){let size=0;for(let cursor=this.head;cursor!==null;cursor=cursor.next){size++}return size}get isEmpty(){return this.head===null}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(array){let cursor=null;this.head=null;for(let data of array){const item=List$6.createItem(data);if(cursor!==null){cursor.next=item}else{this.head=item}item.prev=cursor;cursor=item}this.tail=cursor;return this}toArray(){return[...this]}toJSON(){return[...this]}forEach(fn,thisArg=this){const cursor=this.allocateCursor(null,this.head);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}forEachRight(fn,thisArg=this){const cursor=this.allocateCursor(this.tail,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;fn.call(thisArg,item.data,item,this)}this.releaseCursor()}reduce(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(null,this.head);let acc=initialValue;let item;while(cursor.next!==null){item=cursor.next;cursor.next=item.next;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}reduceRight(fn,initialValue,thisArg=this){let cursor=this.allocateCursor(this.tail,null);let acc=initialValue;let item;while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;acc=fn.call(thisArg,acc,item.data,item,this)}this.releaseCursor();return acc}some(fn,thisArg=this){for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){return true}}return false}map(fn,thisArg=this){const result=new List$6;for(let cursor=this.head;cursor!==null;cursor=cursor.next){result.appendData(fn.call(thisArg,cursor.data,cursor,this))}return result}filter(fn,thisArg=this){const result=new List$6;for(let cursor=this.head;cursor!==null;cursor=cursor.next){if(fn.call(thisArg,cursor.data,cursor,this)){result.appendData(cursor.data)}}return result}nextUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(null,start);while(cursor.next!==null){const item=cursor.next;cursor.next=item.next;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}prevUntil(start,fn,thisArg=this){if(start===null){return}const cursor=this.allocateCursor(start,null);while(cursor.prev!==null){const item=cursor.prev;cursor.prev=item.prev;if(fn.call(thisArg,item.data,item,this)){break}}this.releaseCursor()}clear(){this.head=null;this.tail=null}copy(){const result=new List$6;for(let data of this){result.appendData(data)}return result}prepend(item){this.updateCursors(null,item,this.head,item);if(this.head!==null){this.head.prev=item;item.next=this.head}else{this.tail=item}this.head=item;return this}prependData(data){return this.prepend(List$6.createItem(data))}append(item){return this.insert(item)}appendData(data){return this.insert(List$6.createItem(data))}insert(item,before=null){if(before!==null){this.updateCursors(before.prev,item,before,item);if(before.prev===null){if(this.head!==before){throw new Error("before doesn't belong to list")}this.head=item;before.prev=item;item.next=before;this.updateCursors(null,item)}else{before.prev.next=item;item.prev=before.prev;before.prev=item;item.next=before}}else{this.updateCursors(this.tail,item,null,item);if(this.tail!==null){this.tail.next=item;item.prev=this.tail}else{this.head=item}this.tail=item}return this}insertData(data,before){return this.insert(List$6.createItem(data),before)}remove(item){this.updateCursors(item,item.prev,item,item.next);if(item.prev!==null){item.prev.next=item.next}else{if(this.head!==item){throw new Error("item doesn't belong to list")}this.head=item.next}if(item.next!==null){item.next.prev=item.prev}else{if(this.tail!==item){throw new Error("item doesn't belong to list")}this.tail=item.prev}item.prev=null;item.next=null;return item}push(data){this.insert(List$6.createItem(data))}pop(){return this.tail!==null?this.remove(this.tail):null}unshift(data){this.prepend(List$6.createItem(data))}shift(){return this.head!==null?this.remove(this.head):null}prependList(list){return this.insertList(list,this.head)}appendList(list){return this.insertList(list)}insertList(list,before){if(list.head===null){return this}if(before!==undefined&&before!==null){this.updateCursors(before.prev,list.tail,before,list.head);if(before.prev!==null){before.prev.next=list.head;list.head.prev=before.prev}else{this.head=list.head}before.prev=list.tail;list.tail.next=before}else{this.updateCursors(this.tail,list.tail,null,list.head);if(this.tail!==null){this.tail.next=list.head;list.head.prev=this.tail}else{this.head=list.head}this.tail=list.tail}list.head=null;list.tail=null;return this}replace(oldItem,newItemOrList){if("head"in newItemOrList){this.insertList(newItemOrList,oldItem)}else{this.insert(newItemOrList,oldItem)}this.remove(oldItem)}}List$7.List=List$6;var _SyntaxError$1={};var createCustomError$4={};function createCustomError$3(name,message){const error=Object.create(SyntaxError.prototype);const errorStack=new Error;return Object.assign(error,{name:name,message:message,get stack(){return(errorStack.stack||"").replace(/^(.+\n){1,3}/,`${name}: ${message}\n`)}})}createCustomError$4.createCustomError=createCustomError$3;const createCustomError$2=createCustomError$4;const MAX_LINE_LENGTH=100;const OFFSET_CORRECTION=60;const TAB_REPLACEMENT=" ";function sourceFragment({source:source,line:line,column:column},extraLines){function processLines(start,end){return lines.slice(start,end).map(((line,idx)=>String(start+idx+1).padStart(maxNumLength)+" |"+line)).join("\n")}const lines=source.split(/\r\n?|\n|\f/);const startLine=Math.max(1,line-extraLines)-1;const endLine=Math.min(line+extraLines,lines.length+1);const maxNumLength=Math.max(4,String(endLine).length)+1;let cutLeft=0;column+=(TAB_REPLACEMENT.length-1)*(lines[line-1].substr(0,column-1).match(/\t/g)||[]).length;if(column>MAX_LINE_LENGTH){cutLeft=column-OFFSET_CORRECTION+3;column=OFFSET_CORRECTION-2}for(let i=startLine;i<=endLine;i++){if(i>=0&&i<lines.length){lines[i]=lines[i].replace(/\t/g,TAB_REPLACEMENT);lines[i]=(cutLeft>0&&lines[i].length>cutLeft?"…":"")+lines[i].substr(cutLeft,MAX_LINE_LENGTH-2)+(lines[i].length>cutLeft+MAX_LINE_LENGTH-1?"…":"")}}return[processLines(startLine,line),new Array(column+maxNumLength+2).join("-")+"^",processLines(line,endLine)].filter(Boolean).join("\n")}function SyntaxError$5(message,source,offset,line,column){const error=Object.assign(createCustomError$2.createCustomError("SyntaxError",message),{source:source,offset:offset,line:line,column:column,sourceFragment(extraLines){return sourceFragment({source:source,line:line,column:column},isNaN(extraLines)?0:extraLines)},get formattedMessage(){return`Parse error: ${message}\n`+sourceFragment({source:source,line:line,column:column},2)}});return error}_SyntaxError$1.SyntaxError=SyntaxError$5;var sequence$1={};const types$O=types$R;function readSequence$1(recognizer){const children=this.createList();let space=false;const context={recognizer:recognizer};while(!this.eof){switch(this.tokenType){case types$O.Comment:this.next();continue;case types$O.WhiteSpace:space=true;this.next();continue}let child=recognizer.getNode.call(this,context);if(child===undefined){break}if(space){if(recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,child,children,context)}space=false}children.push(child)}if(space&&recognizer.onWhiteSpace){recognizer.onWhiteSpace.call(this,null,children,context)}return children}sequence$1.readSequence=readSequence$1;const List$5=List$7;const SyntaxError$4=_SyntaxError$1;const index$b=tokenizer$2;const sequence=sequence$1;const OffsetToLocation=OffsetToLocation$3;const TokenStream$1=TokenStream$4;const utils$h=utils$k;const types$N=types$R;const names$5=names$8;const NOOP=()=>{};const EXCLAMATIONMARK$3=33;const NUMBERSIGN$4=35;const SEMICOLON=59;const LEFTCURLYBRACKET$1=123;const NULL=0;function createParseContext(name){return function(){return this[name]()}}function fetchParseValues(dict){const result=Object.create(null);for(const name in dict){const item=dict[name];const fn=item.parse||item;if(fn){result[name]=fn}}return result}function processConfig(config){const parseConfig={context:Object.create(null),scope:Object.assign(Object.create(null),config.scope),atrule:fetchParseValues(config.atrule),pseudo:fetchParseValues(config.pseudo),node:fetchParseValues(config.node)};for(const name in config.parseContext){switch(typeof config.parseContext[name]){case"function":parseConfig.context[name]=config.parseContext[name];break;case"string":parseConfig.context[name]=createParseContext(config.parseContext[name]);break}}return{config:parseConfig,...parseConfig,...parseConfig.node}}function createParser(config){let source="";let filename="<unknown>";let needPositions=false;let onParseError=NOOP;let onParseErrorThrow=false;const locationMap=new OffsetToLocation.OffsetToLocation;const parser=Object.assign(new TokenStream$1.TokenStream,processConfig(config||{}),{parseAtrulePrelude:true,parseRulePrelude:true,parseValue:true,parseCustomProperty:false,readSequence:sequence.readSequence,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(code){return code===LEFTCURLYBRACKET$1?1:0},consumeUntilLeftCurlyBracketOrSemicolon(code){return code===LEFTCURLYBRACKET$1||code===SEMICOLON?1:0},consumeUntilExclamationMarkOrSemicolon(code){return code===EXCLAMATIONMARK$3||code===SEMICOLON?1:0},consumeUntilSemicolonIncluded(code){return code===SEMICOLON?2:0},createList(){return new List$5.List},createSingleNodeList(node){return(new List$5.List).appendData(node)},getFirstListNode(list){return list&&list.first},getLastListNode(list){return list&&list.last},parseWithFallback(consumer,fallback){const startToken=this.tokenIndex;try{return consumer.call(this)}catch(e){if(onParseErrorThrow){throw e}const fallbackNode=fallback.call(this,startToken);onParseErrorThrow=true;onParseError(e,fallbackNode);onParseErrorThrow=false;return fallbackNode}},lookupNonWSType(offset){let type;do{type=this.lookupType(offset++);if(type!==types$N.WhiteSpace){return type}}while(type!==NULL);return NULL},charCodeAt(offset){return offset>=0&&offset<source.length?source.charCodeAt(offset):0},substring(offsetStart,offsetEnd){return source.substring(offsetStart,offsetEnd)},substrToCursor(start){return this.source.substring(start,this.tokenStart)},cmpChar(offset,charCode){return utils$h.cmpChar(source,offset,charCode)},cmpStr(offsetStart,offsetEnd,str){return utils$h.cmpStr(source,offsetStart,offsetEnd,str)},consume(tokenType){const start=this.tokenStart;this.eat(tokenType);return this.substrToCursor(start)},consumeFunctionName(){const name=source.substring(this.tokenStart,this.tokenEnd-1);this.eat(types$N.Function);return name},consumeNumber(type){const number=source.substring(this.tokenStart,utils$h.consumeNumber(source,this.tokenStart));this.eat(type);return number},eat(tokenType){if(this.tokenType!==tokenType){const tokenName=names$5[tokenType].slice(0,-6).replace(/-/g," ").replace(/^./,(m=>m.toUpperCase()));let message=`${/[[\](){}]/.test(tokenName)?`"${tokenName}"`:tokenName} is expected`;let offset=this.tokenStart;switch(tokenType){case types$N.Ident:if(this.tokenType===types$N.Function||this.tokenType===types$N.Url){offset=this.tokenEnd-1;message="Identifier is expected but function found"}else{message="Identifier is expected"}break;case types$N.Hash:if(this.isDelim(NUMBERSIGN$4)){this.next();offset++;message="Name is expected"}break;case types$N.Percentage:if(this.tokenType===types$N.Number){offset=this.tokenEnd;message="Percent sign is expected"}break}this.error(message,offset)}this.next()},eatIdent(name){if(this.tokenType!==types$N.Ident||this.lookupValue(0,name)===false){this.error(`Identifier "${name}" is expected`)}this.next()},eatDelim(code){if(!this.isDelim(code)){this.error(`Delim "${String.fromCharCode(code)}" is expected`)}this.next()},getLocation(start,end){if(needPositions){return locationMap.getLocationRange(start,end,filename)}return null},getLocationFromList(list){if(needPositions){const head=this.getFirstListNode(list);const tail=this.getLastListNode(list);return locationMap.getLocationRange(head!==null?head.loc.start.offset-locationMap.startOffset:this.tokenStart,tail!==null?tail.loc.end.offset-locationMap.startOffset:this.tokenStart,filename)}return null},error(message,offset){const location=typeof offset!=="undefined"&&offset<source.length?locationMap.getLocation(offset):this.eof?locationMap.getLocation(utils$h.findWhiteSpaceStart(source,source.length-1)):locationMap.getLocation(this.tokenStart);throw new SyntaxError$4.SyntaxError(message||"Unexpected input",source,location.offset,location.line,location.column)}});const parse=function(source_,options){source=source_;options=options||{};parser.setSource(source,index$b.tokenize);locationMap.setSource(source,options.offset,options.line,options.column);filename=options.filename||"<unknown>";needPositions=Boolean(options.positions);onParseError=typeof options.onParseError==="function"?options.onParseError:NOOP;onParseErrorThrow=false;parser.parseAtrulePrelude="parseAtrulePrelude"in options?Boolean(options.parseAtrulePrelude):true;parser.parseRulePrelude="parseRulePrelude"in options?Boolean(options.parseRulePrelude):true;parser.parseValue="parseValue"in options?Boolean(options.parseValue):true;parser.parseCustomProperty="parseCustomProperty"in options?Boolean(options.parseCustomProperty):false;const{context:context="default",onComment:onComment}=options;if(context in parser.context===false){throw new Error("Unknown context `"+context+"`")}if(typeof onComment==="function"){parser.forEachToken(((type,start,end)=>{if(type===types$N.Comment){const loc=parser.getLocation(start,end);const value=utils$h.cmpStr(source,end-2,end,"*/")?source.slice(start+2,end-2):source.slice(start+2,end);onComment(value,loc)}}))}const ast=parser.context[context].call(parser,options);if(!parser.eof){parser.error()}return ast};return Object.assign(parse,{SyntaxError:SyntaxError$4.SyntaxError,config:parser.config})}create$7.createParser=createParser;var create$6={};var sourceMap$1={};const sourceMapGenerator_js=sourceMapGenerator;const trackNodes=new Set(["Atrule","Selector","Declaration"]);function generateSourceMap(handlers){const map=new sourceMapGenerator_js.SourceMapGenerator;const generated={line:1,column:0};const original={line:0,column:0};const activatedGenerated={line:1,column:0};const activatedMapping={generated:activatedGenerated};let line=1;let column=0;let sourceMappingActive=false;const origHandlersNode=handlers.node;handlers.node=function(node){if(node.loc&&node.loc.start&&trackNodes.has(node.type)){const nodeLine=node.loc.start.line;const nodeColumn=node.loc.start.column-1;if(original.line!==nodeLine||original.column!==nodeColumn){original.line=nodeLine;original.column=nodeColumn;generated.line=line;generated.column=column;if(sourceMappingActive){sourceMappingActive=false;if(generated.line!==activatedGenerated.line||generated.column!==activatedGenerated.column){map.addMapping(activatedMapping)}}sourceMappingActive=true;map.addMapping({source:node.loc.source,original:original,generated:generated})}}origHandlersNode.call(this,node);if(sourceMappingActive&&trackNodes.has(node.type)){activatedGenerated.line=line;activatedGenerated.column=column}};const origHandlersEmit=handlers.emit;handlers.emit=function(value,type,auto){for(let i=0;i<value.length;i++){if(value.charCodeAt(i)===10){line++;column=0}else{column++}}origHandlersEmit(value,type,auto)};const origHandlersResult=handlers.result;handlers.result=function(){if(sourceMappingActive){map.addMapping(activatedMapping)}return{css:origHandlersResult(),map:map}};return handlers}sourceMap$1.generateSourceMap=generateSourceMap;var tokenBefore$1={};const types$M=types$R;const PLUSSIGN$9=43;const HYPHENMINUS$6=45;const code=(type,value)=>{if(type===types$M.Delim){type=value}if(typeof type==="string"){const charCode=type.charCodeAt(0);return charCode>127?32768:charCode<<8}return type};const specPairs=[[types$M.Ident,types$M.Ident],[types$M.Ident,types$M.Function],[types$M.Ident,types$M.Url],[types$M.Ident,types$M.BadUrl],[types$M.Ident,"-"],[types$M.Ident,types$M.Number],[types$M.Ident,types$M.Percentage],[types$M.Ident,types$M.Dimension],[types$M.Ident,types$M.CDC],[types$M.Ident,types$M.LeftParenthesis],[types$M.AtKeyword,types$M.Ident],[types$M.AtKeyword,types$M.Function],[types$M.AtKeyword,types$M.Url],[types$M.AtKeyword,types$M.BadUrl],[types$M.AtKeyword,"-"],[types$M.AtKeyword,types$M.Number],[types$M.AtKeyword,types$M.Percentage],[types$M.AtKeyword,types$M.Dimension],[types$M.AtKeyword,types$M.CDC],[types$M.Hash,types$M.Ident],[types$M.Hash,types$M.Function],[types$M.Hash,types$M.Url],[types$M.Hash,types$M.BadUrl],[types$M.Hash,"-"],[types$M.Hash,types$M.Number],[types$M.Hash,types$M.Percentage],[types$M.Hash,types$M.Dimension],[types$M.Hash,types$M.CDC],[types$M.Dimension,types$M.Ident],[types$M.Dimension,types$M.Function],[types$M.Dimension,types$M.Url],[types$M.Dimension,types$M.BadUrl],[types$M.Dimension,"-"],[types$M.Dimension,types$M.Number],[types$M.Dimension,types$M.Percentage],[types$M.Dimension,types$M.Dimension],[types$M.Dimension,types$M.CDC],["#",types$M.Ident],["#",types$M.Function],["#",types$M.Url],["#",types$M.BadUrl],["#","-"],["#",types$M.Number],["#",types$M.Percentage],["#",types$M.Dimension],["#",types$M.CDC],["-",types$M.Ident],["-",types$M.Function],["-",types$M.Url],["-",types$M.BadUrl],["-","-"],["-",types$M.Number],["-",types$M.Percentage],["-",types$M.Dimension],["-",types$M.CDC],[types$M.Number,types$M.Ident],[types$M.Number,types$M.Function],[types$M.Number,types$M.Url],[types$M.Number,types$M.BadUrl],[types$M.Number,types$M.Number],[types$M.Number,types$M.Percentage],[types$M.Number,types$M.Dimension],[types$M.Number,"%"],[types$M.Number,types$M.CDC],["@",types$M.Ident],["@",types$M.Function],["@",types$M.Url],["@",types$M.BadUrl],["@","-"],["@",types$M.CDC],[".",types$M.Number],[".",types$M.Percentage],[".",types$M.Dimension],["+",types$M.Number],["+",types$M.Percentage],["+",types$M.Dimension],["/","*"]];const safePairs=specPairs.concat([[types$M.Ident,types$M.Hash],[types$M.Dimension,types$M.Hash],[types$M.Hash,types$M.Hash],[types$M.AtKeyword,types$M.LeftParenthesis],[types$M.AtKeyword,types$M.String],[types$M.AtKeyword,types$M.Colon],[types$M.Percentage,types$M.Percentage],[types$M.Percentage,types$M.Dimension],[types$M.Percentage,types$M.Function],[types$M.Percentage,"-"],[types$M.RightParenthesis,types$M.Ident],[types$M.RightParenthesis,types$M.Function],[types$M.RightParenthesis,types$M.Percentage],[types$M.RightParenthesis,types$M.Dimension],[types$M.RightParenthesis,types$M.Hash],[types$M.RightParenthesis,"-"]]);function createMap(pairs){const isWhiteSpaceRequired=new Set(pairs.map((([prev,next])=>code(prev)<<16|code(next))));return function(prevCode,type,value){const nextCode=code(type,value);const nextCharCode=value.charCodeAt(0);const emitWs=nextCharCode===HYPHENMINUS$6&&type!==types$M.Ident&&type!==types$M.Function&&type!==types$M.CDC||nextCharCode===PLUSSIGN$9?isWhiteSpaceRequired.has(prevCode<<16|nextCharCode<<8):isWhiteSpaceRequired.has(prevCode<<16|nextCode);if(emitWs){this.emit(" ",types$M.WhiteSpace,true)}return nextCode}}const spec=createMap(specPairs);const safe=createMap(safePairs);tokenBefore$1.safe=safe;tokenBefore$1.spec=spec;const index$a=tokenizer$2;const sourceMap=sourceMap$1;const tokenBefore=tokenBefore$1;const types$L=types$R;const REVERSESOLIDUS=92;function processChildren(node,delimeter){if(typeof delimeter==="function"){let prev=null;node.children.forEach((node=>{if(prev!==null){delimeter.call(this,prev)}this.node(node);prev=node}));return}node.children.forEach(this.node,this)}function processChunk(chunk){index$a.tokenize(chunk,((type,start,end)=>{this.token(type,chunk.slice(start,end))}))}function createGenerator(config){const types$1=new Map;for(let name in config.node){const item=config.node[name];const fn=item.generate||item;if(typeof fn==="function"){types$1.set(name,item.generate||item)}}return function(node,options){let buffer="";let prevCode=0;let handlers={node(node){if(types$1.has(node.type)){types$1.get(node.type).call(publicApi,node)}else{throw new Error("Unknown node type: "+node.type)}},tokenBefore:tokenBefore.safe,token(type,value){prevCode=this.tokenBefore(prevCode,type,value);this.emit(value,type,false);if(type===types$L.Delim&&value.charCodeAt(0)===REVERSESOLIDUS){this.emit("\n",types$L.WhiteSpace,true)}},emit(value){buffer+=value},result(){return buffer}};if(options){if(typeof options.decorator==="function"){handlers=options.decorator(handlers)}if(options.sourceMap){handlers=sourceMap.generateSourceMap(handlers)}if(options.mode in tokenBefore){handlers.tokenBefore=tokenBefore[options.mode]}}const publicApi={node:node=>handlers.node(node),children:processChildren,token:(type,value)=>handlers.token(type,value),tokenize:processChunk};handlers.node(node);return handlers.result()}}create$6.createGenerator=createGenerator;var create$5={};const List$4=List$7;function createConvertor(walk){return{fromPlainObject(ast){walk(ast,{enter(node){if(node.children&&node.children instanceof List$4.List===false){node.children=(new List$4.List).fromArray(node.children)}}});return ast},toPlainObject(ast){walk(ast,{leave(node){if(node.children&&node.children instanceof List$4.List){node.children=node.children.toArray()}}});return ast}}}create$5.createConvertor=createConvertor;var create$4={};const{hasOwnProperty:hasOwnProperty$8}=Object.prototype;const noop$2=function(){};function ensureFunction$1(value){return typeof value==="function"?value:noop$2}function invokeForType(fn,type){return function(node,item,list){if(node.type===type){fn.call(this,node,item,list)}}}function getWalkersFromStructure(name,nodeType){const structure=nodeType.structure;const walkers=[];for(const key in structure){if(hasOwnProperty$8.call(structure,key)===false){continue}let fieldTypes=structure[key];const walker={name:key,type:false,nullable:false};if(!Array.isArray(fieldTypes)){fieldTypes=[fieldTypes]}for(const fieldType of fieldTypes){if(fieldType===null){walker.nullable=true}else if(typeof fieldType==="string"){walker.type="node"}else if(Array.isArray(fieldType)){walker.type="list"}}if(walker.type){walkers.push(walker)}}if(walkers.length){return{context:nodeType.walkContext,fields:walkers}}return null}function getTypesFromConfig(config){const types={};for(const name in config.node){if(hasOwnProperty$8.call(config.node,name)){const nodeType=config.node[name];if(!nodeType.structure){throw new Error("Missed `structure` field in `"+name+"` node type definition")}types[name]=getWalkersFromStructure(name,nodeType)}}return types}function createTypeIterator(config,reverse){const fields=config.fields.slice();const contextName=config.context;const useContext=typeof contextName==="string";if(reverse){fields.reverse()}return function(node,context,walk,walkReducer){let prevContextValue;if(useContext){prevContextValue=context[contextName];context[contextName]=node}for(const field of fields){const ref=node[field.name];if(!field.nullable||ref){if(field.type==="list"){const breakWalk=reverse?ref.reduceRight(walkReducer,false):ref.reduce(walkReducer,false);if(breakWalk){return true}}else if(walk(ref)){return true}}}if(useContext){context[contextName]=prevContextValue}}}function createFastTraveralMap({StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}){return{Atrule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Rule:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block},Declaration:{StyleSheet:StyleSheet,Atrule:Atrule,Rule:Rule,Block:Block,DeclarationList:DeclarationList}}}function createWalker(config){const types=getTypesFromConfig(config);const iteratorsNatural={};const iteratorsReverse={};const breakWalk=Symbol("break-walk");const skipNode=Symbol("skip-node");for(const name in types){if(hasOwnProperty$8.call(types,name)&&types[name]!==null){iteratorsNatural[name]=createTypeIterator(types[name],false);iteratorsReverse[name]=createTypeIterator(types[name],true)}}const fastTraversalIteratorsNatural=createFastTraveralMap(iteratorsNatural);const fastTraversalIteratorsReverse=createFastTraveralMap(iteratorsReverse);const walk=function(root,options){function walkNode(node,item,list){const enterRet=enter.call(context,node,item,list);if(enterRet===breakWalk){return true}if(enterRet===skipNode){return false}if(iterators.hasOwnProperty(node.type)){if(iterators[node.type](node,context,walkNode,walkReducer)){return true}}if(leave.call(context,node,item,list)===breakWalk){return true}return false}let enter=noop$2;let leave=noop$2;let iterators=iteratorsNatural;let walkReducer=(ret,data,item,list)=>ret||walkNode(data,item,list);const context={break:breakWalk,skip:skipNode,root:root,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction$1(options.enter);leave=ensureFunction$1(options.leave);if(options.reverse){iterators=iteratorsReverse}if(options.visit){if(fastTraversalIteratorsNatural.hasOwnProperty(options.visit)){iterators=options.reverse?fastTraversalIteratorsReverse[options.visit]:fastTraversalIteratorsNatural[options.visit]}else if(!types.hasOwnProperty(options.visit)){throw new Error("Bad value `"+options.visit+"` for `visit` option (should be: "+Object.keys(types).sort().join(", ")+")")}enter=invokeForType(enter,options.visit);leave=invokeForType(leave,options.visit)}}if(enter===noop$2&&leave===noop$2){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walkNode(root)};walk.break=breakWalk;walk.skip=skipNode;walk.find=function(ast,fn){let found=null;walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}));return found};walk.findLast=function(ast,fn){let found=null;walk(ast,{reverse:true,enter(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk}}});return found};walk.findAll=function(ast,fn){const found=[];walk(ast,(function(node,item,list){if(fn.call(this,node,item,list)){found.push(node)}}));return found};return walk}create$4.createWalker=createWalker;var Lexer$3={};var error$2={};var generate$L={};function noop$1(value){return value}function generateMultiplier(multiplier){const{min:min,max:max,comma:comma}=multiplier;if(min===0&&max===0){return comma?"#?":"*"}if(min===0&&max===1){return"?"}if(min===1&&max===0){return comma?"#":"+"}if(min===1&&max===1){return""}return(comma?"#":"")+(min===max?"{"+min+"}":"{"+min+","+(max!==0?max:"")+"}")}function generateTypeOpts(node){switch(node.type){case"Range":return" ["+(node.min===null?"-∞":node.min)+","+(node.max===null?"∞":node.max)+"]";default:throw new Error("Unknown node type `"+node.type+"`")}}function generateSequence(node,decorate,forceBraces,compact){const combinator=node.combinator===" "||compact?node.combinator:" "+node.combinator+" ";const result=node.terms.map((term=>internalGenerate(term,decorate,forceBraces,compact))).join(combinator);if(node.explicit||forceBraces){return(compact||result[0]===","?"[":"[ ")+result+(compact?"]":" ]")}return result}function internalGenerate(node,decorate,forceBraces,compact){let result;switch(node.type){case"Group":result=generateSequence(node,decorate,forceBraces,compact)+(node.disallowEmpty?"!":"");break;case"Multiplier":return internalGenerate(node.term,decorate,forceBraces,compact)+decorate(generateMultiplier(node),node);case"Type":result="<"+node.name+(node.opts?decorate(generateTypeOpts(node.opts),node.opts):"")+">";break;case"Property":result="<'"+node.name+"'>";break;case"Keyword":result=node.name;break;case"AtKeyword":result="@"+node.name;break;case"Function":result=node.name+"(";break;case"String":case"Token":result=node.value;break;case"Comma":result=",";break;default:throw new Error("Unknown node type `"+node.type+"`")}return decorate(result,node)}function generate$K(node,options){let decorate=noop$1;let forceBraces=false;let compact=false;if(typeof options==="function"){decorate=options}else if(options){forceBraces=Boolean(options.forceBraces);compact=Boolean(options.compact);if(typeof options.decorate==="function"){decorate=options.decorate}}return internalGenerate(node,decorate,forceBraces,compact)}generate$L.generate=generate$K;const createCustomError$1=createCustomError$4;const generate$J=generate$L;const defaultLoc={offset:0,line:1,column:1};function locateMismatch(matchResult,node){const tokens=matchResult.tokens;const longestMatch=matchResult.longestMatch;const mismatchNode=longestMatch<tokens.length?tokens[longestMatch].node||null:null;const badNode=mismatchNode!==node?mismatchNode:null;let mismatchOffset=0;let mismatchLength=0;let entries=0;let css="";let start;let end;for(let i=0;i<tokens.length;i++){const token=tokens[i].value;if(i===longestMatch){mismatchLength=token.length;mismatchOffset=css.length}if(badNode!==null&&tokens[i].node===badNode){if(i<=longestMatch){entries++}else{entries=0}}css+=token}if(longestMatch===tokens.length||entries>1){start=fromLoc(badNode||node,"end")||buildLoc(defaultLoc,css);end=buildLoc(start)}else{start=fromLoc(badNode,"start")||buildLoc(fromLoc(node,"start")||defaultLoc,css.slice(0,mismatchOffset));end=fromLoc(badNode,"end")||buildLoc(start,css.substr(mismatchOffset,mismatchLength))}return{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}}function fromLoc(node,point){const value=node&&node.loc&&node.loc[point];if(value){return"line"in value?buildLoc(value):value}return null}function buildLoc({offset:offset,line:line,column:column},extra){const loc={offset:offset,line:line,column:column};if(extra){const lines=extra.split(/\n|\r\n?|\f/);loc.offset+=extra.length;loc.line+=lines.length-1;loc.column=lines.length===1?loc.column+extra.length:lines.pop().length+1}return loc}const SyntaxReferenceError=function(type,referenceName){const error=createCustomError$1.createCustomError("SyntaxReferenceError",type+(referenceName?" `"+referenceName+"`":""));error.reference=referenceName;return error};const SyntaxMatchError=function(message,syntax,node,matchResult){const error=createCustomError$1.createCustomError("SyntaxMatchError",message);const{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end}=locateMismatch(matchResult,node);error.rawMessage=message;error.syntax=syntax?generate$J.generate(syntax):"<generic>";error.css=css;error.mismatchOffset=mismatchOffset;error.mismatchLength=mismatchLength;error.message=message+"\n"+" syntax: "+error.syntax+"\n"+" value: "+(css||"<empty string>")+"\n"+" --------"+new Array(error.mismatchOffset+1).join("-")+"^";Object.assign(error,start);error.loc={source:node&&node.loc&&node.loc.source||"<unknown>",start:start,end:end};return error};error$2.SyntaxMatchError=SyntaxMatchError;error$2.SyntaxReferenceError=SyntaxReferenceError;var names$4={};const keywords=new Map;const properties=new Map;const HYPHENMINUS$5=45;const keyword=getKeywordDescriptor;const property=getPropertyDescriptor;const vendorPrefix=getVendorPrefix;function isCustomProperty(str,offset){offset=offset||0;return str.length-offset>=2&&str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)===HYPHENMINUS$5}function getVendorPrefix(str,offset){offset=offset||0;if(str.length-offset>=3){if(str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)!==HYPHENMINUS$5){const secondDashIndex=str.indexOf("-",offset+2);if(secondDashIndex!==-1){return str.substring(offset,secondDashIndex+1)}}}return""}function getKeywordDescriptor(keyword){if(keywords.has(keyword)){return keywords.get(keyword)}const name=keyword.toLowerCase();let descriptor=keywords.get(name);if(descriptor===undefined){const custom=isCustomProperty(name,0);const vendor=!custom?getVendorPrefix(name,0):"";descriptor=Object.freeze({basename:name.substr(vendor.length),name:name,prefix:vendor,vendor:vendor,custom:custom})}keywords.set(keyword,descriptor);return descriptor}function getPropertyDescriptor(property){if(properties.has(property)){return properties.get(property)}let name=property;let hack=property[0];if(hack==="/"){hack=property[1]==="/"?"//":"/"}else if(hack!=="_"&&hack!=="*"&&hack!=="$"&&hack!=="#"&&hack!=="+"&&hack!=="&"){hack=""}const custom=isCustomProperty(name,hack.length);if(!custom){name=name.toLowerCase();if(properties.has(name)){const descriptor=properties.get(name);properties.set(property,descriptor);return descriptor}}const vendor=!custom?getVendorPrefix(name,hack.length):"";const prefix=name.substr(0,hack.length+vendor.length);const descriptor=Object.freeze({basename:name.substr(prefix.length),name:name.substr(hack.length),hack:hack,vendor:vendor,prefix:prefix,custom:custom});properties.set(property,descriptor);return descriptor}names$4.isCustomProperty=isCustomProperty;names$4.keyword=keyword;names$4.property=property;names$4.vendorPrefix=vendorPrefix;var genericConst$2={};const cssWideKeywords=["initial","inherit","unset","revert","revert-layer"];genericConst$2.cssWideKeywords=cssWideKeywords;const charCodeDefinitions$8=charCodeDefinitions$c;const types$K=types$R;const utils$g=utils$k;const PLUSSIGN$8=43;const HYPHENMINUS$4=45;const N$3=110;const DISALLOW_SIGN$1=true;const ALLOW_SIGN$1=false;function isDelim$1(token,code){return token!==null&&token.type===types$K.Delim&&token.value.charCodeAt(0)===code}function skipSC(token,offset,getNextToken){while(token!==null&&(token.type===types$K.WhiteSpace||token.type===types$K.Comment)){token=getNextToken(++offset)}return offset}function checkInteger$1(token,valueOffset,disallowSign,offset){if(!token){return 0}const code=token.value.charCodeAt(valueOffset);if(code===PLUSSIGN$8||code===HYPHENMINUS$4){if(disallowSign){return 0}valueOffset++}for(;valueOffset<token.value.length;valueOffset++){if(!charCodeDefinitions$8.isDigit(token.value.charCodeAt(valueOffset))){return 0}}return offset+1}function consumeB$1(token,offset_,getNextToken){let sign=false;let offset=skipSC(token,offset_,getNextToken);token=getNextToken(offset);if(token===null){return offset_}if(token.type!==types$K.Number){if(isDelim$1(token,PLUSSIGN$8)||isDelim$1(token,HYPHENMINUS$4)){sign=true;offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);if(token===null||token.type!==types$K.Number){return 0}}else{return offset_}}if(!sign){const code=token.value.charCodeAt(0);if(code!==PLUSSIGN$8&&code!==HYPHENMINUS$4){return 0}}return checkInteger$1(token,sign?0:1,sign,offset)}function anPlusB(token,getNextToken){let offset=0;if(!token){return 0}if(token.type===types$K.Number){return checkInteger$1(token,0,ALLOW_SIGN$1,offset)}else if(token.type===types$K.Ident&&token.value.charCodeAt(0)===HYPHENMINUS$4){if(!utils$g.cmpChar(token.value,1,N$3)){return 0}switch(token.value.length){case 2:return consumeB$1(getNextToken(++offset),offset,getNextToken);case 3:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);default:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0}return checkInteger$1(token,3,DISALLOW_SIGN$1,offset)}}else if(token.type===types$K.Ident||isDelim$1(token,PLUSSIGN$8)&&getNextToken(offset+1).type===types$K.Ident){if(token.type!==types$K.Ident){token=getNextToken(++offset)}if(token===null||!utils$g.cmpChar(token.value,0,N$3)){return 0}switch(token.value.length){case 1:return consumeB$1(getNextToken(++offset),offset,getNextToken);case 2:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);default:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0}return checkInteger$1(token,2,DISALLOW_SIGN$1,offset)}}else if(token.type===types$K.Dimension){let code=token.value.charCodeAt(0);let sign=code===PLUSSIGN$8||code===HYPHENMINUS$4?1:0;let i=sign;for(;i<token.value.length;i++){if(!charCodeDefinitions$8.isDigit(token.value.charCodeAt(i))){break}}if(i===sign){return 0}if(!utils$g.cmpChar(token.value,i,N$3)){return 0}if(i+1===token.value.length){return consumeB$1(getNextToken(++offset),offset,getNextToken)}else{if(token.value.charCodeAt(i+1)!==HYPHENMINUS$4){return 0}if(i+2===token.value.length){offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset)}else{return checkInteger$1(token,i+2,DISALLOW_SIGN$1,offset)}}}return 0}var genericAnPlusB$1=anPlusB;const charCodeDefinitions$7=charCodeDefinitions$c;const types$J=types$R;const utils$f=utils$k;const PLUSSIGN$7=43;const HYPHENMINUS$3=45;const QUESTIONMARK$2=63;const U$1=117;function isDelim(token,code){return token!==null&&token.type===types$J.Delim&&token.value.charCodeAt(0)===code}function startsWith$1(token,code){return token.value.charCodeAt(0)===code}function hexSequence(token,offset,allowDash){let hexlen=0;for(let pos=offset;pos<token.value.length;pos++){const code=token.value.charCodeAt(pos);if(code===HYPHENMINUS$3&&allowDash&&hexlen!==0){hexSequence(token,offset+hexlen+1,false);return 6}if(!charCodeDefinitions$7.isHexDigit(code)){return 0}if(++hexlen>6){return 0}}return hexlen}function withQuestionMarkSequence(consumed,length,getNextToken){if(!consumed){return 0}while(isDelim(getNextToken(length),QUESTIONMARK$2)){if(++consumed>6){return 0}length++}return length}function urange(token,getNextToken){let length=0;if(token===null||token.type!==types$J.Ident||!utils$f.cmpChar(token.value,0,U$1)){return 0}token=getNextToken(++length);if(token===null){return 0}if(isDelim(token,PLUSSIGN$7)){token=getNextToken(++length);if(token===null){return 0}if(token.type===types$J.Ident){return withQuestionMarkSequence(hexSequence(token,0,true),++length,getNextToken)}if(isDelim(token,QUESTIONMARK$2)){return withQuestionMarkSequence(1,++length,getNextToken)}return 0}if(token.type===types$J.Number){const consumedHexLength=hexSequence(token,1,true);if(consumedHexLength===0){return 0}token=getNextToken(++length);if(token===null){return length}if(token.type===types$J.Dimension||token.type===types$J.Number){if(!startsWith$1(token,HYPHENMINUS$3)||!hexSequence(token,1,false)){return 0}return length+1}return withQuestionMarkSequence(consumedHexLength,length,getNextToken)}if(token.type===types$J.Dimension){return withQuestionMarkSequence(hexSequence(token,1,true),++length,getNextToken)}return 0}var genericUrange$1=urange;const genericConst$1=genericConst$2;const genericAnPlusB=genericAnPlusB$1;const genericUrange=genericUrange$1;const types$I=types$R;const charCodeDefinitions$6=charCodeDefinitions$c;const utils$e=utils$k;const calcFunctionNames=["calc(","-moz-calc(","-webkit-calc("];const balancePair=new Map([[types$I.Function,types$I.RightParenthesis],[types$I.LeftParenthesis,types$I.RightParenthesis],[types$I.LeftSquareBracket,types$I.RightSquareBracket],[types$I.LeftCurlyBracket,types$I.RightCurlyBracket]]);const LENGTH=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"];const ANGLE=["deg","grad","rad","turn"];const TIME=["s","ms"];const FREQUENCY=["hz","khz"];const RESOLUTION=["dpi","dpcm","dppx","x"];const FLEX=["fr"];const DECIBEL=["db"];const SEMITONES=["st"];function charCodeAt(str,index){return index<str.length?str.charCodeAt(index):0}function eqStr(actual,expected){return utils$e.cmpStr(actual,0,actual.length,expected)}function eqStrAny(actual,expected){for(let i=0;i<expected.length;i++){if(eqStr(actual,expected[i])){return true}}return false}function isPostfixIeHack(str,offset){if(offset!==str.length-2){return false}return charCodeAt(str,offset)===92&&charCodeDefinitions$6.isDigit(charCodeAt(str,offset+1))}function outOfRange(opts,value,numEnd){if(opts&&opts.type==="Range"){const num=Number(numEnd!==undefined&&numEnd!==value.length?value.substr(0,numEnd):value);if(isNaN(num)){return true}if(opts.min!==null&&num<opts.min&&typeof opts.min!=="string"){return true}if(opts.max!==null&&num>opts.max&&typeof opts.max!=="string"){return true}}return false}function consumeFunction(token,getNextToken){let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();if(balanceStash.length===0){length++;break scan}break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function calc(next){return function(token,getNextToken,opts){if(token===null){return 0}if(token.type===types$I.Function&&eqStrAny(token.value,calcFunctionNames)){return consumeFunction(token,getNextToken)}return next(token,getNextToken,opts)}}function tokenType(expectedTokenType){return function(token){if(token===null||token.type!==expectedTokenType){return 0}return 1}}function customIdent(token){if(token===null||token.type!==types$I.Ident){return 0}const name=token.value.toLowerCase();if(eqStrAny(name,genericConst$1.cssWideKeywords)){return 0}if(eqStr(name,"default")){return 0}return 1}function customPropertyName(token){if(token===null||token.type!==types$I.Ident){return 0}if(charCodeAt(token.value,0)!==45||charCodeAt(token.value,1)!==45){return 0}return 1}function hexColor(token){if(token===null||token.type!==types$I.Hash){return 0}const length=token.value.length;if(length!==4&&length!==5&&length!==7&&length!==9){return 0}for(let i=1;i<length;i++){if(!charCodeDefinitions$6.isHexDigit(charCodeAt(token.value,i))){return 0}}return 1}function idSelector(token){if(token===null||token.type!==types$I.Hash){return 0}if(!charCodeDefinitions$6.isIdentifierStart(charCodeAt(token.value,1),charCodeAt(token.value,2),charCodeAt(token.value,3))){return 0}return 1}function declarationValue(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.BadString:case types$I.BadUrl:break scan;case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$I.Semicolon:if(balanceCloseType===0){break scan}break;case types$I.Delim:if(balanceCloseType===0&&token.value==="!"){break scan}break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function anyValue(token,getNextToken){if(!token){return 0}let balanceCloseType=0;let balanceStash=[];let length=0;scan:do{switch(token.type){case types$I.BadString:case types$I.BadUrl:break scan;case types$I.RightCurlyBracket:case types$I.RightParenthesis:case types$I.RightSquareBracket:if(token.type!==balanceCloseType){break scan}balanceCloseType=balanceStash.pop();break;case types$I.Function:case types$I.LeftParenthesis:case types$I.LeftSquareBracket:case types$I.LeftCurlyBracket:balanceStash.push(balanceCloseType);balanceCloseType=balancePair.get(token.type);break}length++}while(token=getNextToken(length));return length}function dimension(type){if(type){type=new Set(type)}return function(token,getNextToken,opts){if(token===null||token.type!==types$I.Dimension){return 0}const numberEnd=utils$e.consumeNumber(token.value,0);if(type!==null){const reverseSolidusOffset=token.value.indexOf("\\",numberEnd);const unit=reverseSolidusOffset===-1||!isPostfixIeHack(token.value,reverseSolidusOffset)?token.value.substr(numberEnd):token.value.substring(numberEnd,reverseSolidusOffset);if(type.has(unit.toLowerCase())===false){return 0}}if(outOfRange(opts,token.value,numberEnd)){return 0}return 1}}function percentage(token,getNextToken,opts){if(token===null||token.type!==types$I.Percentage){return 0}if(outOfRange(opts,token.value,token.value.length-1)){return 0}return 1}function zero(next){if(typeof next!=="function"){next=function(){return 0}}return function(token,getNextToken,opts){if(token!==null&&token.type===types$I.Number){if(Number(token.value)===0){return 1}}return next(token,getNextToken,opts)}}function number(token,getNextToken,opts){if(token===null){return 0}const numberEnd=utils$e.consumeNumber(token.value,0);const isNumber=numberEnd===token.value.length;if(!isNumber&&!isPostfixIeHack(token.value,numberEnd)){return 0}if(outOfRange(opts,token.value,numberEnd)){return 0}return 1}function integer(token,getNextToken,opts){if(token===null||token.type!==types$I.Number){return 0}let i=charCodeAt(token.value,0)===43||charCodeAt(token.value,0)===45?1:0;for(;i<token.value.length;i++){if(!charCodeDefinitions$6.isDigit(charCodeAt(token.value,i))){return 0}}if(outOfRange(opts,token.value,i)){return 0}return 1}const genericSyntaxes={"ident-token":tokenType(types$I.Ident),"function-token":tokenType(types$I.Function),"at-keyword-token":tokenType(types$I.AtKeyword),"hash-token":tokenType(types$I.Hash),"string-token":tokenType(types$I.String),"bad-string-token":tokenType(types$I.BadString),"url-token":tokenType(types$I.Url),"bad-url-token":tokenType(types$I.BadUrl),"delim-token":tokenType(types$I.Delim),"number-token":tokenType(types$I.Number),"percentage-token":tokenType(types$I.Percentage),"dimension-token":tokenType(types$I.Dimension),"whitespace-token":tokenType(types$I.WhiteSpace),"CDO-token":tokenType(types$I.CDO),"CDC-token":tokenType(types$I.CDC),"colon-token":tokenType(types$I.Colon),"semicolon-token":tokenType(types$I.Semicolon),"comma-token":tokenType(types$I.Comma),"[-token":tokenType(types$I.LeftSquareBracket),"]-token":tokenType(types$I.RightSquareBracket),"(-token":tokenType(types$I.LeftParenthesis),")-token":tokenType(types$I.RightParenthesis),"{-token":tokenType(types$I.LeftCurlyBracket),"}-token":tokenType(types$I.RightCurlyBracket),string:tokenType(types$I.String),ident:tokenType(types$I.Ident),"custom-ident":customIdent,"custom-property-name":customPropertyName,"hex-color":hexColor,"id-selector":idSelector,"an-plus-b":genericAnPlusB,urange:genericUrange,"declaration-value":declarationValue,"any-value":anyValue,dimension:calc(dimension(null)),angle:calc(dimension(ANGLE)),decibel:calc(dimension(DECIBEL)),frequency:calc(dimension(FREQUENCY)),flex:calc(dimension(FLEX)),length:calc(zero(dimension(LENGTH))),resolution:calc(dimension(RESOLUTION)),semitones:calc(dimension(SEMITONES)),time:calc(dimension(TIME)),percentage:calc(percentage),zero:zero(),number:calc(number),integer:calc(integer)};var generic$1=genericSyntaxes;const index$9=tokenizer$2;const astToTokens={decorator(handlers){const tokens=[];let curNode=null;return{...handlers,node(node){const tmp=curNode;curNode=node;handlers.node.call(this,node);curNode=tmp},emit(value,type,auto){tokens.push({type:type,value:value,node:auto?null:curNode})},result(){return tokens}}}};function stringToTokens(str){const tokens=[];index$9.tokenize(str,((type,start,end)=>tokens.push({type:type,value:str.slice(start,end),node:null})));return tokens}function prepareTokens$1(value,syntax){if(typeof value==="string"){return stringToTokens(value)}return syntax.generate(value,astToTokens)}var prepareTokens_1=prepareTokens$1;var matchGraph$2={};var parse$L={};var tokenizer$1={};var _SyntaxError={};const createCustomError=createCustomError$4;function SyntaxError$3(message,input,offset){return Object.assign(createCustomError.createCustomError("SyntaxError",message),{input:input,offset:offset,rawMessage:message,message:message+"\n"+" "+input+"\n"+"--"+new Array((offset||input.length)+1).join("-")+"^"})}_SyntaxError.SyntaxError=SyntaxError$3;const SyntaxError$2=_SyntaxError;const TAB$1=9;const N$2=10;const F$1=12;const R$1=13;const SPACE$3=32;class Tokenizer{constructor(str){this.str=str;this.pos=0}charCodeAt(pos){return pos<this.str.length?this.str.charCodeAt(pos):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(pos){return this.charCodeAt(this.findWsEnd(pos))}findWsEnd(pos){for(;pos<this.str.length;pos++){const code=this.str.charCodeAt(pos);if(code!==R$1&&code!==N$2&&code!==F$1&&code!==SPACE$3&&code!==TAB$1){break}}return pos}substringToPos(end){return this.str.substring(this.pos,this.pos=end)}eat(code){if(this.charCode()!==code){this.error("Expect `"+String.fromCharCode(code)+"`")}this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(message){throw new SyntaxError$2.SyntaxError(message,this.str,this.pos)}}tokenizer$1.Tokenizer=Tokenizer;const tokenizer=tokenizer$1;const TAB=9;const N$1=10;const F=12;const R=13;const SPACE$2=32;const EXCLAMATIONMARK$2=33;const NUMBERSIGN$3=35;const AMPERSAND$1=38;const APOSTROPHE$2=39;const LEFTPARENTHESIS$2=40;const RIGHTPARENTHESIS$2=41;const ASTERISK$6=42;const PLUSSIGN$6=43;const COMMA=44;const HYPERMINUS=45;const LESSTHANSIGN=60;const GREATERTHANSIGN$2=62;const QUESTIONMARK$1=63;const COMMERCIALAT=64;const LEFTSQUAREBRACKET=91;const RIGHTSQUAREBRACKET=93;const LEFTCURLYBRACKET=123;const VERTICALLINE$3=124;const RIGHTCURLYBRACKET=125;const INFINITY=8734;const NAME_CHAR=new Uint8Array(128).map(((_,idx)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(idx))?1:0));const COMBINATOR_PRECEDENCE={" ":1,"&&":2,"||":3,"|":4};function scanSpaces(tokenizer){return tokenizer.substringToPos(tokenizer.findWsEnd(tokenizer.pos))}function scanWord(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code>=128||NAME_CHAR[code]===0){break}}if(tokenizer.pos===end){tokenizer.error("Expect a keyword")}return tokenizer.substringToPos(end)}function scanNumber(tokenizer){let end=tokenizer.pos;for(;end<tokenizer.str.length;end++){const code=tokenizer.str.charCodeAt(end);if(code<48||code>57){break}}if(tokenizer.pos===end){tokenizer.error("Expect a number")}return tokenizer.substringToPos(end)}function scanString(tokenizer){const end=tokenizer.str.indexOf("'",tokenizer.pos+1);if(end===-1){tokenizer.pos=tokenizer.str.length;tokenizer.error("Expect an apostrophe")}return tokenizer.substringToPos(end+1)}function readMultiplierRange(tokenizer){let min=null;let max=null;tokenizer.eat(LEFTCURLYBRACKET);min=scanNumber(tokenizer);if(tokenizer.charCode()===COMMA){tokenizer.pos++;if(tokenizer.charCode()!==RIGHTCURLYBRACKET){max=scanNumber(tokenizer)}}else{max=min}tokenizer.eat(RIGHTCURLYBRACKET);return{min:Number(min),max:max?Number(max):0}}function readMultiplier(tokenizer){let range=null;let comma=false;switch(tokenizer.charCode()){case ASTERISK$6:tokenizer.pos++;range={min:0,max:0};break;case PLUSSIGN$6:tokenizer.pos++;range={min:1,max:0};break;case QUESTIONMARK$1:tokenizer.pos++;range={min:0,max:1};break;case NUMBERSIGN$3:tokenizer.pos++;comma=true;if(tokenizer.charCode()===LEFTCURLYBRACKET){range=readMultiplierRange(tokenizer)}else if(tokenizer.charCode()===QUESTIONMARK$1){tokenizer.pos++;range={min:0,max:0}}else{range={min:1,max:0}}break;case LEFTCURLYBRACKET:range=readMultiplierRange(tokenizer);break;default:return null}return{type:"Multiplier",comma:comma,min:range.min,max:range.max,term:null}}function maybeMultiplied(tokenizer,node){const multiplier=readMultiplier(tokenizer);if(multiplier!==null){multiplier.term=node;if(tokenizer.charCode()===NUMBERSIGN$3&&tokenizer.charCodeAt(tokenizer.pos-1)===PLUSSIGN$6){return maybeMultiplied(tokenizer,multiplier)}return multiplier}return node}function maybeToken(tokenizer){const ch=tokenizer.peek();if(ch===""){return null}return{type:"Token",value:ch}}function readProperty$1(tokenizer){let name;tokenizer.eat(LESSTHANSIGN);tokenizer.eat(APOSTROPHE$2);name=scanWord(tokenizer);tokenizer.eat(APOSTROPHE$2);tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:"Property",name:name})}function readTypeRange(tokenizer){let min=null;let max=null;let sign=1;tokenizer.eat(LEFTSQUAREBRACKET);if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1}if(sign==-1&&tokenizer.charCode()===INFINITY){tokenizer.peek()}else{min=sign*Number(scanNumber(tokenizer));if(NAME_CHAR[tokenizer.charCode()]!==0){min+=scanWord(tokenizer)}}scanSpaces(tokenizer);tokenizer.eat(COMMA);scanSpaces(tokenizer);if(tokenizer.charCode()===INFINITY){tokenizer.peek()}else{sign=1;if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1}max=sign*Number(scanNumber(tokenizer));if(NAME_CHAR[tokenizer.charCode()]!==0){max+=scanWord(tokenizer)}}tokenizer.eat(RIGHTSQUAREBRACKET);return{type:"Range",min:min,max:max}}function readType(tokenizer){let name;let opts=null;tokenizer.eat(LESSTHANSIGN);name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$2&&tokenizer.nextCharCode()===RIGHTPARENTHESIS$2){tokenizer.pos+=2;name+="()"}if(tokenizer.charCodeAt(tokenizer.findWsEnd(tokenizer.pos))===LEFTSQUAREBRACKET){scanSpaces(tokenizer);opts=readTypeRange(tokenizer)}tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:"Type",name:name,opts:opts})}function readKeywordOrFunction(tokenizer){const name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$2){tokenizer.pos++;return{type:"Function",name:name}}return maybeMultiplied(tokenizer,{type:"Keyword",name:name})}function regroupTerms(terms,combinators){function createGroup(terms,combinator){return{type:"Group",terms:terms,combinator:combinator,disallowEmpty:false,explicit:false}}let combinator;combinators=Object.keys(combinators).sort(((a,b)=>COMBINATOR_PRECEDENCE[a]-COMBINATOR_PRECEDENCE[b]));while(combinators.length>0){combinator=combinators.shift();let i=0;let subgroupStart=0;for(;i<terms.length;i++){const term=terms[i];if(term.type==="Combinator"){if(term.value===combinator){if(subgroupStart===-1){subgroupStart=i-1}terms.splice(i,1);i--}else{if(subgroupStart!==-1&&i-subgroupStart>1){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator));i=subgroupStart+1}subgroupStart=-1}}}if(subgroupStart!==-1&&combinators.length){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator))}}return combinator}function readImplicitGroup(tokenizer){const terms=[];const combinators={};let token;let prevToken=null;let prevTokenPos=tokenizer.pos;while(token=peek(tokenizer)){if(token.type!=="Spaces"){if(token.type==="Combinator"){if(prevToken===null||prevToken.type==="Combinator"){tokenizer.pos=prevTokenPos;tokenizer.error("Unexpected combinator")}combinators[token.value]=true}else if(prevToken!==null&&prevToken.type!=="Combinator"){combinators[" "]=true;terms.push({type:"Combinator",value:" "})}terms.push(token);prevToken=token;prevTokenPos=tokenizer.pos}}if(prevToken!==null&&prevToken.type==="Combinator"){tokenizer.pos-=prevTokenPos;tokenizer.error("Unexpected combinator")}return{type:"Group",terms:terms,combinator:regroupTerms(terms,combinators)||" ",disallowEmpty:false,explicit:false}}function readGroup(tokenizer){let result;tokenizer.eat(LEFTSQUAREBRACKET);result=readImplicitGroup(tokenizer);tokenizer.eat(RIGHTSQUAREBRACKET);result.explicit=true;if(tokenizer.charCode()===EXCLAMATIONMARK$2){tokenizer.pos++;result.disallowEmpty=true}return result}function peek(tokenizer){let code=tokenizer.charCode();if(code<128&&NAME_CHAR[code]===1){return readKeywordOrFunction(tokenizer)}switch(code){case RIGHTSQUAREBRACKET:break;case LEFTSQUAREBRACKET:return maybeMultiplied(tokenizer,readGroup(tokenizer));case LESSTHANSIGN:return tokenizer.nextCharCode()===APOSTROPHE$2?readProperty$1(tokenizer):readType(tokenizer);case VERTICALLINE$3:return{type:"Combinator",value:tokenizer.substringToPos(tokenizer.pos+(tokenizer.nextCharCode()===VERTICALLINE$3?2:1))};case AMPERSAND$1:tokenizer.pos++;tokenizer.eat(AMPERSAND$1);return{type:"Combinator",value:"&&"};case COMMA:tokenizer.pos++;return{type:"Comma"};case APOSTROPHE$2:return maybeMultiplied(tokenizer,{type:"String",value:scanString(tokenizer)});case SPACE$2:case TAB:case N$1:case R:case F:return{type:"Spaces",value:scanSpaces(tokenizer)};case COMMERCIALAT:code=tokenizer.nextCharCode();if(code<128&&NAME_CHAR[code]===1){tokenizer.pos++;return{type:"AtKeyword",name:scanWord(tokenizer)}}return maybeToken(tokenizer);case ASTERISK$6:case PLUSSIGN$6:case QUESTIONMARK$1:case NUMBERSIGN$3:case EXCLAMATIONMARK$2:break;case LEFTCURLYBRACKET:code=tokenizer.nextCharCode();if(code<48||code>57){return maybeToken(tokenizer)}break;default:return maybeToken(tokenizer)}}function parse$K(source){const tokenizer$1=new tokenizer.Tokenizer(source);const result=readImplicitGroup(tokenizer$1);if(tokenizer$1.pos!==source.length){tokenizer$1.error("Unexpected input")}if(result.terms.length===1&&result.terms[0].type==="Group"){return result.terms[0]}return result}parse$L.parse=parse$K;const parse$J=parse$L;const MATCH={type:"Match"};const MISMATCH={type:"Mismatch"};const DISALLOW_EMPTY={type:"DisallowEmpty"};const LEFTPARENTHESIS$1=40;const RIGHTPARENTHESIS$1=41;function createCondition(match,thenBranch,elseBranch){if(thenBranch===MATCH&&elseBranch===MISMATCH){return match}if(match===MATCH&&thenBranch===MATCH&&elseBranch===MATCH){return match}if(match.type==="If"&&match.else===MISMATCH&&thenBranch===MATCH){thenBranch=match.then;match=match.match}return{type:"If",match:match,then:thenBranch,else:elseBranch}}function isFunctionType(name){return name.length>2&&name.charCodeAt(name.length-2)===LEFTPARENTHESIS$1&&name.charCodeAt(name.length-1)===RIGHTPARENTHESIS$1}function isEnumCapatible(term){return term.type==="Keyword"||term.type==="AtKeyword"||term.type==="Function"||term.type==="Type"&&isFunctionType(term.name)}function buildGroupMatchGraph(combinator,terms,atLeastOneTermMatched){switch(combinator){case" ":{let result=MATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];result=createCondition(term,result,MISMATCH)}return result}case"|":{let result=MISMATCH;let map=null;for(let i=terms.length-1;i>=0;i--){let term=terms[i];if(isEnumCapatible(term)){if(map===null&&i>0&&isEnumCapatible(terms[i-1])){map=Object.create(null);result=createCondition({type:"Enum",map:map},MATCH,result)}if(map!==null){const key=(isFunctionType(term.name)?term.name.slice(0,-1):term.name).toLowerCase();if(key in map===false){map[key]=term;continue}}}map=null;result=createCondition(term,MATCH,result)}return result}case"&&":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:true}}let result=MISMATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),false)}else{thenClause=MATCH}result=createCondition(term,thenClause,result)}return result}case"||":{if(terms.length>5){return{type:"MatchOnce",terms:terms,all:false}}let result=atLeastOneTermMatched?MATCH:MISMATCH;for(let i=terms.length-1;i>=0;i--){const term=terms[i];let thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter((function(newGroupTerm){return newGroupTerm!==term})),true)}else{thenClause=MATCH}result=createCondition(term,thenClause,result)}return result}}}function buildMultiplierMatchGraph(node){let result=MATCH;let matchTerm=buildMatchGraphInternal(node.term);if(node.max===0){matchTerm=createCondition(matchTerm,DISALLOW_EMPTY,MISMATCH);result=createCondition(matchTerm,null,MISMATCH);result.then=createCondition(MATCH,MATCH,result);if(node.comma){result.then.else=createCondition({type:"Comma",syntax:node},result,MISMATCH)}}else{for(let i=node.min||1;i<=node.max;i++){if(node.comma&&result!==MATCH){result=createCondition({type:"Comma",syntax:node},result,MISMATCH)}result=createCondition(matchTerm,createCondition(MATCH,MATCH,result),MISMATCH)}}if(node.min===0){result=createCondition(MATCH,MATCH,result)}else{for(let i=0;i<node.min-1;i++){if(node.comma&&result!==MATCH){result=createCondition({type:"Comma",syntax:node},result,MISMATCH)}result=createCondition(matchTerm,result,MISMATCH)}}return result}function buildMatchGraphInternal(node){if(typeof node==="function"){return{type:"Generic",fn:node}}switch(node.type){case"Group":{let result=buildGroupMatchGraph(node.combinator,node.terms.map(buildMatchGraphInternal),false);if(node.disallowEmpty){result=createCondition(result,DISALLOW_EMPTY,MISMATCH)}return result}case"Multiplier":return buildMultiplierMatchGraph(node);case"Type":case"Property":return{type:node.type,name:node.name,syntax:node};case"Keyword":return{type:node.type,name:node.name.toLowerCase(),syntax:node};case"AtKeyword":return{type:node.type,name:"@"+node.name.toLowerCase(),syntax:node};case"Function":return{type:node.type,name:node.name.toLowerCase()+"(",syntax:node};case"String":if(node.value.length===3){return{type:"Token",value:node.value.charAt(1),syntax:node}}return{type:node.type,value:node.value.substr(1,node.value.length-2).replace(/\\'/g,"'"),syntax:node};case"Token":return{type:node.type,value:node.value,syntax:node};case"Comma":return{type:node.type,syntax:node};default:throw new Error("Unknown node type:",node.type)}}function buildMatchGraph(syntaxTree,ref){if(typeof syntaxTree==="string"){syntaxTree=parse$J.parse(syntaxTree)}return{type:"MatchGraph",match:buildMatchGraphInternal(syntaxTree),syntax:ref||null,source:syntaxTree}}matchGraph$2.DISALLOW_EMPTY=DISALLOW_EMPTY;matchGraph$2.MATCH=MATCH;matchGraph$2.MISMATCH=MISMATCH;matchGraph$2.buildMatchGraph=buildMatchGraph;var match$1={};const matchGraph$1=matchGraph$2;const types$H=types$R;const{hasOwnProperty:hasOwnProperty$7}=Object.prototype;const STUB=0;const TOKEN=1;const OPEN_SYNTAX=2;const CLOSE_SYNTAX=3;const EXIT_REASON_MATCH="Match";const EXIT_REASON_MISMATCH="Mismatch";const EXIT_REASON_ITERATION_LIMIT="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)";const ITERATION_LIMIT=15e3;function reverseList(list){let prev=null;let next=null;let item=list;while(item!==null){next=item.prev;item.prev=prev;prev=item;item=next}return prev}function areStringsEqualCaseInsensitive(testStr,referenceStr){if(testStr.length!==referenceStr.length){return false}for(let i=0;i<testStr.length;i++){const referenceCode=referenceStr.charCodeAt(i);let testCode=testStr.charCodeAt(i);if(testCode>=65&&testCode<=90){testCode=testCode|32}if(testCode!==referenceCode){return false}}return true}function isContextEdgeDelim(token){if(token.type!==types$H.Delim){return false}return token.value!=="?"}function isCommaContextStart(token){if(token===null){return true}return token.type===types$H.Comma||token.type===types$H.Function||token.type===types$H.LeftParenthesis||token.type===types$H.LeftSquareBracket||token.type===types$H.LeftCurlyBracket||isContextEdgeDelim(token)}function isCommaContextEnd(token){if(token===null){return true}return token.type===types$H.RightParenthesis||token.type===types$H.RightSquareBracket||token.type===types$H.RightCurlyBracket||token.type===types$H.Delim&&token.value==="/"}function internalMatch(tokens,state,syntaxes){function moveToNextToken(){do{tokenIndex++;token=tokenIndex<tokens.length?tokens[tokenIndex]:null}while(token!==null&&(token.type===types$H.WhiteSpace||token.type===types$H.Comment))}function getNextToken(offset){const nextIndex=tokenIndex+offset;return nextIndex<tokens.length?tokens[nextIndex]:null}function stateSnapshotFromSyntax(nextState,prev){return{nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,thenStack:thenStack,tokenIndex:tokenIndex,prev:prev}}function pushThenStack(nextState){thenStack={nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,prev:thenStack}}function pushElseStack(nextState){elseStack=stateSnapshotFromSyntax(nextState,elseStack)}function addTokenToMatch(){matchStack={type:TOKEN,syntax:state.syntax,token:token,prev:matchStack};moveToNextToken();syntaxStash=null;if(tokenIndex>longestMatch){longestMatch=tokenIndex}}function openSyntax(){syntaxStack={syntax:state.syntax,opts:state.syntax.opts||syntaxStack!==null&&syntaxStack.opts||null,prev:syntaxStack};matchStack={type:OPEN_SYNTAX,syntax:state.syntax,token:matchStack.token,prev:matchStack}}function closeSyntax(){if(matchStack.type===OPEN_SYNTAX){matchStack=matchStack.prev}else{matchStack={type:CLOSE_SYNTAX,syntax:syntaxStack.syntax,token:matchStack.token,prev:matchStack}}syntaxStack=syntaxStack.prev}let syntaxStack=null;let thenStack=null;let elseStack=null;let syntaxStash=null;let iterationCount=0;let exitReason=null;let token=null;let tokenIndex=-1;let longestMatch=0;let matchStack={type:STUB,syntax:null,token:null,prev:null};moveToNextToken();while(exitReason===null&&++iterationCount<ITERATION_LIMIT){switch(state.type){case"Match":if(thenStack===null){if(token!==null){if(tokenIndex!==tokens.length-1||token.value!=="\\0"&&token.value!=="\\9"){state=matchGraph$1.MISMATCH;break}}exitReason=EXIT_REASON_MATCH;break}state=thenStack.nextState;if(state===matchGraph$1.DISALLOW_EMPTY){if(thenStack.matchStack===matchStack){state=matchGraph$1.MISMATCH;break}else{state=matchGraph$1.MATCH}}while(thenStack.syntaxStack!==syntaxStack){closeSyntax()}thenStack=thenStack.prev;break;case"Mismatch":if(syntaxStash!==null&&syntaxStash!==false){if(elseStack===null||tokenIndex>elseStack.tokenIndex){elseStack=syntaxStash;syntaxStash=false}}else if(elseStack===null){exitReason=EXIT_REASON_MISMATCH;break}state=elseStack.nextState;thenStack=elseStack.thenStack;syntaxStack=elseStack.syntaxStack;matchStack=elseStack.matchStack;tokenIndex=elseStack.tokenIndex;token=tokenIndex<tokens.length?tokens[tokenIndex]:null;elseStack=elseStack.prev;break;case"MatchGraph":state=state.match;break;case"If":if(state.else!==matchGraph$1.MISMATCH){pushElseStack(state.else)}if(state.then!==matchGraph$1.MATCH){pushThenStack(state.then)}state=state.match;break;case"MatchOnce":state={type:"MatchOnceBuffer",syntax:state,index:0,mask:0};break;case"MatchOnceBuffer":{const terms=state.syntax.terms;if(state.index===terms.length){if(state.mask===0||state.syntax.all){state=matchGraph$1.MISMATCH;break}state=matchGraph$1.MATCH;break}if(state.mask===(1<<terms.length)-1){state=matchGraph$1.MATCH;break}for(;state.index<terms.length;state.index++){const matchFlag=1<<state.index;if((state.mask&matchFlag)===0){pushElseStack(state);pushThenStack({type:"AddMatchOnce",syntax:state.syntax,mask:state.mask|matchFlag});state=terms[state.index++];break}}break}case"AddMatchOnce":state={type:"MatchOnceBuffer",syntax:state.syntax,index:0,mask:state.mask};break;case"Enum":if(token!==null){let name=token.value.toLowerCase();if(name.indexOf("\\")!==-1){name=name.replace(/\\[09].*$/,"")}if(hasOwnProperty$7.call(state.map,name)){state=state.map[name];break}}state=matchGraph$1.MISMATCH;break;case"Generic":{const opts=syntaxStack!==null?syntaxStack.opts:null;const lastTokenIndex=tokenIndex+Math.floor(state.fn(token,getNextToken,opts));if(!isNaN(lastTokenIndex)&&lastTokenIndex>tokenIndex){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$1.MATCH}else{state=matchGraph$1.MISMATCH}break}case"Type":case"Property":{const syntaxDict=state.type==="Type"?"types":"properties";const dictSyntax=hasOwnProperty$7.call(syntaxes,syntaxDict)?syntaxes[syntaxDict][state.name]:null;if(!dictSyntax||!dictSyntax.match){throw new Error("Bad syntax reference: "+(state.type==="Type"?"<"+state.name+">":"<'"+state.name+"'>"))}if(syntaxStash!==false&&token!==null&&state.type==="Type"){const lowPriorityMatching=state.name==="custom-ident"&&token.type===types$H.Ident||state.name==="length"&&token.value==="0";if(lowPriorityMatching){if(syntaxStash===null){syntaxStash=stateSnapshotFromSyntax(state,elseStack)}state=matchGraph$1.MISMATCH;break}}openSyntax();state=dictSyntax.match;break}case"Keyword":{const name=state.name;if(token!==null){let keywordName=token.value;if(keywordName.indexOf("\\")!==-1){keywordName=keywordName.replace(/\\[09].*$/,"")}if(areStringsEqualCaseInsensitive(keywordName,name)){addTokenToMatch();state=matchGraph$1.MATCH;break}}state=matchGraph$1.MISMATCH;break}case"AtKeyword":case"Function":if(token!==null&&areStringsEqualCaseInsensitive(token.value,state.name)){addTokenToMatch();state=matchGraph$1.MATCH;break}state=matchGraph$1.MISMATCH;break;case"Token":if(token!==null&&token.value===state.value){addTokenToMatch();state=matchGraph$1.MATCH;break}state=matchGraph$1.MISMATCH;break;case"Comma":if(token!==null&&token.type===types$H.Comma){if(isCommaContextStart(matchStack.token)){state=matchGraph$1.MISMATCH}else{addTokenToMatch();state=isCommaContextEnd(token)?matchGraph$1.MISMATCH:matchGraph$1.MATCH}}else{state=isCommaContextStart(matchStack.token)||isCommaContextEnd(token)?matchGraph$1.MATCH:matchGraph$1.MISMATCH}break;case"String":let string="";let lastTokenIndex=tokenIndex;for(;lastTokenIndex<tokens.length&&string.length<state.value.length;lastTokenIndex++){string+=tokens[lastTokenIndex].value}if(areStringsEqualCaseInsensitive(string,state.value)){while(tokenIndex<lastTokenIndex){addTokenToMatch()}state=matchGraph$1.MATCH}else{state=matchGraph$1.MISMATCH}break;default:throw new Error("Unknown node type: "+state.type)}}switch(exitReason){case null:console.warn("[csstree-match] BREAK after "+ITERATION_LIMIT+" iterations");exitReason=EXIT_REASON_ITERATION_LIMIT;matchStack=null;break;case EXIT_REASON_MATCH:while(syntaxStack!==null){closeSyntax()}break;default:matchStack=null}return{tokens:tokens,reason:exitReason,iterations:iterationCount,match:matchStack,longestMatch:longestMatch}}function matchAsList(tokens,matchGraph,syntaxes){const matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match!==null){let item=reverseList(matchResult.match).prev;matchResult.match=[];while(item!==null){switch(item.type){case OPEN_SYNTAX:case CLOSE_SYNTAX:matchResult.match.push({type:item.type,syntax:item.syntax});break;default:matchResult.match.push({token:item.token.value,node:item.token.node});break}item=item.prev}}return matchResult}function matchAsTree(tokens,matchGraph,syntaxes){const matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match===null){return matchResult}let item=matchResult.match;let host=matchResult.match={syntax:matchGraph.syntax||null,match:[]};const hostStack=[host];item=reverseList(item).prev;while(item!==null){switch(item.type){case OPEN_SYNTAX:host.match.push(host={syntax:item.syntax,match:[]});hostStack.push(host);break;case CLOSE_SYNTAX:hostStack.pop();host=hostStack[hostStack.length-1];break;default:host.match.push({syntax:item.syntax||null,token:item.token.value,node:item.token.node})}item=item.prev}return matchResult}match$1.matchAsList=matchAsList;match$1.matchAsTree=matchAsTree;var trace$1={};function getTrace(node){function shouldPutToTrace(syntax){if(syntax===null){return false}return syntax.type==="Type"||syntax.type==="Property"||syntax.type==="Keyword"}function hasMatch(matchNode){if(Array.isArray(matchNode.match)){for(let i=0;i<matchNode.match.length;i++){if(hasMatch(matchNode.match[i])){if(shouldPutToTrace(matchNode.syntax)){result.unshift(matchNode.syntax)}return true}}}else if(matchNode.node===node){result=shouldPutToTrace(matchNode.syntax)?[matchNode.syntax]:[];return true}return false}let result=null;if(this.matched!==null){hasMatch(this.matched)}return result}function isType(node,type){return testNode(this,node,(match=>match.type==="Type"&&match.name===type))}function isProperty(node,property){return testNode(this,node,(match=>match.type==="Property"&&match.name===property))}function isKeyword(node){return testNode(this,node,(match=>match.type==="Keyword"))}function testNode(match,node,fn){const trace=getTrace.call(match,node);if(trace===null){return false}return trace.some(fn)}trace$1.getTrace=getTrace;trace$1.isKeyword=isKeyword;trace$1.isProperty=isProperty;trace$1.isType=isType;var search$1={};const List$3=List$7;function getFirstMatchNode(matchNode){if("node"in matchNode){return matchNode.node}return getFirstMatchNode(matchNode.match[0])}function getLastMatchNode(matchNode){if("node"in matchNode){return matchNode.node}return getLastMatchNode(matchNode.match[matchNode.match.length-1])}function matchFragments(lexer,ast,match,type,name){function findFragments(matchNode){if(matchNode.syntax!==null&&matchNode.syntax.type===type&&matchNode.syntax.name===name){const start=getFirstMatchNode(matchNode);const end=getLastMatchNode(matchNode);lexer.syntax.walk(ast,(function(node,item,list){if(node===start){const nodes=new List$3.List;do{nodes.appendData(item.data);if(item.data===end){break}item=item.next}while(item!==null);fragments.push({parent:list,nodes:nodes})}}))}if(Array.isArray(matchNode.match)){matchNode.match.forEach(findFragments)}}const fragments=[];if(match.matched!==null){findFragments(match.matched)}return fragments}search$1.matchFragments=matchFragments;var structure$F={};const List$2=List$7;const{hasOwnProperty:hasOwnProperty$6}=Object.prototype;function isValidNumber(value){return typeof value==="number"&&isFinite(value)&&Math.floor(value)===value&&value>=0}function isValidLocation(loc){return Boolean(loc)&&isValidNumber(loc.offset)&&isValidNumber(loc.line)&&isValidNumber(loc.column)}function createNodeStructureChecker(type,fields){return function checkNode(node,warn){if(!node||node.constructor!==Object){return warn(node,"Type of node should be an Object")}for(let key in node){let valid=true;if(hasOwnProperty$6.call(node,key)===false){continue}if(key==="type"){if(node.type!==type){warn(node,"Wrong node type `"+node.type+"`, expected `"+type+"`")}}else if(key==="loc"){if(node.loc===null){continue}else if(node.loc&&node.loc.constructor===Object){if(typeof node.loc.source!=="string"){key+=".source"}else if(!isValidLocation(node.loc.start)){key+=".start"}else if(!isValidLocation(node.loc.end)){key+=".end"}else{continue}}valid=false}else if(fields.hasOwnProperty(key)){valid=false;for(let i=0;!valid&&i<fields[key].length;i++){const fieldType=fields[key][i];switch(fieldType){case String:valid=typeof node[key]==="string";break;case Boolean:valid=typeof node[key]==="boolean";break;case null:valid=node[key]===null;break;default:if(typeof fieldType==="string"){valid=node[key]&&node[key].type===fieldType}else if(Array.isArray(fieldType)){valid=node[key]instanceof List$2.List}}}}else{warn(node,"Unknown field `"+key+"` for "+type+" node type")}if(!valid){warn(node,"Bad value for `"+type+"."+key+"`")}}for(const key in fields){if(hasOwnProperty$6.call(fields,key)&&hasOwnProperty$6.call(node,key)===false){warn(node,"Field `"+type+"."+key+"` is missed")}}}}function processStructure(name,nodeType){const structure=nodeType.structure;const fields={type:String,loc:true};const docs={type:'"'+name+'"'};for(const key in structure){if(hasOwnProperty$6.call(structure,key)===false){continue}const docsTypes=[];const fieldTypes=fields[key]=Array.isArray(structure[key])?structure[key].slice():[structure[key]];for(let i=0;i<fieldTypes.length;i++){const fieldType=fieldTypes[i];if(fieldType===String||fieldType===Boolean){docsTypes.push(fieldType.name)}else if(fieldType===null){docsTypes.push("null")}else if(typeof fieldType==="string"){docsTypes.push("<"+fieldType+">")}else if(Array.isArray(fieldType)){docsTypes.push("List")}else{throw new Error("Wrong value `"+fieldType+"` in `"+name+"."+key+"` structure definition")}}docs[key]=docsTypes.join(" | ")}return{docs:docs,check:createNodeStructureChecker(name,fields)}}function getStructureFromConfig(config){const structure={};if(config.node){for(const name in config.node){if(hasOwnProperty$6.call(config.node,name)){const nodeType=config.node[name];if(nodeType.structure){structure[name]=processStructure(name,nodeType)}else{throw new Error("Missed `structure` field in `"+name+"` node type definition")}}}}return structure}structure$F.getStructureFromConfig=getStructureFromConfig;var walk$5={};const noop=function(){};function ensureFunction(value){return typeof value==="function"?value:noop}function walk$4(node,options,context){function walk(node){enter.call(context,node);switch(node.type){case"Group":node.terms.forEach(walk);break;case"Multiplier":walk(node.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+node.type)}leave.call(context,node)}let enter=noop;let leave=noop;if(typeof options==="function"){enter=options}else if(options){enter=ensureFunction(options.enter);leave=ensureFunction(options.leave)}if(enter===noop&&leave===noop){throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function")}walk(node)}walk$5.walk=walk$4;const error$1=error$2;const names$3=names$4;const genericConst=genericConst$2;const generic=generic$1;const prepareTokens=prepareTokens_1;const matchGraph=matchGraph$2;const match=match$1;const trace=trace$1;const search=search$1;const structure$E=structure$F;const parse$I=parse$L;const generate$I=generate$L;const walk$3=walk$5;const cssWideKeywordsSyntax=matchGraph.buildMatchGraph(genericConst.cssWideKeywords.join(" | "));function dumpMapSyntax(map,compact,syntaxAsAst){const result={};for(const name in map){if(map[name].syntax){result[name]=syntaxAsAst?map[name].syntax:generate$I.generate(map[name].syntax,{compact:compact})}}return result}function dumpAtruleMapSyntax(map,compact,syntaxAsAst){const result={};for(const[name,atrule]of Object.entries(map)){result[name]={prelude:atrule.prelude&&(syntaxAsAst?atrule.prelude.syntax:generate$I.generate(atrule.prelude.syntax,{compact:compact})),descriptors:atrule.descriptors&&dumpMapSyntax(atrule.descriptors,compact,syntaxAsAst)}}return result}function valueHasVar(tokens){for(let i=0;i<tokens.length;i++){if(tokens[i].value.toLowerCase()==="var("){return true}}return false}function buildMatchResult(matched,error,iterations){return{matched:matched,iterations:iterations,error:error,...trace}}function matchSyntax(lexer,syntax,value,useCssWideKeywords){const tokens=prepareTokens(value,lexer.syntax);let result;if(valueHasVar(tokens)){return buildMatchResult(null,new Error("Matching for a tree with var() is not supported"))}if(useCssWideKeywords){result=match.matchAsTree(tokens,lexer.cssWideKeywordsSyntax,lexer)}if(!useCssWideKeywords||!result.match){result=match.matchAsTree(tokens,syntax.match,lexer);if(!result.match){return buildMatchResult(null,new error$1.SyntaxMatchError(result.reason,syntax.syntax,value,result),result.iterations)}}return buildMatchResult(result.match,null,result.iterations)}class Lexer$2{constructor(config,syntax,structure$1){this.cssWideKeywordsSyntax=cssWideKeywordsSyntax;this.syntax=syntax;this.generic=false;this.atrules=Object.create(null);this.properties=Object.create(null);this.types=Object.create(null);this.structure=structure$1||structure$E.getStructureFromConfig(config);if(config){if(config.types){for(const name in config.types){this.addType_(name,config.types[name])}}if(config.generic){this.generic=true;for(const name in generic){this.addType_(name,generic[name])}}if(config.atrules){for(const name in config.atrules){this.addAtrule_(name,config.atrules[name])}}if(config.properties){for(const name in config.properties){this.addProperty_(name,config.properties[name])}}}}checkStructure(ast){function collectWarning(node,message){warns.push({node:node,message:message})}const structure=this.structure;const warns=[];this.syntax.walk(ast,(function(node){if(structure.hasOwnProperty(node.type)){structure[node.type].check(node,collectWarning)}else{collectWarning(node,"Unknown node type `"+node.type+"`")}}));return warns.length?warns:false}createDescriptor(syntax,type,name,parent=null){const ref={type:type,name:name};const descriptor={type:type,name:name,parent:parent,serializable:typeof syntax==="string"||syntax&&typeof syntax.type==="string",syntax:null,match:null};if(typeof syntax==="function"){descriptor.match=matchGraph.buildMatchGraph(syntax,ref)}else{if(typeof syntax==="string"){Object.defineProperty(descriptor,"syntax",{get(){Object.defineProperty(descriptor,"syntax",{value:parse$I.parse(syntax)});return descriptor.syntax}})}else{descriptor.syntax=syntax}Object.defineProperty(descriptor,"match",{get(){Object.defineProperty(descriptor,"match",{value:matchGraph.buildMatchGraph(descriptor.syntax,ref)});return descriptor.match}})}return descriptor}addAtrule_(name,syntax){if(!syntax){return}this.atrules[name]={type:"Atrule",name:name,prelude:syntax.prelude?this.createDescriptor(syntax.prelude,"AtrulePrelude",name):null,descriptors:syntax.descriptors?Object.keys(syntax.descriptors).reduce(((map,descName)=>{map[descName]=this.createDescriptor(syntax.descriptors[descName],"AtruleDescriptor",descName,name);return map}),Object.create(null)):null}}addProperty_(name,syntax){if(!syntax){return}this.properties[name]=this.createDescriptor(syntax,"Property",name)}addType_(name,syntax){if(!syntax){return}this.types[name]=this.createDescriptor(syntax,"Type",name)}checkAtruleName(atruleName){if(!this.getAtrule(atruleName)){return new error$1.SyntaxReferenceError("Unknown at-rule","@"+atruleName)}}checkAtrulePrelude(atruleName,prelude){const error=this.checkAtruleName(atruleName);if(error){return error}const atrule=this.getAtrule(atruleName);if(!atrule.prelude&&prelude){return new SyntaxError("At-rule `@"+atruleName+"` should not contain a prelude")}if(atrule.prelude&&!prelude){if(!matchSyntax(this,atrule.prelude,"",false).matched){return new SyntaxError("At-rule `@"+atruleName+"` should contain a prelude")}}}checkAtruleDescriptorName(atruleName,descriptorName){const error$1$1=this.checkAtruleName(atruleName);if(error$1$1){return error$1$1}const atrule=this.getAtrule(atruleName);const descriptor=names$3.keyword(descriptorName);if(!atrule.descriptors){return new SyntaxError("At-rule `@"+atruleName+"` has no known descriptors")}if(!atrule.descriptors[descriptor.name]&&!atrule.descriptors[descriptor.basename]){return new error$1.SyntaxReferenceError("Unknown at-rule descriptor",descriptorName)}}checkPropertyName(propertyName){if(!this.getProperty(propertyName)){return new error$1.SyntaxReferenceError("Unknown property",propertyName)}}matchAtrulePrelude(atruleName,prelude){const error=this.checkAtrulePrelude(atruleName,prelude);if(error){return buildMatchResult(null,error)}const atrule=this.getAtrule(atruleName);if(!atrule.prelude){return buildMatchResult(null,null)}return matchSyntax(this,atrule.prelude,prelude||"",false)}matchAtruleDescriptor(atruleName,descriptorName,value){const error=this.checkAtruleDescriptorName(atruleName,descriptorName);if(error){return buildMatchResult(null,error)}const atrule=this.getAtrule(atruleName);const descriptor=names$3.keyword(descriptorName);return matchSyntax(this,atrule.descriptors[descriptor.name]||atrule.descriptors[descriptor.basename],value,false)}matchDeclaration(node){if(node.type!=="Declaration"){return buildMatchResult(null,new Error("Not a Declaration node"))}return this.matchProperty(node.property,node.value)}matchProperty(propertyName,value){if(names$3.property(propertyName).custom){return buildMatchResult(null,new Error("Lexer matching doesn't applicable for custom properties"))}const error=this.checkPropertyName(propertyName);if(error){return buildMatchResult(null,error)}return matchSyntax(this,this.getProperty(propertyName),value,true)}matchType(typeName,value){const typeSyntax=this.getType(typeName);if(!typeSyntax){return buildMatchResult(null,new error$1.SyntaxReferenceError("Unknown type",typeName))}return matchSyntax(this,typeSyntax,value,false)}match(syntax,value){if(typeof syntax!=="string"&&(!syntax||!syntax.type)){return buildMatchResult(null,new error$1.SyntaxReferenceError("Bad syntax"))}if(typeof syntax==="string"||!syntax.match){syntax=this.createDescriptor(syntax,"Type","anonymous")}return matchSyntax(this,syntax,value,false)}findValueFragments(propertyName,value,type,name){return search.matchFragments(this,value,this.matchProperty(propertyName,value),type,name)}findDeclarationValueFragments(declaration,type,name){return search.matchFragments(this,declaration.value,this.matchDeclaration(declaration),type,name)}findAllFragments(ast,type,name){const result=[];this.syntax.walk(ast,{visit:"Declaration",enter:declaration=>{result.push.apply(result,this.findDeclarationValueFragments(declaration,type,name))}});return result}getAtrule(atruleName,fallbackBasename=true){const atrule=names$3.keyword(atruleName);const atruleEntry=atrule.vendor&&fallbackBasename?this.atrules[atrule.name]||this.atrules[atrule.basename]:this.atrules[atrule.name];return atruleEntry||null}getAtrulePrelude(atruleName,fallbackBasename=true){const atrule=this.getAtrule(atruleName,fallbackBasename);return atrule&&atrule.prelude||null}getAtruleDescriptor(atruleName,name){return this.atrules.hasOwnProperty(atruleName)&&this.atrules.declarators?this.atrules[atruleName].declarators[name]||null:null}getProperty(propertyName,fallbackBasename=true){const property=names$3.property(propertyName);const propertyEntry=property.vendor&&fallbackBasename?this.properties[property.name]||this.properties[property.basename]:this.properties[property.name];return propertyEntry||null}getType(name){return hasOwnProperty.call(this.types,name)?this.types[name]:null}validate(){function validate(syntax,name,broken,descriptor){if(broken.has(name)){return broken.get(name)}broken.set(name,false);if(descriptor.syntax!==null){walk$3.walk(descriptor.syntax,(function(node){if(node.type!=="Type"&&node.type!=="Property"){return}const map=node.type==="Type"?syntax.types:syntax.properties;const brokenMap=node.type==="Type"?brokenTypes:brokenProperties;if(!hasOwnProperty.call(map,node.name)||validate(syntax,node.name,brokenMap,map[node.name])){broken.set(name,true)}}),this)}}let brokenTypes=new Map;let brokenProperties=new Map;for(const key in this.types){validate(this,key,brokenTypes,this.types[key])}for(const key in this.properties){validate(this,key,brokenProperties,this.properties[key])}brokenTypes=[...brokenTypes.keys()].filter((name=>brokenTypes.get(name)));brokenProperties=[...brokenProperties.keys()].filter((name=>brokenProperties.get(name)));if(brokenTypes.length||brokenProperties.length){return{types:brokenTypes,properties:brokenProperties}}return null}dump(syntaxAsAst,pretty){return{generic:this.generic,types:dumpMapSyntax(this.types,!pretty,syntaxAsAst),properties:dumpMapSyntax(this.properties,!pretty,syntaxAsAst),atrules:dumpAtruleMapSyntax(this.atrules,!pretty,syntaxAsAst)}}toString(){return JSON.stringify(this.dump())}}Lexer$3.Lexer=Lexer$2;const{hasOwnProperty:hasOwnProperty$5}=Object.prototype;const shape={generic:true,types:appendOrAssign,atrules:{prelude:appendOrAssignOrNull,descriptors:appendOrAssignOrNull},properties:appendOrAssign,parseContext:assign,scope:deepAssign,atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};function isObject(value){return value&&value.constructor===Object}function copy(value){return isObject(value)?{...value}:value}function assign(dest,src){return Object.assign(dest,src)}function deepAssign(dest,src){for(const key in src){if(hasOwnProperty$5.call(src,key)){if(isObject(dest[key])){deepAssign(dest[key],src[key])}else{dest[key]=copy(src[key])}}}return dest}function append(a,b){if(typeof b==="string"&&/^\s*\|/.test(b)){return typeof a==="string"?a+b:b.replace(/^\s*\|\s*/,"")}return b||null}function appendOrAssign(a,b){if(typeof b==="string"){return append(a,b)}const result={...a};for(let key in b){if(hasOwnProperty$5.call(b,key)){result[key]=append(hasOwnProperty$5.call(a,key)?a[key]:undefined,b[key])}}return result}function appendOrAssignOrNull(a,b){const result=appendOrAssign(a,b);return!isObject(result)||Object.keys(result).length?result:null}function mix$1(dest,src,shape){for(const key in shape){if(hasOwnProperty$5.call(shape,key)===false){continue}if(shape[key]===true){if(hasOwnProperty$5.call(src,key)){dest[key]=copy(src[key])}}else if(shape[key]){if(typeof shape[key]==="function"){const fn=shape[key];dest[key]=fn({},dest[key]);dest[key]=fn(dest[key]||{},src[key])}else if(isObject(shape[key])){const result={};for(let name in dest[key]){result[name]=mix$1({},dest[key][name],shape[key])}for(let name in src[key]){result[name]=mix$1(result[name]||{},src[key][name],shape[key])}dest[key]=result}else if(Array.isArray(shape[key])){const res={};const innerShape=shape[key].reduce((function(s,k){s[k]=true;return s}),{});for(const[name,value]of Object.entries(dest[key]||{})){res[name]={};if(value){mix$1(res[name],value,innerShape)}}for(const name in src[key]){if(hasOwnProperty$5.call(src[key],name)){if(!res[name]){res[name]={}}if(src[key]&&src[key][name]){mix$1(res[name],src[key][name],innerShape)}}}dest[key]=res}}}return dest}const mix$1$1=(dest,src)=>mix$1(dest,src,shape);var mix_1=mix$1$1;const index$8=tokenizer$2;const create$2=create$7;const create$2$1=create$6;const create$3=create$5;const create$1$1=create$4;const Lexer$1=Lexer$3;const mix=mix_1;function createSyntax(config){const parse=create$2.createParser(config);const walk=create$1$1.createWalker(config);const generate=create$2$1.createGenerator(config);const{fromPlainObject:fromPlainObject,toPlainObject:toPlainObject}=create$3.createConvertor(walk);const syntax={lexer:null,createLexer:config=>new Lexer$1.Lexer(config,syntax,syntax.lexer.structure),tokenize:index$8.tokenize,parse:parse,generate:generate,walk:walk,find:walk.find,findLast:walk.findLast,findAll:walk.findAll,fromPlainObject:fromPlainObject,toPlainObject:toPlainObject,fork(extension){const base=mix({},config);return createSyntax(typeof extension==="function"?extension(base,Object.assign):mix(base,extension))}};syntax.lexer=new Lexer$1.Lexer({generic:true,types:config.types,atrules:config.atrules,properties:config.properties,node:config.node},syntax);return syntax}const createSyntax$1=config=>createSyntax(mix({},config));var create_1=createSyntax$1;var data$1={generic:true,types:{"absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","alpha-value":"<number>|<percentage>","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>","angular-color-stop":"<color>&&<color-stop-angle>?","angular-color-stop-list":"[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>","animateable-feature":"scroll-position|contents|<custom-ident>",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>","bg-image":"none|<image>","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage>|auto]{1,2}|cover|contain","blur()":"blur( <length> )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( <number-percentage> )","calc()":"calc( <calc-sum> )","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-value":"<number>|<dimension>|<percentage>|( <calc-sum> )","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( [<shape-radius>]? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"<angle-percentage>{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!","compound-selector-list":"<compound-selector>#","complex-selector":"<compound-selector> [<combinator>? <compound-selector>]*","complex-selector-list":"<complex-selector>#","conic-gradient()":"conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contrast()":"contrast( [<number-percentage>] )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( <length>{2,3} <color>? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( [<shape-radius>{2}]? [at <position>]? )","ending-shape":"circle|ellipse","env()":"env( <custom-ident> , <declaration-value>? )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","fill-rule":"nonzero|evenodd","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-function-list":"[<filter-function>|<url>]+","final-bg-layer":"<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>","fit-content()":"fit-content( [<length>|<percentage>] )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|<number [1,1000]>","frequency-percentage":"<frequency>|<percentage>","general-enclosed":"[<function-token> <any-value> )]|( <ident> <any-value> )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( <number-percentage> )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )","hsla()":"hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )",hue:"<number>|<angle>","hue-rotate()":"hue-rotate( <angle> )","hwb()":"hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length>|<percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( <number-percentage> )","keyframes-name":"<custom-ident>|<string>","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-block-list":"<keyframe-block>+","keyframe-selector":"from|to|<percentage>","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","line-names":"'[' <custom-ident>* ']'","line-name-list":"[<line-names>|<name-repeat>]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-gradient()":"linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length>|<percentage>|min-content|max-content|auto] , [<length>|<percentage>|<flex>|min-content|max-content|auto] )","name-repeat":"repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"<ident>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"<an-plus-b>|even|odd","opacity()":"opacity( [<number-percentage>] )","overflow-position":"unsafe|safe","outline-radius":"<length>|<percentage>","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[<page-selector>#]?","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger","path()":"path( [<fill-rule> ,]? <string> )","paint()":"paint( <ident> , <declaration-value>? )","perspective()":"perspective( <length> )","polygon()":"polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )","repeating-linear-gradient()":"repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )","repeating-radial-gradient()":"repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )","rgb()":"rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )","rgba()":"rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","saturate()":"saturate( <number-percentage> )","scale()":"scale( <number> , <number>? )","scale3d()":"scale3d( <number> , <number> , <number> )","scaleX()":"scaleX( <number> )","scaleY()":"scaleY( <number> )","scaleZ()":"scaleZ( <number> )","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"<length-percentage>|closest-side|farthest-side","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sepia()":"sepia( <number-percentage> )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","single-animation":"<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<timeline-name>","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-timing-function":"step-start|step-end|steps( <integer> [, <step-position>]? )","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-decl":"( <declaration> )","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","time-percentage":"<time>|<percentage>","timeline-name":"<custom-ident>|<string>","easing-function":"linear|<cubic-bezier-timing-function>|<step-timing-function>","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( [<length>|<percentage>] )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-width":"fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-webkit-mask-clip-style":"border|border-box|padding|padding-box|content|content-box|text","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )","-ms-filter":"<string>",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>","bg-clip":"<box>|border|text","border-radius":"<length-percentage>{1,2}",bottom:"<length>|auto","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )",left:"<length>|auto","mask-image":"<mask-reference>#",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke",ratio:"<number [0,∞]> [/ <number [0,∞]>]?","reversed-counter-name":"reversed( <counter-name> )",right:"<length>|auto","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto","track-group":"'(' [<string>* <track-minmax> <string>*]+ ')' ['[' <positive-integer> ']']?|<track-minmax>","track-list-v0":"[<string>* <track-group> <string>*]+|none","track-minmax":"minmax( <track-breadth> , <track-breadth> )|auto|<track-breadth>|fit-content",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,∞]>","positive-integer":"<integer [0,∞]>","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zooming":"none|zoom","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-image-region":"<shape>|auto","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<box>|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#",all:"initial|inherit|unset|revert|revert-layer",animation:"<single-animation>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-timing-function":"<easing-function>#","animation-timeline":"<single-animation-timeline>#",appearance:"none|auto|textfield|menulist-button|<compat-auto>","aspect-ratio":"auto|<ratio>",azimuth:"<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards","backdrop-filter":"none|<filter-function-list>","backface-visibility":"visible|hidden",background:"[<bg-layer> ,]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","block-overflow":"clip|ellipsis|<string>","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-color":"<'border-top-color'>{1,2}","border-block-style":"<'border-top-style'>","border-block-width":"<'border-top-width'>","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"collapse|separate","border-color":"<color>{1,4}","border-end-end-radius":"<length-percentage>{1,2}","border-end-start-radius":"<length-percentage>{1,2}","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length>|<number>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"<number-percentage>{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage>|<number>|auto]{1,4}","border-inline":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-style":"<'border-top-style'>","border-inline-width":"<'border-top-width'>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage>{1,4} [/ <length-percentage>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length> <length>?","border-start-end-radius":"<length-percentage>{1,2}","border-start-start-radius":"<length-percentage>{1,2}","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"<length>|<percentage>|auto","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom|block-start|block-end|inline-start|inline-end","caret-color":"auto|<color>",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none",color:"<color>","print-color-adjust":"economy|exact","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance|balance-all","column-gap":"normal|<length-percentage>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"<length>|auto",columns:"<'column-width'>||<'column-count'>",contain:"none|strict|content|[size||layout||style||paint]",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?","content-visibility":"visible|auto|hidden","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","empty-cells":"show|hide",filter:"none|<filter-function-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end",font:"[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-variation-settings":"normal|[<string> <number>]#","font-size":"<absolute-size>|<relative-size>|<length-percentage>","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps]","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-weight":"<font-weight-absolute>|bolder|lighter","forced-color-adjust":"auto|none",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","hyphenate-character":"auto|<string>",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>","input-security":"auto|none",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>",isolation:"auto|isolate","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"<length>|<percentage>|auto","letter-spacing":"normal|<length-percentage>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"[<length>|<percentage>|auto]{1,4}","margin-block":"<'margin-left'>{1,2}","margin-block-end":"<'margin-left'>","margin-block-start":"<'margin-left'>","margin-bottom":"<length>|<percentage>|auto","margin-inline":"<'margin-left'>{1,2}","margin-inline-end":"<'margin-left'>","margin-inline-start":"<'margin-left'>","margin-left":"<length>|<percentage>|auto","margin-right":"<length>|<percentage>|auto","margin-top":"<length>|<percentage>|auto","margin-trim":"none|in-flow|all",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<geometry-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<geometry-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","min-block-size":"<'min-width'>","min-height":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )","min-inline-size":"<'min-width'>","min-width":"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>","mix-blend-mode":"<blend-mode>|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]","offset-position":"auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<alpha-value>",order:"<integer>",orphans:"<integer>",outline:"[<'outline-color'>||<'outline-style'>||<'outline-width'>]","outline-color":"<color>|invert","outline-offset":"<length>","outline-style":"auto|<'border-style'>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,∞]>","overflow-inline":"visible|hidden|clip|scroll|auto","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto","overflow-y":"visible|hidden|clip|scroll|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"[<length>|<percentage>]{1,4}","padding-block":"<'padding-left'>{1,2}","padding-block-end":"<'padding-left'>","padding-block-start":"<'padding-left'>","padding-bottom":"<length>|<percentage>","padding-inline":"<'padding-left'>{1,2}","padding-inline-end":"<'padding-left'>","padding-inline-start":"<'padding-left'>","padding-left":"<length>|<percentage>","padding-right":"<length>|<percentage>","padding-top":"<length>|<percentage>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky",quotes:"none|auto|[<string> <string>]+",resize:"none|both|horizontal|vertical|block|inline",right:"<length>|<percentage>|auto",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-position":"[alternate||[over|under]]|inter-character",scale:"none|<number>{1,3}","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","scroll-behavior":"auto|smooth","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-start":"<length>","scroll-margin-block-end":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-start":"<length>","scroll-margin-inline-end":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","shape-image-threshold":"<alpha-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"[over|under]&&[right|left]","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-transform":"none|capitalize|uppercase|lowercase|full-width|full-size-kana","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]",top:"<length>|<percentage>|auto","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|contain|all","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>",visibility:"visible|hidden|collapse","white-space":"normal|pre|nowrap|pre-wrap|pre-line|break-spaces",widows:"<integer>",width:"auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>","z-index":"auto|<integer>",zoom:"normal|reset|<number>|<percentage>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto","-webkit-user-select":"auto|none|text|all","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical","baseline-shift":"baseline|sub|super|<svg-length>",behavior:"<url>+","clip-rule":"nonzero|evenodd",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge",fill:"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero|evenodd","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision",src:"[<url> [format( <string># )]?|local( <family-name> )]#",speak:"auto|none|normal","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]",stroke:"<paint>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<number-zero-one>","stroke-width":"<svg-length>","text-anchor":"start|middle|end","unicode-range":"<urange>#","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"[auto|block|swap|fallback|optional]","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-variation-settings":"normal|[<string> <number>]#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-weight":"<font-weight-absolute>{1,2}","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<urange>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]",size:"<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},property:{prelude:"<custom-property-name>",descriptors:{syntax:"<string>",inherits:"true|false","initial-value":"<string>"}},"scroll-timeline":{prelude:"<timeline-name>",descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},viewport:{prelude:null,descriptors:{height:"<viewport-length>{1,2}","max-height":"<viewport-length>","max-width":"<viewport-length>","max-zoom":"auto|<number>|<percentage>","min-height":"<viewport-length>","min-width":"<viewport-length>","min-zoom":"auto|<number>|<percentage>",orientation:"auto|portrait|landscape","user-zoom":"zoom|fixed","viewport-fit":"auto|contain|cover",width:"<viewport-length>{1,2}",zoom:"auto|<number>|<percentage>"}}}};var node={};var AnPlusB$2={};const types$G=types$R;const charCodeDefinitions$5=charCodeDefinitions$c;const PLUSSIGN$5=43;const HYPHENMINUS$2=45;const N=110;const DISALLOW_SIGN=true;const ALLOW_SIGN=false;function checkInteger(offset,disallowSign){let pos=this.tokenStart+offset;const code=this.charCodeAt(pos);if(code===PLUSSIGN$5||code===HYPHENMINUS$2){if(disallowSign){this.error("Number sign is not allowed")}pos++}for(;pos<this.tokenEnd;pos++){if(!charCodeDefinitions$5.isDigit(this.charCodeAt(pos))){this.error("Integer is expected",pos)}}}function checkTokenIsInteger(disallowSign){return checkInteger.call(this,0,disallowSign)}function expectCharCode(offset,code){if(!this.cmpChar(this.tokenStart+offset,code)){let msg="";switch(code){case N:msg="N is expected";break;case HYPHENMINUS$2:msg="HyphenMinus is expected";break}this.error(msg,this.tokenStart+offset)}}function consumeB(){let offset=0;let sign=0;let type=this.tokenType;while(type===types$G.WhiteSpace||type===types$G.Comment){type=this.lookupType(++offset)}if(type!==types$G.Number){if(this.isDelim(PLUSSIGN$5,offset)||this.isDelim(HYPHENMINUS$2,offset)){sign=this.isDelim(PLUSSIGN$5,offset)?PLUSSIGN$5:HYPHENMINUS$2;do{type=this.lookupType(++offset)}while(type===types$G.WhiteSpace||type===types$G.Comment);if(type!==types$G.Number){this.skip(offset);checkTokenIsInteger.call(this,DISALLOW_SIGN)}}else{return null}}if(offset>0){this.skip(offset)}if(sign===0){type=this.charCodeAt(this.tokenStart);if(type!==PLUSSIGN$5&&type!==HYPHENMINUS$2){this.error("Number sign is expected")}}checkTokenIsInteger.call(this,sign!==0);return sign===HYPHENMINUS$2?"-"+this.consume(types$G.Number):this.consume(types$G.Number)}const name$D="AnPlusB";const structure$D={a:[String,null],b:[String,null]};function parse$H(){const start=this.tokenStart;let a=null;let b=null;if(this.tokenType===types$G.Number){checkTokenIsInteger.call(this,ALLOW_SIGN);b=this.consume(types$G.Number)}else if(this.tokenType===types$G.Ident&&this.cmpChar(this.tokenStart,HYPHENMINUS$2)){a="-1";expectCharCode.call(this,1,N);switch(this.tokenEnd-this.tokenStart){case 2:this.next();b=consumeB.call(this);break;case 3:expectCharCode.call(this,2,HYPHENMINUS$2);this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number);break;default:expectCharCode.call(this,2,HYPHENMINUS$2);checkInteger.call(this,3,DISALLOW_SIGN);this.next();b=this.substrToCursor(start+2)}}else if(this.tokenType===types$G.Ident||this.isDelim(PLUSSIGN$5)&&this.lookupType(1)===types$G.Ident){let sign=0;a="1";if(this.isDelim(PLUSSIGN$5)){sign=1;this.next()}expectCharCode.call(this,0,N);switch(this.tokenEnd-this.tokenStart){case 1:this.next();b=consumeB.call(this);break;case 2:expectCharCode.call(this,1,HYPHENMINUS$2);this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number);break;default:expectCharCode.call(this,1,HYPHENMINUS$2);checkInteger.call(this,2,DISALLOW_SIGN);this.next();b=this.substrToCursor(start+sign+1)}}else if(this.tokenType===types$G.Dimension){const code=this.charCodeAt(this.tokenStart);const sign=code===PLUSSIGN$5||code===HYPHENMINUS$2;let i=this.tokenStart+sign;for(;i<this.tokenEnd;i++){if(!charCodeDefinitions$5.isDigit(this.charCodeAt(i))){break}}if(i===this.tokenStart+sign){this.error("Integer is expected",this.tokenStart+sign)}expectCharCode.call(this,i-this.tokenStart,N);a=this.substring(start,i);if(i+1===this.tokenEnd){this.next();b=consumeB.call(this)}else{expectCharCode.call(this,i-this.tokenStart+1,HYPHENMINUS$2);if(i+2===this.tokenEnd){this.next();this.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b="-"+this.consume(types$G.Number)}else{checkInteger.call(this,i-this.tokenStart+2,DISALLOW_SIGN);this.next();b=this.substrToCursor(i+1)}}}else{this.error()}if(a!==null&&a.charCodeAt(0)===PLUSSIGN$5){a=a.substr(1)}if(b!==null&&b.charCodeAt(0)===PLUSSIGN$5){b=b.substr(1)}return{type:"AnPlusB",loc:this.getLocation(start,this.tokenStart),a:a,b:b}}function generate$H(node){if(node.a){const a=node.a==="+1"&&"n"||node.a==="1"&&"n"||node.a==="-1"&&"-n"||node.a+"n";if(node.b){const b=node.b[0]==="-"||node.b[0]==="+"?node.b:"+"+node.b;this.tokenize(a+b)}else{this.tokenize(a)}}else{this.tokenize(node.b)}}AnPlusB$2.generate=generate$H;AnPlusB$2.name=name$D;AnPlusB$2.parse=parse$H;AnPlusB$2.structure=structure$D;var Atrule$6={};const types$F=types$R;function consumeRaw$5(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracketOrSemicolon,true)}function isDeclarationBlockAtrule(){for(let offset=1,type;type=this.lookupType(offset);offset++){if(type===types$F.RightCurlyBracket){return true}if(type===types$F.LeftCurlyBracket||type===types$F.AtKeyword){return false}}return false}const name$C="Atrule";const walkContext$9="atrule";const structure$C={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function parse$G(){const start=this.tokenStart;let name;let nameLowerCase;let prelude=null;let block=null;this.eat(types$F.AtKeyword);name=this.substrToCursor(start+1);nameLowerCase=name.toLowerCase();this.skipSC();if(this.eof===false&&this.tokenType!==types$F.LeftCurlyBracket&&this.tokenType!==types$F.Semicolon){if(this.parseAtrulePrelude){prelude=this.parseWithFallback(this.AtrulePrelude.bind(this,name),consumeRaw$5)}else{prelude=consumeRaw$5.call(this,this.tokenIndex)}this.skipSC()}switch(this.tokenType){case types$F.Semicolon:this.next();break;case types$F.LeftCurlyBracket:if(hasOwnProperty.call(this.atrule,nameLowerCase)&&typeof this.atrule[nameLowerCase].block==="function"){block=this.atrule[nameLowerCase].block.call(this)}else{block=this.Block(isDeclarationBlockAtrule.call(this))}break}return{type:"Atrule",loc:this.getLocation(start,this.tokenStart),name:name,prelude:prelude,block:block}}function generate$G(node){this.token(types$F.AtKeyword,"@"+node.name);if(node.prelude!==null){this.node(node.prelude)}if(node.block){this.node(node.block)}else{this.token(types$F.Semicolon,";")}}Atrule$6.generate=generate$G;Atrule$6.name=name$C;Atrule$6.parse=parse$G;Atrule$6.structure=structure$C;Atrule$6.walkContext=walkContext$9;var AtrulePrelude$2={};const types$E=types$R;const name$B="AtrulePrelude";const walkContext$8="atrulePrelude";const structure$B={children:[[]]};function parse$F(name){let children=null;if(name!==null){name=name.toLowerCase()}this.skipSC();if(hasOwnProperty.call(this.atrule,name)&&typeof this.atrule[name].prelude==="function"){children=this.atrule[name].prelude.call(this)}else{children=this.readSequence(this.scope.AtrulePrelude)}this.skipSC();if(this.eof!==true&&this.tokenType!==types$E.LeftCurlyBracket&&this.tokenType!==types$E.Semicolon){this.error("Semicolon or block is expected")}return{type:"AtrulePrelude",loc:this.getLocationFromList(children),children:children}}function generate$F(node){this.children(node)}AtrulePrelude$2.generate=generate$F;AtrulePrelude$2.name=name$B;AtrulePrelude$2.parse=parse$F;AtrulePrelude$2.structure=structure$B;AtrulePrelude$2.walkContext=walkContext$8;var AttributeSelector$4={};const types$D=types$R;const DOLLARSIGN$1=36;const ASTERISK$5=42;const EQUALSSIGN=61;const CIRCUMFLEXACCENT=94;const VERTICALLINE$2=124;const TILDE$2=126;function getAttributeName(){if(this.eof){this.error("Unexpected end of input")}const start=this.tokenStart;let expectIdent=false;if(this.isDelim(ASTERISK$5)){expectIdent=true;this.next()}else if(!this.isDelim(VERTICALLINE$2)){this.eat(types$D.Ident)}if(this.isDelim(VERTICALLINE$2)){if(this.charCodeAt(this.tokenStart+1)!==EQUALSSIGN){this.next();this.eat(types$D.Ident)}else if(expectIdent){this.error("Identifier is expected",this.tokenEnd)}}else if(expectIdent){this.error("Vertical line is expected")}return{type:"Identifier",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function getOperator(){const start=this.tokenStart;const code=this.charCodeAt(start);if(code!==EQUALSSIGN&&code!==TILDE$2&&code!==CIRCUMFLEXACCENT&&code!==DOLLARSIGN$1&&code!==ASTERISK$5&&code!==VERTICALLINE$2){this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected")}this.next();if(code!==EQUALSSIGN){if(!this.isDelim(EQUALSSIGN)){this.error("Equal sign is expected")}this.next()}return this.substrToCursor(start)}const name$A="AttributeSelector";const structure$A={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function parse$E(){const start=this.tokenStart;let name;let matcher=null;let value=null;let flags=null;this.eat(types$D.LeftSquareBracket);this.skipSC();name=getAttributeName.call(this);this.skipSC();if(this.tokenType!==types$D.RightSquareBracket){if(this.tokenType!==types$D.Ident){matcher=getOperator.call(this);this.skipSC();value=this.tokenType===types$D.String?this.String():this.Identifier();this.skipSC()}if(this.tokenType===types$D.Ident){flags=this.consume(types$D.Ident);this.skipSC()}}this.eat(types$D.RightSquareBracket);return{type:"AttributeSelector",loc:this.getLocation(start,this.tokenStart),name:name,matcher:matcher,value:value,flags:flags}}function generate$E(node){this.token(types$D.Delim,"[");this.node(node.name);if(node.matcher!==null){this.tokenize(node.matcher);this.node(node.value)}if(node.flags!==null){this.token(types$D.Ident,node.flags)}this.token(types$D.Delim,"]")}AttributeSelector$4.generate=generate$E;AttributeSelector$4.name=name$A;AttributeSelector$4.parse=parse$E;AttributeSelector$4.structure=structure$A;var Block$2={};const types$C=types$R;function consumeRaw$4(startToken){return this.Raw(startToken,null,true)}function consumeRule(){return this.parseWithFallback(this.Rule,consumeRaw$4)}function consumeRawDeclaration(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}function consumeDeclaration(){if(this.tokenType===types$C.Semicolon){return consumeRawDeclaration.call(this,this.tokenIndex)}const node=this.parseWithFallback(this.Declaration,consumeRawDeclaration);if(this.tokenType===types$C.Semicolon){this.next()}return node}const name$z="Block";const walkContext$7="block";const structure$z={children:[["Atrule","Rule","Declaration"]]};function parse$D(isDeclaration){const consumer=isDeclaration?consumeDeclaration:consumeRule;const start=this.tokenStart;let children=this.createList();this.eat(types$C.LeftCurlyBracket);scan:while(!this.eof){switch(this.tokenType){case types$C.RightCurlyBracket:break scan;case types$C.WhiteSpace:case types$C.Comment:this.next();break;case types$C.AtKeyword:children.push(this.parseWithFallback(this.Atrule,consumeRaw$4));break;default:children.push(consumer.call(this))}}if(!this.eof){this.eat(types$C.RightCurlyBracket)}return{type:"Block",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$D(node){this.token(types$C.LeftCurlyBracket,"{");this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$C.Semicolon,";")}}));this.token(types$C.RightCurlyBracket,"}")}Block$2.generate=generate$D;Block$2.name=name$z;Block$2.parse=parse$D;Block$2.structure=structure$z;Block$2.walkContext=walkContext$7;var Brackets$2={};const types$B=types$R;const name$y="Brackets";const structure$y={children:[[]]};function parse$C(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$B.LeftSquareBracket);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$B.RightSquareBracket)}return{type:"Brackets",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$C(node){this.token(types$B.Delim,"[");this.children(node);this.token(types$B.Delim,"]")}Brackets$2.generate=generate$C;Brackets$2.name=name$y;Brackets$2.parse=parse$C;Brackets$2.structure=structure$y;var CDC$2={};const types$A=types$R;const name$x="CDC";const structure$x=[];function parse$B(){const start=this.tokenStart;this.eat(types$A.CDC);return{type:"CDC",loc:this.getLocation(start,this.tokenStart)}}function generate$B(){this.token(types$A.CDC,"--\x3e")}CDC$2.generate=generate$B;CDC$2.name=name$x;CDC$2.parse=parse$B;CDC$2.structure=structure$x;var CDO$2={};const types$z=types$R;const name$w="CDO";const structure$w=[];function parse$A(){const start=this.tokenStart;this.eat(types$z.CDO);return{type:"CDO",loc:this.getLocation(start,this.tokenStart)}}function generate$A(){this.token(types$z.CDO,"\x3c!--")}CDO$2.generate=generate$A;CDO$2.name=name$w;CDO$2.parse=parse$A;CDO$2.structure=structure$w;var ClassSelector$2={};const types$y=types$R;const FULLSTOP$2=46;const name$v="ClassSelector";const structure$v={name:String};function parse$z(){this.eatDelim(FULLSTOP$2);return{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(types$y.Ident)}}function generate$z(node){this.token(types$y.Delim,".");this.token(types$y.Ident,node.name)}ClassSelector$2.generate=generate$z;ClassSelector$2.name=name$v;ClassSelector$2.parse=parse$z;ClassSelector$2.structure=structure$v;var Combinator$2={};const types$x=types$R;const PLUSSIGN$4=43;const SOLIDUS$5=47;const GREATERTHANSIGN$1=62;const TILDE$1=126;const name$u="Combinator";const structure$u={name:String};function parse$y(){const start=this.tokenStart;let name;switch(this.tokenType){case types$x.WhiteSpace:name=" ";break;case types$x.Delim:switch(this.charCodeAt(this.tokenStart)){case GREATERTHANSIGN$1:case PLUSSIGN$4:case TILDE$1:this.next();break;case SOLIDUS$5:this.next();this.eatIdent("deep");this.eatDelim(SOLIDUS$5);break;default:this.error("Combinator is expected")}name=this.substrToCursor(start);break}return{type:"Combinator",loc:this.getLocation(start,this.tokenStart),name:name}}function generate$y(node){this.tokenize(node.name)}Combinator$2.generate=generate$y;Combinator$2.name=name$u;Combinator$2.parse=parse$y;Combinator$2.structure=structure$u;var Comment$4={};const types$w=types$R;const ASTERISK$4=42;const SOLIDUS$4=47;const name$t="Comment";const structure$t={value:String};function parse$x(){const start=this.tokenStart;let end=this.tokenEnd;this.eat(types$w.Comment);if(end-start+2>=2&&this.charCodeAt(end-2)===ASTERISK$4&&this.charCodeAt(end-1)===SOLIDUS$4){end-=2}return{type:"Comment",loc:this.getLocation(start,this.tokenStart),value:this.substring(start+2,end)}}function generate$x(node){this.token(types$w.Comment,"/*"+node.value+"*/")}Comment$4.generate=generate$x;Comment$4.name=name$t;Comment$4.parse=parse$x;Comment$4.structure=structure$t;var Declaration$4={};const names$2=names$4;const types$v=types$R;const EXCLAMATIONMARK$1=33;const NUMBERSIGN$2=35;const DOLLARSIGN=36;const AMPERSAND=38;const ASTERISK$3=42;const PLUSSIGN$3=43;const SOLIDUS$3=47;function consumeValueRaw(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,true)}function consumeCustomPropertyRaw(startToken){return this.Raw(startToken,this.consumeUntilExclamationMarkOrSemicolon,false)}function consumeValue(){const startValueToken=this.tokenIndex;const value=this.Value();if(value.type!=="Raw"&&this.eof===false&&this.tokenType!==types$v.Semicolon&&this.isDelim(EXCLAMATIONMARK$1)===false&&this.isBalanceEdge(startValueToken)===false){this.error()}return value}const name$s="Declaration";const walkContext$6="declaration";const structure$s={important:[Boolean,String],property:String,value:["Value","Raw"]};function parse$w(){const start=this.tokenStart;const startToken=this.tokenIndex;const property=readProperty.call(this);const customProperty=names$2.isCustomProperty(property);const parseValue=customProperty?this.parseCustomProperty:this.parseValue;const consumeRaw=customProperty?consumeCustomPropertyRaw:consumeValueRaw;let important=false;let value;this.skipSC();this.eat(types$v.Colon);const valueStart=this.tokenIndex;if(!customProperty){this.skipSC()}if(parseValue){value=this.parseWithFallback(consumeValue,consumeRaw)}else{value=consumeRaw.call(this,this.tokenIndex)}if(customProperty&&value.type==="Value"&&value.children.isEmpty){for(let offset=valueStart-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$v.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}if(this.isDelim(EXCLAMATIONMARK$1)){important=getImportant.call(this);this.skipSC()}if(this.eof===false&&this.tokenType!==types$v.Semicolon&&this.isBalanceEdge(startToken)===false){this.error()}return{type:"Declaration",loc:this.getLocation(start,this.tokenStart),important:important,property:property,value:value}}function generate$w(node){this.token(types$v.Ident,node.property);this.token(types$v.Colon,":");this.node(node.value);if(node.important){this.token(types$v.Delim,"!");this.token(types$v.Ident,node.important===true?"important":node.important)}}function readProperty(){const start=this.tokenStart;if(this.tokenType===types$v.Delim){switch(this.charCodeAt(this.tokenStart)){case ASTERISK$3:case DOLLARSIGN:case PLUSSIGN$3:case NUMBERSIGN$2:case AMPERSAND:this.next();break;case SOLIDUS$3:this.next();if(this.isDelim(SOLIDUS$3)){this.next()}break}}if(this.tokenType===types$v.Hash){this.eat(types$v.Hash)}else{this.eat(types$v.Ident)}return this.substrToCursor(start)}function getImportant(){this.eat(types$v.Delim);this.skipSC();const important=this.consume(types$v.Ident);return important==="important"?true:important}Declaration$4.generate=generate$w;Declaration$4.name=name$s;Declaration$4.parse=parse$w;Declaration$4.structure=structure$s;Declaration$4.walkContext=walkContext$6;var DeclarationList$2={};const types$u=types$R;function consumeRaw$3(startToken){return this.Raw(startToken,this.consumeUntilSemicolonIncluded,true)}const name$r="DeclarationList";const structure$r={children:[["Declaration"]]};function parse$v(){const children=this.createList();while(!this.eof){switch(this.tokenType){case types$u.WhiteSpace:case types$u.Comment:case types$u.Semicolon:this.next();break;default:children.push(this.parseWithFallback(this.Declaration,consumeRaw$3))}}return{type:"DeclarationList",loc:this.getLocationFromList(children),children:children}}function generate$v(node){this.children(node,(prev=>{if(prev.type==="Declaration"){this.token(types$u.Semicolon,";")}}))}DeclarationList$2.generate=generate$v;DeclarationList$2.name=name$r;DeclarationList$2.parse=parse$v;DeclarationList$2.structure=structure$r;var Dimension$4={};const types$t=types$R;const name$q="Dimension";const structure$q={value:String,unit:String};function parse$u(){const start=this.tokenStart;const value=this.consumeNumber(types$t.Dimension);return{type:"Dimension",loc:this.getLocation(start,this.tokenStart),value:value,unit:this.substring(start+value.length,this.tokenStart)}}function generate$u(node){this.token(types$t.Dimension,node.value+node.unit)}Dimension$4.generate=generate$u;Dimension$4.name=name$q;Dimension$4.parse=parse$u;Dimension$4.structure=structure$q;var _Function={};const types$s=types$R;const name$p="Function";const walkContext$5="function";const structure$p={name:String,children:[[]]};function parse$t(readSequence,recognizer){const start=this.tokenStart;const name=this.consumeFunctionName();const nameLowerCase=name.toLowerCase();let children;children=recognizer.hasOwnProperty(nameLowerCase)?recognizer[nameLowerCase].call(this,recognizer):readSequence.call(this,recognizer);if(!this.eof){this.eat(types$s.RightParenthesis)}return{type:"Function",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$t(node){this.token(types$s.Function,node.name+"(");this.children(node);this.token(types$s.RightParenthesis,")")}_Function.generate=generate$t;_Function.name=name$p;_Function.parse=parse$t;_Function.structure=structure$p;_Function.walkContext=walkContext$5;var Hash$2={};const types$r=types$R;const xxx="XXX";const name$o="Hash";const structure$o={value:String};function parse$s(){const start=this.tokenStart;this.eat(types$r.Hash);return{type:"Hash",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start+1)}}function generate$s(node){this.token(types$r.Hash,"#"+node.value)}Hash$2.generate=generate$s;Hash$2.name=name$o;Hash$2.parse=parse$s;Hash$2.structure=structure$o;Hash$2.xxx=xxx;var Identifier$2={};const types$q=types$R;const name$n="Identifier";const structure$n={name:String};function parse$r(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(types$q.Ident)}}function generate$r(node){this.token(types$q.Ident,node.name)}Identifier$2.generate=generate$r;Identifier$2.name=name$n;Identifier$2.parse=parse$r;Identifier$2.structure=structure$n;var IdSelector$2={};const types$p=types$R;const name$m="IdSelector";const structure$m={name:String};function parse$q(){const start=this.tokenStart;this.eat(types$p.Hash);return{type:"IdSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start+1)}}function generate$q(node){this.token(types$p.Delim,"#"+node.name)}IdSelector$2.generate=generate$q;IdSelector$2.name=name$m;IdSelector$2.parse=parse$q;IdSelector$2.structure=structure$m;var MediaFeature$2={};const types$o=types$R;const name$l="MediaFeature";const structure$l={name:String,value:["Identifier","Number","Dimension","Ratio",null]};function parse$p(){const start=this.tokenStart;let name;let value=null;this.eat(types$o.LeftParenthesis);this.skipSC();name=this.consume(types$o.Ident);this.skipSC();if(this.tokenType!==types$o.RightParenthesis){this.eat(types$o.Colon);this.skipSC();switch(this.tokenType){case types$o.Number:if(this.lookupNonWSType(1)===types$o.Delim){value=this.Ratio()}else{value=this.Number()}break;case types$o.Dimension:value=this.Dimension();break;case types$o.Ident:value=this.Identifier();break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}this.eat(types$o.RightParenthesis);return{type:"MediaFeature",loc:this.getLocation(start,this.tokenStart),name:name,value:value}}function generate$p(node){this.token(types$o.LeftParenthesis,"(");this.token(types$o.Ident,node.name);if(node.value!==null){this.token(types$o.Colon,":");this.node(node.value)}this.token(types$o.RightParenthesis,")")}MediaFeature$2.generate=generate$p;MediaFeature$2.name=name$l;MediaFeature$2.parse=parse$p;MediaFeature$2.structure=structure$l;var MediaQuery$2={};const types$n=types$R;const name$k="MediaQuery";const structure$k={children:[["Identifier","MediaFeature","WhiteSpace"]]};function parse$o(){const children=this.createList();let child=null;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$n.Comment:case types$n.WhiteSpace:this.next();continue;case types$n.Ident:child=this.Identifier();break;case types$n.LeftParenthesis:child=this.MediaFeature();break;default:break scan}children.push(child)}if(child===null){this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocationFromList(children),children:children}}function generate$o(node){this.children(node)}MediaQuery$2.generate=generate$o;MediaQuery$2.name=name$k;MediaQuery$2.parse=parse$o;MediaQuery$2.structure=structure$k;var MediaQueryList$2={};const types$m=types$R;const name$j="MediaQueryList";const structure$j={children:[["MediaQuery"]]};function parse$n(){const children=this.createList();this.skipSC();while(!this.eof){children.push(this.MediaQuery());if(this.tokenType!==types$m.Comma){break}this.next()}return{type:"MediaQueryList",loc:this.getLocationFromList(children),children:children}}function generate$n(node){this.children(node,(()=>this.token(types$m.Comma,",")))}MediaQueryList$2.generate=generate$n;MediaQueryList$2.name=name$j;MediaQueryList$2.parse=parse$n;MediaQueryList$2.structure=structure$j;var Nth$2={};const types$l=types$R;const name$i="Nth";const structure$i={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function parse$m(){this.skipSC();const start=this.tokenStart;let end=start;let selector=null;let nth;if(this.lookupValue(0,"odd")||this.lookupValue(0,"even")){nth=this.Identifier()}else{nth=this.AnPlusB()}end=this.tokenStart;this.skipSC();if(this.lookupValue(0,"of")){this.next();selector=this.SelectorList();end=this.tokenStart}return{type:"Nth",loc:this.getLocation(start,end),nth:nth,selector:selector}}function generate$m(node){this.node(node.nth);if(node.selector!==null){this.token(types$l.Ident,"of");this.node(node.selector)}}Nth$2.generate=generate$m;Nth$2.name=name$i;Nth$2.parse=parse$m;Nth$2.structure=structure$i;var _Number$5={};const types$k=types$R;const name$h="Number";const structure$h={value:String};function parse$l(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(types$k.Number)}}function generate$l(node){this.token(types$k.Number,node.value)}_Number$5.generate=generate$l;_Number$5.name=name$h;_Number$5.parse=parse$l;_Number$5.structure=structure$h;var Operator$2={};const name$g="Operator";const structure$g={value:String};function parse$k(){const start=this.tokenStart;this.next();return{type:"Operator",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$k(node){this.tokenize(node.value)}Operator$2.generate=generate$k;Operator$2.name=name$g;Operator$2.parse=parse$k;Operator$2.structure=structure$g;var Parentheses$2={};const types$j=types$R;const name$f="Parentheses";const structure$f={children:[[]]};function parse$j(readSequence,recognizer){const start=this.tokenStart;let children=null;this.eat(types$j.LeftParenthesis);children=readSequence.call(this,recognizer);if(!this.eof){this.eat(types$j.RightParenthesis)}return{type:"Parentheses",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$j(node){this.token(types$j.LeftParenthesis,"(");this.children(node);this.token(types$j.RightParenthesis,")")}Parentheses$2.generate=generate$j;Parentheses$2.name=name$f;Parentheses$2.parse=parse$j;Parentheses$2.structure=structure$f;var Percentage$4={};const types$i=types$R;const name$e="Percentage";const structure$e={value:String};function parse$i(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(types$i.Percentage)}}function generate$i(node){this.token(types$i.Percentage,node.value+"%")}Percentage$4.generate=generate$i;Percentage$4.name=name$e;Percentage$4.parse=parse$i;Percentage$4.structure=structure$e;var PseudoClassSelector$2={};const types$h=types$R;const name$d="PseudoClassSelector";const walkContext$4="function";const structure$d={name:String,children:[["Raw"],null]};function parse$h(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$h.Colon);if(this.tokenType===types$h.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$h.RightParenthesis)}else{name=this.consume(types$h.Ident)}return{type:"PseudoClassSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$h(node){this.token(types$h.Colon,":");if(node.children===null){this.token(types$h.Ident,node.name)}else{this.token(types$h.Function,node.name+"(");this.children(node);this.token(types$h.RightParenthesis,")")}}PseudoClassSelector$2.generate=generate$h;PseudoClassSelector$2.name=name$d;PseudoClassSelector$2.parse=parse$h;PseudoClassSelector$2.structure=structure$d;PseudoClassSelector$2.walkContext=walkContext$4;var PseudoElementSelector$2={};const types$g=types$R;const name$c="PseudoElementSelector";const walkContext$3="function";const structure$c={name:String,children:[["Raw"],null]};function parse$g(){const start=this.tokenStart;let children=null;let name;let nameLowerCase;this.eat(types$g.Colon);this.eat(types$g.Colon);if(this.tokenType===types$g.Function){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(hasOwnProperty.call(this.pseudo,nameLowerCase)){this.skipSC();children=this.pseudo[nameLowerCase].call(this);this.skipSC()}else{children=this.createList();children.push(this.Raw(this.tokenIndex,null,false))}this.eat(types$g.RightParenthesis)}else{name=this.consume(types$g.Ident)}return{type:"PseudoElementSelector",loc:this.getLocation(start,this.tokenStart),name:name,children:children}}function generate$g(node){this.token(types$g.Colon,":");this.token(types$g.Colon,":");if(node.children===null){this.token(types$g.Ident,node.name)}else{this.token(types$g.Function,node.name+"(");this.children(node);this.token(types$g.RightParenthesis,")")}}PseudoElementSelector$2.generate=generate$g;PseudoElementSelector$2.name=name$c;PseudoElementSelector$2.parse=parse$g;PseudoElementSelector$2.structure=structure$c;PseudoElementSelector$2.walkContext=walkContext$3;var Ratio$2={};const types$f=types$R;const charCodeDefinitions$4=charCodeDefinitions$c;const SOLIDUS$2=47;const FULLSTOP$1=46;function consumeNumber(){this.skipSC();const value=this.consume(types$f.Number);for(let i=0;i<value.length;i++){const code=value.charCodeAt(i);if(!charCodeDefinitions$4.isDigit(code)&&code!==FULLSTOP$1){this.error("Unsigned number is expected",this.tokenStart-value.length+i)}}if(Number(value)===0){this.error("Zero number is not allowed",this.tokenStart-value.length)}return value}const name$b="Ratio";const structure$b={left:String,right:String};function parse$f(){const start=this.tokenStart;const left=consumeNumber.call(this);let right;this.skipSC();this.eatDelim(SOLIDUS$2);right=consumeNumber.call(this);return{type:"Ratio",loc:this.getLocation(start,this.tokenStart),left:left,right:right}}function generate$f(node){this.token(types$f.Number,node.left);this.token(types$f.Delim,"/");this.token(types$f.Number,node.right)}Ratio$2.generate=generate$f;Ratio$2.name=name$b;Ratio$2.parse=parse$f;Ratio$2.structure=structure$b;var Raw$4={};const types$e=types$R;function getOffsetExcludeWS(){if(this.tokenIndex>0){if(this.lookupType(-1)===types$e.WhiteSpace){return this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset}}return this.tokenStart}const name$a="Raw";const structure$a={value:String};function parse$e(startToken,consumeUntil,excludeWhiteSpace){const startOffset=this.getTokenStart(startToken);let endOffset;this.skipUntilBalanced(startToken,consumeUntil||this.consumeUntilBalanceEnd);if(excludeWhiteSpace&&this.tokenStart>startOffset){endOffset=getOffsetExcludeWS.call(this)}else{endOffset=this.tokenStart}return{type:"Raw",loc:this.getLocation(startOffset,endOffset),value:this.substring(startOffset,endOffset)}}function generate$e(node){this.tokenize(node.value)}Raw$4.generate=generate$e;Raw$4.name=name$a;Raw$4.parse=parse$e;Raw$4.structure=structure$a;var Rule$4={};const types$d=types$R;function consumeRaw$2(startToken){return this.Raw(startToken,this.consumeUntilLeftCurlyBracket,true)}function consumePrelude(){const prelude=this.SelectorList();if(prelude.type!=="Raw"&&this.eof===false&&this.tokenType!==types$d.LeftCurlyBracket){this.error()}return prelude}const name$9="Rule";const walkContext$2="rule";const structure$9={prelude:["SelectorList","Raw"],block:["Block"]};function parse$d(){const startToken=this.tokenIndex;const startOffset=this.tokenStart;let prelude;let block;if(this.parseRulePrelude){prelude=this.parseWithFallback(consumePrelude,consumeRaw$2)}else{prelude=consumeRaw$2.call(this,startToken)}block=this.Block(true);return{type:"Rule",loc:this.getLocation(startOffset,this.tokenStart),prelude:prelude,block:block}}function generate$d(node){this.node(node.prelude);this.node(node.block)}Rule$4.generate=generate$d;Rule$4.name=name$9;Rule$4.parse=parse$d;Rule$4.structure=structure$9;Rule$4.walkContext=walkContext$2;var Selector$3={};const name$8="Selector";const structure$8={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator","WhiteSpace"]]};function parse$c(){const children=this.readSequence(this.scope.Selector);if(this.getFirstListNode(children)===null){this.error("Selector is expected")}return{type:"Selector",loc:this.getLocationFromList(children),children:children}}function generate$c(node){this.children(node)}Selector$3.generate=generate$c;Selector$3.name=name$8;Selector$3.parse=parse$c;Selector$3.structure=structure$8;var SelectorList$2={};const types$c=types$R;const name$7="SelectorList";const walkContext$1="selector";const structure$7={children:[["Selector","Raw"]]};function parse$b(){const children=this.createList();while(!this.eof){children.push(this.Selector());if(this.tokenType===types$c.Comma){this.next();continue}break}return{type:"SelectorList",loc:this.getLocationFromList(children),children:children}}function generate$b(node){this.children(node,(()=>this.token(types$c.Comma,",")))}SelectorList$2.generate=generate$b;SelectorList$2.name=name$7;SelectorList$2.parse=parse$b;SelectorList$2.structure=structure$7;SelectorList$2.walkContext=walkContext$1;var _String={};var string$3={};const charCodeDefinitions$3=charCodeDefinitions$c;const utils$d=utils$k;const REVERSE_SOLIDUS$2=92;const QUOTATION_MARK$1=34;const APOSTROPHE$1=39;function decode$2(str){const len=str.length;const firstChar=str.charCodeAt(0);const start=firstChar===QUOTATION_MARK$1||firstChar===APOSTROPHE$1?1:0;const end=start===1&&len>1&&str.charCodeAt(len-1)===firstChar?len-2:len-1;let decoded="";for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$2){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$3.isValidEscape(REVERSE_SOLIDUS$2,code)){const escapeStart=i-1;const escapeEnd=utils$d.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$d.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$2(str,apostrophe){const quote=apostrophe?"'":'"';const quoteCode=apostrophe?APOSTROPHE$1:QUOTATION_MARK$1;let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===quoteCode||code===REVERSE_SOLIDUS$2){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&(charCodeDefinitions$3.isHexDigit(code)||charCodeDefinitions$3.isWhiteSpace(code))){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return quote+encoded+quote}string$3.decode=decode$2;string$3.encode=encode$2;const string$2=string$3;const types$b=types$R;const name$6="String";const structure$6={value:String};function parse$a(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:string$2.decode(this.consume(types$b.String))}}function generate$a(node){this.token(types$b.String,string$2.encode(node.value))}_String.generate=generate$a;_String.name=name$6;_String.parse=parse$a;_String.structure=structure$6;var StyleSheet$2={};const types$a=types$R;const EXCLAMATIONMARK=33;function consumeRaw$1(startToken){return this.Raw(startToken,null,false)}const name$5="StyleSheet";const walkContext="stylesheet";const structure$5={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function parse$9(){const start=this.tokenStart;const children=this.createList();let child;while(!this.eof){switch(this.tokenType){case types$a.WhiteSpace:this.next();continue;case types$a.Comment:if(this.charCodeAt(this.tokenStart+2)!==EXCLAMATIONMARK){this.next();continue}child=this.Comment();break;case types$a.CDO:child=this.CDO();break;case types$a.CDC:child=this.CDC();break;case types$a.AtKeyword:child=this.parseWithFallback(this.Atrule,consumeRaw$1);break;default:child=this.parseWithFallback(this.Rule,consumeRaw$1)}children.push(child)}return{type:"StyleSheet",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$9(node){this.children(node)}StyleSheet$2.generate=generate$9;StyleSheet$2.name=name$5;StyleSheet$2.parse=parse$9;StyleSheet$2.structure=structure$5;StyleSheet$2.walkContext=walkContext;var TypeSelector$4={};const types$9=types$R;const ASTERISK$2=42;const VERTICALLINE$1=124;function eatIdentifierOrAsterisk(){if(this.tokenType!==types$9.Ident&&this.isDelim(ASTERISK$2)===false){this.error("Identifier or asterisk is expected")}this.next()}const name$4="TypeSelector";const structure$4={name:String};function parse$8(){const start=this.tokenStart;if(this.isDelim(VERTICALLINE$1)){this.next();eatIdentifierOrAsterisk.call(this)}else{eatIdentifierOrAsterisk.call(this);if(this.isDelim(VERTICALLINE$1)){this.next();eatIdentifierOrAsterisk.call(this)}}return{type:"TypeSelector",loc:this.getLocation(start,this.tokenStart),name:this.substrToCursor(start)}}function generate$8(node){this.tokenize(node.name)}TypeSelector$4.generate=generate$8;TypeSelector$4.name=name$4;TypeSelector$4.parse=parse$8;TypeSelector$4.structure=structure$4;var UnicodeRange$2={};const types$8=types$R;const charCodeDefinitions$2=charCodeDefinitions$c;const PLUSSIGN$2=43;const HYPHENMINUS$1=45;const QUESTIONMARK=63;function eatHexSequence(offset,allowDash){let len=0;for(let pos=this.tokenStart+offset;pos<this.tokenEnd;pos++){const code=this.charCodeAt(pos);if(code===HYPHENMINUS$1&&allowDash&&len!==0){eatHexSequence.call(this,offset+len+1,false);return-1}if(!charCodeDefinitions$2.isHexDigit(code)){this.error(allowDash&&len!==0?"Hyphen minus"+(len<6?" or hex digit":"")+" is expected":len<6?"Hex digit is expected":"Unexpected input",pos)}if(++len>6){this.error("Too many hex digits",pos)}}this.next();return len}function eatQuestionMarkSequence(max){let count=0;while(this.isDelim(QUESTIONMARK)){if(++count>max){this.error("Too many question marks")}this.next()}}function startsWith(code){if(this.charCodeAt(this.tokenStart)!==code){this.error((code===PLUSSIGN$2?"Plus sign":"Hyphen minus")+" is expected")}}function scanUnicodeRange(){let hexLength=0;switch(this.tokenType){case types$8.Number:hexLength=eatHexSequence.call(this,1,true);if(this.isDelim(QUESTIONMARK)){eatQuestionMarkSequence.call(this,6-hexLength);break}if(this.tokenType===types$8.Dimension||this.tokenType===types$8.Number){startsWith.call(this,HYPHENMINUS$1);eatHexSequence.call(this,1,false);break}break;case types$8.Dimension:hexLength=eatHexSequence.call(this,1,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength)}break;default:this.eatDelim(PLUSSIGN$2);if(this.tokenType===types$8.Ident){hexLength=eatHexSequence.call(this,0,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength)}break}if(this.isDelim(QUESTIONMARK)){this.next();eatQuestionMarkSequence.call(this,5);break}this.error("Hex digit or question mark is expected")}}const name$3="UnicodeRange";const structure$3={value:String};function parse$7(){const start=this.tokenStart;this.eatIdent("u");scanUnicodeRange.call(this);return{type:"UnicodeRange",loc:this.getLocation(start,this.tokenStart),value:this.substrToCursor(start)}}function generate$7(node){this.tokenize(node.value)}UnicodeRange$2.generate=generate$7;UnicodeRange$2.name=name$3;UnicodeRange$2.parse=parse$7;UnicodeRange$2.structure=structure$3;var Url$4={};var url$2={};const charCodeDefinitions$1=charCodeDefinitions$c;const utils$c=utils$k;const SPACE$1=32;const REVERSE_SOLIDUS$1=92;const QUOTATION_MARK=34;const APOSTROPHE=39;const LEFTPARENTHESIS=40;const RIGHTPARENTHESIS=41;function decode$1(str){const len=str.length;let start=4;let end=str.charCodeAt(len-1)===RIGHTPARENTHESIS?len-2:len-1;let decoded="";while(start<end&&charCodeDefinitions$1.isWhiteSpace(str.charCodeAt(start))){start++}while(start<end&&charCodeDefinitions$1.isWhiteSpace(str.charCodeAt(end))){end--}for(let i=start;i<=end;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS$1){if(i===end){if(i!==len-1){decoded=str.substr(i+1)}break}code=str.charCodeAt(++i);if(charCodeDefinitions$1.isValidEscape(REVERSE_SOLIDUS$1,code)){const escapeStart=i-1;const escapeEnd=utils$c.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$c.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode$1(str){let encoded="";let wsBeforeHexIsNeeded=false;for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127){encoded+="\\"+code.toString(16);wsBeforeHexIsNeeded=true;continue}if(code===SPACE$1||code===REVERSE_SOLIDUS$1||code===QUOTATION_MARK||code===APOSTROPHE||code===LEFTPARENTHESIS||code===RIGHTPARENTHESIS){encoded+="\\"+str.charAt(i);wsBeforeHexIsNeeded=false}else{if(wsBeforeHexIsNeeded&&charCodeDefinitions$1.isHexDigit(code)){encoded+=" "}encoded+=str.charAt(i);wsBeforeHexIsNeeded=false}}return"url("+encoded+")"}url$2.decode=decode$1;url$2.encode=encode$1;const url$1=url$2;const string$1=string$3;const types$7=types$R;const name$2="Url";const structure$2={value:String};function parse$6(){const start=this.tokenStart;let value;switch(this.tokenType){case types$7.Url:value=url$1.decode(this.consume(types$7.Url));break;case types$7.Function:if(!this.cmpStr(this.tokenStart,this.tokenEnd,"url(")){this.error("Function name must be `url`")}this.eat(types$7.Function);this.skipSC();value=string$1.decode(this.consume(types$7.String));this.skipSC();if(!this.eof){this.eat(types$7.RightParenthesis)}break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(start,this.tokenStart),value:value}}function generate$6(node){this.token(types$7.Url,url$1.encode(node.value))}Url$4.generate=generate$6;Url$4.name=name$2;Url$4.parse=parse$6;Url$4.structure=structure$2;var Value$4={};const name$1="Value";const structure$1={children:[[]]};function parse$5(){const start=this.tokenStart;const children=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(start,this.tokenStart),children:children}}function generate$5(node){this.children(node)}Value$4.generate=generate$5;Value$4.name=name$1;Value$4.parse=parse$5;Value$4.structure=structure$1;var WhiteSpace$4={};const types$6=types$R;const SPACE=Object.freeze({type:"WhiteSpace",loc:null,value:" "});const name="WhiteSpace";const structure={value:String};function parse$4(){this.eat(types$6.WhiteSpace);return SPACE}function generate$4(node){this.token(types$6.WhiteSpace,node.value)}WhiteSpace$4.generate=generate$4;WhiteSpace$4.name=name;WhiteSpace$4.parse=parse$4;WhiteSpace$4.structure=structure;const AnPlusB$1=AnPlusB$2;const Atrule$5=Atrule$6;const AtrulePrelude$1=AtrulePrelude$2;const AttributeSelector$3=AttributeSelector$4;const Block$1=Block$2;const Brackets$1=Brackets$2;const CDC$1=CDC$2;const CDO$1=CDO$2;const ClassSelector$1=ClassSelector$2;const Combinator$1=Combinator$2;const Comment$3=Comment$4;const Declaration$3=Declaration$4;const DeclarationList$1=DeclarationList$2;const Dimension$3=Dimension$4;const Function$1=_Function;const Hash$1=Hash$2;const Identifier$1=Identifier$2;const IdSelector$1=IdSelector$2;const MediaFeature$1=MediaFeature$2;const MediaQuery$1=MediaQuery$2;const MediaQueryList$1=MediaQueryList$2;const Nth$1=Nth$2;const Number$1$1=_Number$5;const Operator$1=Operator$2;const Parentheses$1=Parentheses$2;const Percentage$3=Percentage$4;const PseudoClassSelector$1=PseudoClassSelector$2;const PseudoElementSelector$1=PseudoElementSelector$2;const Ratio$1=Ratio$2;const Raw$3=Raw$4;const Rule$3=Rule$4;const Selector$2=Selector$3;const SelectorList$1=SelectorList$2;const String$1$1=_String;const StyleSheet$1=StyleSheet$2;const TypeSelector$3=TypeSelector$4;const UnicodeRange$1=UnicodeRange$2;const Url$3=Url$4;const Value$3=Value$4;const WhiteSpace$3=WhiteSpace$4;node.AnPlusB=AnPlusB$1;node.Atrule=Atrule$5;node.AtrulePrelude=AtrulePrelude$1;node.AttributeSelector=AttributeSelector$3;node.Block=Block$1;node.Brackets=Brackets$1;node.CDC=CDC$1;node.CDO=CDO$1;node.ClassSelector=ClassSelector$1;node.Combinator=Combinator$1;node.Comment=Comment$3;node.Declaration=Declaration$3;node.DeclarationList=DeclarationList$1;node.Dimension=Dimension$3;node.Function=Function$1;node.Hash=Hash$1;node.Identifier=Identifier$1;node.IdSelector=IdSelector$1;node.MediaFeature=MediaFeature$1;node.MediaQuery=MediaQuery$1;node.MediaQueryList=MediaQueryList$1;node.Nth=Nth$1;node.Number=Number$1$1;node.Operator=Operator$1;node.Parentheses=Parentheses$1;node.Percentage=Percentage$3;node.PseudoClassSelector=PseudoClassSelector$1;node.PseudoElementSelector=PseudoElementSelector$1;node.Ratio=Ratio$1;node.Raw=Raw$3;node.Rule=Rule$3;node.Selector=Selector$2;node.SelectorList=SelectorList$1;node.String=String$1$1;node.StyleSheet=StyleSheet$1;node.TypeSelector=TypeSelector$3;node.UnicodeRange=UnicodeRange$1;node.Url=Url$3;node.Value=Value$3;node.WhiteSpace=WhiteSpace$3;const data=data$1;const index$7=node;const lexerConfig={generic:true,...data,node:index$7};var lexer$3=lexerConfig;var scope={};const types$5=types$R;const NUMBERSIGN$1=35;const ASTERISK$1=42;const PLUSSIGN$1=43;const HYPHENMINUS=45;const SOLIDUS$1=47;const U=117;function defaultRecognizer(context){switch(this.tokenType){case types$5.Hash:return this.Hash();case types$5.Comma:return this.Operator();case types$5.LeftParenthesis:return this.Parentheses(this.readSequence,context.recognizer);case types$5.LeftSquareBracket:return this.Brackets(this.readSequence,context.recognizer);case types$5.String:return this.String();case types$5.Dimension:return this.Dimension();case types$5.Percentage:return this.Percentage();case types$5.Number:return this.Number();case types$5.Function:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,context.recognizer);case types$5.Url:return this.Url();case types$5.Ident:if(this.cmpChar(this.tokenStart,U)&&this.cmpChar(this.tokenStart+1,PLUSSIGN$1)){return this.UnicodeRange()}else{return this.Identifier()}case types$5.Delim:{const code=this.charCodeAt(this.tokenStart);if(code===SOLIDUS$1||code===ASTERISK$1||code===PLUSSIGN$1||code===HYPHENMINUS){return this.Operator()}if(code===NUMBERSIGN$1){this.error("Hex or identifier is expected",this.tokenStart+1)}break}}}var _default$2=defaultRecognizer;const _default$1=_default$2;const atrulePrelude$1={getNode:_default$1};var atrulePrelude_1=atrulePrelude$1;const types$4=types$R;const NUMBERSIGN=35;const ASTERISK=42;const PLUSSIGN=43;const SOLIDUS=47;const FULLSTOP=46;const GREATERTHANSIGN=62;const VERTICALLINE=124;const TILDE=126;function onWhiteSpace(next,children){if(children.last!==null&&children.last.type!=="Combinator"&&next!==null&&next.type!=="Combinator"){children.push({type:"Combinator",loc:null,name:" "})}}function getNode(){switch(this.tokenType){case types$4.LeftSquareBracket:return this.AttributeSelector();case types$4.Hash:return this.IdSelector();case types$4.Colon:if(this.lookupType(1)===types$4.Colon){return this.PseudoElementSelector()}else{return this.PseudoClassSelector()}case types$4.Ident:return this.TypeSelector();case types$4.Number:case types$4.Percentage:return this.Percentage();case types$4.Dimension:if(this.charCodeAt(this.tokenStart)===FULLSTOP){this.error("Identifier is expected",this.tokenStart+1)}break;case types$4.Delim:{const code=this.charCodeAt(this.tokenStart);switch(code){case PLUSSIGN:case GREATERTHANSIGN:case TILDE:case SOLIDUS:return this.Combinator();case FULLSTOP:return this.ClassSelector();case ASTERISK:case VERTICALLINE:return this.TypeSelector();case NUMBERSIGN:return this.IdSelector()}break}}}const Selector$1={onWhiteSpace:onWhiteSpace,getNode:getNode};var selector$2=Selector$1;function expressionFn(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}var expression$1=expressionFn;const types$3=types$R;function varFn(){const children=this.createList();this.skipSC();children.push(this.Identifier());this.skipSC();if(this.tokenType===types$3.Comma){children.push(this.Operator());const startIndex=this.tokenIndex;const value=this.parseCustomProperty?this.Value(null):this.Raw(this.tokenIndex,this.consumeUntilExclamationMarkOrSemicolon,false);if(value.type==="Value"&&value.children.isEmpty){for(let offset=startIndex-this.tokenIndex;offset<=0;offset++){if(this.lookupType(offset)===types$3.WhiteSpace){value.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}}}children.push(value)}return children}var _var$1=varFn;const _default=_default$2;const expression=expression$1;const _var=_var$1;function isPlusMinusOperator(node){return node!==null&&node.type==="Operator"&&(node.value[node.value.length-1]==="-"||node.value[node.value.length-1]==="+")}const value$1={getNode:_default,onWhiteSpace(next,children){if(isPlusMinusOperator(next)){next.value=" "+next.value}if(isPlusMinusOperator(children.last)){children.last.value+=" "}},expression:expression,var:_var};var value_1=value$1;const atrulePrelude=atrulePrelude_1;const selector$1=selector$2;const value=value_1;scope.AtrulePrelude=atrulePrelude;scope.Selector=selector$1;scope.Value=value;const fontFace$1={parse:{prelude:null,block(){return this.Block(true)}}};var fontFace_1=fontFace$1;const types$2=types$R;const importAtrule={parse:{prelude(){const children=this.createList();this.skipSC();switch(this.tokenType){case types$2.String:children.push(this.String());break;case types$2.Url:case types$2.Function:children.push(this.Url());break;default:this.error("String or url() is expected")}if(this.lookupNonWSType(0)===types$2.Ident||this.lookupNonWSType(0)===types$2.LeftParenthesis){children.push(this.MediaQueryList())}return children},block:null}};var _import$1=importAtrule;const media$1={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(){return this.Block(false)}}};var media_1=media$1;const page$1={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(true)}}};var page_1=page$1;const types$1=types$R;function consumeRaw(){return this.createSingleNodeList(this.Raw(this.tokenIndex,null,false))}function parentheses(){this.skipSC();if(this.tokenType===types$1.Ident&&this.lookupNonWSType(1)===types$1.Colon){return this.createSingleNodeList(this.Declaration())}return readSequence.call(this)}function readSequence(){const children=this.createList();let child;this.skipSC();scan:while(!this.eof){switch(this.tokenType){case types$1.Comment:case types$1.WhiteSpace:this.next();continue;case types$1.Function:child=this.Function(consumeRaw,this.scope.AtrulePrelude);break;case types$1.Ident:child=this.Identifier();break;case types$1.LeftParenthesis:child=this.Parentheses(parentheses,this.scope.AtrulePrelude);break;default:break scan}children.push(child)}return children}const supports$1={parse:{prelude(){const children=readSequence.call(this);if(this.getFirstListNode(children)===null){this.error("Condition is expected")}return children},block(){return this.Block(false)}}};var supports_1=supports$1;const fontFace=fontFace_1;const _import=_import$1;const media=media_1;const page=page_1;const supports=supports_1;const atrule={"font-face":fontFace,import:_import,media:media,page:page,supports:supports};var atrule_1=atrule;const selectorList={parse(){return this.createSingleNodeList(this.SelectorList())}};const selector={parse(){return this.createSingleNodeList(this.Selector())}};const identList={parse(){return this.createSingleNodeList(this.Identifier())}};const nth={parse(){return this.createSingleNodeList(this.Nth())}};const pseudo={dir:identList,has:selectorList,lang:identList,matches:selectorList,is:selectorList,"-moz-any":selectorList,"-webkit-any":selectorList,where:selectorList,not:selectorList,"nth-child":nth,"nth-last-child":nth,"nth-last-of-type":nth,"nth-of-type":nth,slotted:selector};var pseudo_1=pseudo;var indexParse$1={};const AnPlusB=AnPlusB$2;const Atrule$4=Atrule$6;const AtrulePrelude=AtrulePrelude$2;const AttributeSelector$2=AttributeSelector$4;const Block=Block$2;const Brackets=Brackets$2;const CDC=CDC$2;const CDO=CDO$2;const ClassSelector=ClassSelector$2;const Combinator=Combinator$2;const Comment$2=Comment$4;const Declaration$2=Declaration$4;const DeclarationList=DeclarationList$2;const Dimension$2=Dimension$4;const Function=_Function;const Hash=Hash$2;const Identifier=Identifier$2;const IdSelector=IdSelector$2;const MediaFeature=MediaFeature$2;const MediaQuery=MediaQuery$2;const MediaQueryList=MediaQueryList$2;const Nth=Nth$2;const Number$2=_Number$5;const Operator=Operator$2;const Parentheses=Parentheses$2;const Percentage$2=Percentage$4;const PseudoClassSelector=PseudoClassSelector$2;const PseudoElementSelector=PseudoElementSelector$2;const Ratio=Ratio$2;const Raw$2=Raw$4;const Rule$2=Rule$4;const Selector=Selector$3;const SelectorList=SelectorList$2;const String$1=_String;const StyleSheet=StyleSheet$2;const TypeSelector$2=TypeSelector$4;const UnicodeRange=UnicodeRange$2;const Url$2=Url$4;const Value$2=Value$4;const WhiteSpace$2=WhiteSpace$4;indexParse$1.AnPlusB=AnPlusB.parse;indexParse$1.Atrule=Atrule$4.parse;indexParse$1.AtrulePrelude=AtrulePrelude.parse;indexParse$1.AttributeSelector=AttributeSelector$2.parse;indexParse$1.Block=Block.parse;indexParse$1.Brackets=Brackets.parse;indexParse$1.CDC=CDC.parse;indexParse$1.CDO=CDO.parse;indexParse$1.ClassSelector=ClassSelector.parse;indexParse$1.Combinator=Combinator.parse;indexParse$1.Comment=Comment$2.parse;indexParse$1.Declaration=Declaration$2.parse;indexParse$1.DeclarationList=DeclarationList.parse;indexParse$1.Dimension=Dimension$2.parse;indexParse$1.Function=Function.parse;indexParse$1.Hash=Hash.parse;indexParse$1.Identifier=Identifier.parse;indexParse$1.IdSelector=IdSelector.parse;indexParse$1.MediaFeature=MediaFeature.parse;indexParse$1.MediaQuery=MediaQuery.parse;indexParse$1.MediaQueryList=MediaQueryList.parse;indexParse$1.Nth=Nth.parse;indexParse$1.Number=Number$2.parse;indexParse$1.Operator=Operator.parse;indexParse$1.Parentheses=Parentheses.parse;indexParse$1.Percentage=Percentage$2.parse;indexParse$1.PseudoClassSelector=PseudoClassSelector.parse;indexParse$1.PseudoElementSelector=PseudoElementSelector.parse;indexParse$1.Ratio=Ratio.parse;indexParse$1.Raw=Raw$2.parse;indexParse$1.Rule=Rule$2.parse;indexParse$1.Selector=Selector.parse;indexParse$1.SelectorList=SelectorList.parse;indexParse$1.String=String$1.parse;indexParse$1.StyleSheet=StyleSheet.parse;indexParse$1.TypeSelector=TypeSelector$2.parse;indexParse$1.UnicodeRange=UnicodeRange.parse;indexParse$1.Url=Url$2.parse;indexParse$1.Value=Value$2.parse;indexParse$1.WhiteSpace=WhiteSpace$2.parse;const index$6=scope;const index$1$2=atrule_1;const index$2$1=pseudo_1;const indexParse=indexParse$1;const config$1={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(options){return this.AtrulePrelude(options.atrule?String(options.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(true)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:index$6,atrule:index$1$2,pseudo:index$2$1,node:indexParse};var parser$1=config$1;const index$5=node;const config={node:index$5};var walker$1=config;const create$1=create_1;const lexer$2=lexer$3;const parser=parser$1;const walker=walker$1;const syntax$1=create$1({...lexer$2,...parser,...walker});var syntax_1=syntax$1;var version$2="2.2.1";var definitionSyntax={};const SyntaxError$1=_SyntaxError;const generate$3=generate$L;const parse$3=parse$L;const walk$2=walk$5;definitionSyntax.SyntaxError=SyntaxError$1.SyntaxError;definitionSyntax.generate=generate$3.generate;definitionSyntax.parse=parse$3.parse;definitionSyntax.walk=walk$2.walk;var clone$2={};const List$1=List$7;function clone$1(node){const result={};for(const key in node){let value=node[key];if(value){if(Array.isArray(value)||value instanceof List$1.List){value=value.map(clone$1)}else if(value.constructor===Object){value=clone$1(value)}}result[key]=value}return result}clone$2.clone=clone$1;var ident$1={};const charCodeDefinitions=charCodeDefinitions$c;const utils$b=utils$k;const REVERSE_SOLIDUS=92;function decode(str){const end=str.length-1;let decoded="";for(let i=0;i<str.length;i++){let code=str.charCodeAt(i);if(code===REVERSE_SOLIDUS){if(i===end){break}code=str.charCodeAt(++i);if(charCodeDefinitions.isValidEscape(REVERSE_SOLIDUS,code)){const escapeStart=i-1;const escapeEnd=utils$b.consumeEscaped(str,escapeStart);i=escapeEnd-1;decoded+=utils$b.decodeEscaped(str.substring(escapeStart+1,escapeEnd))}else{if(code===13&&str.charCodeAt(i+1)===10){i++}}}else{decoded+=str[i]}}return decoded}function encode(str){let encoded="";if(str.length===1&&str.charCodeAt(0)===45){return"\\-"}for(let i=0;i<str.length;i++){const code=str.charCodeAt(i);if(code===0){encoded+="�";continue}if(code<=31||code===127||code>=48&&code<=57&&(i===0||i===1&&str.charCodeAt(0)===45)){encoded+="\\"+code.toString(16)+" ";continue}if(charCodeDefinitions.isName(code)){encoded+=str.charAt(i)}else{encoded+="\\"+str.charAt(i)}}return encoded}ident$1.decode=decode;ident$1.encode=encode;const index$1$1=syntax_1;const version$1=version$2;const create=create_1;const List=List$7;const Lexer=Lexer$3;const index$4=definitionSyntax;const clone=clone$2;const names$1=names$4;const ident=ident$1;const string=string$3;const url=url$2;const types=types$R;const names=names$8;const TokenStream=TokenStream$4;const{tokenize:tokenize$1,parse:parse$2,generate:generate$2,lexer:lexer$1,createLexer:createLexer,walk:walk$1,find:find$1,findLast:findLast$1,findAll:findAll$1,toPlainObject:toPlainObject$1,fromPlainObject:fromPlainObject$1,fork:fork}=index$1$1;cjs.version=version$1.version;cjs.createSyntax=create;cjs.List=List.List;cjs.Lexer=Lexer.Lexer;cjs.definitionSyntax=index$4;cjs.clone=clone.clone;cjs.isCustomProperty=names$1.isCustomProperty;cjs.keyword=names$1.keyword;cjs.property=names$1.property;cjs.vendorPrefix=names$1.vendorPrefix;cjs.ident=ident;cjs.string=string;cjs.url=url;cjs.tokenTypes=types;cjs.tokenNames=names;cjs.TokenStream=TokenStream.TokenStream;cjs.createLexer=createLexer;cjs.find=find$1;cjs.findAll=findAll$1;cjs.findLast=findLast$1;cjs.fork=fork;cjs.fromPlainObject=fromPlainObject$1;cjs.generate=generate$2;cjs.lexer=lexer$1;cjs.parse=parse$2;cjs.toPlainObject=toPlainObject$1;cjs.tokenize=tokenize$1;cjs.walk=walk$1;var usage$1={};const{hasOwnProperty:hasOwnProperty$4}=Object.prototype;function buildMap(list,caseInsensitive){const map=Object.create(null);if(!Array.isArray(list)){return null}for(let name of list){if(caseInsensitive){name=name.toLowerCase()}map[name]=true}return map}function buildList(data){if(!data){return null}const tags=buildMap(data.tags,true);const ids=buildMap(data.ids);const classes=buildMap(data.classes);if(tags===null&&ids===null&&classes===null){return null}return{tags:tags,ids:ids,classes:classes}}function buildIndex(data){let scopes=false;if(data.scopes&&Array.isArray(data.scopes)){scopes=Object.create(null);for(let i=0;i<data.scopes.length;i++){const list=data.scopes[i];if(!list||!Array.isArray(list)){throw new Error("Wrong usage format")}for(const name of list){if(hasOwnProperty$4.call(scopes,name)){throw new Error(`Class can't be used for several scopes: ${name}`)}scopes[name]=i+1}}}return{whitelist:buildList(data),blacklist:buildList(data.blacklist),scopes:scopes}}usage$1.buildIndex=buildIndex;var utils$a={};function hasNoChildren(node){return!node||!node.children||node.children.isEmpty}function isNodeChildrenList(node,list){return node!==null&&node.children===list}utils$a.hasNoChildren=hasNoChildren;utils$a.isNodeChildrenList=isNodeChildrenList;const cssTree$m=cjs;const utils$9=utils$a;function cleanAtrule(node,item,list){if(node.block){if(this.stylesheet!==null){this.stylesheet.firstAtrulesAllowed=false}if(utils$9.hasNoChildren(node.block)){list.remove(item);return}}switch(node.name){case"charset":if(utils$9.hasNoChildren(node.prelude)){list.remove(item);return}if(item.prev){list.remove(item);return}break;case"import":if(this.stylesheet===null||!this.stylesheet.firstAtrulesAllowed){list.remove(item);return}list.prevUntil(item.prev,(function(rule){if(rule.type==="Atrule"){if(rule.name==="import"||rule.name==="charset"){return}}this.root.firstAtrulesAllowed=false;list.remove(item);return true}),this);break;default:{const name=cssTree$m.keyword(node.name).basename;if(name==="keyframes"||name==="media"||name==="supports"){if(utils$9.hasNoChildren(node.prelude)||utils$9.hasNoChildren(node.block)){list.remove(item)}}}}}var Atrule$3=cleanAtrule;function cleanComment(data,item,list){list.remove(item)}var Comment$1=cleanComment;const cssTree$l=cjs;function cleanDeclartion(node,item,list){if(node.value.children&&node.value.children.isEmpty){list.remove(item);return}if(cssTree$l.property(node.property).custom){if(/\S/.test(node.value.value)){node.value.value=node.value.value.trim()}}}var Declaration$1=cleanDeclartion;const utils$8=utils$a;function cleanRaw(node,item,list){if(utils$8.isNodeChildrenList(this.stylesheet,list)||utils$8.isNodeChildrenList(this.block,list)){list.remove(item)}}var Raw$1=cleanRaw;const cssTree$k=cjs;const utils$7=utils$a;const{hasOwnProperty:hasOwnProperty$3}=Object.prototype;const skipUsageFilteringAtrule=new Set(["keyframes"]);function cleanUnused(selectorList,usageData){selectorList.children.forEach(((selector,item,list)=>{let shouldRemove=false;cssTree$k.walk(selector,(function(node){if(this.selector===null||this.selector===selectorList){switch(node.type){case"SelectorList":if(this.function===null||this.function.name.toLowerCase()!=="not"){if(cleanUnused(node,usageData)){shouldRemove=true}}break;case"ClassSelector":if(usageData.whitelist!==null&&usageData.whitelist.classes!==null&&!hasOwnProperty$3.call(usageData.whitelist.classes,node.name)){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.classes!==null&&hasOwnProperty$3.call(usageData.blacklist.classes,node.name)){shouldRemove=true}break;case"IdSelector":if(usageData.whitelist!==null&&usageData.whitelist.ids!==null&&!hasOwnProperty$3.call(usageData.whitelist.ids,node.name)){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.ids!==null&&hasOwnProperty$3.call(usageData.blacklist.ids,node.name)){shouldRemove=true}break;case"TypeSelector":if(node.name.charAt(node.name.length-1)!=="*"){if(usageData.whitelist!==null&&usageData.whitelist.tags!==null&&!hasOwnProperty$3.call(usageData.whitelist.tags,node.name.toLowerCase())){shouldRemove=true}if(usageData.blacklist!==null&&usageData.blacklist.tags!==null&&hasOwnProperty$3.call(usageData.blacklist.tags,node.name.toLowerCase())){shouldRemove=true}}break}}}));if(shouldRemove){list.remove(item)}}));return selectorList.children.isEmpty}function cleanRule(node,item,list,options){if(utils$7.hasNoChildren(node.prelude)||utils$7.hasNoChildren(node.block)){list.remove(item);return}if(this.atrule&&skipUsageFilteringAtrule.has(cssTree$k.keyword(this.atrule.name).basename)){return}const{usage:usage}=options;if(usage&&(usage.whitelist!==null||usage.blacklist!==null)){cleanUnused(node.prelude,usage);if(utils$7.hasNoChildren(node.prelude)){list.remove(item);return}}}var Rule$1=cleanRule;function cleanTypeSelector(node,item,list){const name=item.data.name;if(name!=="*"){return}const nextType=item.next&&item.next.data.type;if(nextType==="IdSelector"||nextType==="ClassSelector"||nextType==="AttributeSelector"||nextType==="PseudoClassSelector"||nextType==="PseudoElementSelector"){list.remove(item)}}var TypeSelector$1=cleanTypeSelector;function cleanWhitespace(node,item,list){list.remove(item)}var WhiteSpace$1=cleanWhitespace;const cssTree$j=cjs;const Atrule$2=Atrule$3;const Comment=Comment$1;const Declaration=Declaration$1;const Raw=Raw$1;const Rule=Rule$1;const TypeSelector=TypeSelector$1;const WhiteSpace=WhiteSpace$1;const handlers$2={Atrule:Atrule$2,Comment:Comment,Declaration:Declaration,Raw:Raw,Rule:Rule,TypeSelector:TypeSelector,WhiteSpace:WhiteSpace};function clean(ast,options){cssTree$j.walk(ast,{leave(node,item,list){if(handlers$2.hasOwnProperty(node.type)){handlers$2[node.type].call(this,node,item,list,options)}}})}var clean_1=clean;function compressKeyframes(node){node.block.children.forEach((rule=>{rule.prelude.children.forEach((simpleselector=>{simpleselector.children.forEach(((data,item)=>{if(data.type==="Percentage"&&data.value==="100"){item.data={type:"TypeSelector",loc:data.loc,name:"to"}}else if(data.type==="TypeSelector"&&data.name==="from"){item.data={type:"Percentage",loc:data.loc,value:"0"}}}))}))}))}var keyframes$1=compressKeyframes;const cssTree$i=cjs;const keyframes=keyframes$1;function Atrule$1(node){if(cssTree$i.keyword(node.name).basename==="keyframes"){keyframes(node)}}var Atrule_1=Atrule$1;const blockUnquoteRx=/^(-?\d|--)|[\u0000-\u002c\u002e\u002f\u003A-\u0040\u005B-\u005E\u0060\u007B-\u009f]/;function canUnquote(value){if(value===""||value==="-"){return false}return!blockUnquoteRx.test(value)}function AttributeSelector$1(node){const attrValue=node.value;if(!attrValue||attrValue.type!=="String"){return}if(canUnquote(attrValue.value)){node.value={type:"Identifier",loc:attrValue.loc,name:attrValue.value}}}var AttributeSelector_1=AttributeSelector$1;function compressFont(node){const list=node.children;list.forEachRight((function(node,item){if(node.type==="Identifier"){if(node.name==="bold"){item.data={type:"Number",loc:node.loc,value:"700"}}else if(node.name==="normal"){const prev=item.prev;if(prev&&prev.data.type==="Operator"&&prev.data.value==="/"){this.remove(prev)}this.remove(item)}}}));if(list.isEmpty){list.insert(list.createItem({type:"Identifier",name:"normal"}))}}var font$1=compressFont;function compressFontWeight(node){const value=node.children.head.data;if(value.type==="Identifier"){switch(value.name){case"normal":node.children.head.data={type:"Number",loc:value.loc,value:"400"};break;case"bold":node.children.head.data={type:"Number",loc:value.loc,value:"700"};break}}}var fontWeight$1=compressFontWeight;const cssTree$h=cjs;function compressBackground(node){function flush(){if(!buffer.length){buffer.unshift({type:"Number",loc:null,value:"0"},{type:"Number",loc:null,value:"0"})}newValue.push.apply(newValue,buffer);buffer=[]}let newValue=[];let buffer=[];node.children.forEach((node=>{if(node.type==="Operator"&&node.value===","){flush();newValue.push(node);return}if(node.type==="Identifier"){if(node.name==="transparent"||node.name==="none"||node.name==="repeat"||node.name==="scroll"){return}}buffer.push(node)}));flush();node.children=(new cssTree$h.List).fromArray(newValue)}var background$1=compressBackground;function compressBorder(node){node.children.forEach(((node,item,list)=>{if(node.type==="Identifier"&&node.name.toLowerCase()==="none"){if(list.head===list.tail){item.data={type:"Number",loc:node.loc,value:"0"}}else{list.remove(item)}}}))}var border$1=compressBorder;const cssTree$g=cjs;const font=font$1;const fontWeight=fontWeight$1;const background=background$1;const border=border$1;const handlers$1={font:font,"font-weight":fontWeight,background:background,border:border,outline:border};function compressValue(node){if(!this.declaration){return}const property=cssTree$g.property(this.declaration.property);if(handlers$1.hasOwnProperty(property.basename)){handlers$1[property.basename](node)}}var Value$1=compressValue;var _Number$4={};const OMIT_PLUSSIGN=/^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;const KEEP_PLUSSIGN=/^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/;const unsafeToRemovePlusSignAfter=new Set(["Dimension","Hash","Identifier","Number","Raw","UnicodeRange"]);function packNumber(value,item){const regexp=item&&item.prev!==null&&unsafeToRemovePlusSignAfter.has(item.prev.data.type)?KEEP_PLUSSIGN:OMIT_PLUSSIGN;value=String(value).replace(regexp,"$1$2$3");if(value===""||value==="-"){value="0"}return value}function Number$1(node){node.value=packNumber(node.value)}_Number$4.Number=Number$1;_Number$4.packNumber=packNumber;const _Number$3=_Number$4;const MATH_FUNCTIONS=new Set(["calc","min","max","clamp"]);const LENGTH_UNIT=new Set(["px","mm","cm","in","pt","pc","em","ex","ch","rem","vh","vw","vmin","vmax","vm"]);function compressDimension(node,item){const value=_Number$3.packNumber(node.value);node.value=value;if(value==="0"&&this.declaration!==null&&this.atrulePrelude===null){const unit=node.unit.toLowerCase();if(!LENGTH_UNIT.has(unit)){return}if(this.declaration.property==="-ms-flex"||this.declaration.property==="flex"){return}if(this.function&&MATH_FUNCTIONS.has(this.function.name)){return}item.data={type:"Number",loc:node.loc,value:value}}}var Dimension$1=compressDimension;const cssTree$f=cjs;const _Number$2=_Number$4;const blacklist=new Set(["width","min-width","max-width","height","min-height","max-height","flex","-ms-flex"]);function compressPercentage(node,item){node.value=_Number$2.packNumber(node.value);if(node.value==="0"&&this.declaration&&!blacklist.has(this.declaration.property)){item.data={type:"Number",loc:node.loc,value:node.value};if(!cssTree$f.lexer.matchDeclaration(this.declaration).isType(item.data,"length")){item.data=node}}}var Percentage$1=compressPercentage;function Url$1(node){node.value=node.value.replace(/\\/g,"/")}var Url_1=Url$1;var color$1={};const cssTree$e=cjs;const _Number$1=_Number$4;const NAME_TO_HEX={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgrey:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",grey:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};const HEX_TO_NAME={8e5:"maroon",800080:"purple",808e3:"olive",808080:"gray","00ffff":"cyan",f0ffff:"azure",f5f5dc:"beige",ffe4c4:"bisque","000000":"black","0000ff":"blue",a52a2a:"brown",ff7f50:"coral",ffd700:"gold","008000":"green","4b0082":"indigo",fffff0:"ivory",f0e68c:"khaki","00ff00":"lime",faf0e6:"linen","000080":"navy",ffa500:"orange",da70d6:"orchid",cd853f:"peru",ffc0cb:"pink",dda0dd:"plum",f00:"red",ff0000:"red",fa8072:"salmon",a0522d:"sienna",c0c0c0:"silver",fffafa:"snow",d2b48c:"tan","008080":"teal",ff6347:"tomato",ee82ee:"violet",f5deb3:"wheat",ffffff:"white",ffff00:"yellow"};function hueToRgb(p,q,t){if(t<0){t+=1}if(t>1){t-=1}if(t<1/6){return p+(q-p)*6*t}if(t<1/2){return q}if(t<2/3){return p+(q-p)*(2/3-t)*6}return p}function hslToRgb(h,s,l,a){let r;let g;let b;if(s===0){r=g=b=l}else{const q=l<.5?l*(1+s):l+s-l*s;const p=2*l-q;r=hueToRgb(p,q,h+1/3);g=hueToRgb(p,q,h);b=hueToRgb(p,q,h-1/3)}return[Math.round(r*255),Math.round(g*255),Math.round(b*255),a]}function toHex(value){value=value.toString(16);return value.length===1?"0"+value:value}function parseFunctionArgs(functionArgs,count,rgb){let cursor=functionArgs.head;let args=[];let wasValue=false;while(cursor!==null){const{type:type,value:value}=cursor.data;switch(type){case"Number":case"Percentage":if(wasValue){return}wasValue=true;args.push({type:type,value:Number(value)});break;case"Operator":if(value===","){if(!wasValue){return}wasValue=false}else if(wasValue||value!=="+"){return}break;default:return}cursor=cursor.next}if(args.length!==count){return}if(args.length===4){if(args[3].type!=="Number"){return}args[3].type="Alpha"}if(rgb){if(args[0].type!==args[1].type||args[0].type!==args[2].type){return}}else{if(args[0].type!=="Number"||args[1].type!=="Percentage"||args[2].type!=="Percentage"){return}args[0].type="Angle"}return args.map((function(arg){let value=Math.max(0,arg.value);switch(arg.type){case"Number":value=Math.min(value,255);break;case"Percentage":value=Math.min(value,100)/100;if(!rgb){return value}value=255*value;break;case"Angle":return(value%360+360)%360/360;case"Alpha":return Math.min(value,1)}return Math.round(value)}))}function compressFunction(node,item){let functionName=node.name;let args;if(functionName==="rgba"||functionName==="hsla"){args=parseFunctionArgs(node.children,4,functionName==="rgba");if(!args){return}if(functionName==="hsla"){args=hslToRgb(...args);node.name="rgba"}if(args[3]===0){const scopeFunctionName=this.function&&this.function.name;if(args[0]===0&&args[1]===0&&args[2]===0||!/^(?:to|from|color-stop)$|gradient$/i.test(scopeFunctionName)){item.data={type:"Identifier",loc:node.loc,name:"transparent"};return}}if(args[3]!==1){node.children.forEach(((node,item,list)=>{if(node.type==="Operator"){if(node.value!==","){list.remove(item)}return}item.data={type:"Number",loc:node.loc,value:_Number$1.packNumber(args.shift())}}));return}functionName="rgb"}if(functionName==="hsl"){args=args||parseFunctionArgs(node.children,3,false);if(!args){return}args=hslToRgb(...args);functionName="rgb"}if(functionName==="rgb"){args=args||parseFunctionArgs(node.children,3,true);if(!args){return}item.data={type:"Hash",loc:node.loc,value:toHex(args[0])+toHex(args[1])+toHex(args[2])};compressHex(item.data,item)}}function compressIdent(node,item){if(this.declaration===null){return}let color=node.name.toLowerCase();if(NAME_TO_HEX.hasOwnProperty(color)&&cssTree$e.lexer.matchDeclaration(this.declaration).isType(node,"color")){const hex=NAME_TO_HEX[color];if(hex.length+1<=color.length){item.data={type:"Hash",loc:node.loc,value:hex}}else{if(color==="grey"){color="gray"}node.name=color}}}function compressHex(node,item){let color=node.value.toLowerCase();if(color.length===6&&color[0]===color[1]&&color[2]===color[3]&&color[4]===color[5]){color=color[0]+color[2]+color[4]}if(HEX_TO_NAME[color]){item.data={type:"Identifier",loc:node.loc,name:HEX_TO_NAME[color]}}else{node.value=color}}color$1.compressFunction=compressFunction;color$1.compressHex=compressHex;color$1.compressIdent=compressIdent;const cssTree$d=cjs;const Atrule=Atrule_1;const AttributeSelector=AttributeSelector_1;const Value=Value$1;const Dimension=Dimension$1;const Percentage=Percentage$1;const _Number=_Number$4;const Url=Url_1;const color=color$1;const handlers={Atrule:Atrule,AttributeSelector:AttributeSelector,Value:Value,Dimension:Dimension,Percentage:Percentage,Number:_Number.Number,Url:Url,Hash:color.compressHex,Identifier:color.compressIdent,Function:color.compressFunction};function replace(ast){cssTree$d.walk(ast,{leave(node,item,list){if(handlers.hasOwnProperty(node.type)){handlers[node.type].call(this,node,item,list)}}})}var replace_1=replace;const cssTree$c=cjs;class Index{constructor(){this.map=new Map}resolve(str){let index=this.map.get(str);if(index===undefined){index=this.map.size+1;this.map.set(str,index)}return index}}function createDeclarationIndexer$1(){const ids=new Index;return function markDeclaration(node){const id=cssTree$c.generate(node);node.id=ids.resolve(id);node.length=id.length;node.fingerprint=null;return node}}var createDeclarationIndexer_1=createDeclarationIndexer$1;const cssTree$b=cjs;function ensureSelectorList(node){if(node.type==="Raw"){return cssTree$b.parse(node.value,{context:"selectorList"})}return node}function maxSpecificity(a,b){for(let i=0;i<3;i++){if(a[i]!==b[i]){return a[i]>b[i]?a:b}}return a}function maxSelectorListSpecificity(selectorList){return ensureSelectorList(selectorList).children.reduce(((result,node)=>maxSpecificity(specificity$4(node),result)),[0,0,0])}function specificity$4(simpleSelector){let A=0;let B=0;let C=0;simpleSelector.children.forEach((node=>{switch(node.type){case"IdSelector":A++;break;case"ClassSelector":case"AttributeSelector":B++;break;case"PseudoClassSelector":switch(node.name.toLowerCase()){case"not":case"has":case"is":case"matches":case"-webkit-any":case"-moz-any":{const[a,b,c]=maxSelectorListSpecificity(node.children.first);A+=a;B+=b;C+=c;break}case"nth-child":case"nth-last-child":{const arg=node.children.first;if(arg.type==="Nth"&&arg.selector){const[a,b,c]=maxSelectorListSpecificity(arg.selector);A+=a;B+=b+1;C+=c}else{B++}break}case"where":break;case"before":case"after":case"first-line":case"first-letter":C++;break;default:B++}break;case"TypeSelector":if(!node.name.endsWith("*")){C++}break;case"PseudoElementSelector":C++;break}}));return[A,B,C]}var specificity_1=specificity$4;const cssTree$a=cjs;const specificity$3=specificity_1;const nonFreezePseudoElements=new Set(["first-letter","first-line","after","before"]);const nonFreezePseudoClasses=new Set(["link","visited","hover","active","first-letter","first-line","after","before"]);function processSelector$2(node,usageData){const pseudos=new Set;node.prelude.children.forEach((function(simpleSelector){let tagName="*";let scope=0;simpleSelector.children.forEach((function(node){switch(node.type){case"ClassSelector":if(usageData&&usageData.scopes){const classScope=usageData.scopes[node.name]||0;if(scope!==0&&classScope!==scope){throw new Error("Selector can't has classes from different scopes: "+cssTree$a.generate(simpleSelector))}scope=classScope}break;case"PseudoClassSelector":{const name=node.name.toLowerCase();if(!nonFreezePseudoClasses.has(name)){pseudos.add(`:${name}`)}break}case"PseudoElementSelector":{const name=node.name.toLowerCase();if(!nonFreezePseudoElements.has(name)){pseudos.add(`::${name}`)}break}case"TypeSelector":tagName=node.name.toLowerCase();break;case"AttributeSelector":if(node.flags){pseudos.add(`[${node.flags.toLowerCase()}]`)}break;case"Combinator":tagName="*";break}}));simpleSelector.compareMarker=specificity$3(simpleSelector).toString();simpleSelector.id=null;simpleSelector.id=cssTree$a.generate(simpleSelector);if(scope){simpleSelector.compareMarker+=":"+scope}if(tagName!=="*"){simpleSelector.compareMarker+=","+tagName}}));node.pseudoSignature=pseudos.size>0?[...pseudos].sort().join(","):false}var processSelector_1=processSelector$2;const cssTree$9=cjs;const createDeclarationIndexer=createDeclarationIndexer_1;const processSelector$1=processSelector_1;function prepare(ast,options){const markDeclaration=createDeclarationIndexer();cssTree$9.walk(ast,{visit:"Rule",enter(node){node.block.children.forEach(markDeclaration);processSelector$1(node,options.usage)}});cssTree$9.walk(ast,{visit:"Atrule",enter(node){if(node.prelude){node.prelude.id=null;node.prelude.id=cssTree$9.generate(node.prelude)}if(cssTree$9.keyword(node.name).basename==="keyframes"){node.block.avoidRulesMerge=true;node.block.children.forEach((function(rule){rule.prelude.children.forEach((function(simpleselector){simpleselector.compareMarker=simpleselector.id}))}))}}});return{declaration:markDeclaration}}var prepare_1=prepare;const cssTree$8=cjs;const{hasOwnProperty:hasOwnProperty$2}=Object.prototype;function addRuleToMap(map,item,list,single){const node=item.data;const name=cssTree$8.keyword(node.name).basename;const id=node.name.toLowerCase()+"/"+(node.prelude?node.prelude.id:null);if(!hasOwnProperty$2.call(map,name)){map[name]=Object.create(null)}if(single){delete map[name][id]}if(!hasOwnProperty$2.call(map[name],id)){map[name][id]=new cssTree$8.List}map[name][id].append(list.remove(item))}function relocateAtrules(ast,options){const collected=Object.create(null);let topInjectPoint=null;ast.children.forEach((function(node,item,list){if(node.type==="Atrule"){const name=cssTree$8.keyword(node.name).basename;switch(name){case"keyframes":addRuleToMap(collected,item,list,true);return;case"media":if(options.forceMediaMerge){addRuleToMap(collected,item,list,false);return}break}if(topInjectPoint===null&&name!=="charset"&&name!=="import"){topInjectPoint=item}}else{if(topInjectPoint===null){topInjectPoint=item}}}));for(const atrule in collected){for(const id in collected[atrule]){ast.children.insertList(collected[atrule][id],atrule==="media"?null:topInjectPoint)}}}function isMediaRule(node){return node.type==="Atrule"&&node.name==="media"}function processAtrule(node,item,list){if(!isMediaRule(node)){return}const prev=item.prev&&item.prev.data;if(!prev||!isMediaRule(prev)){return}if(node.prelude&&prev.prelude&&node.prelude.id===prev.prelude.id){prev.block.children.appendList(node.block.children);list.remove(item)}}function rejoinAtrule(ast,options){relocateAtrules(ast,options);cssTree$8.walk(ast,{visit:"Atrule",reverse:true,enter:processAtrule})}var _1MergeAtrule$1=rejoinAtrule;var utils$6={};const{hasOwnProperty:hasOwnProperty$1}=Object.prototype;function isEqualSelectors(a,b){let cursor1=a.head;let cursor2=b.head;while(cursor1!==null&&cursor2!==null&&cursor1.data.id===cursor2.data.id){cursor1=cursor1.next;cursor2=cursor2.next}return cursor1===null&&cursor2===null}function isEqualDeclarations(a,b){let cursor1=a.head;let cursor2=b.head;while(cursor1!==null&&cursor2!==null&&cursor1.data.id===cursor2.data.id){cursor1=cursor1.next;cursor2=cursor2.next}return cursor1===null&&cursor2===null}function compareDeclarations(declarations1,declarations2){const result={eq:[],ne1:[],ne2:[],ne2overrided:[]};const fingerprints=Object.create(null);const declarations2hash=Object.create(null);for(let cursor=declarations2.head;cursor;cursor=cursor.next){declarations2hash[cursor.data.id]=true}for(let cursor=declarations1.head;cursor;cursor=cursor.next){const data=cursor.data;if(data.fingerprint){fingerprints[data.fingerprint]=data.important}if(declarations2hash[data.id]){declarations2hash[data.id]=false;result.eq.push(data)}else{result.ne1.push(data)}}for(let cursor=declarations2.head;cursor;cursor=cursor.next){const data=cursor.data;if(declarations2hash[data.id]){if(!hasOwnProperty$1.call(fingerprints,data.fingerprint)||!fingerprints[data.fingerprint]&&data.important){result.ne2.push(data)}result.ne2overrided.push(data)}}return result}function addSelectors(dest,source){source.forEach((sourceData=>{const newStr=sourceData.id;let cursor=dest.head;while(cursor){const nextStr=cursor.data.id;if(nextStr===newStr){return}if(nextStr>newStr){break}cursor=cursor.next}dest.insert(dest.createItem(sourceData),cursor)}));return dest}function hasSimilarSelectors(selectors1,selectors2){let cursor1=selectors1.head;while(cursor1!==null){let cursor2=selectors2.head;while(cursor2!==null){if(cursor1.data.compareMarker===cursor2.data.compareMarker){return true}cursor2=cursor2.next}cursor1=cursor1.next}return false}function unsafeToSkipNode(node){switch(node.type){case"Rule":return hasSimilarSelectors(node.prelude.children,this);case"Atrule":if(node.block){return node.block.children.some(unsafeToSkipNode,this)}break;case"Declaration":return false}return true}utils$6.addSelectors=addSelectors;utils$6.compareDeclarations=compareDeclarations;utils$6.hasSimilarSelectors=hasSimilarSelectors;utils$6.isEqualDeclarations=isEqualDeclarations;utils$6.isEqualSelectors=isEqualSelectors;utils$6.unsafeToSkipNode=unsafeToSkipNode;const cssTree$7=cjs;const utils$5=utils$6;function processRule$5(node,item,list){const selectors=node.prelude.children;const declarations=node.block.children;list.prevUntil(item.prev,(function(prev){if(prev.type!=="Rule"){return utils$5.unsafeToSkipNode.call(selectors,prev)}const prevSelectors=prev.prelude.children;const prevDeclarations=prev.block.children;if(node.pseudoSignature===prev.pseudoSignature){if(utils$5.isEqualSelectors(prevSelectors,selectors)){prevDeclarations.appendList(declarations);list.remove(item);return true}if(utils$5.isEqualDeclarations(declarations,prevDeclarations)){utils$5.addSelectors(prevSelectors,selectors);list.remove(item);return true}}return utils$5.hasSimilarSelectors(selectors,prevSelectors)}))}function initialMergeRule(ast){cssTree$7.walk(ast,{visit:"Rule",enter:processRule$5})}var _2InitialMergeRuleset$1=initialMergeRule;const cssTree$6=cjs;function processRule$4(node,item,list){const selectors=node.prelude.children;while(selectors.head!==selectors.tail){const newSelectors=new cssTree$6.List;newSelectors.insert(selectors.remove(selectors.head));list.insert(list.createItem({type:"Rule",loc:node.loc,prelude:{type:"SelectorList",loc:node.prelude.loc,children:newSelectors},block:{type:"Block",loc:node.block.loc,children:node.block.children.copy()},pseudoSignature:node.pseudoSignature}),item)}}function disjoinRule(ast){cssTree$6.walk(ast,{visit:"Rule",reverse:true,enter:processRule$4})}var _3DisjoinRuleset$1=disjoinRule;const cssTree$5=cjs;const REPLACE=1;const REMOVE=2;const TOP=0;const RIGHT=1;const BOTTOM=2;const LEFT=3;const SIDES=["top","right","bottom","left"];const SIDE={"margin-top":"top","margin-right":"right","margin-bottom":"bottom","margin-left":"left","padding-top":"top","padding-right":"right","padding-bottom":"bottom","padding-left":"left","border-top-color":"top","border-right-color":"right","border-bottom-color":"bottom","border-left-color":"left","border-top-width":"top","border-right-width":"right","border-bottom-width":"bottom","border-left-width":"left","border-top-style":"top","border-right-style":"right","border-bottom-style":"bottom","border-left-style":"left"};const MAIN_PROPERTY={margin:"margin","margin-top":"margin","margin-right":"margin","margin-bottom":"margin","margin-left":"margin",padding:"padding","padding-top":"padding","padding-right":"padding","padding-bottom":"padding","padding-left":"padding","border-color":"border-color","border-top-color":"border-color","border-right-color":"border-color","border-bottom-color":"border-color","border-left-color":"border-color","border-width":"border-width","border-top-width":"border-width","border-right-width":"border-width","border-bottom-width":"border-width","border-left-width":"border-width","border-style":"border-style","border-top-style":"border-style","border-right-style":"border-style","border-bottom-style":"border-style","border-left-style":"border-style"};class TRBL{constructor(name){this.name=name;this.loc=null;this.iehack=undefined;this.sides={top:null,right:null,bottom:null,left:null}}getValueSequence(declaration,count){const values=[];let iehack="";const hasBadValues=declaration.value.type!=="Value"||declaration.value.children.some((function(child){let special=false;switch(child.type){case"Identifier":switch(child.name){case"\\0":case"\\9":iehack=child.name;return;case"inherit":case"initial":case"unset":case"revert":special=child.name;break}break;case"Dimension":switch(child.unit){case"rem":case"vw":case"vh":case"vmin":case"vmax":case"vm":special=child.unit;break}break;case"Hash":case"Number":case"Percentage":break;case"Function":if(child.name==="var"){return true}special=child.name;break;default:return true}values.push({node:child,special:special,important:declaration.important})}));if(hasBadValues||values.length>count){return false}if(typeof this.iehack==="string"&&this.iehack!==iehack){return false}this.iehack=iehack;return values}canOverride(side,value){const currentValue=this.sides[side];return!currentValue||value.important&&!currentValue.important}add(name,declaration){function attemptToAdd(){const sides=this.sides;const side=SIDE[name];if(side){if(side in sides===false){return false}const values=this.getValueSequence(declaration,1);if(!values||!values.length){return false}for(const key in sides){if(sides[key]!==null&&sides[key].special!==values[0].special){return false}}if(!this.canOverride(side,values[0])){return true}sides[side]=values[0];return true}else if(name===this.name){const values=this.getValueSequence(declaration,4);if(!values||!values.length){return false}switch(values.length){case 1:values[RIGHT]=values[TOP];values[BOTTOM]=values[TOP];values[LEFT]=values[TOP];break;case 2:values[BOTTOM]=values[TOP];values[LEFT]=values[RIGHT];break;case 3:values[LEFT]=values[RIGHT];break}for(let i=0;i<4;i++){for(const key in sides){if(sides[key]!==null&&sides[key].special!==values[i].special){return false}}}for(let i=0;i<4;i++){if(this.canOverride(SIDES[i],values[i])){sides[SIDES[i]]=values[i]}}return true}}if(!attemptToAdd.call(this)){return false}if(!this.loc){this.loc=declaration.loc}return true}isOkToMinimize(){const top=this.sides.top;const right=this.sides.right;const bottom=this.sides.bottom;const left=this.sides.left;if(top&&right&&bottom&&left){const important=top.important+right.important+bottom.important+left.important;return important===0||important===4}return false}getValue(){const result=new cssTree$5.List;const sides=this.sides;const values=[sides.top,sides.right,sides.bottom,sides.left];const stringValues=[cssTree$5.generate(sides.top.node),cssTree$5.generate(sides.right.node),cssTree$5.generate(sides.bottom.node),cssTree$5.generate(sides.left.node)];if(stringValues[LEFT]===stringValues[RIGHT]){values.pop();if(stringValues[BOTTOM]===stringValues[TOP]){values.pop();if(stringValues[RIGHT]===stringValues[TOP]){values.pop()}}}for(let i=0;i<values.length;i++){result.appendData(values[i].node)}if(this.iehack){result.appendData({type:"Identifier",loc:null,name:this.iehack})}return{type:"Value",loc:null,children:result}}getDeclaration(){return{type:"Declaration",loc:this.loc,important:this.sides.top.important,property:this.name,value:this.getValue()}}}function processRule$3(rule,shorts,shortDeclarations,lastShortSelector){const declarations=rule.block.children;const selector=rule.prelude.children.first.id;rule.block.children.forEachRight((function(declaration,item){const property=declaration.property;if(!MAIN_PROPERTY.hasOwnProperty(property)){return}const key=MAIN_PROPERTY[property];let shorthand;let operation;if(!lastShortSelector||selector===lastShortSelector){if(key in shorts){operation=REMOVE;shorthand=shorts[key]}}if(!shorthand||!shorthand.add(property,declaration)){operation=REPLACE;shorthand=new TRBL(key);if(!shorthand.add(property,declaration)){lastShortSelector=null;return}}shorts[key]=shorthand;shortDeclarations.push({operation:operation,block:declarations,item:item,shorthand:shorthand});lastShortSelector=selector}));return lastShortSelector}function processShorthands(shortDeclarations,markDeclaration){shortDeclarations.forEach((function(item){const shorthand=item.shorthand;if(!shorthand.isOkToMinimize()){return}if(item.operation===REPLACE){item.item.data=markDeclaration(shorthand.getDeclaration())}else{item.block.remove(item.item)}}))}function restructBlock$1(ast,indexer){const stylesheetMap={};const shortDeclarations=[];cssTree$5.walk(ast,{visit:"Rule",reverse:true,enter(node){const stylesheet=this.block||this.stylesheet;const ruleId=(node.pseudoSignature||"")+"|"+node.prelude.children.first.id;let ruleMap;let shorts;if(!stylesheetMap.hasOwnProperty(stylesheet.id)){ruleMap={lastShortSelector:null};stylesheetMap[stylesheet.id]=ruleMap}else{ruleMap=stylesheetMap[stylesheet.id]}if(ruleMap.hasOwnProperty(ruleId)){shorts=ruleMap[ruleId]}else{shorts={};ruleMap[ruleId]=shorts}ruleMap.lastShortSelector=processRule$3.call(this,node,shorts,shortDeclarations,ruleMap.lastShortSelector)}});processShorthands(shortDeclarations,indexer.declaration)}var _4RestructShorthand$1=restructBlock$1;const cssTree$4=cjs;let fingerprintId=1;const dontRestructure=new Set(["src"]);const DONT_MIX_VALUE={display:/table|ruby|flex|-(flex)?box$|grid|contents|run-in/i,"text-align":/^(start|end|match-parent|justify-all)$/i};const SAFE_VALUES={cursor:["auto","crosshair","default","move","text","wait","help","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","pointer","progress","not-allowed","no-drop","vertical-text","all-scroll","col-resize","row-resize"],overflow:["hidden","visible","scroll","auto"],position:["static","relative","absolute","fixed"]};const NEEDLESS_TABLE={"border-width":["border"],"border-style":["border"],"border-color":["border"],"border-top":["border"],"border-right":["border"],"border-bottom":["border"],"border-left":["border"],"border-top-width":["border-top","border-width","border"],"border-right-width":["border-right","border-width","border"],"border-bottom-width":["border-bottom","border-width","border"],"border-left-width":["border-left","border-width","border"],"border-top-style":["border-top","border-style","border"],"border-right-style":["border-right","border-style","border"],"border-bottom-style":["border-bottom","border-style","border"],"border-left-style":["border-left","border-style","border"],"border-top-color":["border-top","border-color","border"],"border-right-color":["border-right","border-color","border"],"border-bottom-color":["border-bottom","border-color","border"],"border-left-color":["border-left","border-color","border"],"margin-top":["margin"],"margin-right":["margin"],"margin-bottom":["margin"],"margin-left":["margin"],"padding-top":["padding"],"padding-right":["padding"],"padding-bottom":["padding"],"padding-left":["padding"],"font-style":["font"],"font-variant":["font"],"font-weight":["font"],"font-size":["font"],"font-family":["font"],"list-style-type":["list-style"],"list-style-position":["list-style"],"list-style-image":["list-style"]};function getPropertyFingerprint(propertyName,declaration,fingerprints){const realName=cssTree$4.property(propertyName).basename;if(realName==="background"){return propertyName+":"+cssTree$4.generate(declaration.value)}const declarationId=declaration.id;let fingerprint=fingerprints[declarationId];if(!fingerprint){switch(declaration.value.type){case"Value":const special={};let vendorId="";let iehack="";let raw=false;declaration.value.children.forEach((function walk(node){switch(node.type){case"Value":case"Brackets":case"Parentheses":node.children.forEach(walk);break;case"Raw":raw=true;break;case"Identifier":{const{name:name}=node;if(!vendorId){vendorId=cssTree$4.keyword(name).vendor}if(/\\[09]/.test(name)){iehack=RegExp.lastMatch}if(SAFE_VALUES.hasOwnProperty(realName)){if(SAFE_VALUES[realName].indexOf(name)===-1){special[name]=true}}else if(DONT_MIX_VALUE.hasOwnProperty(realName)){if(DONT_MIX_VALUE[realName].test(name)){special[name]=true}}break}case"Function":{let{name:name}=node;if(!vendorId){vendorId=cssTree$4.keyword(name).vendor}if(name==="rect"){const hasComma=node.children.some((node=>node.type==="Operator"&&node.value===","));if(!hasComma){name="rect-backward"}}special[name+"()"]=true;node.children.forEach(walk);break}case"Dimension":{const{unit:unit}=node;if(/\\[09]/.test(unit)){iehack=RegExp.lastMatch}switch(unit){case"rem":case"vw":case"vh":case"vmin":case"vmax":case"vm":special[unit]=true;break}break}}}));fingerprint=raw?"!"+fingerprintId++:"!"+Object.keys(special).sort()+"|"+iehack+vendorId;break;case"Raw":fingerprint="!"+declaration.value.value;break;default:fingerprint=cssTree$4.generate(declaration.value)}fingerprints[declarationId]=fingerprint}return propertyName+fingerprint}function needless(props,declaration,fingerprints){const property=cssTree$4.property(declaration.property);if(NEEDLESS_TABLE.hasOwnProperty(property.basename)){const table=NEEDLESS_TABLE[property.basename];for(const entry of table){const ppre=getPropertyFingerprint(property.prefix+entry,declaration,fingerprints);const prev=props.hasOwnProperty(ppre)?props[ppre]:null;if(prev&&(!declaration.important||prev.item.data.important)){return prev}}}}function processRule$2(rule,item,list,props,fingerprints){const declarations=rule.block.children;declarations.forEachRight((function(declaration,declarationItem){const{property:property}=declaration;const fingerprint=getPropertyFingerprint(property,declaration,fingerprints);const prev=props[fingerprint];if(prev&&!dontRestructure.has(property)){if(declaration.important&&!prev.item.data.important){props[fingerprint]={block:declarations,item:declarationItem};prev.block.remove(prev.item)}else{declarations.remove(declarationItem)}}else{const prev=needless(props,declaration,fingerprints);if(prev){declarations.remove(declarationItem)}else{declaration.fingerprint=fingerprint;props[fingerprint]={block:declarations,item:declarationItem}}}}));if(declarations.isEmpty){list.remove(item)}}function restructBlock(ast){const stylesheetMap={};const fingerprints=Object.create(null);cssTree$4.walk(ast,{visit:"Rule",reverse:true,enter(node,item,list){const stylesheet=this.block||this.stylesheet;const ruleId=(node.pseudoSignature||"")+"|"+node.prelude.children.first.id;let ruleMap;let props;if(!stylesheetMap.hasOwnProperty(stylesheet.id)){ruleMap={};stylesheetMap[stylesheet.id]=ruleMap}else{ruleMap=stylesheetMap[stylesheet.id]}if(ruleMap.hasOwnProperty(ruleId)){props=ruleMap[ruleId]}else{props={};ruleMap[ruleId]=props}processRule$2.call(this,node,item,list,props,fingerprints)}})}var _6RestructBlock$1=restructBlock;const cssTree$3=cjs;const utils$4=utils$6;function processRule$1(node,item,list){const selectors=node.prelude.children;const declarations=node.block.children;const nodeCompareMarker=selectors.first.compareMarker;const skippedCompareMarkers={};list.nextUntil(item.next,(function(next,nextItem){if(next.type!=="Rule"){return utils$4.unsafeToSkipNode.call(selectors,next)}if(node.pseudoSignature!==next.pseudoSignature){return true}const nextFirstSelector=next.prelude.children.head;const nextDeclarations=next.block.children;const nextCompareMarker=nextFirstSelector.data.compareMarker;if(nextCompareMarker in skippedCompareMarkers){return true}if(selectors.head===selectors.tail){if(selectors.first.id===nextFirstSelector.data.id){declarations.appendList(nextDeclarations);list.remove(nextItem);return}}if(utils$4.isEqualDeclarations(declarations,nextDeclarations)){const nextStr=nextFirstSelector.data.id;selectors.some(((data,item)=>{const curStr=data.id;if(nextStr<curStr){selectors.insert(nextFirstSelector,item);return true}if(!item.next){selectors.insert(nextFirstSelector);return true}}));list.remove(nextItem);return}if(nextCompareMarker===nodeCompareMarker){return true}skippedCompareMarkers[nextCompareMarker]=true}))}function mergeRule(ast){cssTree$3.walk(ast,{visit:"Rule",enter:processRule$1})}var _7MergeRuleset$1=mergeRule;const cssTree$2=cjs;const utils$3=utils$6;function calcSelectorLength(list){return list.reduce(((res,data)=>res+data.id.length+1),0)-1}function calcDeclarationsLength(tokens){let length=0;for(const token of tokens){length+=token.length}return length+tokens.length-1}function processRule(node,item,list){const avoidRulesMerge=this.block!==null?this.block.avoidRulesMerge:false;const selectors=node.prelude.children;const block=node.block;const disallowDownMarkers=Object.create(null);let allowMergeUp=true;let allowMergeDown=true;list.prevUntil(item.prev,(function(prev,prevItem){const prevBlock=prev.block;const prevType=prev.type;if(prevType!=="Rule"){const unsafe=utils$3.unsafeToSkipNode.call(selectors,prev);if(!unsafe&&prevType==="Atrule"&&prevBlock){cssTree$2.walk(prevBlock,{visit:"Rule",enter(node){node.prelude.children.forEach((data=>{disallowDownMarkers[data.compareMarker]=true}))}})}return unsafe}if(node.pseudoSignature!==prev.pseudoSignature){return true}const prevSelectors=prev.prelude.children;allowMergeDown=!prevSelectors.some((selector=>selector.compareMarker in disallowDownMarkers));if(!allowMergeDown&&!allowMergeUp){return true}if(allowMergeUp&&utils$3.isEqualSelectors(prevSelectors,selectors)){prevBlock.children.appendList(block.children);list.remove(item);return true}const diff=utils$3.compareDeclarations(block.children,prevBlock.children);if(diff.eq.length){if(!diff.ne1.length&&!diff.ne2.length){if(allowMergeDown){utils$3.addSelectors(selectors,prevSelectors);list.remove(prevItem)}return true}else if(!avoidRulesMerge){if(diff.ne1.length&&!diff.ne2.length){const selectorLength=calcSelectorLength(selectors);const blockLength=calcDeclarationsLength(diff.eq);if(allowMergeUp&&selectorLength<blockLength){utils$3.addSelectors(prevSelectors,selectors);block.children.fromArray(diff.ne1)}}else if(!diff.ne1.length&&diff.ne2.length){const selectorLength=calcSelectorLength(prevSelectors);const blockLength=calcDeclarationsLength(diff.eq);if(allowMergeDown&&selectorLength<blockLength){utils$3.addSelectors(selectors,prevSelectors);prevBlock.children.fromArray(diff.ne2)}}else{const newSelector={type:"SelectorList",loc:null,children:utils$3.addSelectors(prevSelectors.copy(),selectors)};const newBlockLength=calcSelectorLength(newSelector.children)+2;const blockLength=calcDeclarationsLength(diff.eq);if(blockLength>=newBlockLength){const newItem=list.createItem({type:"Rule",loc:null,prelude:newSelector,block:{type:"Block",loc:null,children:(new cssTree$2.List).fromArray(diff.eq)},pseudoSignature:node.pseudoSignature});block.children.fromArray(diff.ne1);prevBlock.children.fromArray(diff.ne2overrided);if(allowMergeUp){list.insert(newItem,prevItem)}else{list.insert(newItem,item)}return true}}}}if(allowMergeUp){allowMergeUp=!prevSelectors.some((prevSelector=>selectors.some((selector=>selector.compareMarker===prevSelector.compareMarker))))}prevSelectors.forEach((data=>{disallowDownMarkers[data.compareMarker]=true}))}))}function restructRule(ast){cssTree$2.walk(ast,{visit:"Rule",reverse:true,enter:processRule})}var _8RestructRuleset$1=restructRule;const index$3=prepare_1;const _1MergeAtrule=_1MergeAtrule$1;const _2InitialMergeRuleset=_2InitialMergeRuleset$1;const _3DisjoinRuleset=_3DisjoinRuleset$1;const _4RestructShorthand=_4RestructShorthand$1;const _6RestructBlock=_6RestructBlock$1;const _7MergeRuleset=_7MergeRuleset$1;const _8RestructRuleset=_8RestructRuleset$1;function restructure(ast,options){const indexer=index$3(ast,options);options.logger("prepare",ast);_1MergeAtrule(ast,options);options.logger("mergeAtrule",ast);_2InitialMergeRuleset(ast);options.logger("initialMergeRuleset",ast);_3DisjoinRuleset(ast);options.logger("disjoinRuleset",ast);_4RestructShorthand(ast,indexer);options.logger("restructShorthand",ast);_6RestructBlock(ast);options.logger("restructBlock",ast);_7MergeRuleset(ast);options.logger("mergeRuleset",ast);_8RestructRuleset(ast);options.logger("restructRuleset",ast)}var restructure_1=restructure;const cssTree$1=cjs;const usage=usage$1;const index=clean_1;const index$1=replace_1;const index$2=restructure_1;function readChunk(input,specialComments){const children=new cssTree$1.List;let nonSpaceTokenInBuffer=false;let protectedComment;input.nextUntil(input.head,((node,item,list)=>{if(node.type==="Comment"){if(!specialComments||node.value.charAt(0)!=="!"){list.remove(item);return}if(nonSpaceTokenInBuffer||protectedComment){return true}list.remove(item);protectedComment=node;return}if(node.type!=="WhiteSpace"){nonSpaceTokenInBuffer=true}children.insert(list.remove(item))}));return{comment:protectedComment,stylesheet:{type:"StyleSheet",loc:null,children:children}}}function compressChunk(ast,firstAtrulesAllowed,num,options){options.logger(`Compress block #${num}`,null,true);let seed=1;if(ast.type==="StyleSheet"){ast.firstAtrulesAllowed=firstAtrulesAllowed;ast.id=seed++}cssTree$1.walk(ast,{visit:"Atrule",enter(node){if(node.block!==null){node.block.id=seed++}}});options.logger("init",ast);index(ast,options);options.logger("clean",ast);index$1(ast);options.logger("replace",ast);if(options.restructuring){index$2(ast,options)}return ast}function getCommentsOption(options){let comments="comments"in options?options.comments:"exclamation";if(typeof comments==="boolean"){comments=comments?"exclamation":false}else if(comments!=="exclamation"&&comments!=="first-exclamation"){comments=false}return comments}function getRestructureOption(options){if("restructure"in options){return options.restructure}return"restructuring"in options?options.restructuring:true}function wrapBlock(block){return(new cssTree$1.List).appendData({type:"Rule",loc:null,prelude:{type:"SelectorList",loc:null,children:(new cssTree$1.List).appendData({type:"Selector",loc:null,children:(new cssTree$1.List).appendData({type:"TypeSelector",loc:null,name:"x"})})},block:block})}function compress$2(ast,options){ast=ast||{type:"StyleSheet",loc:null,children:new cssTree$1.List};options=options||{};const compressOptions={logger:typeof options.logger==="function"?options.logger:function(){},restructuring:getRestructureOption(options),forceMediaMerge:Boolean(options.forceMediaMerge),usage:options.usage?usage.buildIndex(options.usage):false};const output=new cssTree$1.List;let specialComments=getCommentsOption(options);let firstAtrulesAllowed=true;let input;let chunk;let chunkNum=1;let chunkChildren;if(options.clone){ast=cssTree$1.clone(ast)}if(ast.type==="StyleSheet"){input=ast.children;ast.children=output}else{input=wrapBlock(ast)}do{chunk=readChunk(input,Boolean(specialComments));compressChunk(chunk.stylesheet,firstAtrulesAllowed,chunkNum++,compressOptions);chunkChildren=chunk.stylesheet.children;if(chunk.comment){if(!output.isEmpty){output.insert(cssTree$1.List.createItem({type:"Raw",value:"\n"}))}output.insert(cssTree$1.List.createItem(chunk.comment));if(!chunkChildren.isEmpty){output.insert(cssTree$1.List.createItem({type:"Raw",value:"\n"}))}}if(firstAtrulesAllowed&&!chunkChildren.isEmpty){const lastRule=chunkChildren.last;if(lastRule.type!=="Atrule"||lastRule.name!=="import"&&lastRule.name!=="charset"){firstAtrulesAllowed=false}}if(specialComments!=="exclamation"){specialComments=false}output.appendList(chunkChildren)}while(!input.isEmpty);return{ast:ast}}var compress_1=compress$2;const cssTree=cjs;const compress$1=compress_1;const specificity$2=specificity_1;function encodeString(value){const stringApostrophe=cssTree.string.encode(value,true);const stringQuote=cssTree.string.encode(value);return stringApostrophe.length<stringQuote.length?stringApostrophe:stringQuote}const{lexer:lexer,tokenize:tokenize,parse:parse$1,generate:generate$1,walk:walk,find:find,findLast:findLast,findAll:findAll,fromPlainObject:fromPlainObject,toPlainObject:toPlainObject}=cssTree.fork({node:{String:{generate(node){this.token(cssTree.tokenTypes.String,encodeString(node.value))}},Url:{generate(node){const encodedUrl=cssTree.url.encode(node.value);const string=encodeString(node.value);this.token(cssTree.tokenTypes.Url,encodedUrl.length<=string.length+5?encodedUrl:"url("+string+")")}}}});syntax$2.compress=compress$1;syntax$2.specificity=specificity$2;syntax$2.find=find;syntax$2.findAll=findAll;syntax$2.findLast=findLast;syntax$2.fromPlainObject=fromPlainObject;syntax$2.generate=generate$1;syntax$2.lexer=lexer;syntax$2.parse=parse$1;syntax$2.toPlainObject=toPlainObject;syntax$2.tokenize=tokenize;syntax$2.walk=walk;var utils$2={};const processSelector=processSelector_1;const utils$1=utils$6;utils$2.processSelector=processSelector;utils$2.addSelectors=utils$1.addSelectors;utils$2.compareDeclarations=utils$1.compareDeclarations;utils$2.hasSimilarSelectors=utils$1.hasSimilarSelectors;utils$2.isEqualDeclarations=utils$1.isEqualDeclarations;utils$2.isEqualSelectors=utils$1.isEqualSelectors;utils$2.unsafeToSkipNode=utils$1.unsafeToSkipNode;const version=version$3;const syntax=syntax$2;const utils=utils$2;const{parse:parse,generate:generate,compress:compress}=syntax;function debugOutput(name,options,startTime,data){if(options.debug){console.error(`## ${name} done in %d ms\n`,Date.now()-startTime)}return data}function createDefaultLogger(level){let lastDebug;return function logger(title,ast){let line=title;if(ast){line=`[${((Date.now()-lastDebug)/1e3).toFixed(3)}s] ${line}`}if(level>1&&ast){let css=generate(ast);if(level===2&&css.length>256){css=css.substr(0,256)+"..."}line+=`\n ${css}\n`}console.error(line);lastDebug=Date.now()}}function buildCompressOptions(options){options={...options};if(typeof options.logger!=="function"&&options.debug){options.logger=createDefaultLogger(options.debug)}return options}function runHandler(ast,options,handlers){if(!Array.isArray(handlers)){handlers=[handlers]}handlers.forEach((fn=>fn(ast,options)))}function minify(context,source,options){options=options||{};const filename=options.filename||"<unknown>";let result;const ast=debugOutput("parsing",options,Date.now(),parse(source,{context:context,filename:filename,positions:Boolean(options.sourceMap)}));if(options.beforeCompress){debugOutput("beforeCompress",options,Date.now(),runHandler(ast,options,options.beforeCompress))}const compressResult=debugOutput("compress",options,Date.now(),compress(ast,buildCompressOptions(options)));if(options.afterCompress){debugOutput("afterCompress",options,Date.now(),runHandler(compressResult,options,options.afterCompress))}if(options.sourceMap){result=debugOutput("generate(sourceMap: true)",options,Date.now(),(()=>{const tmp=generate(compressResult.ast,{sourceMap:true});tmp.map._file=filename;tmp.map.setSourceContent(filename,source);return tmp})())}else{result=debugOutput("generate",options,Date.now(),{css:generate(compressResult.ast),map:null})}return result}function minifyStylesheet(source,options){return minify("stylesheet",source,options)}function minifyBlock(source,options){return minify("declarationList",source,options)}cjs$1.version=version.version;cjs$1.syntax=syntax;cjs$1.utils=utils;cjs$1.minify=minifyStylesheet;cjs$1.minifyBlock=minifyBlock;var style={};const csstree$3=cjs$2;const csswhat=require$$1;const{syntax:{specificity:specificity$1}}=cjs$1;const{visit:visit$5,matches:matches}=xast;const{attrsGroups:attrsGroups$7,inheritableAttrs:inheritableAttrs$3,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs$2}=_collections;const csstreeWalkSkip=csstree$3.walk.skip;const parseRule=(ruleNode,dynamic)=>{const declarations=[];ruleNode.block.children.forEach((cssNode=>{if(cssNode.type==="Declaration"){declarations.push({name:cssNode.property,value:csstree$3.generate(cssNode.value),important:cssNode.important===true})}}));const rules=[];csstree$3.walk(ruleNode.prelude,(node=>{if(node.type==="Selector"){const newNode=csstree$3.clone(node);let hasPseudoClasses=false;csstree$3.walk(newNode,((pseudoClassNode,item,list)=>{if(pseudoClassNode.type==="PseudoClassSelector"){hasPseudoClasses=true;list.remove(item)}}));rules.push({specificity:specificity$1(node),dynamic:hasPseudoClasses||dynamic,selector:csstree$3.generate(newNode),declarations:declarations})}}));return rules};const parseStylesheet=(css,dynamic)=>{const rules=[];const ast=csstree$3.parse(css,{parseValue:false,parseAtrulePrelude:false});csstree$3.walk(ast,(cssNode=>{if(cssNode.type==="Rule"){rules.push(...parseRule(cssNode,dynamic||false));return csstreeWalkSkip}if(cssNode.type==="Atrule"){if(cssNode.name==="keyframes"||cssNode.name==="-webkit-keyframes"){return csstreeWalkSkip}csstree$3.walk(cssNode,(ruleNode=>{if(ruleNode.type==="Rule"){rules.push(...parseRule(ruleNode,dynamic||true));return csstreeWalkSkip}}));return csstreeWalkSkip}}));return rules};const parseStyleDeclarations=css=>{const declarations=[];const ast=csstree$3.parse(css,{context:"declarationList",parseValue:false});csstree$3.walk(ast,(cssNode=>{if(cssNode.type==="Declaration"){declarations.push({name:cssNode.property,value:csstree$3.generate(cssNode.value),important:cssNode.important===true})}}));return declarations};const computeOwnStyle=(stylesheet,node)=>{const computedStyle={};const importantStyles=new Map;for(const[name,value]of Object.entries(node.attributes)){if(attrsGroups$7.presentation.has(name)){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,false)}}for(const{selector:selector,declarations:declarations,dynamic:dynamic}of stylesheet.rules){if(matches(node,selector)){for(const{name:name,value:value,important:important}of declarations){const computed=computedStyle[name];if(computed&&computed.type==="dynamic"){continue}if(dynamic){computedStyle[name]={type:"dynamic",inherited:false};continue}if(computed==null||important===true||importantStyles.get(name)===false){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,important)}}}}const styleDeclarations=node.attributes.style==null?[]:parseStyleDeclarations(node.attributes.style);for(const{name:name,value:value,important:important}of styleDeclarations){const computed=computedStyle[name];if(computed&&computed.type==="dynamic"){continue}if(computed==null||important===true||importantStyles.get(name)===false){computedStyle[name]={type:"static",inherited:false,value:value};importantStyles.set(name,important)}}return computedStyle};const compareSpecificity$1=(a,b)=>{for(let i=0;i<4;i+=1){if(a[i]<b[i]){return-1}else if(a[i]>b[i]){return 1}}return 0};style.compareSpecificity=compareSpecificity$1;const collectStylesheet$8=root=>{const rules=[];const parents=new Map;visit$5(root,{element:{enter:(node,parentNode)=>{parents.set(node,parentNode);if(node.name!=="style"){return}if(node.attributes.type==null||node.attributes.type===""||node.attributes.type==="text/css"){const dynamic=node.attributes.media!=null&&node.attributes.media!=="all";for(const child of node.children){if(child.type==="text"||child.type==="cdata"){rules.push(...parseStylesheet(child.value,dynamic))}}}}}});rules.sort(((a,b)=>compareSpecificity$1(a.specificity,b.specificity)));return{rules:rules,parents:parents}};style.collectStylesheet=collectStylesheet$8;const computeStyle$7=(stylesheet,node)=>{const{parents:parents}=stylesheet;const computedStyles=computeOwnStyle(stylesheet,node);let parent=parents.get(node);while(parent!=null&&parent.type!=="root"){const inheritedStyles=computeOwnStyle(stylesheet,parent);for(const[name,computed]of Object.entries(inheritedStyles)){if(computedStyles[name]==null&&inheritableAttrs$3.has(name)&&!presentationNonInheritableGroupAttrs$2.has(name)){computedStyles[name]={...computed,inherited:true}}}parent=parents.get(parent)}return computedStyles};style.computeStyle=computeStyle$7;const includesAttrSelector$1=(selector,name,value=null,traversed=false)=>{const selectors=typeof selector==="string"?csswhat.parse(selector):csswhat.parse(csstree$3.generate(selector.data));for(const subselector of selectors){const hasAttrSelector=subselector.some(((segment,index)=>{if(traversed){if(index===subselector.length-1){return false}const isNextTraversal=csswhat.isTraversal(subselector[index+1]);if(!isNextTraversal){return false}}if(segment.type!=="attribute"||segment.name!==name){return false}return value==null?true:segment.value===value}));if(hasAttrSelector){return true}}return false};style.includesAttrSelector=includesAttrSelector$1;const csstree$2=cjs$2;const{syntax:{specificity:specificity}}=cjs$1;const{visitSkip:visitSkip$5,querySelectorAll:querySelectorAll$3,detachNodeFromParent:detachNodeFromParent$h}=xast;const{compareSpecificity:compareSpecificity,includesAttrSelector:includesAttrSelector}=style;const{attrsGroups:attrsGroups$6,pseudoClasses:pseudoClasses}=_collections;inlineStyles$1.name="inlineStyles";inlineStyles$1.description="inline styles (additional options)";const preservedPseudos=[...pseudoClasses.functional,...pseudoClasses.treeStructural];inlineStyles$1.fn=(root,params)=>{const{onlyMatchedOnce:onlyMatchedOnce=true,removeMatchedSelectors:removeMatchedSelectors=true,useMqs:useMqs=["","screen"],usePseudos:usePseudos=[""]}=params;const styles=[];let selectors=[];return{element:{enter:(node,parentNode)=>{if(node.name==="foreignObject"){return visitSkip$5}if(node.name!=="style"||node.children.length===0){return}if(node.attributes.type!=null&&node.attributes.type!==""&&node.attributes.type!=="text/css"){return}const cssText=node.children.filter((child=>child.type==="text"||child.type==="cdata")).map((child=>child.value)).join("");let cssAst=null;try{cssAst=csstree$2.parse(cssText,{parseValue:false,parseCustomProperty:false})}catch{return}if(cssAst.type==="StyleSheet"){styles.push({node:node,parentNode:parentNode,cssAst:cssAst})}csstree$2.walk(cssAst,{visit:"Rule",enter(node){const atrule=this.atrule;let mediaQuery="";if(atrule!=null){mediaQuery=atrule.name;if(atrule.prelude!=null){mediaQuery+=` ${csstree$2.generate(atrule.prelude)}`}}if(!useMqs.includes(mediaQuery)){return}if(node.prelude.type==="SelectorList"){node.prelude.children.forEach(((childNode,item)=>{if(childNode.type==="Selector"){const pseudos=[];childNode.children.forEach(((grandchildNode,grandchildItem,grandchildList)=>{const isPseudo=grandchildNode.type==="PseudoClassSelector"||grandchildNode.type==="PseudoElementSelector";if(isPseudo&&!preservedPseudos.includes(grandchildNode.name)){pseudos.push({item:grandchildItem,list:grandchildList})}}));const pseudoSelectors=csstree$2.generate({type:"Selector",children:(new csstree$2.List).fromArray(pseudos.map((pseudo=>pseudo.item.data)))});if(usePseudos.includes(pseudoSelectors)){for(const pseudo of pseudos){pseudo.list.remove(pseudo.item)}}selectors.push({node:childNode,rule:node,item:item})}}))}}})}},root:{exit:()=>{if(styles.length===0){return}const sortedSelectors=selectors.slice().sort(((a,b)=>{const aSpecificity=specificity(a.item.data);const bSpecificity=specificity(b.item.data);return compareSpecificity(aSpecificity,bSpecificity)})).reverse();for(const selector of sortedSelectors){const selectorText=csstree$2.generate(selector.item.data);const matchedElements=[];try{for(const node of querySelectorAll$3(root,selectorText)){if(node.type==="element"){matchedElements.push(node)}}}catch(selectError){continue}if(matchedElements.length===0){continue}if(onlyMatchedOnce&&matchedElements.length>1){continue}for(const selectedEl of matchedElements){const styleDeclarationList=csstree$2.parse(selectedEl.attributes.style??"",{context:"declarationList",parseValue:false});if(styleDeclarationList.type!=="DeclarationList"){continue}const styleDeclarationItems=new Map;let firstListItem;csstree$2.walk(styleDeclarationList,{visit:"Declaration",enter(node,item){if(firstListItem==null){firstListItem=item}styleDeclarationItems.set(node.property.toLowerCase(),item)}});csstree$2.walk(selector.rule,{visit:"Declaration",enter(ruleDeclaration){const property=ruleDeclaration.property;if(attrsGroups$6.presentation.has(property)&&!selectors.some((selector=>includesAttrSelector(selector.item,property)))){delete selectedEl.attributes[property]}const matchedItem=styleDeclarationItems.get(property);const ruleDeclarationItem=styleDeclarationList.children.createItem(ruleDeclaration);if(matchedItem==null){styleDeclarationList.children.insert(ruleDeclarationItem,firstListItem)}else if(matchedItem.data.important!==true&&ruleDeclaration.important===true){styleDeclarationList.children.replace(matchedItem,ruleDeclarationItem);styleDeclarationItems.set(property,ruleDeclarationItem)}}});const newStyles=csstree$2.generate(styleDeclarationList);if(newStyles.length!==0){selectedEl.attributes.style=newStyles}}if(removeMatchedSelectors&&matchedElements.length!==0&&selector.rule.prelude.type==="SelectorList"){selector.rule.prelude.children.remove(selector.item)}selector.matchedElements=matchedElements}if(!removeMatchedSelectors){return}for(const selector of sortedSelectors){if(selector.matchedElements==null){continue}if(onlyMatchedOnce&&selector.matchedElements.length>1){continue}for(const selectedEl of selector.matchedElements){const classList=new Set(selectedEl.attributes.class==null?null:selectedEl.attributes.class.split(" "));for(const child of selector.node.children){if(child.type==="ClassSelector"&&!selectors.some((selector=>includesAttrSelector(selector.item,"class",child.name,true)))){classList.delete(child.name)}}if(classList.size===0){delete selectedEl.attributes.class}else{selectedEl.attributes.class=Array.from(classList).join(" ")}const firstSubSelector=selector.node.children.first;if(firstSubSelector?.type==="IdSelector"&&selectedEl.attributes.id===firstSubSelector.name&&!selectors.some((selector=>includesAttrSelector(selector.item,"id",firstSubSelector.name,true)))){delete selectedEl.attributes.id}}}for(const style of styles){csstree$2.walk(style.cssAst,{visit:"Rule",enter:function(node,item,list){if(node.type==="Rule"&&node.prelude.type==="SelectorList"&&node.prelude.children.isEmpty){list.remove(item)}}});if(style.cssAst.children.isEmpty){detachNodeFromParent$h(style.node,style.parentNode)}else{const firstChild=style.node.children[0];if(firstChild.type==="text"||firstChild.type==="cdata"){firstChild.value=csstree$2.generate(style.cssAst)}}}}}}};var minifyStyles$1={};var tools={};const{attrsGroups:attrsGroups$5,referencesProps:referencesProps$3}=_collections;const regReferencesUrl=/\burl\((["'])?#(.+?)\1\)/g;const regReferencesHref=/^#(.+?)$/;const regReferencesBegin=/(\w+)\.[a-zA-Z]/;tools.encodeSVGDatauri=(str,type)=>{var prefix="data:image/svg+xml";if(!type||type==="base64"){prefix+=";base64,";str=prefix+Buffer.from(str).toString("base64")}else if(type==="enc"){str=prefix+","+encodeURIComponent(str)}else if(type==="unenc"){str=prefix+","+str}return str};tools.decodeSVGDatauri=str=>{var regexp=/data:image\/svg\+xml(;charset=[^;,]*)?(;base64)?,(.*)/;var match=regexp.exec(str);if(!match)return str;var data=match[3];if(match[2]){str=Buffer.from(data,"base64").toString("utf8")}else if(data.charAt(0)==="%"){str=decodeURIComponent(data)}else if(data.charAt(0)==="<"){str=data}return str};tools.cleanupOutData=(data,params,command)=>{let str="";let delimiter;let prev;data.forEach(((item,i)=>{delimiter=" ";if(i==0)delimiter="";if(params.noSpaceAfterFlags&&(command=="A"||command=="a")){var pos=i%7;if(pos==4||pos==5)delimiter=""}const itemStr=params.leadingZero?removeLeadingZero$4(item):item.toString();if(params.negativeExtraSpace&&delimiter!=""&&(item<0||itemStr.charAt(0)==="."&&prev%1!==0)){delimiter=""}prev=item;str+=delimiter+itemStr}));return str};const removeLeadingZero$4=value=>{const strValue=value.toString();if(0<value&&value<1&&strValue.startsWith("0")){return strValue.slice(1)}if(-1<value&&value<0&&strValue[1]==="0"){return strValue[0]+strValue.slice(2)}return strValue};tools.removeLeadingZero=removeLeadingZero$4;const hasScripts$4=node=>{if(node.name==="script"&&node.children.length!==0){return true}if(node.name==="a"){const hasJsLinks=Object.entries(node.attributes).some((([attrKey,attrValue])=>(attrKey==="href"||attrKey.endsWith(":href"))&&attrValue!=null&&attrValue.trimStart().startsWith("javascript:")));if(hasJsLinks){return true}}const eventAttrs=[...attrsGroups$5.animationEvent,...attrsGroups$5.documentEvent,...attrsGroups$5.documentElementEvent,...attrsGroups$5.globalEvent,...attrsGroups$5.graphicalEvent];return eventAttrs.some((attr=>node.attributes[attr]!=null))};tools.hasScripts=hasScripts$4;const includesUrlReference$2=body=>new RegExp(regReferencesUrl).test(body);tools.includesUrlReference=includesUrlReference$2;const findReferences$2=(attribute,value)=>{const results=[];if(referencesProps$3.has(attribute)){const matches=value.matchAll(regReferencesUrl);for(const match of matches){results.push(match[2])}}if(attribute==="href"||attribute.endsWith(":href")){const match=regReferencesHref.exec(value);if(match!=null){results.push(match[1])}}if(attribute==="begin"){const match=regReferencesBegin.exec(value);if(match!=null){results.push(match[1])}}return results.map((body=>decodeURI(body)))};tools.findReferences=findReferences$2;const toFixed$4=(num,precision)=>{const pow=10**precision;return Math.round(num*pow)/pow};tools.toFixed=toFixed$4;const csso=cjs$1;const{detachNodeFromParent:detachNodeFromParent$g}=xast;const{hasScripts:hasScripts$3}=tools;minifyStyles$1.name="minifyStyles";minifyStyles$1.description="minifies styles and removes unused styles";minifyStyles$1.fn=(_root,{usage:usage,...params})=>{const styleElements=new Map;const elementsWithStyleAttributes=[];const tagsUsage=new Set;const idsUsage=new Set;const classesUsage=new Set;let enableTagsUsage=true;let enableIdsUsage=true;let enableClassesUsage=true;let forceUsageDeoptimized=false;if(typeof usage==="boolean"){enableTagsUsage=usage;enableIdsUsage=usage;enableClassesUsage=usage}else if(usage){enableTagsUsage=usage.tags==null?true:usage.tags;enableIdsUsage=usage.ids==null?true:usage.ids;enableClassesUsage=usage.classes==null?true:usage.classes;forceUsageDeoptimized=usage.force==null?false:usage.force}let deoptimized=false;return{element:{enter:(node,parentNode)=>{if(hasScripts$3(node)){deoptimized=true}tagsUsage.add(node.name);if(node.attributes.id!=null){idsUsage.add(node.attributes.id)}if(node.attributes.class!=null){for(const className of node.attributes.class.split(/\s+/)){classesUsage.add(className)}}if(node.name==="style"&&node.children.length!==0){styleElements.set(node,parentNode)}else if(node.attributes.style!=null){elementsWithStyleAttributes.push(node)}}},root:{exit:()=>{const cssoUsage={};if(!deoptimized||forceUsageDeoptimized){if(enableTagsUsage){cssoUsage.tags=Array.from(tagsUsage)}if(enableIdsUsage){cssoUsage.ids=Array.from(idsUsage)}if(enableClassesUsage){cssoUsage.classes=Array.from(classesUsage)}}for(const[styleNode,styleNodeParent]of styleElements.entries()){if(styleNode.children[0].type==="text"||styleNode.children[0].type==="cdata"){const cssText=styleNode.children[0].value;const minified=csso.minify(cssText,{...params,usage:cssoUsage}).css;if(minified.length===0){detachNodeFromParent$g(styleNode,styleNodeParent);continue}if(cssText.indexOf(">")>=0||cssText.indexOf("<")>=0){styleNode.children[0].type="cdata";styleNode.children[0].value=minified}else{styleNode.children[0].type="text";styleNode.children[0].value=minified}}}for(const node of elementsWithStyleAttributes){const elemStyle=node.attributes.style;node.attributes.style=csso.minifyBlock(elemStyle,{...params}).css}}}}};var cleanupIds$1={};const{visitSkip:visitSkip$4}=xast;const{hasScripts:hasScripts$2,findReferences:findReferences$1}=tools;cleanupIds$1.name="cleanupIds";cleanupIds$1.description="removes unused IDs and minifies used";const generateIdChars=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];const maxIdIndex=generateIdChars.length-1;const hasStringPrefix=(string,prefixes)=>{for(const prefix of prefixes){if(string.startsWith(prefix)){return true}}return false};const generateId=currentId=>{if(currentId==null){return[0]}currentId[currentId.length-1]+=1;for(let i=currentId.length-1;i>0;i--){if(currentId[i]>maxIdIndex){currentId[i]=0;if(currentId[i-1]!==undefined){currentId[i-1]++}}}if(currentId[0]>maxIdIndex){currentId[0]=0;currentId.unshift(0)}return currentId};const getIdString=arr=>arr.map((i=>generateIdChars[i])).join("");cleanupIds$1.fn=(_root,params)=>{const{remove:remove=true,minify:minify=true,preserve:preserve=[],preservePrefixes:preservePrefixes=[],force:force=false}=params;const preserveIds=new Set(Array.isArray(preserve)?preserve:preserve?[preserve]:[]);const preserveIdPrefixes=Array.isArray(preservePrefixes)?preservePrefixes:preservePrefixes?[preservePrefixes]:[];const nodeById=new Map;const referencesById=new Map;let deoptimized=false;return{element:{enter:node=>{if(!force){if(node.name==="style"&&node.children.length!==0||hasScripts$2(node)){deoptimized=true;return}if(node.name==="svg"){let hasDefsOnly=true;for(const child of node.children){if(child.type!=="element"||child.name!=="defs"){hasDefsOnly=false;break}}if(hasDefsOnly){return visitSkip$4}}}for(const[name,value]of Object.entries(node.attributes)){if(name==="id"){const id=value;if(nodeById.has(id)){delete node.attributes.id}else{nodeById.set(id,node)}}else{const ids=findReferences$1(name,value);for(const id of ids){let refs=referencesById.get(id);if(refs==null){refs=[];referencesById.set(id,refs)}refs.push({element:node,name:name})}}}}},root:{exit:()=>{if(deoptimized){return}const isIdPreserved=id=>preserveIds.has(id)||hasStringPrefix(id,preserveIdPrefixes);let currentId=null;for(const[id,refs]of referencesById){const node=nodeById.get(id);if(node!=null){if(minify&&isIdPreserved(id)===false){let currentIdString=null;do{currentId=generateId(currentId);currentIdString=getIdString(currentId)}while(isIdPreserved(currentIdString)||referencesById.has(currentIdString)&&nodeById.get(currentIdString)==null);node.attributes.id=currentIdString;for(const{element:element,name:name}of refs){const value=element.attributes[name];if(value.includes("#")){element.attributes[name]=value.replace(`#${encodeURI(id)}`,`#${currentIdString}`)}else{element.attributes[name]=value.replace(`${id}.`,`${currentIdString}.`)}}}nodeById.delete(id)}}if(remove){for(const[id,node]of nodeById){if(isIdPreserved(id)===false){delete node.attributes.id}}}}}}};var removeUselessDefs$1={};const{detachNodeFromParent:detachNodeFromParent$f}=xast;const{elemsGroups:elemsGroups$5}=_collections;removeUselessDefs$1.name="removeUselessDefs";removeUselessDefs$1.description="removes elements in <defs> without id";removeUselessDefs$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="defs"){const usefulNodes=[];collectUsefulNodes(node,usefulNodes);if(usefulNodes.length===0){detachNodeFromParent$f(node,parentNode)}for(const usefulNode of usefulNodes){Object.defineProperty(usefulNode,"parentNode",{writable:true,value:node})}node.children=usefulNodes}else if(elemsGroups$5.nonRendering.has(node.name)&&node.attributes.id==null){detachNodeFromParent$f(node,parentNode)}}}});const collectUsefulNodes=(node,usefulNodes)=>{for(const child of node.children){if(child.type==="element"){if(child.attributes.id!=null||child.name==="style"){usefulNodes.push(child)}else{collectUsefulNodes(child,usefulNodes)}}}};var cleanupNumericValues$1={};const{removeLeadingZero:removeLeadingZero$3}=tools;cleanupNumericValues$1.name="cleanupNumericValues";cleanupNumericValues$1.description="rounds numeric values to the fixed precision, removes default ‘px’ units";const regNumericValues$3=/^([-+]?\d*\.?\d+([eE][-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/;const absoluteLengths$1={cm:96/2.54,mm:96/25.4,in:96,pt:4/3,pc:16,px:1};cleanupNumericValues$1.fn=(_root,params)=>{const{floatPrecision:floatPrecision=3,leadingZero:leadingZero=true,defaultPx:defaultPx=true,convertToPx:convertToPx=true}=params;return{element:{enter:node=>{if(node.attributes.viewBox!=null){const nums=node.attributes.viewBox.split(/\s,?\s*|,\s*/g);node.attributes.viewBox=nums.map((value=>{const num=Number(value);return Number.isNaN(num)?value:Number(num.toFixed(floatPrecision))})).join(" ")}for(const[name,value]of Object.entries(node.attributes)){if(name==="version"){continue}const match=value.match(regNumericValues$3);if(match){let num=Number(Number(match[1]).toFixed(floatPrecision));let matchedUnit=match[3]||"";let units=matchedUnit;if(convertToPx&&units!==""&&units in absoluteLengths$1){const pxNum=Number((absoluteLengths$1[units]*Number(match[1])).toFixed(floatPrecision));if(pxNum.toString().length<match[0].length){num=pxNum;units="px"}}let str;if(leadingZero){str=removeLeadingZero$3(num)}else{str=num.toString()}if(defaultPx&&units==="px"){units=""}node.attributes[name]=str+units}}}}}};var convertColors$1={};const collections=_collections;convertColors$1.name="convertColors";convertColors$1.description="converts colors: rgb() to #rrggbb and #rrggbb to #rgb";const rNumber="([+-]?(?:\\d*\\.\\d+|\\d+\\.?)%?)";const rComma="\\s*,\\s*";const regRGB=new RegExp("^rgb\\(\\s*"+rNumber+rComma+rNumber+rComma+rNumber+"\\s*\\)$");const regHEX=/^#(([a-fA-F0-9])\2){3}$/;const convertRgbToHex=([r,g,b])=>{const hexNumber=(256+r<<8|g)<<8|b;return"#"+hexNumber.toString(16).slice(1).toUpperCase()};convertColors$1.fn=(_root,params)=>{const{currentColor:currentColor=false,names2hex:names2hex=true,rgb2hex:rgb2hex=true,shorthex:shorthex=true,shortname:shortname=true}=params;return{element:{enter:node=>{for(const[name,value]of Object.entries(node.attributes)){if(collections.colorsProps.has(name)){let val=value;if(currentColor){let matched;if(typeof currentColor==="string"){matched=val===currentColor}else if(currentColor instanceof RegExp){matched=currentColor.exec(val)!=null}else{matched=val!=="none"}if(matched){val="currentColor"}}if(names2hex){const colorName=val.toLowerCase();if(collections.colorsNames[colorName]!=null){val=collections.colorsNames[colorName]}}if(rgb2hex){let match=val.match(regRGB);if(match!=null){let nums=match.slice(1,4).map((m=>{let n;if(m.indexOf("%")>-1){n=Math.round(parseFloat(m)*2.55)}else{n=Number(m)}return Math.max(0,Math.min(n,255))}));val=convertRgbToHex(nums)}}if(shorthex){let match=val.match(regHEX);if(match!=null){val="#"+match[0][1]+match[0][3]+match[0][5]}}if(shortname){const colorName=val.toLowerCase();if(collections.colorsShortNames[colorName]!=null){val=collections.colorsShortNames[colorName]}}node.attributes[name]=val}}}}}};var removeUnknownsAndDefaults$1={};const{visitSkip:visitSkip$3,detachNodeFromParent:detachNodeFromParent$e}=xast;const{collectStylesheet:collectStylesheet$7,computeStyle:computeStyle$6}=style;const{elems:elems$1,attrsGroups:attrsGroups$4,elemsGroups:elemsGroups$4,attrsGroupsDefaults:attrsGroupsDefaults$2,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs$1}=_collections;removeUnknownsAndDefaults$1.name="removeUnknownsAndDefaults";removeUnknownsAndDefaults$1.description="removes unknown elements content and attributes, removes attrs with default values";const allowedChildrenPerElement=new Map;const allowedAttributesPerElement=new Map;const attributesDefaultsPerElement=new Map;for(const[name,config]of Object.entries(elems$1)){const allowedChildren=new Set;if(config.content){for(const elementName of config.content){allowedChildren.add(elementName)}}if(config.contentGroups){for(const contentGroupName of config.contentGroups){const elemsGroup=elemsGroups$4[contentGroupName];if(elemsGroup){for(const elementName of elemsGroup){allowedChildren.add(elementName)}}}}const allowedAttributes=new Set;if(config.attrs){for(const attrName of config.attrs){allowedAttributes.add(attrName)}}const attributesDefaults=new Map;if(config.defaults){for(const[attrName,defaultValue]of Object.entries(config.defaults)){attributesDefaults.set(attrName,defaultValue)}}for(const attrsGroupName of config.attrsGroups){const attrsGroup=attrsGroups$4[attrsGroupName];if(attrsGroup){for(const attrName of attrsGroup){allowedAttributes.add(attrName)}}const groupDefaults=attrsGroupsDefaults$2[attrsGroupName];if(groupDefaults){for(const[attrName,defaultValue]of Object.entries(groupDefaults)){attributesDefaults.set(attrName,defaultValue)}}}allowedChildrenPerElement.set(name,allowedChildren);allowedAttributesPerElement.set(name,allowedAttributes);attributesDefaultsPerElement.set(name,attributesDefaults)}removeUnknownsAndDefaults$1.fn=(root,params)=>{const{unknownContent:unknownContent=true,unknownAttrs:unknownAttrs=true,defaultAttrs:defaultAttrs=true,defaultMarkupDeclarations:defaultMarkupDeclarations=true,uselessOverrides:uselessOverrides=true,keepDataAttrs:keepDataAttrs=true,keepAriaAttrs:keepAriaAttrs=true,keepRoleAttr:keepRoleAttr=false}=params;const stylesheet=collectStylesheet$7(root);return{instruction:{enter:node=>{if(defaultMarkupDeclarations){node.value=node.value.replace(/\s*standalone\s*=\s*(["'])no\1/,"")}}},element:{enter:(node,parentNode)=>{if(node.name.includes(":")){return}if(node.name==="foreignObject"){return visitSkip$3}if(unknownContent&&parentNode.type==="element"){const allowedChildren=allowedChildrenPerElement.get(parentNode.name);if(allowedChildren==null||allowedChildren.size===0){if(allowedChildrenPerElement.get(node.name)==null){detachNodeFromParent$e(node,parentNode);return}}else{if(allowedChildren.has(node.name)===false){detachNodeFromParent$e(node,parentNode);return}}}const allowedAttributes=allowedAttributesPerElement.get(node.name);const attributesDefaults=attributesDefaultsPerElement.get(node.name);const computedParentStyle=parentNode.type==="element"?computeStyle$6(stylesheet,parentNode):null;for(const[name,value]of Object.entries(node.attributes)){if(keepDataAttrs&&name.startsWith("data-")){continue}if(keepAriaAttrs&&name.startsWith("aria-")){continue}if(keepRoleAttr&&name==="role"){continue}if(name==="xmlns"){continue}if(name.includes(":")){const[prefix]=name.split(":");if(prefix!=="xml"&&prefix!=="xlink"){continue}}if(unknownAttrs&&allowedAttributes&&allowedAttributes.has(name)===false){delete node.attributes[name]}if(defaultAttrs&&node.attributes.id==null&&attributesDefaults&&attributesDefaults.get(name)===value){if(computedParentStyle?.[name]==null){delete node.attributes[name]}}if(uselessOverrides&&node.attributes.id==null){const style=computedParentStyle?.[name];if(presentationNonInheritableGroupAttrs$1.has(name)===false&&style!=null&&style.type==="static"&&style.value===value){delete node.attributes[name]}}}}}}};var removeNonInheritableGroupAttrs$1={};const{inheritableAttrs:inheritableAttrs$2,attrsGroups:attrsGroups$3,presentationNonInheritableGroupAttrs:presentationNonInheritableGroupAttrs}=_collections;removeNonInheritableGroupAttrs$1.name="removeNonInheritableGroupAttrs";removeNonInheritableGroupAttrs$1.description="removes non-inheritable group’s presentational attributes";removeNonInheritableGroupAttrs$1.fn=()=>({element:{enter:node=>{if(node.name==="g"){for(const name of Object.keys(node.attributes)){if(attrsGroups$3.presentation.has(name)&&!inheritableAttrs$2.has(name)&&!presentationNonInheritableGroupAttrs.has(name)){delete node.attributes[name]}}}}}});var removeUselessStrokeAndFill$1={};const{visit:visit$4,visitSkip:visitSkip$2,detachNodeFromParent:detachNodeFromParent$d}=xast;const{collectStylesheet:collectStylesheet$6,computeStyle:computeStyle$5}=style;const{hasScripts:hasScripts$1}=tools;const{elemsGroups:elemsGroups$3}=_collections;removeUselessStrokeAndFill$1.name="removeUselessStrokeAndFill";removeUselessStrokeAndFill$1.description="removes useless stroke and fill attributes";removeUselessStrokeAndFill$1.fn=(root,params)=>{const{stroke:removeStroke=true,fill:removeFill=true,removeNone:removeNone=false}=params;let hasStyleOrScript=false;visit$4(root,{element:{enter:node=>{if(node.name==="style"||hasScripts$1(node)){hasStyleOrScript=true}}}});if(hasStyleOrScript){return null}const stylesheet=collectStylesheet$6(root);return{element:{enter:(node,parentNode)=>{if(node.attributes.id!=null){return visitSkip$2}if(!elemsGroups$3.shape.has(node.name)){return}const computedStyle=computeStyle$5(stylesheet,node);const stroke=computedStyle.stroke;const strokeOpacity=computedStyle["stroke-opacity"];const strokeWidth=computedStyle["stroke-width"];const markerEnd=computedStyle["marker-end"];const fill=computedStyle.fill;const fillOpacity=computedStyle["fill-opacity"];const computedParentStyle=parentNode.type==="element"?computeStyle$5(stylesheet,parentNode):null;const parentStroke=computedParentStyle==null?null:computedParentStyle.stroke;if(removeStroke){if(stroke==null||stroke.type==="static"&&stroke.value=="none"||strokeOpacity!=null&&strokeOpacity.type==="static"&&strokeOpacity.value==="0"||strokeWidth!=null&&strokeWidth.type==="static"&&strokeWidth.value==="0"){if(strokeWidth!=null&&strokeWidth.type==="static"&&strokeWidth.value==="0"||markerEnd==null){for(const name of Object.keys(node.attributes)){if(name.startsWith("stroke")){delete node.attributes[name]}}if(parentStroke!=null&&parentStroke.type==="static"&&parentStroke.value!=="none"){node.attributes.stroke="none"}}}}if(removeFill){if(fill!=null&&fill.type==="static"&&fill.value==="none"||fillOpacity!=null&&fillOpacity.type==="static"&&fillOpacity.value==="0"){for(const name of Object.keys(node.attributes)){if(name.startsWith("fill-")){delete node.attributes[name]}}if(fill==null||fill.type==="static"&&fill.value!=="none"){node.attributes.fill="none"}}}if(removeNone){if((stroke==null||node.attributes.stroke==="none")&&(fill!=null&&fill.type==="static"&&fill.value==="none"||node.attributes.fill==="none")){detachNodeFromParent$d(node,parentNode)}}}}}};var removeViewBox$1={};removeViewBox$1.name="removeViewBox";removeViewBox$1.description="removes viewBox attribute when possible";const viewBoxElems=new Set(["pattern","svg","symbol"]);removeViewBox$1.fn=()=>({element:{enter:(node,parentNode)=>{if(viewBoxElems.has(node.name)&&node.attributes.viewBox!=null&&node.attributes.width!=null&&node.attributes.height!=null){if(node.name==="svg"&&parentNode.type!=="root"){return}const nums=node.attributes.viewBox.split(/[ ,]+/g);if(nums[0]==="0"&&nums[1]==="0"&&node.attributes.width.replace(/px$/,"")===nums[2]&&node.attributes.height.replace(/px$/,"")===nums[3]){delete node.attributes.viewBox}}}}});var cleanupEnableBackground$1={};const csstree$1=cjs$2;const{visit:visit$3}=xast;cleanupEnableBackground$1.name="cleanupEnableBackground";cleanupEnableBackground$1.description="remove or cleanup enable-background attribute when possible";const regEnableBackground=/^new\s0\s0\s([-+]?\d*\.?\d+([eE][-+]?\d+)?)\s([-+]?\d*\.?\d+([eE][-+]?\d+)?)$/;cleanupEnableBackground$1.fn=root=>{let hasFilter=false;visit$3(root,{element:{enter:node=>{if(node.name==="filter"){hasFilter=true}}}});return{element:{enter:node=>{let newStyle=null;let enableBackgroundDeclaration=null;if(node.attributes.style!=null){newStyle=csstree$1.parse(node.attributes.style,{context:"declarationList"});if(newStyle.type==="DeclarationList"){const enableBackgroundDeclarations=[];csstree$1.walk(newStyle,((node,nodeItem)=>{if(node.type==="Declaration"&&node.property==="enable-background"){enableBackgroundDeclarations.push(nodeItem);enableBackgroundDeclaration=nodeItem}}));for(let i=0;i<enableBackgroundDeclarations.length-1;i++){newStyle.children.remove(enableBackgroundDeclarations[i])}}}if(!hasFilter){delete node.attributes["enable-background"];if(newStyle?.type==="DeclarationList"){if(enableBackgroundDeclaration){newStyle.children.remove(enableBackgroundDeclaration)}if(newStyle.children.isEmpty){delete node.attributes.style}else{node.attributes.style=csstree$1.generate(newStyle)}}return}const hasDimensions=node.attributes.width!=null&&node.attributes.height!=null;if((node.name==="svg"||node.name==="mask"||node.name==="pattern")&&hasDimensions){const attrValue=node.attributes["enable-background"];const attrCleaned=cleanupValue(attrValue,node.name,node.attributes.width,node.attributes.height);if(attrCleaned){node.attributes["enable-background"]=attrCleaned}else{delete node.attributes["enable-background"]}if(newStyle?.type==="DeclarationList"&&enableBackgroundDeclaration){const styleValue=csstree$1.generate(enableBackgroundDeclaration.data.value);const styleCleaned=cleanupValue(styleValue,node.name,node.attributes.width,node.attributes.height);if(styleCleaned){enableBackgroundDeclaration.data.value={type:"Raw",value:styleCleaned}}else{newStyle.children.remove(enableBackgroundDeclaration)}}}if(newStyle?.type==="DeclarationList"){if(newStyle.children.isEmpty){delete node.attributes.style}else{node.attributes.style=csstree$1.generate(newStyle)}}}}}};const cleanupValue=(value,nodeName,width,height)=>{const match=regEnableBackground.exec(value);if(match!=null&&width===match[1]&&height===match[3]){return nodeName==="svg"?undefined:"new"}return value};var removeHiddenElems$1={};var path={};const{removeLeadingZero:removeLeadingZero$2,toFixed:toFixed$3}=tools;const argsCountPerCommand={M:2,m:2,Z:0,z:0,L:2,l:2,H:1,h:1,V:1,v:1,C:6,c:6,S:4,s:4,Q:4,q:4,T:2,t:2,A:7,a:7};const isCommand=c=>c in argsCountPerCommand;const isWsp=c=>{const codePoint=c.codePointAt(0);return codePoint===32||codePoint===9||codePoint===13||codePoint===10};const isDigit=c=>{const codePoint=c.codePointAt(0);if(codePoint==null){return false}return 48<=codePoint&&codePoint<=57};const readNumber=(string,cursor)=>{let i=cursor;let value="";let state="none";for(;i<string.length;i+=1){const c=string[i];if(c==="+"||c==="-"){if(state==="none"){state="sign";value+=c;continue}if(state==="e"){state="exponent_sign";value+=c;continue}}if(isDigit(c)){if(state==="none"||state==="sign"||state==="whole"){state="whole";value+=c;continue}if(state==="decimal_point"||state==="decimal"){state="decimal";value+=c;continue}if(state==="e"||state==="exponent_sign"||state==="exponent"){state="exponent";value+=c;continue}}if(c==="."){if(state==="none"||state==="sign"||state==="whole"){state="decimal_point";value+=c;continue}}if(c==="E"||c=="e"){if(state==="whole"||state==="decimal_point"||state==="decimal"){state="e";value+=c;continue}}break}const number=Number.parseFloat(value);if(Number.isNaN(number)){return[cursor,null]}else{return[i-1,number]}};const parsePathData$3=string=>{const pathData=[];let command=null;let args=[];let argsCount=0;let canHaveComma=false;let hadComma=false;for(let i=0;i<string.length;i+=1){const c=string.charAt(i);if(isWsp(c)){continue}if(canHaveComma&&c===","){if(hadComma){break}hadComma=true;continue}if(isCommand(c)){if(hadComma){return pathData}if(command==null){if(c!=="M"&&c!=="m"){return pathData}}else{if(args.length!==0){return pathData}}command=c;args=[];argsCount=argsCountPerCommand[command];canHaveComma=false;if(argsCount===0){pathData.push({command:command,args:args})}continue}if(command==null){return pathData}let newCursor=i;let number=null;if(command==="A"||command==="a"){const position=args.length;if(position===0||position===1){if(c!=="+"&&c!=="-"){[newCursor,number]=readNumber(string,i)}}if(position===2||position===5||position===6){[newCursor,number]=readNumber(string,i)}if(position===3||position===4){if(c==="0"){number=0}if(c==="1"){number=1}}}else{[newCursor,number]=readNumber(string,i)}if(number==null){return pathData}args.push(number);canHaveComma=true;hadComma=false;i=newCursor;if(args.length===argsCount){pathData.push({command:command,args:args});if(command==="M"){command="L"}if(command==="m"){command="l"}args=[]}}return pathData};path.parsePathData=parsePathData$3;const roundAndStringify=(number,precision)=>{if(precision!=null){number=toFixed$3(number,precision)}return{roundedStr:removeLeadingZero$2(number),rounded:number}};const stringifyArgs=(command,args,precision,disableSpaceAfterFlags)=>{let result="";let previous;for(let i=0;i<args.length;i++){const{roundedStr:roundedStr,rounded:rounded}=roundAndStringify(args[i],precision);if(disableSpaceAfterFlags&&(command==="A"||command==="a")&&(i%7===4||i%7===5)){result+=roundedStr}else if(i===0||rounded<0){result+=roundedStr}else if(!Number.isInteger(previous)&&rounded!=0&&rounded<1&&rounded>-1){result+=roundedStr}else{result+=` ${roundedStr}`}previous=rounded}return result};const stringifyPathData$2=({pathData:pathData,precision:precision,disableSpaceAfterFlags:disableSpaceAfterFlags})=>{if(pathData.length===1){const{command:command,args:args}=pathData[0];return command+stringifyArgs(command,args,precision,disableSpaceAfterFlags)}let result="";let prev={...pathData[0]};if(pathData[1].command==="L"){prev.command="M"}else if(pathData[1].command==="l"){prev.command="m"}for(let i=1;i<pathData.length;i++){const{command:command,args:args}=pathData[i];if(prev.command===command&&prev.command!=="M"&&prev.command!=="m"||prev.command==="M"&&command==="L"||prev.command==="m"&&command==="l"){prev.args=[...prev.args,...args];if(i===pathData.length-1){result+=prev.command+stringifyArgs(prev.command,prev.args,precision,disableSpaceAfterFlags)}}else{result+=prev.command+stringifyArgs(prev.command,prev.args,precision,disableSpaceAfterFlags);if(i===pathData.length-1){result+=command+stringifyArgs(command,args,precision,disableSpaceAfterFlags)}else{prev={command:command,args:args}}}}return result};path.stringifyPathData=stringifyPathData$2;const{elemsGroups:elemsGroups$2}=_collections;const{visit:visit$2,visitSkip:visitSkip$1,querySelector:querySelector$1,detachNodeFromParent:detachNodeFromParent$c}=xast;const{collectStylesheet:collectStylesheet$5,computeStyle:computeStyle$4}=style;const{parsePathData:parsePathData$2}=path;const{hasScripts:hasScripts,findReferences:findReferences}=tools;const nonRendering=elemsGroups$2.nonRendering;removeHiddenElems$1.name="removeHiddenElems";removeHiddenElems$1.description="removes hidden elements (zero sized, with absent attributes)";removeHiddenElems$1.fn=(root,params)=>{const{isHidden:isHidden=true,displayNone:displayNone=true,opacity0:opacity0=true,circleR0:circleR0=true,ellipseRX0:ellipseRX0=true,ellipseRY0:ellipseRY0=true,rectWidth0:rectWidth0=true,rectHeight0:rectHeight0=true,patternWidth0:patternWidth0=true,patternHeight0:patternHeight0=true,imageWidth0:imageWidth0=true,imageHeight0:imageHeight0=true,pathEmptyD:pathEmptyD=true,polylineEmptyPoints:polylineEmptyPoints=true,polygonEmptyPoints:polygonEmptyPoints=true}=params;const stylesheet=collectStylesheet$5(root);const nonRenderedNodes=new Map;const removedDefIds=new Set;const allDefs=new Map;const allReferences=new Set;const referencesById=new Map;let deoptimized=false;function removeElement(node,parentNode){if(node.type==="element"&&node.attributes.id!=null&&parentNode.type==="element"&&parentNode.name==="defs"){removedDefIds.add(node.attributes.id)}detachNodeFromParent$c(node,parentNode)}visit$2(root,{element:{enter:(node,parentNode)=>{if(nonRendering.has(node.name)){if(node.attributes.id==null){detachNodeFromParent$c(node,parentNode);return visitSkip$1}nonRenderedNodes.set(node,parentNode);return visitSkip$1}const computedStyle=computeStyle$4(stylesheet,node);if(opacity0&&computedStyle.opacity&&computedStyle.opacity.type==="static"&&computedStyle.opacity.value==="0"){removeElement(node,parentNode)}}}});return{element:{enter:(node,parentNode)=>{if(node.name==="style"&&node.children.length!==0||hasScripts(node)){deoptimized=true;return}if(node.name==="defs"){allDefs.set(node,parentNode)}if(node.name==="use"){for(const attr of Object.keys(node.attributes)){if(attr!=="href"&&!attr.endsWith(":href"))continue;const value=node.attributes[attr];const id=value.slice(1);let refs=referencesById.get(id);if(!refs){refs=[];referencesById.set(id,refs)}refs.push({node:node,parentNode:parentNode})}}const computedStyle=computeStyle$4(stylesheet,node);if(isHidden&&computedStyle.visibility&&computedStyle.visibility.type==="static"&&computedStyle.visibility.value==="hidden"&&querySelector$1(node,"[visibility=visible]")==null){removeElement(node,parentNode);return}if(displayNone&&computedStyle.display&&computedStyle.display.type==="static"&&computedStyle.display.value==="none"&&node.name!=="marker"){removeElement(node,parentNode);return}if(circleR0&&node.name==="circle"&&node.children.length===0&&node.attributes.r==="0"){removeElement(node,parentNode);return}if(ellipseRX0&&node.name==="ellipse"&&node.children.length===0&&node.attributes.rx==="0"){removeElement(node,parentNode);return}if(ellipseRY0&&node.name==="ellipse"&&node.children.length===0&&node.attributes.ry==="0"){removeElement(node,parentNode);return}if(rectWidth0&&node.name==="rect"&&node.children.length===0&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(rectHeight0&&rectWidth0&&node.name==="rect"&&node.children.length===0&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(patternWidth0&&node.name==="pattern"&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(patternHeight0&&node.name==="pattern"&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(imageWidth0&&node.name==="image"&&node.attributes.width==="0"){removeElement(node,parentNode);return}if(imageHeight0&&node.name==="image"&&node.attributes.height==="0"){removeElement(node,parentNode);return}if(pathEmptyD&&node.name==="path"){if(node.attributes.d==null){removeElement(node,parentNode);return}const pathData=parsePathData$2(node.attributes.d);if(pathData.length===0){removeElement(node,parentNode);return}if(pathData.length===1&&computedStyle["marker-start"]==null&&computedStyle["marker-end"]==null){removeElement(node,parentNode);return}}if(polylineEmptyPoints&&node.name==="polyline"&&node.attributes.points==null){removeElement(node,parentNode);return}if(polygonEmptyPoints&&node.name==="polygon"&&node.attributes.points==null){removeElement(node,parentNode);return}for(const[name,value]of Object.entries(node.attributes)){const ids=findReferences(name,value);for(const id of ids){allReferences.add(id)}}}},root:{exit:()=>{for(const id of removedDefIds){const refs=referencesById.get(id);if(refs){for(const{node:node,parentNode:parentNode}of refs){detachNodeFromParent$c(node,parentNode)}}}if(!deoptimized){for(const[nonRenderedNode,nonRenderedParent]of nonRenderedNodes.entries()){const id=nonRenderedNode.attributes.id;if(!allReferences.has(id)){detachNodeFromParent$c(nonRenderedNode,nonRenderedParent)}}}for(const[node,parentNode]of allDefs.entries()){if(node.children.length===0){detachNodeFromParent$c(node,parentNode)}}}}}};var removeEmptyText$1={};const{detachNodeFromParent:detachNodeFromParent$b}=xast;removeEmptyText$1.name="removeEmptyText";removeEmptyText$1.description="removes empty <text> elements";removeEmptyText$1.fn=(root,params)=>{const{text:text=true,tspan:tspan=true,tref:tref=true}=params;return{element:{enter:(node,parentNode)=>{if(text&&node.name==="text"&&node.children.length===0){detachNodeFromParent$b(node,parentNode)}if(tspan&&node.name==="tspan"&&node.children.length===0){detachNodeFromParent$b(node,parentNode)}if(tref&&node.name==="tref"&&node.attributes["xlink:href"]==null){detachNodeFromParent$b(node,parentNode)}}}}};var convertShapeToPath$1={};const{stringifyPathData:stringifyPathData$1}=path;const{detachNodeFromParent:detachNodeFromParent$a}=xast;convertShapeToPath$1.name="convertShapeToPath";convertShapeToPath$1.description="converts basic shapes to more compact path form";const regNumber=/[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;convertShapeToPath$1.fn=(root,params)=>{const{convertArcs:convertArcs=false,floatPrecision:precision}=params;return{element:{enter:(node,parentNode)=>{if(node.name==="rect"&&node.attributes.width!=null&&node.attributes.height!=null&&node.attributes.rx==null&&node.attributes.ry==null){const x=Number(node.attributes.x||"0");const y=Number(node.attributes.y||"0");const width=Number(node.attributes.width);const height=Number(node.attributes.height);if(Number.isNaN(x-y+width-height))return;const pathData=[{command:"M",args:[x,y]},{command:"H",args:[x+width]},{command:"V",args:[y+height]},{command:"H",args:[x]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.x;delete node.attributes.y;delete node.attributes.width;delete node.attributes.height}if(node.name==="line"){const x1=Number(node.attributes.x1||"0");const y1=Number(node.attributes.y1||"0");const x2=Number(node.attributes.x2||"0");const y2=Number(node.attributes.y2||"0");if(Number.isNaN(x1-y1+x2-y2))return;const pathData=[{command:"M",args:[x1,y1]},{command:"L",args:[x2,y2]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.x1;delete node.attributes.y1;delete node.attributes.x2;delete node.attributes.y2}if((node.name==="polyline"||node.name==="polygon")&&node.attributes.points!=null){const coords=(node.attributes.points.match(regNumber)||[]).map(Number);if(coords.length<4){detachNodeFromParent$a(node,parentNode);return}const pathData=[];for(let i=0;i<coords.length;i+=2){pathData.push({command:i===0?"M":"L",args:coords.slice(i,i+2)})}if(node.name==="polygon"){pathData.push({command:"z",args:[]})}node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.points}if(node.name==="circle"&&convertArcs){const cx=Number(node.attributes.cx||"0");const cy=Number(node.attributes.cy||"0");const r=Number(node.attributes.r||"0");if(Number.isNaN(cx-cy+r)){return}const pathData=[{command:"M",args:[cx,cy-r]},{command:"A",args:[r,r,0,1,0,cx,cy+r]},{command:"A",args:[r,r,0,1,0,cx,cy-r]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.cx;delete node.attributes.cy;delete node.attributes.r}if(node.name==="ellipse"&&convertArcs){const ecx=Number(node.attributes.cx||"0");const ecy=Number(node.attributes.cy||"0");const rx=Number(node.attributes.rx||"0");const ry=Number(node.attributes.ry||"0");if(Number.isNaN(ecx-ecy+rx-ry)){return}const pathData=[{command:"M",args:[ecx,ecy-ry]},{command:"A",args:[rx,ry,0,1,0,ecx,ecy+ry]},{command:"A",args:[rx,ry,0,1,0,ecx,ecy-ry]},{command:"z",args:[]}];node.name="path";node.attributes.d=stringifyPathData$1({pathData:pathData,precision:precision});delete node.attributes.cx;delete node.attributes.cy;delete node.attributes.rx;delete node.attributes.ry}}}}};var convertEllipseToCircle$1={};convertEllipseToCircle$1.name="convertEllipseToCircle";convertEllipseToCircle$1.description="converts non-eccentric <ellipse>s to <circle>s";convertEllipseToCircle$1.fn=()=>({element:{enter:node=>{if(node.name==="ellipse"){const rx=node.attributes.rx||"0";const ry=node.attributes.ry||"0";if(rx===ry||rx==="auto"||ry==="auto"){node.name="circle";const radius=rx==="auto"?ry:rx;delete node.attributes.rx;delete node.attributes.ry;node.attributes.r=radius}}}}});var moveElemsAttrsToGroup$1={};const{visit:visit$1}=xast;const{inheritableAttrs:inheritableAttrs$1,pathElems:pathElems$2}=_collections;moveElemsAttrsToGroup$1.name="moveElemsAttrsToGroup";moveElemsAttrsToGroup$1.description="Move common attributes of group children to the group";moveElemsAttrsToGroup$1.fn=root=>{let deoptimizedWithStyles=false;visit$1(root,{element:{enter:node=>{if(node.name==="style"){deoptimizedWithStyles=true}}}});return{element:{exit:node=>{if(node.name!=="g"||node.children.length<=1){return}if(deoptimizedWithStyles){return}const commonAttributes=new Map;let initial=true;let everyChildIsPath=true;for(const child of node.children){if(child.type==="element"){if(!pathElems$2.has(child.name)){everyChildIsPath=false}if(initial){initial=false;for(const[name,value]of Object.entries(child.attributes)){if(inheritableAttrs$1.has(name)){commonAttributes.set(name,value)}}}else{for(const[name,value]of commonAttributes){if(child.attributes[name]!==value){commonAttributes.delete(name)}}}}}if(node.attributes["clip-path"]!=null||node.attributes.mask!=null){commonAttributes.delete("transform")}if(everyChildIsPath){commonAttributes.delete("transform")}for(const[name,value]of commonAttributes){if(name==="transform"){if(node.attributes.transform!=null){node.attributes.transform=`${node.attributes.transform} ${value}`}else{node.attributes.transform=value}}else{node.attributes[name]=value}}for(const child of node.children){if(child.type==="element"){for(const[name]of commonAttributes){delete child.attributes[name]}}}}}}};var moveGroupAttrsToElems$1={};const{pathElems:pathElems$1,referencesProps:referencesProps$2}=_collections;const{includesUrlReference:includesUrlReference$1}=tools;moveGroupAttrsToElems$1.name="moveGroupAttrsToElems";moveGroupAttrsToElems$1.description="moves some group attributes to the content elements";const pathElemsWithGroupsAndText=[...pathElems$1,"g","text"];moveGroupAttrsToElems$1.fn=()=>({element:{enter:node=>{if(node.name==="g"&&node.children.length!==0&&node.attributes.transform!=null&&Object.entries(node.attributes).some((([name,value])=>referencesProps$2.has(name)&&includesUrlReference$1(value)))===false&&node.children.every((child=>child.type==="element"&&pathElemsWithGroupsAndText.includes(child.name)&&child.attributes.id==null))){for(const child of node.children){const value=node.attributes.transform;if(child.type==="element"){if(child.attributes.transform!=null){child.attributes.transform=`${value} ${child.attributes.transform}`}else{child.attributes.transform=value}}}delete node.attributes.transform}}}});var collapseGroups$1={};const{inheritableAttrs:inheritableAttrs,elemsGroups:elemsGroups$1}=_collections;collapseGroups$1.name="collapseGroups";collapseGroups$1.description="collapses useless groups";const hasAnimatedAttr=(node,name)=>{if(node.type==="element"){if(elemsGroups$1.animation.has(node.name)&&node.attributes.attributeName===name){return true}for(const child of node.children){if(hasAnimatedAttr(child,name)){return true}}}return false};collapseGroups$1.fn=()=>({element:{exit:(node,parentNode)=>{if(parentNode.type==="root"||parentNode.name==="switch"){return}if(node.name!=="g"||node.children.length===0){return}if(Object.keys(node.attributes).length!==0&&node.children.length===1){const firstChild=node.children[0];if(firstChild.type==="element"&&firstChild.attributes.id==null&&node.attributes.filter==null&&(node.attributes.class==null||firstChild.attributes.class==null)&&(node.attributes["clip-path"]==null&&node.attributes.mask==null||firstChild.name==="g"&&node.attributes.transform==null&&firstChild.attributes.transform==null)){for(const[name,value]of Object.entries(node.attributes)){if(hasAnimatedAttr(firstChild,name)){return}if(firstChild.attributes[name]==null){firstChild.attributes[name]=value}else if(name==="transform"){firstChild.attributes[name]=value+" "+firstChild.attributes[name]}else if(firstChild.attributes[name]==="inherit"){firstChild.attributes[name]=value}else if(inheritableAttrs.has(name)===false&&firstChild.attributes[name]!==value){return}delete node.attributes[name]}}}if(Object.keys(node.attributes).length===0){for(const child of node.children){if(child.type==="element"&&elemsGroups$1.animation.has(child.name)){return}}const index=parentNode.children.indexOf(node);parentNode.children.splice(index,1,...node.children);for(const child of node.children){Object.defineProperty(child,"parentNode",{writable:true,value:parentNode})}}}}});var convertPathData$1={};var _path={};const{parsePathData:parsePathData$1,stringifyPathData:stringifyPathData}=path;var prevCtrlPoint;const path2js$3=path=>{if(path.pathJS)return path.pathJS;const pathData=[];const newPathData=parsePathData$1(path.attributes.d);for(const{command:command,args:args}of newPathData){pathData.push({command:command,args:args})}if(pathData.length&&pathData[0].command=="m"){pathData[0].command="M"}path.pathJS=pathData;return pathData};_path.path2js=path2js$3;const convertRelativeToAbsolute=data=>{const newData=[];let start=[0,0];let cursor=[0,0];for(let{command:command,args:args}of data){args=args.slice();if(command==="m"){args[0]+=cursor[0];args[1]+=cursor[1];command="M"}if(command==="M"){cursor[0]=args[0];cursor[1]=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="h"){args[0]+=cursor[0];command="H"}if(command==="H"){cursor[0]=args[0]}if(command==="v"){args[0]+=cursor[1];command="V"}if(command==="V"){cursor[1]=args[0]}if(command==="l"){args[0]+=cursor[0];args[1]+=cursor[1];command="L"}if(command==="L"){cursor[0]=args[0];cursor[1]=args[1]}if(command==="c"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];args[4]+=cursor[0];args[5]+=cursor[1];command="C"}if(command==="C"){cursor[0]=args[4];cursor[1]=args[5]}if(command==="s"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];command="S"}if(command==="S"){cursor[0]=args[2];cursor[1]=args[3]}if(command==="q"){args[0]+=cursor[0];args[1]+=cursor[1];args[2]+=cursor[0];args[3]+=cursor[1];command="Q"}if(command==="Q"){cursor[0]=args[2];cursor[1]=args[3]}if(command==="t"){args[0]+=cursor[0];args[1]+=cursor[1];command="T"}if(command==="T"){cursor[0]=args[0];cursor[1]=args[1]}if(command==="a"){args[5]+=cursor[0];args[6]+=cursor[1];command="A"}if(command==="A"){cursor[0]=args[5];cursor[1]=args[6]}if(command==="z"||command==="Z"){cursor[0]=start[0];cursor[1]=start[1];command="z"}newData.push({command:command,args:args})}return newData};_path.js2path=function(path,data,params){path.pathJS=data;const pathData=[];for(const item of data){if(pathData.length!==0&&(item.command==="M"||item.command==="m")){const last=pathData[pathData.length-1];if(last.command==="M"||last.command==="m"){pathData.pop()}}pathData.push({command:item.command,args:item.args})}path.attributes.d=stringifyPathData({pathData:pathData,precision:params.floatPrecision,disableSpaceAfterFlags:params.noSpaceAfterFlags})};function set(dest,source){dest[0]=source[source.length-2];dest[1]=source[source.length-1];return dest}_path.intersects=function(path1,path2){const points1=gatherPoints(convertRelativeToAbsolute(path1));const points2=gatherPoints(convertRelativeToAbsolute(path2));if(points1.maxX<=points2.minX||points2.maxX<=points1.minX||points1.maxY<=points2.minY||points2.maxY<=points1.minY||points1.list.every((set1=>points2.list.every((set2=>set1.list[set1.maxX][0]<=set2.list[set2.minX][0]||set2.list[set2.maxX][0]<=set1.list[set1.minX][0]||set1.list[set1.maxY][1]<=set2.list[set2.minY][1]||set2.list[set2.maxY][1]<=set1.list[set1.minY][1])))))return false;const hullNest1=points1.list.map(convexHull);const hullNest2=points2.list.map(convexHull);return hullNest1.some((function(hull1){if(hull1.list.length<3)return false;return hullNest2.some((function(hull2){if(hull2.list.length<3)return false;var simplex=[getSupport(hull1,hull2,[1,0])],direction=minus(simplex[0]);var iterations=1e4;while(true){if(iterations--==0){console.error("Error: infinite loop while processing mergePaths plugin.");return true}simplex.push(getSupport(hull1,hull2,direction));if(dot(direction,simplex[simplex.length-1])<=0)return false;if(processSimplex(simplex,direction))return true}}))}));function getSupport(a,b,direction){return sub(supportPoint(a,direction),supportPoint(b,minus(direction)))}function supportPoint(polygon,direction){var index=direction[1]>=0?direction[0]<0?polygon.maxY:polygon.maxX:direction[0]<0?polygon.minX:polygon.minY,max=-Infinity,value;while((value=dot(polygon.list[index],direction))>max){max=value;index=++index%polygon.list.length}return polygon.list[(index||polygon.list.length)-1]}};function processSimplex(simplex,direction){if(simplex.length==2){let a=simplex[1],b=simplex[0],AO=minus(simplex[1]),AB=sub(b,a);if(dot(AO,AB)>0){set(direction,orth(AB,a))}else{set(direction,AO);simplex.shift()}}else{let a=simplex[2],b=simplex[1],c=simplex[0],AB=sub(b,a),AC=sub(c,a),AO=minus(a),ACB=orth(AB,AC),ABC=orth(AC,AB);if(dot(ACB,AO)>0){if(dot(AB,AO)>0){set(direction,ACB);simplex.shift()}else{set(direction,AO);simplex.splice(0,2)}}else if(dot(ABC,AO)>0){if(dot(AC,AO)>0){set(direction,ABC);simplex.splice(1,1)}else{set(direction,AO);simplex.splice(0,2)}}else return true}return false}function minus(v){return[-v[0],-v[1]]}function sub(v1,v2){return[v1[0]-v2[0],v1[1]-v2[1]]}function dot(v1,v2){return v1[0]*v2[0]+v1[1]*v2[1]}function orth(v,from){var o=[-v[1],v[0]];return dot(o,minus(from))<0?minus(o):o}function gatherPoints(pathData){const points={list:[],minX:0,minY:0,maxX:0,maxY:0};const addPoint=(path,point)=>{if(!path.list.length||point[1]>path.list[path.maxY][1]){path.maxY=path.list.length;points.maxY=points.list.length?Math.max(point[1],points.maxY):point[1]}if(!path.list.length||point[0]>path.list[path.maxX][0]){path.maxX=path.list.length;points.maxX=points.list.length?Math.max(point[0],points.maxX):point[0]}if(!path.list.length||point[1]<path.list[path.minY][1]){path.minY=path.list.length;points.minY=points.list.length?Math.min(point[1],points.minY):point[1]}if(!path.list.length||point[0]<path.list[path.minX][0]){path.minX=path.list.length;points.minX=points.list.length?Math.min(point[0],points.minX):point[0]}path.list.push(point)};for(let i=0;i<pathData.length;i+=1){const pathDataItem=pathData[i];let subPath=points.list.length===0?{list:[],minX:0,minY:0,maxX:0,maxY:0}:points.list[points.list.length-1];let prev=i===0?null:pathData[i-1];let basePoint=subPath.list.length===0?null:subPath.list[subPath.list.length-1];let data=pathDataItem.args;let ctrlPoint=basePoint;const toAbsolute=(n,i)=>n+(basePoint==null?0:basePoint[i%2]);switch(pathDataItem.command){case"M":subPath={list:[],minX:0,minY:0,maxX:0,maxY:0};points.list.push(subPath);break;case"H":if(basePoint!=null){addPoint(subPath,[data[0],basePoint[1]])}break;case"V":if(basePoint!=null){addPoint(subPath,[basePoint[0],data[0]])}break;case"Q":addPoint(subPath,data.slice(0,2));prevCtrlPoint=[data[2]-data[0],data[3]-data[1]];break;case"T":if(basePoint!=null&&prev!=null&&(prev.command=="Q"||prev.command=="T")){ctrlPoint=[basePoint[0]+prevCtrlPoint[0],basePoint[1]+prevCtrlPoint[1]];addPoint(subPath,ctrlPoint);prevCtrlPoint=[data[0]-ctrlPoint[0],data[1]-ctrlPoint[1]]}break;case"C":if(basePoint!=null){addPoint(subPath,[.5*(basePoint[0]+data[0]),.5*(basePoint[1]+data[1])])}addPoint(subPath,[.5*(data[0]+data[2]),.5*(data[1]+data[3])]);addPoint(subPath,[.5*(data[2]+data[4]),.5*(data[3]+data[5])]);prevCtrlPoint=[data[4]-data[2],data[5]-data[3]];break;case"S":if(basePoint!=null&&prev!=null&&(prev.command=="C"||prev.command=="S")){addPoint(subPath,[basePoint[0]+.5*prevCtrlPoint[0],basePoint[1]+.5*prevCtrlPoint[1]]);ctrlPoint=[basePoint[0]+prevCtrlPoint[0],basePoint[1]+prevCtrlPoint[1]]}if(ctrlPoint!=null){addPoint(subPath,[.5*(ctrlPoint[0]+data[0]),.5*(ctrlPoint[1]+data[1])])}addPoint(subPath,[.5*(data[0]+data[2]),.5*(data[1]+data[3])]);prevCtrlPoint=[data[2]-data[0],data[3]-data[1]];break;case"A":if(basePoint!=null){var curves=a2c.apply(0,basePoint.concat(data));for(var cData;(cData=curves.splice(0,6).map(toAbsolute)).length;){if(basePoint!=null){addPoint(subPath,[.5*(basePoint[0]+cData[0]),.5*(basePoint[1]+cData[1])])}addPoint(subPath,[.5*(cData[0]+cData[2]),.5*(cData[1]+cData[3])]);addPoint(subPath,[.5*(cData[2]+cData[4]),.5*(cData[3]+cData[5])]);if(curves.length)addPoint(subPath,basePoint=cData.slice(-2))}}break}if(data.length>=2)addPoint(subPath,data.slice(-2))}return points}function convexHull(points){points.list.sort((function(a,b){return a[0]==b[0]?a[1]-b[1]:a[0]-b[0]}));var lower=[],minY=0,bottom=0;for(let i=0;i<points.list.length;i++){while(lower.length>=2&&cross(lower[lower.length-2],lower[lower.length-1],points.list[i])<=0){lower.pop()}if(points.list[i][1]<points.list[minY][1]){minY=i;bottom=lower.length}lower.push(points.list[i])}var upper=[],maxY=points.list.length-1,top=0;for(let i=points.list.length;i--;){while(upper.length>=2&&cross(upper[upper.length-2],upper[upper.length-1],points.list[i])<=0){upper.pop()}if(points.list[i][1]>points.list[maxY][1]){maxY=i;top=upper.length}upper.push(points.list[i])}upper.pop();lower.pop();const hullList=lower.concat(upper);const hull={list:hullList,minX:0,maxX:lower.length,minY:bottom,maxY:(lower.length+top)%hullList.length};return hull}function cross(o,a,b){return(a[0]-o[0])*(b[1]-o[1])-(a[1]-o[1])*(b[0]-o[0])}const a2c=(x1,y1,rx,ry,angle,large_arc_flag,sweep_flag,x2,y2,recursive)=>{const _120=Math.PI*120/180;const rad=Math.PI/180*(+angle||0);let res=[];const rotateX=(x,y,rad)=>x*Math.cos(rad)-y*Math.sin(rad);const rotateY=(x,y,rad)=>x*Math.sin(rad)+y*Math.cos(rad);if(!recursive){x1=rotateX(x1,y1,-rad);y1=rotateY(x1,y1,-rad);x2=rotateX(x2,y2,-rad);y2=rotateY(x2,y2,-rad);var x=(x1-x2)/2,y=(y1-y2)/2;var h=x*x/(rx*rx)+y*y/(ry*ry);if(h>1){h=Math.sqrt(h);rx=h*rx;ry=h*ry}var rx2=rx*rx;var ry2=ry*ry;var k=(large_arc_flag==sweep_flag?-1:1)*Math.sqrt(Math.abs((rx2*ry2-rx2*y*y-ry2*x*x)/(rx2*y*y+ry2*x*x)));var cx=k*rx*y/ry+(x1+x2)/2;var cy=k*-ry*x/rx+(y1+y2)/2;var f1=Math.asin(Number(((y1-cy)/ry).toFixed(9)));var f2=Math.asin(Number(((y2-cy)/ry).toFixed(9)));f1=x1<cx?Math.PI-f1:f1;f2=x2<cx?Math.PI-f2:f2;f1<0&&(f1=Math.PI*2+f1);f2<0&&(f2=Math.PI*2+f2);if(sweep_flag&&f1>f2){f1=f1-Math.PI*2}if(!sweep_flag&&f2>f1){f2=f2-Math.PI*2}}else{f1=recursive[0];f2=recursive[1];cx=recursive[2];cy=recursive[3]}var df=f2-f1;if(Math.abs(df)>_120){var f2old=f2,x2old=x2,y2old=y2;f2=f1+_120*(sweep_flag&&f2>f1?1:-1);x2=cx+rx*Math.cos(f2);y2=cy+ry*Math.sin(f2);res=a2c(x2,y2,rx,ry,angle,0,sweep_flag,x2old,y2old,[f2,f2old,cx,cy])}df=f2-f1;var c1=Math.cos(f1),s1=Math.sin(f1),c2=Math.cos(f2),s2=Math.sin(f2),t=Math.tan(df/4),hx=4/3*rx*t,hy=4/3*ry*t,m=[-hx*s1,hy*c1,x2+hx*s2-x1,y2-hy*c2-y1,x2-x1,y2-y1];if(recursive){return m.concat(res)}else{res=m.concat(res);var newres=[];for(var i=0,n=res.length;i<n;i++){newres[i]=i%2?rotateY(res[i-1],res[i],rad):rotateX(res[i],res[i+1],rad)}return newres}};var applyTransforms$2={};var _transforms={};const{toFixed:toFixed$2}=tools;const transformTypes=new Set(["matrix","rotate","scale","skewX","skewY","translate"]);const regTransformSplit=/\s*(matrix|translate|scale|rotate|skewX|skewY)\s*\(\s*(.+?)\s*\)[\s,]*/;const regNumericValues$2=/[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;_transforms.transform2js=transformString=>{const transforms=[];let currentTransform=null;for(const item of transformString.split(regTransformSplit)){if(!item){continue}if(transformTypes.has(item)){currentTransform={name:item,data:[]};transforms.push(currentTransform)}else{let num;while(num=regNumericValues$2.exec(item)){num=Number(num);if(currentTransform!=null){currentTransform.data.push(num)}}}}return currentTransform==null||currentTransform.data.length==0?[]:transforms};_transforms.transformsMultiply=transforms=>{const matrixData=transforms.map((transform=>{if(transform.name==="matrix"){return transform.data}return transformToMatrix(transform)}));const matrixTransform={name:"matrix",data:matrixData.length>0?matrixData.reduce(multiplyTransformMatrices):[]};return matrixTransform};const mth={rad:deg=>deg*Math.PI/180,deg:rad=>rad*180/Math.PI,cos:deg=>Math.cos(mth.rad(deg)),acos:(val,floatPrecision)=>toFixed$2(mth.deg(Math.acos(val)),floatPrecision),sin:deg=>Math.sin(mth.rad(deg)),asin:(val,floatPrecision)=>toFixed$2(mth.deg(Math.asin(val)),floatPrecision),tan:deg=>Math.tan(mth.rad(deg)),atan:(val,floatPrecision)=>toFixed$2(mth.deg(Math.atan(val)),floatPrecision)};_transforms.matrixToTransform=(transform,params)=>{const floatPrecision=params.floatPrecision;const data=transform.data;const transforms=[];if(data[4]||data[5]){transforms.push({name:"translate",data:data.slice(4,data[5]?6:5)})}let sx=toFixed$2(Math.hypot(data[0],data[1]),params.transformPrecision);let sy=toFixed$2((data[0]*data[3]-data[1]*data[2])/sx,params.transformPrecision);const colsSum=data[0]*data[2]+data[1]*data[3];const rowsSum=data[0]*data[1]+data[2]*data[3];const scaleBefore=rowsSum!==0||sx===sy;if(!data[1]&&data[2]){transforms.push({name:"skewX",data:[mth.atan(data[2]/sy,floatPrecision)]})}else if(data[1]&&!data[2]){transforms.push({name:"skewY",data:[mth.atan(data[1]/data[0],floatPrecision)]});sx=data[0];sy=data[3]}else if(!colsSum||sx===1&&sy===1||!scaleBefore){if(!scaleBefore){sx=Math.hypot(data[0],data[2]);sy=Math.hypot(data[1],data[3]);if(toFixed$2(data[0],params.transformPrecision)<0){sx=-sx}if(data[3]<0||Math.sign(data[1])===Math.sign(data[2])&&toFixed$2(data[3],params.transformPrecision)===0){sy=-sy}transforms.push({name:"scale",data:[sx,sy]})}const angle=Math.min(Math.max(-1,data[0]/sx),1);const rotate=[mth.acos(angle,floatPrecision)*((scaleBefore?1:sy)*data[1]<0?-1:1)];if(rotate[0]){transforms.push({name:"rotate",data:rotate})}if(rowsSum&&colsSum)transforms.push({name:"skewX",data:[mth.atan(colsSum/(sx*sx),floatPrecision)]});if(rotate[0]&&(data[4]||data[5])){transforms.shift();const oneOverCos=1-data[0]/sx;const sin=data[1]/(scaleBefore?sx:sy);const x=data[4]*(scaleBefore?1:sy);const y=data[5]*(scaleBefore?1:sx);const denom=(oneOverCos**2+sin**2)*(scaleBefore?1:sx*sy);rotate.push((oneOverCos*x-sin*y)/denom,(oneOverCos*y+sin*x)/denom)}}else if(data[1]||data[2]){return[transform]}if(scaleBefore&&(sx!=1||sy!=1)||!transforms.length){transforms.push({name:"scale",data:sx==sy?[sx]:[sx,sy]})}return transforms};const transformToMatrix=transform=>{if(transform.name==="matrix"){return transform.data}switch(transform.name){case"translate":return[1,0,0,1,transform.data[0],transform.data[1]||0];case"scale":return[transform.data[0],0,0,transform.data[1]||transform.data[0],0,0];case"rotate":var cos=mth.cos(transform.data[0]),sin=mth.sin(transform.data[0]),cx=transform.data[1]||0,cy=transform.data[2]||0;return[cos,sin,-sin,cos,(1-cos)*cx+sin*cy,(1-cos)*cy-sin*cx];case"skewX":return[1,0,mth.tan(transform.data[0]),1,0,0];case"skewY":return[1,mth.tan(transform.data[0]),0,1,0,0];default:throw Error(`Unknown transform ${transform.name}`)}};_transforms.transformArc=(cursor,arc,transform)=>{const x=arc[5]-cursor[0];const y=arc[6]-cursor[1];let a=arc[0];let b=arc[1];const rot=arc[2]*Math.PI/180;const cos=Math.cos(rot);const sin=Math.sin(rot);if(a>0&&b>0){let h=Math.pow(x*cos+y*sin,2)/(4*a*a)+Math.pow(y*cos-x*sin,2)/(4*b*b);if(h>1){h=Math.sqrt(h);a*=h;b*=h}}const ellipse=[a*cos,a*sin,-b*sin,b*cos,0,0];const m=multiplyTransformMatrices(transform,ellipse);const lastCol=m[2]*m[2]+m[3]*m[3];const squareSum=m[0]*m[0]+m[1]*m[1]+lastCol;const root=Math.hypot(m[0]-m[3],m[1]+m[2])*Math.hypot(m[0]+m[3],m[1]-m[2]);if(!root){arc[0]=arc[1]=Math.sqrt(squareSum/2);arc[2]=0}else{const majorAxisSqr=(squareSum+root)/2;const minorAxisSqr=(squareSum-root)/2;const major=Math.abs(majorAxisSqr-lastCol)>1e-6;const sub=(major?majorAxisSqr:minorAxisSqr)-lastCol;const rowsSum=m[0]*m[2]+m[1]*m[3];const term1=m[0]*sub+m[2]*rowsSum;const term2=m[1]*sub+m[3]*rowsSum;arc[0]=Math.sqrt(majorAxisSqr);arc[1]=Math.sqrt(minorAxisSqr);arc[2]=((major?term2<0:term1>0)?-1:1)*Math.acos((major?term1:term2)/Math.hypot(term1,term2))*180/Math.PI}if(transform[0]<0!==transform[3]<0){arc[4]=1-arc[4]}return arc};const multiplyTransformMatrices=(a,b)=>[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]];const{collectStylesheet:collectStylesheet$4,computeStyle:computeStyle$3}=style;const{transformsMultiply:transformsMultiply$1,transform2js:transform2js$1,transformArc:transformArc}=_transforms;const{path2js:path2js$2}=_path;const{removeLeadingZero:removeLeadingZero$1,includesUrlReference:includesUrlReference}=tools;const{referencesProps:referencesProps$1,attrsGroupsDefaults:attrsGroupsDefaults$1}=_collections;const regNumericValues$1=/[-+]?(\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;const applyTransforms$1=(root,params)=>{const stylesheet=collectStylesheet$4(root);return{element:{enter:node=>{if(node.attributes.d==null){return}if(node.attributes.id!=null){return}if(node.attributes.transform==null||node.attributes.transform===""||node.attributes.style!=null||Object.entries(node.attributes).some((([name,value])=>referencesProps$1.has(name)&&includesUrlReference(value)))){return}const computedStyle=computeStyle$3(stylesheet,node);const transformStyle=computedStyle.transform;if(transformStyle.type==="static"&&transformStyle.value!==node.attributes.transform){return}const matrix=transformsMultiply$1(transform2js$1(node.attributes.transform));const stroke=computedStyle.stroke?.type==="static"?computedStyle.stroke.value:null;const strokeWidth=computedStyle["stroke-width"]?.type==="static"?computedStyle["stroke-width"].value:null;const transformPrecision=params.transformPrecision;if(computedStyle.stroke?.type==="dynamic"||computedStyle["stroke-width"]?.type==="dynamic"){return}const scale=Number(Math.sqrt(matrix.data[0]*matrix.data[0]+matrix.data[1]*matrix.data[1]).toFixed(transformPrecision));if(stroke&&stroke!="none"){if(!params.applyTransformsStroked){return}if((matrix.data[0]!==matrix.data[3]||matrix.data[1]!==-matrix.data[2])&&(matrix.data[0]!==-matrix.data[3]||matrix.data[1]!==matrix.data[2])){return}if(scale!==1){if(node.attributes["vector-effect"]!=="non-scaling-stroke"){node.attributes["stroke-width"]=(strokeWidth||attrsGroupsDefaults$1.presentation["stroke-width"]).trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)));if(node.attributes["stroke-dashoffset"]!=null){node.attributes["stroke-dashoffset"]=node.attributes["stroke-dashoffset"].trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)))}if(node.attributes["stroke-dasharray"]!=null){node.attributes["stroke-dasharray"]=node.attributes["stroke-dasharray"].trim().replace(regNumericValues$1,(num=>removeLeadingZero$1(Number(num)*scale)))}}}}const pathData=path2js$2(node);applyMatrixToPathData(pathData,matrix.data);delete node.attributes.transform}}}};applyTransforms$2.applyTransforms=applyTransforms$1;const transformAbsolutePoint=(matrix,x,y)=>{const newX=matrix[0]*x+matrix[2]*y+matrix[4];const newY=matrix[1]*x+matrix[3]*y+matrix[5];return[newX,newY]};const transformRelativePoint=(matrix,x,y)=>{const newX=matrix[0]*x+matrix[2]*y;const newY=matrix[1]*x+matrix[3]*y;return[newX,newY]};const applyMatrixToPathData=(pathData,matrix)=>{const start=[0,0];const cursor=[0,0];for(const pathItem of pathData){let{command:command,args:args}=pathItem;if(command==="M"){cursor[0]=args[0];cursor[1]=args[1];start[0]=cursor[0];start[1]=cursor[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="m"){cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="H"){command="L";args=[args[0],cursor[1]]}if(command==="h"){command="l";args=[args[0],0]}if(command==="V"){command="L";args=[cursor[0],args[0]]}if(command==="v"){command="l";args=[0,args[0]]}if(command==="L"){cursor[0]=args[0];cursor[1]=args[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="l"){cursor[0]+=args[0];cursor[1]+=args[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="C"){cursor[0]=args[4];cursor[1]=args[5];const[x1,y1]=transformAbsolutePoint(matrix,args[0],args[1]);const[x2,y2]=transformAbsolutePoint(matrix,args[2],args[3]);const[x,y]=transformAbsolutePoint(matrix,args[4],args[5]);args[0]=x1;args[1]=y1;args[2]=x2;args[3]=y2;args[4]=x;args[5]=y}if(command==="c"){cursor[0]+=args[4];cursor[1]+=args[5];const[x1,y1]=transformRelativePoint(matrix,args[0],args[1]);const[x2,y2]=transformRelativePoint(matrix,args[2],args[3]);const[x,y]=transformRelativePoint(matrix,args[4],args[5]);args[0]=x1;args[1]=y1;args[2]=x2;args[3]=y2;args[4]=x;args[5]=y}if(command==="S"){cursor[0]=args[2];cursor[1]=args[3];const[x2,y2]=transformAbsolutePoint(matrix,args[0],args[1]);const[x,y]=transformAbsolutePoint(matrix,args[2],args[3]);args[0]=x2;args[1]=y2;args[2]=x;args[3]=y}if(command==="s"){cursor[0]+=args[2];cursor[1]+=args[3];const[x2,y2]=transformRelativePoint(matrix,args[0],args[1]);const[x,y]=transformRelativePoint(matrix,args[2],args[3]);args[0]=x2;args[1]=y2;args[2]=x;args[3]=y}if(command==="Q"){cursor[0]=args[2];cursor[1]=args[3];const[x1,y1]=transformAbsolutePoint(matrix,args[0],args[1]);const[x,y]=transformAbsolutePoint(matrix,args[2],args[3]);args[0]=x1;args[1]=y1;args[2]=x;args[3]=y}if(command==="q"){cursor[0]+=args[2];cursor[1]+=args[3];const[x1,y1]=transformRelativePoint(matrix,args[0],args[1]);const[x,y]=transformRelativePoint(matrix,args[2],args[3]);args[0]=x1;args[1]=y1;args[2]=x;args[3]=y}if(command==="T"){cursor[0]=args[0];cursor[1]=args[1];const[x,y]=transformAbsolutePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="t"){cursor[0]+=args[0];cursor[1]+=args[1];const[x,y]=transformRelativePoint(matrix,args[0],args[1]);args[0]=x;args[1]=y}if(command==="A"){transformArc(cursor,args,matrix);cursor[0]=args[5];cursor[1]=args[6];if(Math.abs(args[2])>80){const a=args[0];const rotation=args[2];args[0]=args[1];args[1]=a;args[2]=rotation+(rotation>0?-90:90)}const[x,y]=transformAbsolutePoint(matrix,args[5],args[6]);args[5]=x;args[6]=y}if(command==="a"){transformArc([0,0],args,matrix);cursor[0]+=args[5];cursor[1]+=args[6];if(Math.abs(args[2])>80){const a=args[0];const rotation=args[2];args[0]=args[1];args[1]=a;args[2]=rotation+(rotation>0?-90:90)}const[x,y]=transformRelativePoint(matrix,args[5],args[6]);args[5]=x;args[6]=y}if(command==="z"||command==="Z"){cursor[0]=start[0];cursor[1]=start[1]}pathItem.command=command;pathItem.args=args}};const{collectStylesheet:collectStylesheet$3,computeStyle:computeStyle$2}=style;const{visit:visit}=xast;const{pathElems:pathElems}=_collections;const{path2js:path2js$1,js2path:js2path$1}=_path;const{applyTransforms:applyTransforms}=applyTransforms$2;const{cleanupOutData:cleanupOutData$1,toFixed:toFixed$1}=tools;convertPathData$1.name="convertPathData";convertPathData$1.description="optimizes path data: writes in shorter form, applies transformations";let roundData;let precision;let error;let arcThreshold;let arcTolerance;convertPathData$1.fn=(root,params)=>{const{applyTransforms:_applyTransforms=true,applyTransformsStroked:applyTransformsStroked=true,makeArcs:makeArcs={threshold:2.5,tolerance:.5},straightCurves:straightCurves=true,convertToQ:convertToQ=true,lineShorthands:lineShorthands=true,convertToZ:convertToZ=true,curveSmoothShorthands:curveSmoothShorthands=true,floatPrecision:floatPrecision=3,transformPrecision:transformPrecision=5,smartArcRounding:smartArcRounding=true,removeUseless:removeUseless=true,collapseRepeated:collapseRepeated=true,utilizeAbsolute:utilizeAbsolute=true,leadingZero:leadingZero=true,negativeExtraSpace:negativeExtraSpace=true,noSpaceAfterFlags:noSpaceAfterFlags=false,forceAbsolutePath:forceAbsolutePath=false}=params;const newParams={applyTransforms:_applyTransforms,applyTransformsStroked:applyTransformsStroked,makeArcs:makeArcs,straightCurves:straightCurves,convertToQ:convertToQ,lineShorthands:lineShorthands,convertToZ:convertToZ,curveSmoothShorthands:curveSmoothShorthands,floatPrecision:floatPrecision,transformPrecision:transformPrecision,smartArcRounding:smartArcRounding,removeUseless:removeUseless,collapseRepeated:collapseRepeated,utilizeAbsolute:utilizeAbsolute,leadingZero:leadingZero,negativeExtraSpace:negativeExtraSpace,noSpaceAfterFlags:noSpaceAfterFlags,forceAbsolutePath:forceAbsolutePath};if(_applyTransforms){visit(root,applyTransforms(root,{transformPrecision:transformPrecision,applyTransformsStroked:applyTransformsStroked}))}const stylesheet=collectStylesheet$3(root);return{element:{enter:node=>{if(pathElems.has(node.name)&&node.attributes.d!=null){const computedStyle=computeStyle$2(stylesheet,node);precision=floatPrecision;error=precision!==false?+Math.pow(.1,precision).toFixed(precision):.01;roundData=precision&&precision>0&&precision<20?strongRound:round$1;if(makeArcs){arcThreshold=makeArcs.threshold;arcTolerance=makeArcs.tolerance}const hasMarkerMid=computedStyle["marker-mid"]!=null;const maybeHasStroke=computedStyle.stroke&&(computedStyle.stroke.type==="dynamic"||computedStyle.stroke.value!=="none");const maybeHasLinecap=computedStyle["stroke-linecap"]&&(computedStyle["stroke-linecap"].type==="dynamic"||computedStyle["stroke-linecap"].value!=="butt");const maybeHasStrokeAndLinecap=maybeHasStroke&&maybeHasLinecap;const isSafeToUseZ=maybeHasStroke?computedStyle["stroke-linecap"]?.type==="static"&&computedStyle["stroke-linecap"].value==="round"&&computedStyle["stroke-linejoin"]?.type==="static"&&computedStyle["stroke-linejoin"].value==="round":true;var data=path2js$1(node);if(data.length){convertToRelative(data);data=filters(data,newParams,{isSafeToUseZ:isSafeToUseZ,maybeHasStrokeAndLinecap:maybeHasStrokeAndLinecap,hasMarkerMid:hasMarkerMid});if(utilizeAbsolute){data=convertToMixed(data,newParams)}js2path$1(node,data,newParams)}}}}}};const convertToRelative=pathData=>{let start=[0,0];let cursor=[0,0];let prevCoords=[0,0];for(let i=0;i<pathData.length;i+=1){const pathItem=pathData[i];let{command:command,args:args}=pathItem;if(command==="m"){cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="M"){if(i!==0){command="m"}args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1];start[0]=cursor[0];start[1]=cursor[1]}if(command==="l"){cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="L"){command="l";args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="h"){cursor[0]+=args[0]}if(command==="H"){command="h";args[0]-=cursor[0];cursor[0]+=args[0]}if(command==="v"){cursor[1]+=args[0]}if(command==="V"){command="v";args[0]-=cursor[1];cursor[1]+=args[0]}if(command==="c"){cursor[0]+=args[4];cursor[1]+=args[5]}if(command==="C"){command="c";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];args[4]-=cursor[0];args[5]-=cursor[1];cursor[0]+=args[4];cursor[1]+=args[5]}if(command==="s"){cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="S"){command="s";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="q"){cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="Q"){command="q";args[0]-=cursor[0];args[1]-=cursor[1];args[2]-=cursor[0];args[3]-=cursor[1];cursor[0]+=args[2];cursor[1]+=args[3]}if(command==="t"){cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="T"){command="t";args[0]-=cursor[0];args[1]-=cursor[1];cursor[0]+=args[0];cursor[1]+=args[1]}if(command==="a"){cursor[0]+=args[5];cursor[1]+=args[6]}if(command==="A"){command="a";args[5]-=cursor[0];args[6]-=cursor[1];cursor[0]+=args[5];cursor[1]+=args[6]}if(command==="Z"||command==="z"){cursor[0]=start[0];cursor[1]=start[1]}pathItem.command=command;pathItem.args=args;pathItem.base=prevCoords;pathItem.coords=[cursor[0],cursor[1]];prevCoords=pathItem.coords}return pathData};function filters(path,params,{isSafeToUseZ:isSafeToUseZ,maybeHasStrokeAndLinecap:maybeHasStrokeAndLinecap,hasMarkerMid:hasMarkerMid}){const stringify=data2Path.bind(null,params);const relSubpoint=[0,0];const pathBase=[0,0];let prev={};let prevQControlPoint;path=path.filter((function(item,index,path){const qControlPoint=prevQControlPoint;prevQControlPoint=undefined;let command=item.command;let data=item.args;let next=path[index+1];if(command!=="Z"&&command!=="z"){var sdata=data,circle;if(command==="s"){sdata=[0,0].concat(data);const pdata=prev.args;const n=pdata.length;sdata[0]=pdata[n-2]-pdata[n-4];sdata[1]=pdata[n-1]-pdata[n-3]}if(params.makeArcs&&(command=="c"||command=="s")&&isConvex(sdata)&&(circle=findCircle(sdata))){var r=roundData([circle.radius])[0],angle=findArcAngle(sdata,circle),sweep=sdata[5]*sdata[0]-sdata[4]*sdata[1]>0?1:0,arc={command:"a",args:[r,r,0,0,sweep,sdata[4],sdata[5]],coords:item.coords.slice(),base:item.base},output=[arc],relCenter=[circle.center[0]-sdata[4],circle.center[1]-sdata[5]],relCircle={center:relCenter,radius:circle.radius},arcCurves=[item],hasPrev=0,suffix="",nextLonghand;if(prev.command=="c"&&isConvex(prev.args)&&isArcPrev(prev.args,circle)||prev.command=="a"&&prev.sdata&&isArcPrev(prev.sdata,circle)){arcCurves.unshift(prev);arc.base=prev.base;arc.args[5]=arc.coords[0]-arc.base[0];arc.args[6]=arc.coords[1]-arc.base[1];var prevData=prev.command=="a"?prev.sdata:prev.args;var prevAngle=findArcAngle(prevData,{center:[prevData[4]+circle.center[0],prevData[5]+circle.center[1]],radius:circle.radius});angle+=prevAngle;if(angle>Math.PI)arc.args[3]=1;hasPrev=1}for(var j=index;(next=path[++j])&&(next.command==="c"||next.command==="s");){var nextData=next.args;if(next.command=="s"){nextLonghand=makeLonghand({command:"s",args:next.args.slice()},path[j-1].args);nextData=nextLonghand.args;nextLonghand.args=nextData.slice(0,2);suffix=stringify([nextLonghand])}if(isConvex(nextData)&&isArc(nextData,relCircle)){angle+=findArcAngle(nextData,relCircle);if(angle-2*Math.PI>.001)break;if(angle>Math.PI)arc.args[3]=1;arcCurves.push(next);if(2*Math.PI-angle>.001){arc.coords=next.coords;arc.args[5]=arc.coords[0]-arc.base[0];arc.args[6]=arc.coords[1]-arc.base[1]}else{arc.args[5]=2*(relCircle.center[0]-nextData[4]);arc.args[6]=2*(relCircle.center[1]-nextData[5]);arc.coords=[arc.base[0]+arc.args[5],arc.base[1]+arc.args[6]];arc={command:"a",args:[r,r,0,0,sweep,next.coords[0]-arc.coords[0],next.coords[1]-arc.coords[1]],coords:next.coords,base:arc.coords};output.push(arc);j++;break}relCenter[0]-=nextData[4];relCenter[1]-=nextData[5]}else break}if((stringify(output)+suffix).length<stringify(arcCurves).length){if(path[j]&&path[j].command=="s"){makeLonghand(path[j],path[j-1].args)}if(hasPrev){var prevArc=output.shift();roundData(prevArc.args);relSubpoint[0]+=prevArc.args[5]-prev.args[prev.args.length-2];relSubpoint[1]+=prevArc.args[6]-prev.args[prev.args.length-1];prev.command="a";prev.args=prevArc.args;item.base=prev.coords=prevArc.coords}arc=output.shift();if(arcCurves.length==1){item.sdata=sdata.slice()}else if(arcCurves.length-1-hasPrev>0){path.splice(index+1,arcCurves.length-1-hasPrev,...output)}if(!arc)return false;command="a";data=arc.args;item.coords=arc.coords}}if(precision!==false){if(command==="m"||command==="l"||command==="t"||command==="q"||command==="s"||command==="c"){for(var i=data.length;i--;){data[i]+=item.base[i%2]-relSubpoint[i%2]}}else if(command=="h"){data[0]+=item.base[0]-relSubpoint[0]}else if(command=="v"){data[0]+=item.base[1]-relSubpoint[1]}else if(command=="a"){data[5]+=item.base[0]-relSubpoint[0];data[6]+=item.base[1]-relSubpoint[1]}roundData(data);if(command=="h")relSubpoint[0]+=data[0];else if(command=="v")relSubpoint[1]+=data[0];else{relSubpoint[0]+=data[data.length-2];relSubpoint[1]+=data[data.length-1]}roundData(relSubpoint);if(command==="M"||command==="m"){pathBase[0]=relSubpoint[0];pathBase[1]=relSubpoint[1]}}const sagitta=command==="a"?calculateSagitta(data):undefined;if(params.smartArcRounding&&sagitta!==undefined&&precision){for(let precisionNew=precision;precisionNew>=0;precisionNew--){const radius=toFixed$1(data[0],precisionNew);const sagittaNew=calculateSagitta([radius,radius,...data.slice(2)]);if(Math.abs(sagitta-sagittaNew)<error){data[0]=radius;data[1]=radius}else{break}}}if(params.straightCurves){if(command==="c"&&isCurveStraightLine(data)||command==="s"&&isCurveStraightLine(sdata)){if(next&&next.command=="s")makeLonghand(next,data);command="l";data=data.slice(-2)}else if(command==="q"&&isCurveStraightLine(data)){if(next&&next.command=="t")makeLonghand(next,data);command="l";data=data.slice(-2)}else if(command==="t"&&prev.command!=="q"&&prev.command!=="t"){command="l";data=data.slice(-2)}else if(command==="a"&&(data[0]===0||data[1]===0||sagitta!==undefined&&sagitta<error)){command="l";data=data.slice(-2)}}if(params.convertToQ&&command=="c"){const x1=.75*(item.base[0]+data[0])-.25*item.base[0];const x2=.75*(item.base[0]+data[2])-.25*(item.base[0]+data[4]);if(Math.abs(x1-x2)<error*2){const y1=.75*(item.base[1]+data[1])-.25*item.base[1];const y2=.75*(item.base[1]+data[3])-.25*(item.base[1]+data[5]);if(Math.abs(y1-y2)<error*2){const newData=data.slice();newData.splice(0,4,x1+x2-item.base[0],y1+y2-item.base[1]);roundData(newData);const originalLength=cleanupOutData$1(data,params).length,newLength=cleanupOutData$1(newData,params).length;if(newLength<originalLength){command="q";data=newData;if(next&&next.command=="s")makeLonghand(next,data)}}}}if(params.lineShorthands&&command==="l"){if(data[1]===0){command="h";data.pop()}else if(data[0]===0){command="v";data.shift()}}if(params.collapseRepeated&&hasMarkerMid===false&&(command==="m"||command==="h"||command==="v")&&prev.command&&command==prev.command.toLowerCase()&&(command!="h"&&command!="v"||prev.args[0]>=0==data[0]>=0)){prev.args[0]+=data[0];if(command!="h"&&command!="v"){prev.args[1]+=data[1]}prev.coords=item.coords;path[index]=prev;return false}if(params.curveSmoothShorthands&&prev.command){if(command==="c"){if(prev.command==="c"&&Math.abs(data[0]- -(prev.args[2]-prev.args[4]))<error&&Math.abs(data[1]- -(prev.args[3]-prev.args[5]))<error){command="s";data=data.slice(2)}else if(prev.command==="s"&&Math.abs(data[0]- -(prev.args[0]-prev.args[2]))<error&&Math.abs(data[1]- -(prev.args[1]-prev.args[3]))<error){command="s";data=data.slice(2)}else if(prev.command!=="c"&&prev.command!=="s"&&Math.abs(data[0])<error&&Math.abs(data[1])<error){command="s";data=data.slice(2)}}else if(command==="q"){if(prev.command==="q"&&Math.abs(data[0]-(prev.args[2]-prev.args[0]))<error&&Math.abs(data[1]-(prev.args[3]-prev.args[1]))<error){command="t";data=data.slice(2)}else if(prev.command==="t"){const predictedControlPoint=reflectPoint(qControlPoint,item.base);const realControlPoint=[data[0]+item.base[0],data[1]+item.base[1]];if(Math.abs(predictedControlPoint[0]-realControlPoint[0])<error&&Math.abs(predictedControlPoint[1]-realControlPoint[1])<error){command="t";data=data.slice(2)}}}}if(params.removeUseless&&!maybeHasStrokeAndLinecap){if((command==="l"||command==="h"||command==="v"||command==="q"||command==="t"||command==="c"||command==="s")&&data.every((function(i){return i===0}))){path[index]=prev;return false}if(command==="a"&&data[5]===0&&data[6]===0){path[index]=prev;return false}}if(params.convertToZ&&(isSafeToUseZ||next?.command==="Z"||next?.command==="z")&&(command==="l"||command==="h"||command==="v")){if(Math.abs(pathBase[0]-item.coords[0])<error&&Math.abs(pathBase[1]-item.coords[1])<error){command="z";data=[]}}item.command=command;item.args=data}else{relSubpoint[0]=pathBase[0];relSubpoint[1]=pathBase[1];if(prev.command==="Z"||prev.command==="z")return false}if((command==="Z"||command==="z")&&params.removeUseless&&isSafeToUseZ&&Math.abs(item.base[0]-item.coords[0])<error/10&&Math.abs(item.base[1]-item.coords[1])<error/10)return false;if(command==="q"){prevQControlPoint=[data[0]+item.base[0],data[1]+item.base[1]]}else if(command==="t"){if(qControlPoint){prevQControlPoint=reflectPoint(qControlPoint,item.base)}else{prevQControlPoint=item.coords}}prev=item;return true}));return path}function convertToMixed(path,params){var prev=path[0];path=path.filter((function(item,index){if(index==0)return true;if(item.command==="Z"||item.command==="z"){prev=item;return true}var command=item.command,data=item.args,adata=data.slice(),rdata=data.slice();if(command==="m"||command==="l"||command==="t"||command==="q"||command==="s"||command==="c"){for(var i=adata.length;i--;){adata[i]+=item.base[i%2]}}else if(command=="h"){adata[0]+=item.base[0]}else if(command=="v"){adata[0]+=item.base[1]}else if(command=="a"){adata[5]+=item.base[0];adata[6]+=item.base[1]}roundData(adata);roundData(rdata);var absoluteDataStr=cleanupOutData$1(adata,params),relativeDataStr=cleanupOutData$1(rdata,params);if(params.forceAbsolutePath||absoluteDataStr.length<relativeDataStr.length&&!(params.negativeExtraSpace&&command==prev.command&&prev.command.charCodeAt(0)>96&&absoluteDataStr.length==relativeDataStr.length-1&&(data[0]<0||Math.floor(data[0])===0&&!Number.isInteger(data[0])&&prev.args[prev.args.length-1]%1))){item.command=command.toUpperCase();item.args=adata}prev=item;return true}));return path}function isConvex(data){var center=getIntersection([0,0,data[2],data[3],data[0],data[1],data[4],data[5]]);return center!=null&&data[2]<center[0]==center[0]<0&&data[3]<center[1]==center[1]<0&&data[4]<center[0]==center[0]<data[0]&&data[5]<center[1]==center[1]<data[1]}function getIntersection(coords){var a1=coords[1]-coords[3],b1=coords[2]-coords[0],c1=coords[0]*coords[3]-coords[2]*coords[1],a2=coords[5]-coords[7],b2=coords[6]-coords[4],c2=coords[4]*coords[7]-coords[5]*coords[6],denom=a1*b2-a2*b1;if(!denom)return;var cross=[(b1*c2-b2*c1)/denom,(a1*c2-a2*c1)/-denom];if(!isNaN(cross[0])&&!isNaN(cross[1])&&isFinite(cross[0])&&isFinite(cross[1])){return cross}}function strongRound(data){const precisionNum=precision||0;for(let i=data.length;i-- >0;){const fixed=toFixed$1(data[i],precisionNum);if(fixed!==data[i]){const rounded=toFixed$1(data[i],precisionNum-1);data[i]=toFixed$1(Math.abs(rounded-data[i]),precisionNum+1)>=error?fixed:rounded}}return data}function round$1(data){for(var i=data.length;i-- >0;){data[i]=Math.round(data[i])}return data}function isCurveStraightLine(data){var i=data.length-2,a=-data[i+1],b=data[i],d=1/(a*a+b*b);if(i<=1||!isFinite(d))return false;while((i-=2)>=0){if(Math.sqrt(Math.pow(a*data[i]+b*data[i+1],2)*d)>error)return false}return true}function calculateSagitta(data){if(data[3]===1)return undefined;const[rx,ry]=data;if(Math.abs(rx-ry)>error)return undefined;const chord=Math.sqrt(data[5]**2+data[6]**2);if(chord>rx*2)return undefined;return rx-Math.sqrt(rx**2-.25*chord**2)}function makeLonghand(item,data){switch(item.command){case"s":item.command="c";break;case"t":item.command="q";break}item.args.unshift(data[data.length-2]-data[data.length-4],data[data.length-1]-data[data.length-3]);return item}function getDistance(point1,point2){return Math.sqrt((point1[0]-point2[0])**2+(point1[1]-point2[1])**2)}function reflectPoint(controlPoint,base){return[2*base[0]-controlPoint[0],2*base[1]-controlPoint[1]]}function getCubicBezierPoint(curve,t){var sqrT=t*t,cubT=sqrT*t,mt=1-t,sqrMt=mt*mt;return[3*sqrMt*t*curve[0]+3*mt*sqrT*curve[2]+cubT*curve[4],3*sqrMt*t*curve[1]+3*mt*sqrT*curve[3]+cubT*curve[5]]}function findCircle(curve){var midPoint=getCubicBezierPoint(curve,1/2),m1=[midPoint[0]/2,midPoint[1]/2],m2=[(midPoint[0]+curve[4])/2,(midPoint[1]+curve[5])/2],center=getIntersection([m1[0],m1[1],m1[0]+m1[1],m1[1]-m1[0],m2[0],m2[1],m2[0]+(m2[1]-midPoint[1]),m2[1]-(m2[0]-midPoint[0])]),radius=center&&getDistance([0,0],center),tolerance=Math.min(arcThreshold*error,arcTolerance*radius/100);if(center&&radius<1e15&&[1/4,3/4].every((function(point){return Math.abs(getDistance(getCubicBezierPoint(curve,point),center)-radius)<=tolerance})))return{center:center,radius:radius}}function isArc(curve,circle){var tolerance=Math.min(arcThreshold*error,arcTolerance*circle.radius/100);return[0,1/4,1/2,3/4,1].every((function(point){return Math.abs(getDistance(getCubicBezierPoint(curve,point),circle.center)-circle.radius)<=tolerance}))}function isArcPrev(curve,circle){return isArc(curve,{center:[circle.center[0]+curve[4],circle.center[1]+curve[5]],radius:circle.radius})}function findArcAngle(curve,relCircle){var x1=-relCircle.center[0],y1=-relCircle.center[1],x2=curve[4]-relCircle.center[0],y2=curve[5]-relCircle.center[1];return Math.acos((x1*x2+y1*y2)/Math.sqrt((x1*x1+y1*y1)*(x2*x2+y2*y2)))}function data2Path(params,pathData){return pathData.reduce((function(pathString,item){var strData="";if(item.args){strData=cleanupOutData$1(roundData(item.args.slice()),params)}return pathString+item.command+strData}),"")}var convertTransform$2={};const{cleanupOutData:cleanupOutData,toFixed:toFixed}=tools;const{transform2js:transform2js,transformsMultiply:transformsMultiply,matrixToTransform:matrixToTransform}=_transforms;convertTransform$2.name="convertTransform";convertTransform$2.description="collapses multiple transformations and optimizes it";convertTransform$2.fn=(_root,params)=>{const{convertToShorts:convertToShorts=true,degPrecision:degPrecision,floatPrecision:floatPrecision=3,transformPrecision:transformPrecision=5,matrixToTransform:matrixToTransform=true,shortTranslate:shortTranslate=true,shortScale:shortScale=true,shortRotate:shortRotate=true,removeUseless:removeUseless=true,collapseIntoOne:collapseIntoOne=true,leadingZero:leadingZero=true,negativeExtraSpace:negativeExtraSpace=false}=params;const newParams={convertToShorts:convertToShorts,degPrecision:degPrecision,floatPrecision:floatPrecision,transformPrecision:transformPrecision,matrixToTransform:matrixToTransform,shortTranslate:shortTranslate,shortScale:shortScale,shortRotate:shortRotate,removeUseless:removeUseless,collapseIntoOne:collapseIntoOne,leadingZero:leadingZero,negativeExtraSpace:negativeExtraSpace};return{element:{enter:node=>{if(node.attributes.transform!=null){convertTransform$1(node,"transform",newParams)}if(node.attributes.gradientTransform!=null){convertTransform$1(node,"gradientTransform",newParams)}if(node.attributes.patternTransform!=null){convertTransform$1(node,"patternTransform",newParams)}}}}};const convertTransform$1=(item,attrName,params)=>{let data=transform2js(item.attributes[attrName]);params=definePrecision(data,params);if(params.collapseIntoOne&&data.length>1){data=[transformsMultiply(data)]}if(params.convertToShorts){data=convertToShorts(data,params)}else{data.forEach((item=>roundTransform(item,params)))}if(params.removeUseless){data=removeUseless(data)}if(data.length){item.attributes[attrName]=js2transform(data,params)}else{delete item.attributes[attrName]}};const definePrecision=(data,{...newParams})=>{const matrixData=[];for(const item of data){if(item.name=="matrix"){matrixData.push(...item.data.slice(0,4))}}let numberOfDigits=newParams.transformPrecision;if(matrixData.length){newParams.transformPrecision=Math.min(newParams.transformPrecision,Math.max.apply(Math,matrixData.map(floatDigits))||newParams.transformPrecision);numberOfDigits=Math.max.apply(Math,matrixData.map((n=>n.toString().replace(/\D+/g,"").length)))}if(newParams.degPrecision==null){newParams.degPrecision=Math.max(0,Math.min(newParams.floatPrecision,numberOfDigits-2))}return newParams};const degRound=(data,params)=>{if(params.degPrecision!=null&&params.degPrecision>=1&&params.floatPrecision<20){return smartRound(params.degPrecision,data)}else{return round(data)}};const floatRound=(data,params)=>{if(params.floatPrecision>=1&&params.floatPrecision<20){return smartRound(params.floatPrecision,data)}else{return round(data)}};const transformRound=(data,params)=>{if(params.transformPrecision>=1&&params.floatPrecision<20){return smartRound(params.transformPrecision,data)}else{return round(data)}};const floatDigits=n=>{const str=n.toString();return str.slice(str.indexOf(".")).length-1};const convertToShorts=(transforms,params)=>{for(var i=0;i<transforms.length;i++){let transform=transforms[i];if(params.matrixToTransform&&transform.name==="matrix"){var decomposed=matrixToTransform(transform,params);if(js2transform(decomposed,params).length<=js2transform([transform],params).length){transforms.splice(i,1,...decomposed)}transform=transforms[i]}roundTransform(transform,params);if(params.shortTranslate&&transform.name==="translate"&&transform.data.length===2&&!transform.data[1]){transform.data.pop()}if(params.shortScale&&transform.name==="scale"&&transform.data.length===2&&transform.data[0]===transform.data[1]){transform.data.pop()}if(params.shortRotate&&transforms[i-2]?.name==="translate"&&transforms[i-1].name==="rotate"&&transforms[i].name==="translate"&&transforms[i-2].data[0]===-transforms[i].data[0]&&transforms[i-2].data[1]===-transforms[i].data[1]){transforms.splice(i-2,3,{name:"rotate",data:[transforms[i-1].data[0],transforms[i-2].data[0],transforms[i-2].data[1]]});i-=2}}return transforms};const removeUseless=transforms=>transforms.filter((transform=>{if(["translate","rotate","skewX","skewY"].indexOf(transform.name)>-1&&(transform.data.length==1||transform.name=="rotate")&&!transform.data[0]||transform.name=="translate"&&!transform.data[0]&&!transform.data[1]||transform.name=="scale"&&transform.data[0]==1&&(transform.data.length<2||transform.data[1]==1)||transform.name=="matrix"&&transform.data[0]==1&&transform.data[3]==1&&!(transform.data[1]||transform.data[2]||transform.data[4]||transform.data[5])){return false}return true}));const js2transform=(transformJS,params)=>{const transformString=transformJS.map((transform=>{roundTransform(transform,params);return`${transform.name}(${cleanupOutData(transform.data,params)})`})).join("");return transformString};const roundTransform=(transform,params)=>{switch(transform.name){case"translate":transform.data=floatRound(transform.data,params);break;case"rotate":transform.data=[...degRound(transform.data.slice(0,1),params),...floatRound(transform.data.slice(1),params)];break;case"skewX":case"skewY":transform.data=degRound(transform.data,params);break;case"scale":transform.data=transformRound(transform.data,params);break;case"matrix":transform.data=[...transformRound(transform.data.slice(0,4),params),...floatRound(transform.data.slice(4),params)];break}return transform};const round=data=>data.map(Math.round);const smartRound=(precision,data)=>{for(var i=data.length,tolerance=+Math.pow(.1,precision).toFixed(precision);i--;){if(toFixed(data[i],precision)!==data[i]){var rounded=+data[i].toFixed(precision-1);data[i]=+Math.abs(rounded-data[i]).toFixed(precision+1)>=tolerance?+data[i].toFixed(precision):rounded}}return data};var removeEmptyAttrs$1={};const{attrsGroups:attrsGroups$2}=_collections;removeEmptyAttrs$1.name="removeEmptyAttrs";removeEmptyAttrs$1.description="removes empty attributes";removeEmptyAttrs$1.fn=()=>({element:{enter:node=>{for(const[name,value]of Object.entries(node.attributes)){if(value===""&&!attrsGroups$2.conditionalProcessing.has(name)){delete node.attributes[name]}}}}});var removeEmptyContainers$1={};const{detachNodeFromParent:detachNodeFromParent$9}=xast;const{elemsGroups:elemsGroups}=_collections;removeEmptyContainers$1.name="removeEmptyContainers";removeEmptyContainers$1.description="removes empty container elements";removeEmptyContainers$1.fn=()=>({element:{exit:(node,parentNode)=>{if(node.name==="svg"||!elemsGroups.container.has(node.name)||node.children.length!==0){return}if(node.name==="pattern"&&Object.keys(node.attributes).length!==0){return}if(node.name==="g"&&node.attributes.filter!=null){return}if(node.name==="mask"&&node.attributes.id!=null){return}if(parentNode.type==="element"&&parentNode.name==="switch"){return}detachNodeFromParent$9(node,parentNode)}}});var mergePaths$1={};const{collectStylesheet:collectStylesheet$2,computeStyle:computeStyle$1}=style;const{path2js:path2js,js2path:js2path,intersects:intersects$1}=_path;mergePaths$1.name="mergePaths";mergePaths$1.description="merges multiple paths in one if possible";mergePaths$1.fn=(root,params)=>{const{force:force=false,floatPrecision:floatPrecision,noSpaceAfterFlags:noSpaceAfterFlags=false}=params;const stylesheet=collectStylesheet$2(root);return{element:{enter:node=>{if(node.children.length<=1){return}const elementsToRemove=[];let prevChild=node.children[0];let prevPathData=null;const updatePreviousPath=(child,pathData)=>{js2path(child,pathData,{floatPrecision:floatPrecision,noSpaceAfterFlags:noSpaceAfterFlags});prevPathData=null};for(let i=1;i<node.children.length;i++){const child=node.children[i];if(prevChild.type!=="element"||prevChild.name!=="path"||prevChild.children.length!==0||prevChild.attributes.d==null){if(prevPathData&&prevChild.type==="element"){updatePreviousPath(prevChild,prevPathData)}prevChild=child;continue}if(child.type!=="element"||child.name!=="path"||child.children.length!==0||child.attributes.d==null){if(prevPathData){updatePreviousPath(prevChild,prevPathData)}prevChild=child;continue}const computedStyle=computeStyle$1(stylesheet,child);if(computedStyle["marker-start"]||computedStyle["marker-mid"]||computedStyle["marker-end"]){if(prevPathData){updatePreviousPath(prevChild,prevPathData)}prevChild=child;continue}const childAttrs=Object.keys(child.attributes);if(childAttrs.length!==Object.keys(prevChild.attributes).length){if(prevPathData){updatePreviousPath(prevChild,prevPathData)}prevChild=child;continue}const areAttrsEqual=childAttrs.some((attr=>attr!=="d"&&prevChild.type==="element"&&prevChild.attributes[attr]!==child.attributes[attr]));if(areAttrsEqual){if(prevPathData){updatePreviousPath(prevChild,prevPathData)}prevChild=child;continue}const hasPrevPath=prevPathData!=null;const currentPathData=path2js(child);prevPathData=prevPathData??path2js(prevChild);if(force||!intersects$1(prevPathData,currentPathData)){prevPathData.push(...currentPathData);elementsToRemove.push(child);continue}if(hasPrevPath){updatePreviousPath(prevChild,prevPathData)}prevChild=child;prevPathData=null}if(prevPathData&&prevChild.type==="element"){updatePreviousPath(prevChild,prevPathData)}node.children=node.children.filter((child=>!elementsToRemove.includes(child)))}}}};var removeUnusedNS$1={};removeUnusedNS$1.name="removeUnusedNS";removeUnusedNS$1.description="removes unused namespaces declaration";removeUnusedNS$1.fn=()=>{const unusedNamespaces=new Set;return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const name of Object.keys(node.attributes)){if(name.startsWith("xmlns:")){const local=name.slice("xmlns:".length);unusedNamespaces.add(local)}}}if(unusedNamespaces.size!==0){if(node.name.includes(":")){const[ns]=node.name.split(":");if(unusedNamespaces.has(ns)){unusedNamespaces.delete(ns)}}for(const name of Object.keys(node.attributes)){if(name.includes(":")){const[ns]=name.split(":");unusedNamespaces.delete(ns)}}}},exit:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const name of unusedNamespaces){delete node.attributes[`xmlns:${name}`]}}}}}};var sortAttrs$1={};sortAttrs$1.name="sortAttrs";sortAttrs$1.description="Sort element attributes for better compression";sortAttrs$1.fn=(_root,params)=>{const{order:order=["id","width","height","x","x1","x2","y","y1","y2","cx","cy","r","fill","stroke","marker","d","points"],xmlnsOrder:xmlnsOrder="front"}=params;const getNsPriority=name=>{if(xmlnsOrder==="front"){if(name==="xmlns"){return 3}if(name.startsWith("xmlns:")){return 2}}if(name.includes(":")){return 1}return 0};const compareAttrs=([aName],[bName])=>{const aPriority=getNsPriority(aName);const bPriority=getNsPriority(bName);const priorityNs=bPriority-aPriority;if(priorityNs!==0){return priorityNs}const[aPart]=aName.split("-");const[bPart]=bName.split("-");if(aPart!==bPart){const aInOrderFlag=order.includes(aPart)?1:0;const bInOrderFlag=order.includes(bPart)?1:0;if(aInOrderFlag===1&&bInOrderFlag===1){return order.indexOf(aPart)-order.indexOf(bPart)}const priorityOrder=bInOrderFlag-aInOrderFlag;if(priorityOrder!==0){return priorityOrder}}return aName<bName?-1:1};return{element:{enter:node=>{const attrs=Object.entries(node.attributes);attrs.sort(compareAttrs);const sortedAttributes={};for(const[name,value]of attrs){sortedAttributes[name]=value}node.attributes=sortedAttributes}}}};var sortDefsChildren$1={};sortDefsChildren$1.name="sortDefsChildren";sortDefsChildren$1.description="Sorts children of <defs> to improve compression";sortDefsChildren$1.fn=()=>({element:{enter:node=>{if(node.name==="defs"){const frequencies=new Map;for(const child of node.children){if(child.type==="element"){const frequency=frequencies.get(child.name);if(frequency==null){frequencies.set(child.name,1)}else{frequencies.set(child.name,frequency+1)}}}node.children.sort(((a,b)=>{if(a.type!=="element"||b.type!=="element"){return 0}const aFrequency=frequencies.get(a.name);const bFrequency=frequencies.get(b.name);if(aFrequency!=null&&bFrequency!=null){const frequencyComparison=bFrequency-aFrequency;if(frequencyComparison!==0){return frequencyComparison}}const lengthComparison=b.name.length-a.name.length;if(lengthComparison!==0){return lengthComparison}if(a.name!==b.name){return a.name>b.name?-1:1}return 0}))}}}});var removeTitle$1={};const{detachNodeFromParent:detachNodeFromParent$8}=xast;removeTitle$1.name="removeTitle";removeTitle$1.description="removes <title>";removeTitle$1.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="title"){detachNodeFromParent$8(node,parentNode)}}}});var removeDesc$1={};const{detachNodeFromParent:detachNodeFromParent$7}=xast;removeDesc$1.name="removeDesc";removeDesc$1.description="removes <desc>";const standardDescs=/^(Created with|Created using)/;removeDesc$1.fn=(root,params)=>{const{removeAny:removeAny=false}=params;return{element:{enter:(node,parentNode)=>{if(node.name==="desc"){if(removeAny||node.children.length===0||node.children[0].type==="text"&&standardDescs.test(node.children[0].value)){detachNodeFromParent$7(node,parentNode)}}}}}};const{createPreset:createPreset}=plugins;const removeDoctype=removeDoctype$1;const removeXMLProcInst=removeXMLProcInst$1;const removeComments=removeComments$1;const removeMetadata=removeMetadata$1;const removeEditorsNSData=removeEditorsNSData$1;const cleanupAttrs=cleanupAttrs$1;const mergeStyles=mergeStyles$1;const inlineStyles=inlineStyles$1;const minifyStyles=minifyStyles$1;const cleanupIds=cleanupIds$1;const removeUselessDefs=removeUselessDefs$1;const cleanupNumericValues=cleanupNumericValues$1;const convertColors=convertColors$1;const removeUnknownsAndDefaults=removeUnknownsAndDefaults$1;const removeNonInheritableGroupAttrs=removeNonInheritableGroupAttrs$1;const removeUselessStrokeAndFill=removeUselessStrokeAndFill$1;const removeViewBox=removeViewBox$1;const cleanupEnableBackground=cleanupEnableBackground$1;const removeHiddenElems=removeHiddenElems$1;const removeEmptyText=removeEmptyText$1;const convertShapeToPath=convertShapeToPath$1;const convertEllipseToCircle=convertEllipseToCircle$1;const moveElemsAttrsToGroup=moveElemsAttrsToGroup$1;const moveGroupAttrsToElems=moveGroupAttrsToElems$1;const collapseGroups=collapseGroups$1;const convertPathData=convertPathData$1;const convertTransform=convertTransform$2;const removeEmptyAttrs=removeEmptyAttrs$1;const removeEmptyContainers=removeEmptyContainers$1;const mergePaths=mergePaths$1;const removeUnusedNS=removeUnusedNS$1;const sortAttrs=sortAttrs$1;const sortDefsChildren=sortDefsChildren$1;const removeTitle=removeTitle$1;const removeDesc=removeDesc$1;const presetDefault=createPreset({name:"preset-default",plugins:[removeDoctype,removeXMLProcInst,removeComments,removeMetadata,removeEditorsNSData,cleanupAttrs,mergeStyles,inlineStyles,minifyStyles,cleanupIds,removeUselessDefs,cleanupNumericValues,convertColors,removeUnknownsAndDefaults,removeNonInheritableGroupAttrs,removeUselessStrokeAndFill,removeViewBox,cleanupEnableBackground,removeHiddenElems,removeEmptyText,convertShapeToPath,convertEllipseToCircle,moveElemsAttrsToGroup,moveGroupAttrsToElems,collapseGroups,convertPathData,convertTransform,removeEmptyAttrs,removeEmptyContainers,mergePaths,removeUnusedNS,sortAttrs,sortDefsChildren,removeTitle,removeDesc]});var presetDefault_1=presetDefault;var addAttributesToSVGElement={};addAttributesToSVGElement.name="addAttributesToSVGElement";addAttributesToSVGElement.description="adds attributes to an outer <svg> element";var ENOCLS$1=`Error in plugin "addAttributesToSVGElement": absent parameters.\nIt should have a list of "attributes" or one "attribute".\nConfig example:\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attribute: "mySvg"\n }\n }\n]\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attributes: ["mySvg", "size-big"]\n }\n }\n]\n\nplugins: [\n {\n name: 'addAttributesToSVGElement',\n params: {\n attributes: [\n {\n focusable: false\n },\n {\n 'data-image': icon\n }\n ]\n }\n }\n]\n`;addAttributesToSVGElement.fn=(root,params)=>{if(!Array.isArray(params.attributes)&&!params.attribute){console.error(ENOCLS$1);return null}const attributes=params.attributes||[params.attribute];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){for(const attribute of attributes){if(typeof attribute==="string"){if(node.attributes[attribute]==null){node.attributes[attribute]=undefined}}if(typeof attribute==="object"){for(const key of Object.keys(attribute)){if(node.attributes[key]==null){node.attributes[key]=attribute[key]}}}}}}}}};var addClassesToSVGElement={};addClassesToSVGElement.name="addClassesToSVGElement";addClassesToSVGElement.description="adds classnames to an outer <svg> element";var ENOCLS=`Error in plugin "addClassesToSVGElement": absent parameters.\nIt should have a list of classes in "classNames" or one "className".\nConfig example:\n\nplugins: [\n {\n name: "addClassesToSVGElement",\n params: {\n className: "mySvg"\n }\n }\n]\n\nplugins: [\n {\n name: "addClassesToSVGElement",\n params: {\n classNames: ["mySvg", "size-big"]\n }\n }\n]\n`;addClassesToSVGElement.fn=(root,params)=>{if(!(Array.isArray(params.classNames)&&params.classNames.some(String))&&!params.className){console.error(ENOCLS);return null}const classNames=params.classNames||[params.className];return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){const classList=new Set(node.attributes.class==null?null:node.attributes.class.split(" "));for(const className of classNames){if(className!=null){classList.add(className)}}node.attributes.class=Array.from(classList).join(" ")}}}}};var cleanupListOfValues={};const{removeLeadingZero:removeLeadingZero}=tools;cleanupListOfValues.name="cleanupListOfValues";cleanupListOfValues.description="rounds list of values to the fixed precision";const regNumericValues=/^([-+]?\d*\.?\d+([eE][-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/;const regSeparator=/\s+,?\s*|,\s*/;const absoluteLengths={cm:96/2.54,mm:96/25.4,in:96,pt:4/3,pc:16,px:1};cleanupListOfValues.fn=(_root,params)=>{const{floatPrecision:floatPrecision=3,leadingZero:leadingZero=true,defaultPx:defaultPx=true,convertToPx:convertToPx=true}=params;const roundValues=lists=>{const roundedList=[];for(const elem of lists.split(regSeparator)){const match=elem.match(regNumericValues);const matchNew=elem.match(/new/);if(match){let num=Number(Number(match[1]).toFixed(floatPrecision));let matchedUnit=match[3]||"";let units=matchedUnit;if(convertToPx&&units&&units in absoluteLengths){const pxNum=Number((absoluteLengths[units]*Number(match[1])).toFixed(floatPrecision));if(pxNum.toString().length<match[0].length){num=pxNum;units="px"}}let str;if(leadingZero){str=removeLeadingZero(num)}else{str=num.toString()}if(defaultPx&&units==="px"){units=""}roundedList.push(str+units)}else if(matchNew){roundedList.push("new")}else if(elem){roundedList.push(elem)}}return roundedList.join(" ")};return{element:{enter:node=>{if(node.attributes.points!=null){node.attributes.points=roundValues(node.attributes.points)}if(node.attributes["enable-background"]!=null){node.attributes["enable-background"]=roundValues(node.attributes["enable-background"])}if(node.attributes.viewBox!=null){node.attributes.viewBox=roundValues(node.attributes.viewBox)}if(node.attributes["stroke-dasharray"]!=null){node.attributes["stroke-dasharray"]=roundValues(node.attributes["stroke-dasharray"])}if(node.attributes.dx!=null){node.attributes.dx=roundValues(node.attributes.dx)}if(node.attributes.dy!=null){node.attributes.dy=roundValues(node.attributes.dy)}if(node.attributes.x!=null){node.attributes.x=roundValues(node.attributes.x)}if(node.attributes.y!=null){node.attributes.y=roundValues(node.attributes.y)}}}}};var convertOneStopGradients={};const{attrsGroupsDefaults:attrsGroupsDefaults,colorsProps:colorsProps}=_collections;const{detachNodeFromParent:detachNodeFromParent$6,querySelectorAll:querySelectorAll$2,querySelector:querySelector}=xast;const{computeStyle:computeStyle,collectStylesheet:collectStylesheet$1}=style;convertOneStopGradients.name="convertOneStopGradients";convertOneStopGradients.description="converts one-stop (single color) gradients to a plain color";convertOneStopGradients.fn=root=>{const stylesheet=collectStylesheet$1(root);const effectedDefs=new Set;const allDefs=new Map;const gradientsToDetach=new Map;let xlinkHrefCount=0;return{element:{enter:(node,parentNode)=>{if(node.attributes["xlink:href"]!=null){xlinkHrefCount++}if(node.name==="defs"){allDefs.set(node,parentNode);return}if(node.name!=="linearGradient"&&node.name!=="radialGradient"){return}const stops=node.children.filter((child=>child.type==="element"&&child.name==="stop"));const href=node.attributes["xlink:href"]||node.attributes["href"];let effectiveNode=stops.length===0&&href!=null&&href.startsWith("#")?querySelector(root,href):node;if(effectiveNode==null||effectiveNode.type!=="element"){gradientsToDetach.set(node,parentNode);return}const effectiveStops=effectiveNode.children.filter((child=>child.type==="element"&&child.name==="stop"));if(effectiveStops.length!==1||effectiveStops[0].type!=="element"){return}if(parentNode.type==="element"&&parentNode.name==="defs"){effectedDefs.add(parentNode)}gradientsToDetach.set(node,parentNode);let color;const style=computeStyle(stylesheet,effectiveStops[0])["stop-color"];if(style!=null&&style.type==="static"){color=style.value}const selectorVal=`url(#${node.attributes.id})`;const selector=[...colorsProps].map((attr=>`[${attr}="${selectorVal}"]`)).join(",");const elements=querySelectorAll$2(root,selector);for(const element of elements){if(element.type!=="element"){continue}for(const attr of colorsProps){if(element.attributes[attr]!==selectorVal){continue}if(color!=null){element.attributes[attr]=color}else{delete element.attributes[attr]}}}const styledElements=querySelectorAll$2(root,`[style*=${selectorVal}]`);for(const element of styledElements){if(element.type!=="element"){continue}element.attributes.style=element.attributes.style.replace(selectorVal,color||attrsGroupsDefaults.presentation["stop-color"])}},exit:node=>{if(node.name==="svg"){for(const[gradient,parent]of gradientsToDetach.entries()){if(gradient.attributes["xlink:href"]!=null){xlinkHrefCount--}detachNodeFromParent$6(gradient,parent)}if(xlinkHrefCount===0){delete node.attributes["xmlns:xlink"]}for(const[defs,parent]of allDefs.entries()){if(effectedDefs.has(defs)&&defs.children.length===0){detachNodeFromParent$6(defs,parent)}}}}}}};var convertStyleToAttrs={};const{attrsGroups:attrsGroups$1}=_collections;convertStyleToAttrs.name="convertStyleToAttrs";convertStyleToAttrs.description="converts style to attributes";const g=(...args)=>"(?:"+args.join("|")+")";const stylingProps=attrsGroups$1.presentation;const rEscape="\\\\(?:[0-9a-f]{1,6}\\s?|\\r\\n|.)";const rAttr="\\s*("+g("[^:;\\\\]",rEscape)+"*?)\\s*";const rSingleQuotes="'(?:[^'\\n\\r\\\\]|"+rEscape+")*?(?:'|$)";const rQuotes='"(?:[^"\\n\\r\\\\]|'+rEscape+')*?(?:"|$)';const rQuotedString=new RegExp("^"+g(rSingleQuotes,rQuotes)+"$");const rParenthesis="\\("+g("[^'\"()\\\\]+",rEscape,rSingleQuotes,rQuotes)+"*?"+"\\)";const rValue="\\s*("+g("[^!'\"();\\\\]+?",rEscape,rSingleQuotes,rQuotes,rParenthesis,"[^;]*?")+"*?"+")";const rDeclEnd="\\s*(?:;\\s*|$)";const rImportant="(\\s*!important(?![-(\\w]))?";const regDeclarationBlock=new RegExp(rAttr+":"+rValue+rImportant+rDeclEnd,"ig");const regStripComments=new RegExp(g(rEscape,rSingleQuotes,rQuotes,"/\\*[^]*?\\*/"),"ig");convertStyleToAttrs.fn=(_root,params)=>{const{keepImportant:keepImportant=false}=params;return{element:{enter:node=>{if(node.attributes.style!=null){let styles=[];const newAttributes={};const styleValue=node.attributes.style.replace(regStripComments,(match=>match[0]=="/"?"":match[0]=="\\"&&/[-g-z]/i.test(match[1])?match[1]:match));regDeclarationBlock.lastIndex=0;for(var rule;rule=regDeclarationBlock.exec(styleValue);){if(!keepImportant||!rule[3]){styles.push([rule[1],rule[2]])}}if(styles.length){styles=styles.filter((function(style){if(style[0]){var prop=style[0].toLowerCase(),val=style[1];if(rQuotedString.test(val)){val=val.slice(1,-1)}if(stylingProps.has(prop)){newAttributes[prop]=val;return false}}return true}));Object.assign(node.attributes,newAttributes);if(styles.length){node.attributes.style=styles.map((declaration=>declaration.join(":"))).join(";")}else{delete node.attributes.style}}}}}}};var prefixIds={};const csstree=cjs$2;const{referencesProps:referencesProps}=_collections;prefixIds.name="prefixIds";prefixIds.description="prefix IDs";const getBasename=path=>{const matched=/[/\\]?([^/\\]+)$/.exec(path);if(matched){return matched[1]}return""};const escapeIdentifierName=str=>str.replace(/[. ]/g,"_");const unquote=string=>{if(string.startsWith('"')&&string.endsWith('"')||string.startsWith("'")&&string.endsWith("'")){return string.slice(1,-1)}return string};const prefixId=(prefixGenerator,body)=>{const prefix=prefixGenerator(body);if(body.startsWith(prefix)){return body}return prefix+body};const prefixReference=(prefixGenerator,reference)=>{if(reference.startsWith("#")){return"#"+prefixId(prefixGenerator,reference.slice(1))}return null};const generatePrefix=(body,node,info,prefixGenerator,delim,history)=>{if(typeof prefixGenerator==="function"){let prefix=history.get(body);if(prefix!=null){return prefix}prefix=prefixGenerator(node,info)+delim;history.set(body,prefix);return prefix}if(typeof prefixGenerator==="string"){return prefixGenerator+delim}if(prefixGenerator===false){return""}if(info.path!=null&&info.path.length>0){return escapeIdentifierName(getBasename(info.path))+delim}return"prefix"+delim};prefixIds.fn=(_root,params,info)=>{const{delim:delim="__",prefix:prefix,prefixIds:prefixIds=true,prefixClassNames:prefixClassNames=true}=params;const prefixMap=new Map;return{element:{enter:node=>{const prefixGenerator=id=>generatePrefix(id,node,info,prefix,delim,prefixMap);if(node.name==="style"){if(node.children.length===0){return}for(const child of node.children){if(child.type!=="text"&&child.type!=="cdata"){continue}const cssText=child.value;let cssAst=null;try{cssAst=csstree.parse(cssText,{parseValue:true,parseCustomProperty:false})}catch{return}csstree.walk(cssAst,(node=>{if(prefixIds&&node.type==="IdSelector"||prefixClassNames&&node.type==="ClassSelector"){node.name=prefixId(prefixGenerator,node.name);return}if(node.type==="Url"&&node.value.length>0){const prefixed=prefixReference(prefixGenerator,unquote(node.value));if(prefixed!=null){node.value=prefixed}}}));child.value=csstree.generate(cssAst);return}}if(prefixIds&&node.attributes.id!=null&&node.attributes.id.length!==0){node.attributes.id=prefixId(prefixGenerator,node.attributes.id)}if(prefixClassNames&&node.attributes.class!=null&&node.attributes.class.length!==0){node.attributes.class=node.attributes.class.split(/\s+/).map((name=>prefixId(prefixGenerator,name))).join(" ")}for(const name of["href","xlink:href"]){if(node.attributes[name]!=null&&node.attributes[name].length!==0){const prefixed=prefixReference(prefixGenerator,node.attributes[name]);if(prefixed!=null){node.attributes[name]=prefixed}}}for(const name of referencesProps){if(node.attributes[name]!=null&&node.attributes[name].length!==0){node.attributes[name]=node.attributes[name].replace(/\burl\((["'])?(#.+?)\1\)/gi,((match,_,url)=>{const prefixed=prefixReference(prefixGenerator,url);if(prefixed==null){return match}return`url(${prefixed})`}))}}for(const name of["begin","end"]){if(node.attributes[name]!=null&&node.attributes[name].length!==0){const parts=node.attributes[name].split(/\s*;\s+/).map((val=>{if(val.endsWith(".end")||val.endsWith(".start")){const[id,postfix]=val.split(".");return`${prefixId(prefixGenerator,id)}.${postfix}`}return val}));node.attributes[name]=parts.join("; ")}}}}}};var removeAttributesBySelector={};const{querySelectorAll:querySelectorAll$1}=xast;removeAttributesBySelector.name="removeAttributesBySelector";removeAttributesBySelector.description="removes attributes of elements that match a css selector";removeAttributesBySelector.fn=(root,params)=>{const selectors=Array.isArray(params.selectors)?params.selectors:[params];for(const{selector:selector,attributes:attributes}of selectors){const nodes=querySelectorAll$1(root,selector);for(const node of nodes){if(node.type==="element"){if(Array.isArray(attributes)){for(const name of attributes){delete node.attributes[name]}}else{delete node.attributes[attributes]}}}}return{}};var removeAttrs={};removeAttrs.name="removeAttrs";removeAttrs.description="removes specified attributes";const DEFAULT_SEPARATOR=":";const ENOATTRS=`Warning: The plugin "removeAttrs" requires the "attrs" parameter.\nIt should have a pattern to remove, otherwise the plugin is a noop.\nConfig example:\n\nplugins: [\n {\n name: "removeAttrs",\n params: {\n attrs: "(fill|stroke)"\n }\n }\n]\n`;removeAttrs.fn=(root,params)=>{if(typeof params.attrs=="undefined"){console.warn(ENOATTRS);return null}const elemSeparator=typeof params.elemSeparator=="string"?params.elemSeparator:DEFAULT_SEPARATOR;const preserveCurrentColor=typeof params.preserveCurrentColor=="boolean"?params.preserveCurrentColor:false;const attrs=Array.isArray(params.attrs)?params.attrs:[params.attrs];return{element:{enter:node=>{for(let pattern of attrs){if(!pattern.includes(elemSeparator)){pattern=[".*",pattern,".*"].join(elemSeparator)}else if(pattern.split(elemSeparator).length<3){pattern=[pattern,".*"].join(elemSeparator)}const list=pattern.split(elemSeparator).map((value=>{if(value==="*"){value=".*"}return new RegExp(["^",value,"$"].join(""),"i")}));if(list[0].test(node.name)){for(const[name,value]of Object.entries(node.attributes)){const isFillCurrentColor=preserveCurrentColor&&name=="fill"&&value=="currentColor";const isStrokeCurrentColor=preserveCurrentColor&&name=="stroke"&&value=="currentColor";if(!isFillCurrentColor&&!isStrokeCurrentColor&&list[1].test(name)&&list[2].test(value)){delete node.attributes[name]}}}}}}}};var removeDimensions={};removeDimensions.name="removeDimensions";removeDimensions.description="removes width and height in presence of viewBox (opposite to removeViewBox, disable it first)";removeDimensions.fn=()=>({element:{enter:node=>{if(node.name==="svg"){if(node.attributes.viewBox!=null){delete node.attributes.width;delete node.attributes.height}else if(node.attributes.width!=null&&node.attributes.height!=null&&Number.isNaN(Number(node.attributes.width))===false&&Number.isNaN(Number(node.attributes.height))===false){const width=Number(node.attributes.width);const height=Number(node.attributes.height);node.attributes.viewBox=`0 0 ${width} ${height}`;delete node.attributes.width;delete node.attributes.height}}}}});var removeElementsByAttr={};const{detachNodeFromParent:detachNodeFromParent$5}=xast;removeElementsByAttr.name="removeElementsByAttr";removeElementsByAttr.description="removes arbitrary elements by ID or className (disabled by default)";removeElementsByAttr.fn=(root,params)=>{const ids=params.id==null?[]:Array.isArray(params.id)?params.id:[params.id];const classes=params.class==null?[]:Array.isArray(params.class)?params.class:[params.class];return{element:{enter:(node,parentNode)=>{if(node.attributes.id!=null&&ids.length!==0){if(ids.includes(node.attributes.id)){detachNodeFromParent$5(node,parentNode)}}if(node.attributes.class&&classes.length!==0){const classList=node.attributes.class.split(" ");for(const item of classes){if(classList.includes(item)){detachNodeFromParent$5(node,parentNode);break}}}}}}};var removeOffCanvasPaths={};const{visitSkip:visitSkip,detachNodeFromParent:detachNodeFromParent$4}=xast;const{parsePathData:parsePathData}=path;const{intersects:intersects}=_path;removeOffCanvasPaths.name="removeOffCanvasPaths";removeOffCanvasPaths.description="removes elements that are drawn outside of the viewbox (disabled by default)";removeOffCanvasPaths.fn=()=>{let viewBoxData=null;return{element:{enter:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){let viewBox="";if(node.attributes.viewBox!=null){viewBox=node.attributes.viewBox}else if(node.attributes.height!=null&&node.attributes.width!=null){viewBox=`0 0 ${node.attributes.width} ${node.attributes.height}`}viewBox=viewBox.replace(/[,+]|px/g," ").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"");const m=/^(-?\d*\.?\d+) (-?\d*\.?\d+) (\d*\.?\d+) (\d*\.?\d+)$/.exec(viewBox);if(m==null){return}const left=Number.parseFloat(m[1]);const top=Number.parseFloat(m[2]);const width=Number.parseFloat(m[3]);const height=Number.parseFloat(m[4]);viewBoxData={left:left,top:top,right:left+width,bottom:top+height,width:width,height:height}}if(node.attributes.transform!=null){return visitSkip}if(node.name==="path"&&node.attributes.d!=null&&viewBoxData!=null){const pathData=parsePathData(node.attributes.d);let visible=false;for(const pathDataItem of pathData){if(pathDataItem.command==="M"){const[x,y]=pathDataItem.args;if(x>=viewBoxData.left&&x<=viewBoxData.right&&y>=viewBoxData.top&&y<=viewBoxData.bottom){visible=true}}}if(visible){return}if(pathData.length===2){pathData.push({command:"z",args:[]})}const{left:left,top:top,width:width,height:height}=viewBoxData;const viewBoxPathData=[{command:"M",args:[left,top]},{command:"h",args:[width]},{command:"v",args:[height]},{command:"H",args:[left]},{command:"z",args:[]}];if(intersects(viewBoxPathData,pathData)===false){detachNodeFromParent$4(node,parentNode)}}}}}};var removeRasterImages={};const{detachNodeFromParent:detachNodeFromParent$3}=xast;removeRasterImages.name="removeRasterImages";removeRasterImages.description="removes raster images (disabled by default)";removeRasterImages.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="image"&&node.attributes["xlink:href"]!=null&&/(\.|image\/)(jpe?g|png|gif)/.test(node.attributes["xlink:href"])){detachNodeFromParent$3(node,parentNode)}}}});var removeScriptElement={};const{detachNodeFromParent:detachNodeFromParent$2}=xast;const{attrsGroups:attrsGroups}=_collections;removeScriptElement.name="removeScriptElement";removeScriptElement.description="removes scripts (disabled by default)";const eventAttrs=[...attrsGroups.animationEvent,...attrsGroups.documentEvent,...attrsGroups.documentElementEvent,...attrsGroups.globalEvent,...attrsGroups.graphicalEvent];removeScriptElement.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="script"){detachNodeFromParent$2(node,parentNode);return}for(const attr of eventAttrs){if(node.attributes[attr]!=null){delete node.attributes[attr]}}},exit:(node,parentNode)=>{if(node.name!=="a"){return}for(const attr of Object.keys(node.attributes)){if(attr==="href"||attr.endsWith(":href")){if(node.attributes[attr]==null||!node.attributes[attr].trimStart().startsWith("javascript:")){continue}const index=parentNode.children.indexOf(node);parentNode.children.splice(index,1,...node.children);for(const child of node.children){Object.defineProperty(child,"parentNode",{writable:true,value:parentNode})}}}}}});var removeStyleElement={};const{detachNodeFromParent:detachNodeFromParent$1}=xast;removeStyleElement.name="removeStyleElement";removeStyleElement.description="removes <style> element (disabled by default)";removeStyleElement.fn=()=>({element:{enter:(node,parentNode)=>{if(node.name==="style"){detachNodeFromParent$1(node,parentNode)}}}});var removeXlink={};const{elems:elems}=_collections;removeXlink.name="removeXlink";removeXlink.description="remove xlink namespace and replaces attributes with the SVG 2 equivalent where applicable";const XLINK_NAMESPACE="http://www.w3.org/1999/xlink";const SHOW_TO_TARGET={new:"_blank",replace:"_self"};const LEGACY_ELEMENTS=new Set(["cursor","filter","font-face-uri","glyphRef","tref"]);const findPrefixedAttrs=(node,prefixes,attr)=>prefixes.map((prefix=>`${prefix}:${attr}`)).filter((attr=>node.attributes[attr]!=null));removeXlink.fn=(_,params)=>{const{includeLegacy:includeLegacy}=params;const xlinkPrefixes=[];const overriddenPrefixes=[];const usedInLegacyElement=[];return{element:{enter:node=>{for(const[key,value]of Object.entries(node.attributes)){if(key.startsWith("xmlns:")){const prefix=key.split(":",2)[1];if(value===XLINK_NAMESPACE){xlinkPrefixes.push(prefix);continue}if(xlinkPrefixes.includes(prefix)){overriddenPrefixes.push(prefix)}}}if(overriddenPrefixes.some((prefix=>xlinkPrefixes.includes(prefix)))){return}const showAttrs=findPrefixedAttrs(node,xlinkPrefixes,"show");let showHandled=node.attributes.target!=null;for(let i=showAttrs.length-1;i>=0;i--){const attr=showAttrs[i];const value=node.attributes[attr];const mapping=SHOW_TO_TARGET[value];if(showHandled||mapping==null){delete node.attributes[attr];continue}if(mapping!==elems[node.name]?.defaults?.target){node.attributes.target=mapping}delete node.attributes[attr];showHandled=true}const titleAttrs=findPrefixedAttrs(node,xlinkPrefixes,"title");for(let i=titleAttrs.length-1;i>=0;i--){const attr=titleAttrs[i];const value=node.attributes[attr];const hasTitle=node.children.filter((child=>child.type==="element"&&child.name==="title"));if(hasTitle.length>0){delete node.attributes[attr];continue}const titleTag={type:"element",name:"title",attributes:{},children:[{type:"text",value:value}]};Object.defineProperty(titleTag,"parentNode",{writable:true,value:node});node.children.unshift(titleTag);delete node.attributes[attr]}const hrefAttrs=findPrefixedAttrs(node,xlinkPrefixes,"href");if(hrefAttrs.length>0&&LEGACY_ELEMENTS.has(node.name)&&!includeLegacy){hrefAttrs.map((attr=>attr.split(":",1)[0])).forEach((prefix=>usedInLegacyElement.push(prefix)));return}for(let i=hrefAttrs.length-1;i>=0;i--){const attr=hrefAttrs[i];const value=node.attributes[attr];if(node.attributes.href!=null){delete node.attributes[attr];continue}node.attributes.href=value;delete node.attributes[attr]}},exit:node=>{for(const[key,value]of Object.entries(node.attributes)){const[prefix,attr]=key.split(":",2);if(xlinkPrefixes.includes(prefix)&&!overriddenPrefixes.includes(prefix)&&!usedInLegacyElement.includes(prefix)&&!includeLegacy){delete node.attributes[key];continue}if(key.startsWith("xmlns:")&&!usedInLegacyElement.includes(attr)){if(value===XLINK_NAMESPACE){const index=xlinkPrefixes.indexOf(attr);xlinkPrefixes.splice(index,1);delete node.attributes[key];continue}if(overriddenPrefixes.includes(prefix)){const index=overriddenPrefixes.indexOf(attr);overriddenPrefixes.splice(index,1)}}}}}}};var removeXMLNS={};removeXMLNS.name="removeXMLNS";removeXMLNS.description="removes xmlns attribute (for inline svg, disabled by default)";removeXMLNS.fn=()=>({element:{enter:node=>{if(node.name==="svg"){delete node.attributes.xmlns}}}});var reusePaths={};const{collectStylesheet:collectStylesheet}=style;const{detachNodeFromParent:detachNodeFromParent,querySelectorAll:querySelectorAll}=xast;reusePaths.name="reusePaths";reusePaths.description="Finds <path> elements with the same d, fill, and "+"stroke, and converts them to <use> elements "+"referencing a single <path> def.";reusePaths.fn=root=>{const stylesheet=collectStylesheet(root);const paths=new Map;let svgDefs;const hrefs=new Set;return{element:{enter:(node,parentNode)=>{if(node.name==="path"&&node.attributes.d!=null){const d=node.attributes.d;const fill=node.attributes.fill||"";const stroke=node.attributes.stroke||"";const key=d+";s:"+stroke+";f:"+fill;let list=paths.get(key);if(list==null){list=[];paths.set(key,list)}list.push(node)}if(svgDefs==null&&node.name==="defs"&&parentNode.type==="element"&&parentNode.name==="svg"){svgDefs=node}if(node.name==="use"){for(const name of["href","xlink:href"]){const href=node.attributes[name];if(href!=null&&href.startsWith("#")&&href.length>1){hrefs.add(href.slice(1))}}}},exit:(node,parentNode)=>{if(node.name==="svg"&&parentNode.type==="root"){let defsTag=svgDefs;if(defsTag==null){defsTag={type:"element",name:"defs",attributes:{},children:[]};Object.defineProperty(defsTag,"parentNode",{writable:true,value:node})}let index=0;for(const list of paths.values()){if(list.length>1){const reusablePath={type:"element",name:"path",attributes:{},children:[]};for(const attr of["fill","stroke","d"]){if(list[0].attributes[attr]!=null){reusablePath.attributes[attr]=list[0].attributes[attr]}}const originalId=list[0].attributes.id;if(originalId==null||hrefs.has(originalId)||stylesheet.rules.some((rule=>rule.selector===`#${originalId}`))){reusablePath.attributes.id="reuse-"+index++}else{reusablePath.attributes.id=originalId;delete list[0].attributes.id}Object.defineProperty(reusablePath,"parentNode",{writable:true,value:defsTag});defsTag.children.push(reusablePath);for(const pathNode of list){delete pathNode.attributes.d;delete pathNode.attributes.stroke;delete pathNode.attributes.fill;if(defsTag.children.includes(pathNode)&&pathNode.children.length===0){if(Object.keys(pathNode.attributes).length===0){detachNodeFromParent(pathNode,defsTag);continue}if(Object.keys(pathNode.attributes).length===1&&pathNode.attributes.id!=null){detachNodeFromParent(pathNode,defsTag);const selector=`[xlink\\:href=#${pathNode.attributes.id}], [href=#${pathNode.attributes.id}]`;for(const child of querySelectorAll(node,selector)){if(child.type!=="element"){continue}for(const name of["href","xlink:href"]){if(child.attributes[name]!=null){child.attributes[name]="#"+reusablePath.attributes.id}}}continue}}pathNode.name="use";pathNode.attributes["xlink:href"]="#"+reusablePath.attributes.id}}}if(defsTag.children.length!==0){if(node.attributes["xmlns:xlink"]==null){node.attributes["xmlns:xlink"]="http://www.w3.org/1999/xlink"}if(svgDefs==null){node.children.unshift(defsTag)}}}}}}};builtin$1.builtin=[presetDefault_1,addAttributesToSVGElement,addClassesToSVGElement,cleanupAttrs$1,cleanupEnableBackground$1,cleanupIds$1,cleanupListOfValues,cleanupNumericValues$1,collapseGroups$1,convertColors$1,convertEllipseToCircle$1,convertOneStopGradients,convertPathData$1,convertShapeToPath$1,convertStyleToAttrs,convertTransform$2,mergeStyles$1,inlineStyles$1,mergePaths$1,minifyStyles$1,moveElemsAttrsToGroup$1,moveGroupAttrsToElems$1,prefixIds,removeAttributesBySelector,removeAttrs,removeComments$1,removeDesc$1,removeDimensions,removeDoctype$1,removeEditorsNSData$1,removeElementsByAttr,removeEmptyAttrs$1,removeEmptyContainers$1,removeEmptyText$1,removeHiddenElems$1,removeMetadata$1,removeNonInheritableGroupAttrs$1,removeOffCanvasPaths,removeRasterImages,removeScriptElement,removeStyleElement,removeTitle$1,removeUnknownsAndDefaults$1,removeUnusedNS$1,removeUselessDefs$1,removeUselessStrokeAndFill$1,removeViewBox$1,removeXlink,removeXMLNS,removeXMLProcInst$1,reusePaths,sortAttrs$1,sortDefsChildren$1];const{parseSvg:parseSvg}=parser$4;const{stringifySvg:stringifySvg}=stringifier;const{builtin:builtin}=builtin$1;const{invokePlugins:invokePlugins}=plugins;const{encodeSVGDatauri:encodeSVGDatauri}=tools;const pluginsMap={};for(const plugin of builtin){pluginsMap[plugin.name]=plugin}const resolvePluginConfig=plugin=>{if(typeof plugin==="string"){const builtinPlugin=pluginsMap[plugin];if(builtinPlugin==null){throw Error(`Unknown builtin plugin "${plugin}" specified.`)}return{name:plugin,params:{},fn:builtinPlugin.fn}}if(typeof plugin==="object"&&plugin!=null){if(plugin.name==null){throw Error(`Plugin name should be specified`)}let fn=plugin.fn;if(fn==null){const builtinPlugin=pluginsMap[plugin.name];if(builtinPlugin==null){throw Error(`Unknown builtin plugin "${plugin.name}" specified.`)}fn=builtinPlugin.fn}return{name:plugin.name,params:plugin.params,fn:fn}}return null};const optimize=(input,config)=>{if(config==null){config={}}if(typeof config!=="object"){throw Error("Config should be an object")}const maxPassCount=config.multipass?10:1;let prevResultSize=Number.POSITIVE_INFINITY;let output="";const info={};if(config.path!=null){info.path=config.path}for(let i=0;i<maxPassCount;i+=1){info.multipassCount=i;const ast=parseSvg(input,config.path);const plugins=config.plugins||["preset-default"];if(!Array.isArray(plugins)){throw Error("malformed config, `plugins` property must be an array.\nSee more info here: https://github.com/svg/svgo#configuration")}const resolvedPlugins=plugins.filter((plugin=>plugin!=null)).map(resolvePluginConfig);if(resolvedPlugins.length<plugins.length){console.warn("Warning: plugins list includes null or undefined elements, these will be ignored.")}const globalOverrides={};if(config.floatPrecision!=null){globalOverrides.floatPrecision=config.floatPrecision}invokePlugins(ast,info,resolvedPlugins,null,globalOverrides);output=stringifySvg(ast,config.js2svg);if(output.length<prevResultSize){input=output;prevResultSize=output.length}else{break}}if(config.datauri){output=encodeSVGDatauri(output,config.datauri)}return{data:output}};var optimize_1=svgo.optimize=optimize;export{svgo as default,optimize_1 as optimize};
diff --git a/node_modules/svgo/lib/parser.js b/node_modules/svgo/lib/parser.js
index aeed3f09..4637acf1 100644
--- a/node_modules/svgo/lib/parser.js
+++ b/node_modules/svgo/lib/parser.js
@@ -100,7 +100,7 @@ const parseSvg = (data, from) => {
*/
let current = root;
/**
- * @type {Array<XastParent>}
+ * @type {XastParent[]}
*/
const stack = [root];
@@ -213,7 +213,7 @@ const parseSvg = (data, from) => {
sax.ontext = (text) => {
if (current.type === 'element') {
// prevent trimming of meaningful whitespace inside textual tags
- if (textElems.includes(current.name)) {
+ if (textElems.has(current.name)) {
/**
* @type {XastText}
*/
@@ -249,7 +249,7 @@ const parseSvg = (data, from) => {
e.line + 1,
e.column,
data,
- from
+ from,
);
if (e.message.indexOf('Unexpected end') === -1) {
throw error;
diff --git a/node_modules/svgo/lib/path.js b/node_modules/svgo/lib/path.js
index 1e383dd9..814ee2e3 100644
--- a/node_modules/svgo/lib/path.js
+++ b/node_modules/svgo/lib/path.js
@@ -1,6 +1,6 @@
'use strict';
-const { removeLeadingZero } = require('./svgo/tools');
+const { removeLeadingZero, toFixed } = require('./svgo/tools');
/**
* @typedef {import('./types').PathDataItem} PathDataItem
@@ -135,11 +135,11 @@ const readNumber = (string, cursor) => {
};
/**
- * @type {(string: string) => Array<PathDataItem>}
+ * @type {(string: string) => PathDataItem[]}
*/
const parsePathData = (string) => {
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [];
/**
@@ -243,15 +243,20 @@ const parsePathData = (string) => {
exports.parsePathData = parsePathData;
/**
- * @type {(number: number, precision?: number) => string}
+ * @type {(number: number, precision?: number) => {
+ * roundedStr: string,
+ * rounded: number
+ * }}
*/
-const stringifyNumber = (number, precision) => {
+const roundAndStringify = (number, precision) => {
if (precision != null) {
- const ratio = 10 ** precision;
- number = Math.round(number * ratio) / ratio;
+ number = toFixed(number, precision);
}
- // remove zero whole from decimal number
- return removeLeadingZero(number);
+
+ return {
+ roundedStr: removeLeadingZero(number),
+ rounded: number,
+ };
};
/**
@@ -267,83 +272,109 @@ const stringifyNumber = (number, precision) => {
*/
const stringifyArgs = (command, args, precision, disableSpaceAfterFlags) => {
let result = '';
- let prev = '';
- for (let i = 0; i < args.length; i += 1) {
- const number = args[i];
- const numberString = stringifyNumber(number, precision);
+ let previous;
+
+ for (let i = 0; i < args.length; i++) {
+ const { roundedStr, rounded } = roundAndStringify(args[i], precision);
if (
disableSpaceAfterFlags &&
(command === 'A' || command === 'a') &&
// consider combined arcs
(i % 7 === 4 || i % 7 === 5)
) {
- result += numberString;
- } else if (i === 0 || numberString.startsWith('-')) {
+ result += roundedStr;
+ } else if (i === 0 || rounded < 0) {
// avoid space before first and negative numbers
- result += numberString;
- } else if (prev.includes('.') && numberString.startsWith('.')) {
+ result += roundedStr;
+ } else if (
+ !Number.isInteger(previous) &&
+ rounded != 0 &&
+ rounded < 1 &&
+ rounded > -1
+ ) {
// remove space before decimal with zero whole
// only when previous number is also decimal
- result += numberString;
+ result += roundedStr;
} else {
- result += ` ${numberString}`;
+ result += ` ${roundedStr}`;
}
- prev = numberString;
+ previous = rounded;
}
+
return result;
};
/**
* @typedef {{
- * pathData: Array<PathDataItem>;
+ * pathData: PathDataItem[];
* precision?: number;
* disableSpaceAfterFlags?: boolean;
* }} StringifyPathDataOptions
*/
/**
- * @type {(options: StringifyPathDataOptions) => string}
+ * @param {StringifyPathDataOptions} options
+ * @returns {string}
*/
const stringifyPathData = ({ pathData, precision, disableSpaceAfterFlags }) => {
- // combine sequence of the same commands
- let combined = [];
- for (let i = 0; i < pathData.length; i += 1) {
+ if (pathData.length === 1) {
+ const { command, args } = pathData[0];
+ return (
+ command + stringifyArgs(command, args, precision, disableSpaceAfterFlags)
+ );
+ }
+
+ let result = '';
+ let prev = { ...pathData[0] };
+
+ // match leading moveto with following lineto
+ if (pathData[1].command === 'L') {
+ prev.command = 'M';
+ } else if (pathData[1].command === 'l') {
+ prev.command = 'm';
+ }
+
+ for (let i = 1; i < pathData.length; i++) {
const { command, args } = pathData[i];
- if (i === 0) {
- combined.push({ command, args });
- } else {
- /**
- * @type {PathDataItem}
- */
- const last = combined[combined.length - 1];
- // match leading moveto with following lineto
- if (i === 1) {
- if (command === 'L') {
- last.command = 'M';
- }
- if (command === 'l') {
- last.command = 'm';
- }
+ if (
+ (prev.command === command &&
+ prev.command !== 'M' &&
+ prev.command !== 'm') ||
+ // combine matching moveto and lineto sequences
+ (prev.command === 'M' && command === 'L') ||
+ (prev.command === 'm' && command === 'l')
+ ) {
+ prev.args = [...prev.args, ...args];
+ if (i === pathData.length - 1) {
+ result +=
+ prev.command +
+ stringifyArgs(
+ prev.command,
+ prev.args,
+ precision,
+ disableSpaceAfterFlags,
+ );
}
- if (
- (last.command === command &&
- last.command !== 'M' &&
- last.command !== 'm') ||
- // combine matching moveto and lineto sequences
- (last.command === 'M' && command === 'L') ||
- (last.command === 'm' && command === 'l')
- ) {
- last.args = [...last.args, ...args];
+ } else {
+ result +=
+ prev.command +
+ stringifyArgs(
+ prev.command,
+ prev.args,
+ precision,
+ disableSpaceAfterFlags,
+ );
+
+ if (i === pathData.length - 1) {
+ result +=
+ command +
+ stringifyArgs(command, args, precision, disableSpaceAfterFlags);
} else {
- combined.push({ command, args });
+ prev = { command, args };
}
}
}
- let result = '';
- for (const { command, args } of combined) {
- result +=
- command + stringifyArgs(command, args, precision, disableSpaceAfterFlags);
- }
+
return result;
};
exports.stringifyPathData = stringifyPathData;
diff --git a/node_modules/svgo/lib/stringifier.js b/node_modules/svgo/lib/stringifier.js
index e50e723c..1a710869 100644
--- a/node_modules/svgo/lib/stringifier.js
+++ b/node_modules/svgo/lib/stringifier.js
@@ -235,7 +235,7 @@ const stringifyElement = (node, config, state) => {
tagCloseStart = defaults.tagCloseStart;
tagCloseEnd = defaults.tagCloseEnd;
openIndent = '';
- } else if (textElems.includes(node.name)) {
+ } else if (textElems.has(node.name)) {
tagOpenEnd = defaults.tagOpenEnd;
tagCloseStart = defaults.tagCloseStart;
closeIndent = '';
diff --git a/node_modules/svgo/lib/style.js b/node_modules/svgo/lib/style.js
index 29e4a538..0e62afb9 100644
--- a/node_modules/svgo/lib/style.js
+++ b/node_modules/svgo/lib/style.js
@@ -16,7 +16,6 @@
const csstree = require('css-tree');
const csswhat = require('css-what');
const {
- // @ts-ignore internal api
syntax: { specificity },
} = require('csso');
const { visit, matches } = require('./xast.js');
@@ -34,7 +33,7 @@ const csstreeWalkSkip = csstree.walk.skip;
*/
const parseRule = (ruleNode, dynamic) => {
/**
- * @type {Array<StylesheetDeclaration>}
+ * @type {StylesheetDeclaration[]}
*/
const declarations = [];
// collect declarations
@@ -74,10 +73,10 @@ const parseRule = (ruleNode, dynamic) => {
};
/**
- * @type {(css: string, dynamic: boolean) => Array<StylesheetRule>}
+ * @type {(css: string, dynamic: boolean) => StylesheetRule[]}
*/
const parseStylesheet = (css, dynamic) => {
- /** @type {Array<StylesheetRule>} */
+ /** @type {StylesheetRule[]} */
const rules = [];
const ast = csstree.parse(css, {
parseValue: false,
@@ -108,10 +107,10 @@ const parseStylesheet = (css, dynamic) => {
};
/**
- * @type {(css: string) => Array<StylesheetDeclaration>}
+ * @type {(css: string) => StylesheetDeclaration[]}
*/
const parseStyleDeclarations = (css) => {
- /** @type {Array<StylesheetDeclaration>} */
+ /** @type {StylesheetDeclaration[]} */
const declarations = [];
const ast = csstree.parse(css, {
context: 'declarationList',
@@ -130,7 +129,9 @@ const parseStyleDeclarations = (css) => {
};
/**
- * @type {(stylesheet: Stylesheet, node: XastElement) => ComputedStyles}
+ * @param {Stylesheet} stylesheet
+ * @param {XastElement} node
+ * @returns {ComputedStyles}
*/
const computeOwnStyle = (stylesheet, node) => {
/** @type {ComputedStyles} */
@@ -139,7 +140,7 @@ const computeOwnStyle = (stylesheet, node) => {
// collect attributes
for (const [name, value] of Object.entries(node.attributes)) {
- if (attrsGroups.presentation.includes(name)) {
+ if (attrsGroups.presentation.has(name)) {
computedStyle[name] = { type: 'static', inherited: false, value };
importantStyles.set(name, false);
}
@@ -217,29 +218,31 @@ exports.compareSpecificity = compareSpecificity;
* @type {(root: XastRoot) => Stylesheet}
*/
const collectStylesheet = (root) => {
- /** @type {Array<StylesheetRule>} */
+ /** @type {StylesheetRule[]} */
const rules = [];
/** @type {Map<XastElement, XastParent>} */
const parents = new Map();
+
visit(root, {
element: {
enter: (node, parentNode) => {
- // store parents
parents.set(node, parentNode);
- // find and parse all styles
- if (node.name === 'style') {
+
+ if (node.name !== 'style') {
+ return;
+ }
+
+ if (
+ node.attributes.type == null ||
+ node.attributes.type === '' ||
+ node.attributes.type === 'text/css'
+ ) {
const dynamic =
node.attributes.media != null && node.attributes.media !== 'all';
- if (
- node.attributes.type == null ||
- node.attributes.type === '' ||
- node.attributes.type === 'text/css'
- ) {
- const children = node.children;
- for (const child of children) {
- if (child.type === 'text' || child.type === 'cdata') {
- rules.push(...parseStylesheet(child.value, dynamic));
- }
+
+ for (const child of node.children) {
+ if (child.type === 'text' || child.type === 'cdata') {
+ rules.push(...parseStylesheet(child.value, dynamic));
}
}
}
@@ -253,11 +256,12 @@ const collectStylesheet = (root) => {
exports.collectStylesheet = collectStylesheet;
/**
- * @type {(stylesheet: Stylesheet, node: XastElement) => ComputedStyles}
+ * @param {Stylesheet} stylesheet
+ * @param {XastElement} node
+ * @returns {ComputedStyles}
*/
const computeStyle = (stylesheet, node) => {
const { parents } = stylesheet;
- // collect inherited styles
const computedStyles = computeOwnStyle(stylesheet, node);
let parent = parents.get(node);
while (parent != null && parent.type !== 'root') {
@@ -265,9 +269,8 @@ const computeStyle = (stylesheet, node) => {
for (const [name, computed] of Object.entries(inheritedStyles)) {
if (
computedStyles[name] == null &&
- // ignore not inheritable styles
- inheritableAttrs.includes(name) === true &&
- presentationNonInheritableGroupAttrs.includes(name) === false
+ inheritableAttrs.has(name) &&
+ !presentationNonInheritableGroupAttrs.has(name)
) {
computedStyles[name] = { ...computed, inherited: true };
}
@@ -295,7 +298,7 @@ const includesAttrSelector = (
selector,
name,
value = null,
- traversed = false
+ traversed = false,
) => {
const selectors =
typeof selector === 'string'
diff --git a/node_modules/svgo/lib/svgo.d.ts b/node_modules/svgo/lib/svgo.d.ts
index d98d1293..d4e9e3c2 100644
--- a/node_modules/svgo/lib/svgo.d.ts
+++ b/node_modules/svgo/lib/svgo.d.ts
@@ -61,9 +61,9 @@ export declare function optimize(input: string, config?: Config): Output;
*/
export declare function loadConfig(
configFile: string,
- cwd?: string
+ cwd?: string,
): Promise<Config>;
export declare function loadConfig(
configFile?: null,
- cwd?: string
+ cwd?: string,
): Promise<Config | null>;
diff --git a/node_modules/svgo/lib/svgo.js b/node_modules/svgo/lib/svgo.js
index c19c0a40..acb1f72e 100644
--- a/node_modules/svgo/lib/svgo.js
+++ b/node_modules/svgo/lib/svgo.js
@@ -67,7 +67,7 @@ const optimize = (input, config) => {
const plugins = config.plugins || ['preset-default'];
if (!Array.isArray(plugins)) {
throw Error(
- 'malformed config, `plugins` property must be an array.\nSee more info here: https://github.com/svg/svgo#configuration'
+ 'malformed config, `plugins` property must be an array.\nSee more info here: https://github.com/svg/svgo#configuration',
);
}
const resolvedPlugins = plugins
@@ -76,7 +76,7 @@ const optimize = (input, config) => {
if (resolvedPlugins.length < plugins.length) {
console.warn(
- 'Warning: plugins list includes null or undefined elements, these will be ignored.'
+ 'Warning: plugins list includes null or undefined elements, these will be ignored.',
);
}
const globalOverrides = {};
diff --git a/node_modules/svgo/lib/svgo/coa.js b/node_modules/svgo/lib/svgo/coa.js
index c7f2c827..8e638d06 100644
--- a/node_modules/svgo/lib/svgo/coa.js
+++ b/node_modules/svgo/lib/svgo/coa.js
@@ -35,43 +35,43 @@ module.exports = function makeProgram(program) {
.option('-s, --string <STRING>', 'Input SVG data string')
.option(
'-f, --folder <FOLDER>',
- 'Input folder, optimize and rewrite all *.svg files'
+ 'Input folder, optimize and rewrite all *.svg files',
)
.option(
'-o, --output <OUTPUT...>',
- 'Output file or folder (by default the same as the input), "-" for STDOUT'
+ 'Output file or folder (by default the same as the input), "-" for STDOUT',
)
.option(
'-p, --precision <INTEGER>',
- 'Set number of digits in the fractional part, overrides plugins params'
+ 'Set number of digits in the fractional part, overrides plugins params',
)
.option('--config <CONFIG>', 'Custom config file, only .js is supported')
.option(
'--datauri <FORMAT>',
- 'Output as Data URI string (base64), URI encoded (enc) or unencoded (unenc)'
+ 'Output as Data URI string (base64), URI encoded (enc) or unencoded (unenc)',
)
.option(
'--multipass',
- 'Pass over SVGs multiple times to ensure all optimizations are applied'
+ 'Pass over SVGs multiple times to ensure all optimizations are applied',
)
.option('--pretty', 'Make SVG pretty printed')
.option('--indent <INTEGER>', 'Indent number when pretty printing SVGs')
.option(
'--eol <EOL>',
- 'Line break to use when outputting SVG: lf, crlf. If unspecified, uses platform default.'
+ 'Line break to use when outputting SVG: lf, crlf. If unspecified, uses platform default.',
)
.option('--final-newline', 'Ensure SVG ends with a line break')
.option(
'-r, --recursive',
- "Use with '--folder'. Optimizes *.svg files in folders recursively."
+ "Use with '--folder'. Optimizes *.svg files in folders recursively.",
)
.option(
'--exclude <PATTERN...>',
- "Use with '--folder'. Exclude files matching regular expression pattern."
+ "Use with '--folder'. Exclude files matching regular expression pattern.",
)
.option(
'-q, --quiet',
- 'Only output error messages, not regular status messages'
+ 'Only output error messages, not regular status messages',
)
.option('--show-plugins', 'Show available plugins and exit')
// used by picocolors internally
@@ -88,7 +88,7 @@ async function action(args, opts, command) {
const number = Number.parseInt(opts.precision, 10);
if (Number.isNaN(number)) {
console.error(
- "error: option '-p, --precision' argument must be an integer number"
+ "error: option '-p, --precision' argument must be an integer number",
);
process.exit(1);
} else {
@@ -103,7 +103,7 @@ async function action(args, opts, command) {
opts.datauri !== 'unenc'
) {
console.error(
- "error: option '--datauri' must have one of the following values: 'base64', 'enc' or 'unenc'"
+ "error: option '--datauri' must have one of the following values: 'base64', 'enc' or 'unenc'",
);
process.exit(1);
}
@@ -113,7 +113,7 @@ async function action(args, opts, command) {
const number = Number.parseInt(opts.indent, 10);
if (Number.isNaN(number)) {
console.error(
- "error: option '--indent' argument must be an integer number"
+ "error: option '--indent' argument must be an integer number",
);
process.exit(1);
} else {
@@ -123,7 +123,7 @@ async function action(args, opts, command) {
if (opts.eol != null && opts.eol !== 'lf' && opts.eol !== 'crlf') {
console.error(
- "error: option '--eol' must have one of the following values: 'lf' or 'crlf'"
+ "error: option '--eol' must have one of the following values: 'lf' or 'crlf'",
);
process.exit(1);
}
@@ -155,7 +155,7 @@ async function action(args, opts, command) {
var nodeVersion = String(PKG.engines.node).match(/\d*(\.\d+)*/)[0];
if (parseFloat(process.versions.node) < parseFloat(nodeVersion)) {
throw Error(
- `${PKG.name} requires Node.js version ${nodeVersion} or higher.`
+ `${PKG.name} requires Node.js version ${nodeVersion} or higher.`,
);
}
}
@@ -254,16 +254,13 @@ async function action(args, opts, command) {
process.stdin
.on('data', (chunk) => (data += chunk))
.once('end', () =>
- processSVGData(config, { input: 'string' }, data, file).then(
- resolve,
- reject
- )
+ processSVGData(config, null, data, file).then(resolve, reject),
);
});
// file
} else {
await Promise.all(
- input.map((file, n) => optimizeFile(config, file, output[n]))
+ input.map((file, n) => optimizeFile(config, file, output[n])),
);
}
@@ -271,7 +268,7 @@ async function action(args, opts, command) {
} else if (opts.string) {
var data = decodeSVGDatauri(opts.string);
- return processSVGData(config, { input: 'string' }, data, output[0]);
+ return processSVGData(config, null, data, output[0]);
}
}
@@ -311,12 +308,12 @@ function processDirectory(config, dir, files, output) {
optimizeFile(
config,
fileDescription.inputPath,
- fileDescription.outputPath
- )
- )
+ fileDescription.outputPath,
+ ),
+ ),
)
: Promise.reject(
- new Error(`No SVG files have been found in '${dir}' directory.`)
+ new Error(`No SVG files have been found in '${dir}' directory.`),
);
}
@@ -334,7 +331,7 @@ function getFilesDescriptions(config, dir, files, output) {
.filter(
(name) =>
regSVGFile.test(name) &&
- !config.exclude.some((regExclude) => regExclude.test(name))
+ !config.exclude.some((regExclude) => regExclude.test(name)),
)
.map((name) => ({
inputPath: path.resolve(dir, name),
@@ -354,10 +351,10 @@ function getFilesDescriptions(config, dir, files, output) {
config,
subFolderPath,
subFolderFiles,
- subFolderOutput
+ subFolderOutput,
);
})
- .reduce((a, b) => [].concat(a, b), [])
+ .reduce((a, b) => [].concat(a, b), []),
)
: filesInThisFolder;
}
@@ -372,9 +369,8 @@ function getFilesDescriptions(config, dir, files, output) {
*/
function optimizeFile(config, file, output) {
return fs.promises.readFile(file, 'utf8').then(
- (data) =>
- processSVGData(config, { input: 'file', path: file }, data, output, file),
- (error) => checkOptimizeFileError(config, file, output, error)
+ (data) => processSVGData(config, { path: file }, data, output, file),
+ (error) => checkOptimizeFileError(config, file, output, error),
);
}
@@ -423,9 +419,9 @@ function processSVGData(config, info, data, output, input) {
new Error(
error.code === 'ENOTDIR'
? `Error: output '${output}' is not a directory.`
- : error
- )
- )
+ : error,
+ ),
+ ),
);
}
@@ -475,7 +471,7 @@ function printProfitInfo(inBytes, outBytes) {
ui[0],
ui[1](Math.abs(Math.round(profitPercent * 10) / 10) + '%'),
'=',
- Math.round((outBytes / 1024) * 1000) / 1000 + ' KiB'
+ Math.round((outBytes / 1024) * 1000) / 1000 + ' KiB',
);
}
@@ -493,7 +489,7 @@ function checkOptimizeFileError(config, input, output, error) {
return optimizeFolder(config, input, output);
} else if (error.code == 'ENOENT') {
return Promise.reject(
- new Error(`Error: no such file or directory '${error.path}'.`)
+ new Error(`Error: no such file or directory '${error.path}'.`),
);
}
return Promise.reject(error);
@@ -513,7 +509,7 @@ function checkWriteFileError(input, output, data, error) {
return fs.promises.writeFile(
path.resolve(output, path.basename(input)),
data,
- 'utf8'
+ 'utf8',
);
} else {
return Promise.reject(error);
diff --git a/node_modules/svgo/lib/svgo/plugins.js b/node_modules/svgo/lib/svgo/plugins.js
index efeb01b1..10e93e9c 100644
--- a/node_modules/svgo/lib/svgo/plugins.js
+++ b/node_modules/svgo/lib/svgo/plugins.js
@@ -49,7 +49,7 @@ const createPreset = ({ name, plugins }) => {
` name: '${name}',\n` +
` },\n` +
` '${pluginName}'\n` +
- `]\n`
+ `]\n`,
);
}
}
diff --git a/node_modules/svgo/lib/svgo/tools.js b/node_modules/svgo/lib/svgo/tools.js
index 5e6bd69c..2d5269ec 100644
--- a/node_modules/svgo/lib/svgo/tools.js
+++ b/node_modules/svgo/lib/svgo/tools.js
@@ -74,7 +74,7 @@ exports.decodeSVGDatauri = (str) => {
* @example
* [0, -1, .5, .5] → "0-1 .5.5"
*
- * @type {(data: Array<number>, params: CleanupOutDataParams, command?: PathDataCommand) => string}
+ * @type {(data: number[], params: CleanupOutDataParams, command?: PathDataCommand) => string}
*/
exports.cleanupOutData = (data, params, command) => {
let str = '';
@@ -124,23 +124,24 @@ exports.cleanupOutData = (data, params, command) => {
/**
* Remove floating-point numbers leading zero.
*
+ * @param {number} value
+ * @returns {string}
* @example
* 0.5 → .5
- *
- * @example
* -0.5 → -.5
- *
- * @type {(num: number) => string}
*/
-const removeLeadingZero = (num) => {
- var strNum = num.toString();
+const removeLeadingZero = (value) => {
+ const strValue = value.toString();
- if (0 < num && num < 1 && strNum.charAt(0) === '0') {
- strNum = strNum.slice(1);
- } else if (-1 < num && num < 0 && strNum.charAt(1) === '0') {
- strNum = strNum.charAt(0) + strNum.slice(2);
+ if (0 < value && value < 1 && strValue.startsWith('0')) {
+ return strValue.slice(1);
}
- return strNum;
+
+ if (-1 < value && value < 0 && strValue[1] === '0') {
+ return strValue[0] + strValue.slice(2);
+ }
+
+ return strValue;
};
exports.removeLeadingZero = removeLeadingZero;
@@ -161,7 +162,7 @@ const hasScripts = (node) => {
([attrKey, attrValue]) =>
(attrKey === 'href' || attrKey.endsWith(':href')) &&
attrValue != null &&
- attrValue.trimStart().startsWith('javascript:')
+ attrValue.trimStart().startsWith('javascript:'),
);
if (hasJsLinks) {
@@ -204,7 +205,7 @@ exports.includesUrlReference = includesUrlReference;
const findReferences = (attribute, value) => {
const results = [];
- if (referencesProps.includes(attribute)) {
+ if (referencesProps.has(attribute)) {
const matches = value.matchAll(regReferencesUrl);
for (const match of matches) {
results.push(match[2]);
@@ -228,3 +229,17 @@ const findReferences = (attribute, value) => {
return results.map((body) => decodeURI(body));
};
exports.findReferences = findReferences;
+
+/**
+ * Does the same as {@link Number.toFixed} but without casting
+ * the return value to a string.
+ *
+ * @param {number} num
+ * @param {number} precision
+ * @returns {number}
+ */
+const toFixed = (num, precision) => {
+ const pow = 10 ** precision;
+ return Math.round(num * pow) / pow;
+};
+exports.toFixed = toFixed;
diff --git a/node_modules/svgo/lib/types.d.ts b/node_modules/svgo/lib/types.d.ts
index f6260c6a..f61d9f18 100644
--- a/node_modules/svgo/lib/types.d.ts
+++ b/node_modules/svgo/lib/types.d.ts
@@ -31,7 +31,7 @@ export type XastElement = {
type: 'element';
name: string;
attributes: Record<string, string>;
- children: Array<XastChild>;
+ children: XastChild[];
};
export type XastChild =
@@ -44,7 +44,7 @@ export type XastChild =
export type XastRoot = {
type: 'root';
- children: Array<XastChild>;
+ children: XastChild[];
};
export type XastParent = XastRoot | XastElement;
@@ -108,10 +108,10 @@ export type PluginInfo = {
export type Plugin<Params> = (
root: XastRoot,
params: Params,
- info: PluginInfo
+ info: PluginInfo,
) => null | Visitor;
-export type Specificity = [number, number, number, number];
+export type Specificity = [number, number, number];
export type StylesheetDeclaration = {
name: string;
@@ -123,11 +123,11 @@ export type StylesheetRule = {
dynamic: boolean;
selector: string;
specificity: Specificity;
- declarations: Array<StylesheetDeclaration>;
+ declarations: StylesheetDeclaration[];
};
export type Stylesheet = {
- rules: Array<StylesheetRule>;
+ rules: StylesheetRule[];
parents: Map<XastElement, XastParent>;
};
@@ -168,7 +168,7 @@ export type PathDataCommand =
export type PathDataItem = {
command: PathDataCommand;
- args: Array<number>;
+ args: number[];
};
export type DataUri = 'base64' | 'enc' | 'unenc';
diff --git a/node_modules/svgo/lib/xast.js b/node_modules/svgo/lib/xast.js
index 7f14e2a8..9dca9646 100644
--- a/node_modules/svgo/lib/xast.js
+++ b/node_modules/svgo/lib/xast.js
@@ -16,7 +16,7 @@ const cssSelectOptions = {
};
/**
- * @type {(node: XastNode, selector: string) => Array<XastChild>}
+ * @type {(node: XastNode, selector: string) => XastChild[]}
*/
const querySelectorAll = (node, selector) => {
return selectAll(selector, node, cssSelectOptions);
diff --git a/node_modules/svgo/package.json b/node_modules/svgo/package.json
index 2696a8e5..dbe4cd32 100644
--- a/node_modules/svgo/package.json
+++ b/node_modules/svgo/package.json
@@ -1,7 +1,7 @@
{
"packageManager": "yarn@2.4.3",
"name": "svgo",
- "version": "3.1.0",
+ "version": "3.2.0",
"description": "Nodejs-based tool for optimizing SVG vector graphics files",
"license": "MIT",
"keywords": [
@@ -64,47 +64,14 @@
},
"scripts": {
"test": "NODE_OPTIONS=--experimental-vm-modules jest --maxWorkers=4 --coverage",
- "lint": "eslint --ignore-path .gitignore . && prettier --check \"**/*.js\" --ignore-path .gitignore",
- "fix": "eslint --ignore-path .gitignore --fix . && prettier --write \"**/*.js\" --ignore-path .gitignore",
+ "lint": "eslint --ignore-path .gitignore . && prettier --check . --ignore-path .gitignore",
+ "fix": "eslint --ignore-path .gitignore --fix . && prettier --write . --ignore-path .gitignore",
"typecheck": "tsc",
"test-browser": "rollup -c && node ./test/browser.js",
"test-regression": "node ./test/regression-extract.js && NO_DIFF=1 node ./test/regression.js",
"prepublishOnly": "rm -rf dist && rollup -c",
"qa": "yarn lint && yarn typecheck && yarn test && yarn test-browser && yarn test-regression"
},
- "prettier": {
- "singleQuote": true
- },
- "eslintConfig": {
- "parserOptions": {
- "ecmaVersion": 2021
- },
- "env": {
- "node": true,
- "es2021": true
- },
- "extends": [
- "eslint:recommended"
- ],
- "overrides": [
- {
- "files": [
- "rollup.config.js"
- ],
- "parserOptions": {
- "sourceType": "module"
- }
- },
- {
- "files": [
- "**/*.test.js"
- ],
- "env": {
- "jest": true
- }
- }
- ]
- },
"jest": {
"coveragePathIgnorePatterns": [
"fixtures"
@@ -114,28 +81,28 @@
"@trysound/sax": "0.2.0",
"commander": "^7.2.0",
"css-select": "^5.1.0",
- "css-tree": "^2.2.1",
+ "css-tree": "^2.3.1",
"css-what": "^6.1.0",
- "csso": "5.0.5",
+ "csso": "^5.0.5",
"picocolors": "^1.0.0"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^22.0.2",
"@rollup/plugin-node-resolve": "^14.1.0",
- "@types/css-tree": "^2.0.0",
- "@types/csso": "~5.0.3",
+ "@types/css-tree": "^2.3.4",
+ "@types/csso": "^5.0.4",
"@types/jest": "^29.5.5",
"del": "^6.0.0",
- "eslint": "^8.24.0",
+ "eslint": "^8.55.0",
"jest": "^29.5.5",
"node-fetch": "^2.7.0",
- "pixelmatch": "^5.2.1",
- "playwright": "^1.14.1",
- "pngjs": "^6.0.0",
- "prettier": "^2.7.1",
+ "pixelmatch": "^5.3.0",
+ "playwright": "^1.40.1",
+ "pngjs": "^7.0.0",
+ "prettier": "^3.1.1",
"rollup": "^2.79.1",
"rollup-plugin-terser": "^7.0.2",
"tar-stream": "^3.1.6",
- "typescript": "^4.8.4"
+ "typescript": "^5.3.3"
}
} \ No newline at end of file
diff --git a/node_modules/svgo/plugins/_collections.js b/node_modules/svgo/plugins/_collections.js
index b9e67cb7..6f11b136 100644
--- a/node_modules/svgo/plugins/_collections.js
+++ b/node_modules/svgo/plugins/_collections.js
@@ -3,41 +3,50 @@
// https://www.w3.org/TR/SVG11/intro.html#Definitions
/**
- * @type {Record<string, Array<string>>}
+ * @type {Record<string, Set<string>>}
*/
exports.elemsGroups = {
- animation: [
+ animation: new Set([
'animate',
'animateColor',
'animateMotion',
'animateTransform',
'set',
- ],
- descriptive: ['desc', 'metadata', 'title'],
- shape: ['circle', 'ellipse', 'line', 'path', 'polygon', 'polyline', 'rect'],
- structural: ['defs', 'g', 'svg', 'symbol', 'use'],
- paintServer: [
- 'solidColor',
+ ]),
+ descriptive: new Set(['desc', 'metadata', 'title']),
+ shape: new Set([
+ 'circle',
+ 'ellipse',
+ 'line',
+ 'path',
+ 'polygon',
+ 'polyline',
+ 'rect',
+ ]),
+ structural: new Set(['defs', 'g', 'svg', 'symbol', 'use']),
+ paintServer: new Set([
+ 'hatch',
'linearGradient',
- 'radialGradient',
'meshGradient',
'pattern',
- 'hatch',
- ],
- nonRendering: [
- 'linearGradient',
'radialGradient',
- 'pattern',
+ 'solidColor',
+ ]),
+ nonRendering: new Set([
'clipPath',
- 'mask',
- 'marker',
- 'symbol',
'filter',
+ 'linearGradient',
+ 'marker',
+ 'mask',
+ 'pattern',
+ 'radialGradient',
'solidColor',
- ],
- container: [
+ 'symbol',
+ ]),
+ container: new Set([
'a',
'defs',
+ 'foreignObject',
'g',
'marker',
'mask',
@@ -46,28 +55,27 @@ exports.elemsGroups = {
'svg',
'switch',
'symbol',
- 'foreignObject',
- ],
- textContent: [
+ ]),
+ textContent: new Set([
'altGlyph',
'altGlyphDef',
'altGlyphItem',
'glyph',
'glyphRef',
- 'textPath',
'text',
+ 'textPath',
'tref',
'tspan',
- ],
- textContentChild: ['altGlyph', 'textPath', 'tref', 'tspan'],
- lightSource: [
+ ]),
+ textContentChild: new Set(['altGlyph', 'textPath', 'tref', 'tspan']),
+ lightSource: new Set([
'feDiffuseLighting',
- 'feSpecularLighting',
'feDistantLight',
'fePointLight',
+ 'feSpecularLighting',
'feSpotLight',
- ],
- filterPrimitive: [
+ ]),
+ filterPrimitive: new Set([
'feBlend',
'feColorMatrix',
'feComponentTransfer',
@@ -90,7 +98,7 @@ exports.elemsGroups = {
'feSpecularLighting',
'feTile',
'feTurbulence',
- ],
+ ]),
};
/**
@@ -99,81 +107,85 @@ exports.elemsGroups = {
*
* @see https://developer.mozilla.org/docs/Web/HTML/Element/pre
*/
-exports.textElems = [...exports.elemsGroups.textContent, 'title', 'pre'];
+exports.textElems = new Set([
+ ...exports.elemsGroups.textContent,
+ 'pre',
+ 'title',
+]);
-exports.pathElems = ['path', 'glyph', 'missing-glyph'];
+exports.pathElems = new Set(['glyph', 'missing-glyph', 'path']);
/**
- * @type {Record<string, Array<string>>}
+ * @type {Record<string, Set<string>>}
* @see https://www.w3.org/TR/SVG11/intro.html#Definitions
*/
exports.attrsGroups = {
- animationAddition: ['additive', 'accumulate'],
- animationAttributeTarget: ['attributeType', 'attributeName'],
- animationEvent: ['onbegin', 'onend', 'onrepeat', 'onload'],
- animationTiming: [
+ animationAddition: new Set(['additive', 'accumulate']),
+ animationAttributeTarget: new Set(['attributeType', 'attributeName']),
+ animationEvent: new Set(['onbegin', 'onend', 'onrepeat', 'onload']),
+ animationTiming: new Set([
'begin',
'dur',
'end',
- 'min',
+ 'fill',
'max',
- 'restart',
+ 'min',
'repeatCount',
'repeatDur',
- 'fill',
- ],
- animationValue: [
+ 'restart',
+ ]),
+ animationValue: new Set([
+ 'by',
'calcMode',
- 'values',
- 'keyTimes',
- 'keySplines',
'from',
+ 'keySplines',
+ 'keyTimes',
'to',
- 'by',
- ],
- conditionalProcessing: [
- 'requiredFeatures',
+ 'values',
+ ]),
+ conditionalProcessing: new Set([
'requiredExtensions',
+ 'requiredFeatures',
'systemLanguage',
- ],
- core: ['id', 'tabindex', 'xml:base', 'xml:lang', 'xml:space'],
- graphicalEvent: [
- 'onfocusin',
- 'onfocusout',
+ ]),
+ core: new Set(['id', 'tabindex', 'xml:base', 'xml:lang', 'xml:space']),
+ graphicalEvent: new Set([
'onactivate',
'onclick',
+ 'onfocusin',
+ 'onfocusout',
+ 'onload',
'onmousedown',
- 'onmouseup',
- 'onmouseover',
'onmousemove',
'onmouseout',
- 'onload',
- ],
- presentation: [
+ 'onmouseover',
+ 'onmouseup',
+ ]),
+ presentation: new Set([
'alignment-baseline',
'baseline-shift',
- 'clip',
'clip-path',
'clip-rule',
- 'color',
- 'color-interpolation',
+ 'clip',
'color-interpolation-filters',
+ 'color-interpolation',
'color-profile',
'color-rendering',
+ 'color',
'cursor',
'direction',
'display',
'dominant-baseline',
'enable-background',
- 'fill',
'fill-opacity',
'fill-rule',
+ 'fill',
'filter',
'flood-color',
'flood-opacity',
'font-family',
- 'font-size',
'font-size-adjust',
+ 'font-size',
'font-stretch',
'font-style',
'font-variant',
@@ -194,7 +206,6 @@ exports.attrsGroups = {
'shape-rendering',
'stop-color',
'stop-opacity',
- 'stroke',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
@@ -202,37 +213,38 @@ exports.attrsGroups = {
'stroke-miterlimit',
'stroke-opacity',
'stroke-width',
+ 'stroke',
'text-anchor',
'text-decoration',
'text-overflow',
'text-rendering',
- 'transform',
'transform-origin',
+ 'transform',
'unicode-bidi',
'vector-effect',
'visibility',
'word-spacing',
'writing-mode',
- ],
- xlink: [
- 'xlink:href',
- 'xlink:show',
+ ]),
+ xlink: new Set([
'xlink:actuate',
- 'xlink:type',
- 'xlink:role',
'xlink:arcrole',
+ 'xlink:href',
+ 'xlink:role',
+ 'xlink:show',
'xlink:title',
- ],
- documentEvent: [
+ 'xlink:type',
+ ]),
+ documentEvent: new Set([
'onabort',
'onerror',
'onresize',
'onscroll',
'onunload',
'onzoom',
- ],
- documentElementEvent: ['oncopy', 'oncut', 'onpaste'],
- globalEvent: [
+ ]),
+ documentElementEvent: new Set(['oncopy', 'oncut', 'onpaste']),
+ globalEvent: new Set([
'oncancel',
'oncanplay',
'oncanplaythrough',
@@ -289,17 +301,17 @@ exports.attrsGroups = {
'ontoggle',
'onvolumechange',
'onwaiting',
- ],
- filterPrimitive: ['x', 'y', 'width', 'height', 'result'],
- transferFunction: [
- 'type',
- 'tableValues',
- 'slope',
- 'intercept',
+ ]),
+ filterPrimitive: new Set(['x', 'y', 'width', 'height', 'result']),
+ transferFunction: new Set([
'amplitude',
'exponent',
+ 'intercept',
'offset',
- ],
+ 'slope',
+ 'tableValues',
+ 'type',
+ ]),
};
/**
@@ -371,49 +383,49 @@ exports.attrsGroupsDefaults = {
/**
* @type {Record<string, {
- * attrsGroups: Array<string>,
- * attrs?: Array<string>,
+ * attrsGroups: Set<string>,
+ * attrs?: Set<string>,
* defaults?: Record<string, string>,
- * contentGroups?: Array<string>,
- * content?: Array<string>,
+ * contentGroups?: Set<string>,
+ * content?: Set<string>,
* }>}
* @see https://www.w3.org/TR/SVG11/eltindex.html
*/
exports.elems = {
a: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
'xlink',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'transform',
+ 'style',
'target',
- ],
+ 'transform',
+ ]),
defaults: {
target: '_self',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -426,183 +438,188 @@ exports.elems = {
'view',
// not spec compliant
'tspan',
- ],
+ ]),
},
altGlyph: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
'xlink',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'x',
- 'y',
'dx',
'dy',
- 'glyphRef',
+ 'externalResourcesRequired',
'format',
+ 'glyphRef',
'rotate',
- ],
+ 'style',
+ 'x',
+ 'y',
+ ]),
},
altGlyphDef: {
- attrsGroups: ['core'],
- content: ['glyphRef'],
+ attrsGroups: new Set(['core']),
+ content: new Set(['glyphRef']),
},
altGlyphItem: {
- attrsGroups: ['core'],
- content: ['glyphRef', 'altGlyphItem'],
+ attrsGroups: new Set(['core']),
+ content: new Set(['glyphRef', 'altGlyphItem']),
},
animate: {
- attrsGroups: [
- 'conditionalProcessing',
- 'core',
+ attrsGroups: new Set([
'animationAddition',
'animationAttributeTarget',
'animationEvent',
'animationTiming',
'animationValue',
+ 'conditionalProcessing',
+ 'core',
'presentation',
'xlink',
- ],
- attrs: ['externalResourcesRequired'],
- contentGroups: ['descriptive'],
+ ]),
+ attrs: new Set(['externalResourcesRequired']),
+ contentGroups: new Set(['descriptive']),
},
animateColor: {
- attrsGroups: [
- 'conditionalProcessing',
- 'core',
- 'animationEvent',
- 'xlink',
+ attrsGroups: new Set([
+ 'animationAddition',
'animationAttributeTarget',
+ 'animationEvent',
'animationTiming',
'animationValue',
- 'animationAddition',
+ 'conditionalProcessing',
+ 'core',
'presentation',
- ],
- attrs: ['externalResourcesRequired'],
- contentGroups: ['descriptive'],
+ 'xlink',
+ ]),
+ attrs: new Set(['externalResourcesRequired']),
+ contentGroups: new Set(['descriptive']),
},
animateMotion: {
- attrsGroups: [
- 'conditionalProcessing',
- 'core',
+ attrsGroups: new Set([
+ 'animationAddition',
'animationEvent',
- 'xlink',
'animationTiming',
'animationValue',
- 'animationAddition',
- ],
- attrs: [
+ 'conditionalProcessing',
+ 'core',
+ 'xlink',
+ ]),
+ attrs: new Set([
'externalResourcesRequired',
- 'path',
'keyPoints',
- 'rotate',
'origin',
- ],
+ 'path',
+ 'rotate',
+ ]),
defaults: {
rotate: '0',
},
- contentGroups: ['descriptive'],
- content: ['mpath'],
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['mpath']),
},
animateTransform: {
- attrsGroups: [
- 'conditionalProcessing',
- 'core',
- 'animationEvent',
- 'xlink',
+ attrsGroups: new Set([
+ 'animationAddition',
'animationAttributeTarget',
+ 'animationEvent',
'animationTiming',
'animationValue',
- 'animationAddition',
- ],
- attrs: ['externalResourcesRequired', 'type'],
- contentGroups: ['descriptive'],
+ 'conditionalProcessing',
+ 'core',
+ 'xlink',
+ ]),
+ attrs: new Set(['externalResourcesRequired', 'type']),
+ contentGroups: new Set(['descriptive']),
},
circle: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'transform',
'cx',
'cy',
+ 'externalResourcesRequired',
'r',
- ],
+ 'style',
+ 'transform',
+ ]),
defaults: {
cx: '0',
cy: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
clipPath: {
- attrsGroups: ['conditionalProcessing', 'core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['conditionalProcessing', 'core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
+ 'clipPathUnits',
'externalResourcesRequired',
+ 'style',
'transform',
- 'clipPathUnits',
- ],
+ ]),
defaults: {
clipPathUnits: 'userSpaceOnUse',
},
- contentGroups: ['animation', 'descriptive', 'shape'],
- content: ['text', 'use'],
+ contentGroups: new Set(['animation', 'descriptive', 'shape']),
+ content: new Set(['text', 'use']),
},
'color-profile': {
- attrsGroups: ['core', 'xlink'],
- attrs: ['local', 'name', 'rendering-intent'],
+ attrsGroups: new Set(['core', 'xlink']),
+ attrs: new Set(['local', 'name', 'rendering-intent']),
defaults: {
name: 'sRGB',
'rendering-intent': 'auto',
},
- contentGroups: ['descriptive'],
+ contentGroups: new Set(['descriptive']),
},
cursor: {
- attrsGroups: ['core', 'conditionalProcessing', 'xlink'],
- attrs: ['externalResourcesRequired', 'x', 'y'],
+ attrsGroups: new Set(['core', 'conditionalProcessing', 'xlink']),
+ attrs: new Set(['externalResourcesRequired', 'x', 'y']),
defaults: {
x: '0',
y: '0',
},
- contentGroups: ['descriptive'],
+ contentGroups: new Set(['descriptive']),
},
defs: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: ['class', 'style', 'externalResourcesRequired', 'transform'],
- contentGroups: [
+ ]),
+ attrs: new Set([
+ 'class',
+ 'externalResourcesRequired',
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -613,38 +630,38 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
desc: {
- attrsGroups: ['core'],
- attrs: ['class', 'style'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['class', 'style']),
},
ellipse: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'transform',
'cx',
'cy',
+ 'externalResourcesRequired',
'rx',
'ry',
- ],
+ 'style',
+ 'transform',
+ ]),
defaults: {
cx: '0',
cy: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
feBlend: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'class',
'style',
// TODO: in - 'If no value is provided and this is the first filter primitive,
@@ -652,28 +669,38 @@ exports.elems = {
'in',
'in2',
'mode',
- ],
+ ]),
defaults: {
mode: 'normal',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feColorMatrix: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in', 'type', 'values'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in', 'type', 'values']),
defaults: {
type: 'matrix',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feComponentTransfer: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in'],
- content: ['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in']),
+ content: new Set(['feFuncA', 'feFuncB', 'feFuncG', 'feFuncR']),
},
feComposite: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in', 'in2', 'operator', 'k1', 'k2', 'k3', 'k4'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
+ 'class',
+ 'in',
+ 'in2',
+ 'k1',
+ 'k2',
+ 'k3',
+ 'k4',
+ 'operator',
+ 'style',
+ ]),
defaults: {
operator: 'over',
k1: '0',
@@ -681,203 +708,203 @@ exports.elems = {
k3: '0',
k4: '0',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feConvolveMatrix: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'class',
- 'style',
'in',
- 'order',
'kernelMatrix',
+ 'order',
+ 'style',
// TODO: divisor - 'The default value is the sum of all values in kernelMatrix,
// with the exception that if the sum is zero, then the divisor is set to 1'
- 'divisor',
'bias',
+ 'divisor',
// TODO: targetX - 'By default, the convolution matrix is centered in X over each
// pixel of the input image (i.e., targetX = floor ( orderX / 2 ))'
+ 'edgeMode',
'targetX',
'targetY',
- 'edgeMode',
// TODO: kernelUnitLength - 'The first number is the <dx> value. The second number
// is the <dy> value. If the <dy> value is not specified, it defaults to the same value as <dx>'
'kernelUnitLength',
'preserveAlpha',
- ],
+ ]),
defaults: {
order: '3',
bias: '0',
edgeMode: 'duplicate',
preserveAlpha: 'false',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feDiffuseLighting: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'class',
- 'style',
- 'in',
- 'surfaceScale',
'diffuseConstant',
+ 'in',
'kernelUnitLength',
- ],
+ 'style',
+ 'surfaceScale',
+ ]),
defaults: {
surfaceScale: '1',
diffuseConstant: '1',
},
- contentGroups: ['descriptive'],
- content: [
+ contentGroups: new Set(['descriptive']),
+ content: new Set([
// TODO: 'exactly one light source element, in any order'
'feDistantLight',
'fePointLight',
'feSpotLight',
- ],
+ ]),
},
feDisplacementMap: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'class',
- 'style',
'in',
'in2',
'scale',
+ 'style',
'xChannelSelector',
'yChannelSelector',
- ],
+ ]),
defaults: {
scale: '0',
xChannelSelector: 'A',
yChannelSelector: 'A',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feDistantLight: {
- attrsGroups: ['core'],
- attrs: ['azimuth', 'elevation'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['azimuth', 'elevation']),
defaults: {
azimuth: '0',
elevation: '0',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feFlood: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style'],
- content: ['animate', 'animateColor', 'set'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style']),
+ content: new Set(['animate', 'animateColor', 'set']),
},
feFuncA: {
- attrsGroups: ['core', 'transferFunction'],
- content: ['set', 'animate'],
+ attrsGroups: new Set(['core', 'transferFunction']),
+ content: new Set(['set', 'animate']),
},
feFuncB: {
- attrsGroups: ['core', 'transferFunction'],
- content: ['set', 'animate'],
+ attrsGroups: new Set(['core', 'transferFunction']),
+ content: new Set(['set', 'animate']),
},
feFuncG: {
- attrsGroups: ['core', 'transferFunction'],
- content: ['set', 'animate'],
+ attrsGroups: new Set(['core', 'transferFunction']),
+ content: new Set(['set', 'animate']),
},
feFuncR: {
- attrsGroups: ['core', 'transferFunction'],
- content: ['set', 'animate'],
+ attrsGroups: new Set(['core', 'transferFunction']),
+ content: new Set(['set', 'animate']),
},
feGaussianBlur: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in', 'stdDeviation'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in', 'stdDeviation']),
defaults: {
stdDeviation: '0',
},
- content: ['set', 'animate'],
+ content: new Set(['set', 'animate']),
},
feImage: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive', 'xlink'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive', 'xlink']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'preserveAspectRatio',
'href',
+ 'preserveAspectRatio',
+ 'style',
'xlink:href',
- ],
+ ]),
defaults: {
preserveAspectRatio: 'xMidYMid meet',
},
- content: ['animate', 'animateTransform', 'set'],
+ content: new Set(['animate', 'animateTransform', 'set']),
},
feMerge: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style'],
- content: ['feMergeNode'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style']),
+ content: new Set(['feMergeNode']),
},
feMergeNode: {
- attrsGroups: ['core'],
- attrs: ['in'],
- content: ['animate', 'set'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['in']),
+ content: new Set(['animate', 'set']),
},
feMorphology: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in', 'operator', 'radius'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in', 'operator', 'radius']),
defaults: {
operator: 'erode',
radius: '0',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feOffset: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in', 'dx', 'dy'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in', 'dx', 'dy']),
defaults: {
dx: '0',
dy: '0',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
fePointLight: {
- attrsGroups: ['core'],
- attrs: ['x', 'y', 'z'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['x', 'y', 'z']),
defaults: {
x: '0',
y: '0',
z: '0',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feSpecularLighting: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'class',
- 'style',
'in',
- 'surfaceScale',
+ 'kernelUnitLength',
'specularConstant',
'specularExponent',
- 'kernelUnitLength',
- ],
+ 'style',
+ 'surfaceScale',
+ ]),
defaults: {
surfaceScale: '1',
specularConstant: '1',
specularExponent: '1',
},
- contentGroups: [
+ contentGroups: new Set([
'descriptive',
// TODO: exactly one 'light source element'
'lightSource',
- ],
+ ]),
},
feSpotLight: {
- attrsGroups: ['core'],
- attrs: [
- 'x',
- 'y',
- 'z',
+ attrsGroups: new Set(['core']),
+ attrs: new Set([
+ 'limitingConeAngle',
'pointsAtX',
'pointsAtY',
'pointsAtZ',
'specularExponent',
- 'limitingConeAngle',
- ],
+ 'x',
+ 'y',
+ 'z',
+ ]),
defaults: {
x: '0',
y: '0',
@@ -887,24 +914,24 @@ exports.elems = {
pointsAtZ: '0',
specularExponent: '1',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
feTile: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: ['class', 'style', 'in'],
- content: ['animate', 'set'],
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set(['class', 'style', 'in']),
+ content: new Set(['animate', 'set']),
},
feTurbulence: {
- attrsGroups: ['core', 'presentation', 'filterPrimitive'],
- attrs: [
- 'class',
- 'style',
+ attrsGroups: new Set(['core', 'presentation', 'filterPrimitive']),
+ attrs: new Set([
'baseFrequency',
+ 'class',
'numOctaves',
'seed',
'stitchTiles',
+ 'style',
'type',
- ],
+ ]),
defaults: {
baseFrequency: '0',
numOctaves: '1',
@@ -912,24 +939,24 @@ exports.elems = {
stitchTiles: 'noStitch',
type: 'turbulence',
},
- content: ['animate', 'set'],
+ content: new Set(['animate', 'set']),
},
filter: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'x',
- 'y',
- 'width',
- 'height',
'filterRes',
'filterUnits',
- 'primitiveUnits',
+ 'height',
'href',
+ 'primitiveUnits',
+ 'style',
+ 'width',
+ 'x',
'xlink:href',
- ],
+ 'y',
+ ]),
defaults: {
primitiveUnits: 'userSpaceOnUse',
x: '-10%',
@@ -937,32 +964,32 @@ exports.elems = {
width: '120%',
height: '120%',
},
- contentGroups: ['descriptive', 'filterPrimitive'],
- content: ['animate', 'set'],
+ contentGroups: new Set(['descriptive', 'filterPrimitive']),
+ content: new Set(['animate', 'set']),
},
font: {
- attrsGroups: ['core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
+ 'horiz-adv-x',
'horiz-origin-x',
'horiz-origin-y',
- 'horiz-adv-x',
+ 'style',
+ 'vert-adv-y',
'vert-origin-x',
'vert-origin-y',
- 'vert-adv-y',
- ],
+ ]),
defaults: {
'horiz-origin-x': '0',
'horiz-origin-y': '0',
},
- contentGroups: ['descriptive'],
- content: ['font-face', 'glyph', 'hkern', 'missing-glyph', 'vkern'],
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['font-face', 'glyph', 'hkern', 'missing-glyph', 'vkern']),
},
'font-face': {
- attrsGroups: ['core'],
- attrs: [
+ attrsGroups: new Set(['core']),
+ attrs: new Set([
'font-family',
'font-style',
'font-variant',
@@ -996,7 +1023,7 @@ exports.elems = {
'strikethrough-thickness',
'overline-position',
'overline-thickness',
- ],
+ ]),
defaults: {
'font-style': 'all',
'font-variant': 'normal',
@@ -1007,76 +1034,81 @@ exports.elems = {
'panose-1': '0 0 0 0 0 0 0 0 0 0',
slope: '0',
},
- contentGroups: ['descriptive'],
- content: [
+ contentGroups: new Set(['descriptive']),
+ content: new Set([
// TODO: "at most one 'font-face-src' element"
'font-face-src',
- ],
+ ]),
},
// TODO: empty content
'font-face-format': {
- attrsGroups: ['core'],
- attrs: ['string'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['string']),
},
'font-face-name': {
- attrsGroups: ['core'],
- attrs: ['name'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['name']),
},
'font-face-src': {
- attrsGroups: ['core'],
- content: ['font-face-name', 'font-face-uri'],
+ attrsGroups: new Set(['core']),
+ content: new Set(['font-face-name', 'font-face-uri']),
},
'font-face-uri': {
- attrsGroups: ['core', 'xlink'],
- attrs: ['href', 'xlink:href'],
- content: ['font-face-format'],
+ attrsGroups: new Set(['core', 'xlink']),
+ attrs: new Set(['href', 'xlink:href']),
+ content: new Set(['font-face-format']),
},
foreignObject: {
- attrsGroups: [
- 'core',
+ attrsGroups: new Set([
'conditionalProcessing',
+ 'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
+ 'height',
+ 'style',
'transform',
+ 'width',
'x',
'y',
- 'width',
- 'height',
- ],
+ ]),
defaults: {
x: '0',
y: '0',
},
},
g: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: ['class', 'style', 'externalResourcesRequired', 'transform'],
- contentGroups: [
+ ]),
+ attrs: new Set([
+ 'class',
+ 'externalResourcesRequired',
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1087,43 +1119,43 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
glyph: {
- attrsGroups: ['core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set([
+ 'arabic-form',
'class',
- 'style',
'd',
+ 'glyph-name',
'horiz-adv-x',
+ 'lang',
+ 'orientation',
+ 'style',
+ 'unicode',
+ 'vert-adv-y',
'vert-origin-x',
'vert-origin-y',
- 'vert-adv-y',
- 'unicode',
- 'glyph-name',
- 'orientation',
- 'arabic-form',
- 'lang',
- ],
+ ]),
defaults: {
'arabic-form': 'initial',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1134,35 +1166,35 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
glyphRef: {
- attrsGroups: ['core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'd',
'horiz-adv-x',
+ 'style',
+ 'vert-adv-y',
'vert-origin-x',
'vert-origin-y',
- 'vert-adv-y',
- ],
- contentGroups: [
+ ]),
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1173,21 +1205,21 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
hatch: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set([
'class',
- 'style',
- 'x',
- 'y',
+ 'hatchContentUnits',
+ 'hatchUnits',
'pitch',
'rotate',
- 'hatchUnits',
- 'hatchContentUnits',
+ 'style',
'transform',
- ],
+ 'x',
+ 'y',
+ ]),
defaults: {
hatchUnits: 'objectBoundingBox',
hatchContentUnits: 'userSpaceOnUse',
@@ -1196,90 +1228,90 @@ exports.elems = {
pitch: '0',
rotate: '0',
},
- contentGroups: ['animation', 'descriptive'],
- content: ['hatchPath'],
+ contentGroups: new Set(['animation', 'descriptive']),
+ content: new Set(['hatchPath']),
},
hatchPath: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: ['class', 'style', 'd', 'offset'],
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set(['class', 'style', 'd', 'offset']),
defaults: {
offset: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
hkern: {
- attrsGroups: ['core'],
- attrs: ['u1', 'g1', 'u2', 'g2', 'k'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['u1', 'g1', 'u2', 'g2', 'k']),
},
image: {
- attrsGroups: [
- 'core',
+ attrsGroups: new Set([
'conditionalProcessing',
+ 'core',
'graphicalEvent',
- 'xlink',
'presentation',
- ],
- attrs: [
+ 'xlink',
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
+ 'height',
+ 'href',
'preserveAspectRatio',
+ 'style',
'transform',
- 'x',
- 'y',
'width',
- 'height',
- 'href',
+ 'x',
'xlink:href',
- ],
+ 'y',
+ ]),
defaults: {
x: '0',
y: '0',
preserveAspectRatio: 'xMidYMid meet',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
line: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
+ 'style',
'transform',
'x1',
- 'y1',
'x2',
+ 'y1',
'y2',
- ],
+ ]),
defaults: {
x1: '0',
y1: '0',
x2: '0',
y2: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
linearGradient: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'x1',
- 'y1',
- 'x2',
- 'y2',
- 'gradientUnits',
'gradientTransform',
- 'spreadMethod',
+ 'gradientUnits',
'href',
+ 'spreadMethod',
+ 'style',
+ 'x1',
+ 'x2',
'xlink:href',
- ],
+ 'y1',
+ 'y2',
+ ]),
defaults: {
x1: '0',
y1: '0',
@@ -1287,24 +1319,24 @@ exports.elems = {
y2: '0',
spreadMethod: 'pad',
},
- contentGroups: ['descriptive'],
- content: ['animate', 'animateTransform', 'set', 'stop'],
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['animate', 'animateTransform', 'set', 'stop']),
},
marker: {
- attrsGroups: ['core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'viewBox',
- 'preserveAspectRatio',
- 'refX',
- 'refY',
+ 'markerHeight',
'markerUnits',
'markerWidth',
- 'markerHeight',
'orient',
- ],
+ 'preserveAspectRatio',
+ 'refX',
+ 'refY',
+ 'style',
+ 'viewBox',
+ ]),
defaults: {
markerUnits: 'strokeWidth',
refX: '0',
@@ -1312,22 +1344,22 @@ exports.elems = {
markerWidth: '3',
markerHeight: '3',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1338,22 +1370,22 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
mask: {
- attrsGroups: ['conditionalProcessing', 'core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['conditionalProcessing', 'core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'x',
- 'y',
- 'width',
'height',
'mask-type',
- 'maskUnits',
'maskContentUnits',
- ],
+ 'maskUnits',
+ 'style',
+ 'width',
+ 'x',
+ 'y',
+ ]),
defaults: {
maskUnits: 'objectBoundingBox',
maskContentUnits: 'userSpaceOnUse',
@@ -1362,22 +1394,22 @@ exports.elems = {
width: '120%',
height: '120%',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1388,38 +1420,38 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
metadata: {
- attrsGroups: ['core'],
+ attrsGroups: new Set(['core']),
},
'missing-glyph': {
- attrsGroups: ['core', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'd',
'horiz-adv-x',
+ 'style',
+ 'vert-adv-y',
'vert-origin-x',
'vert-origin-y',
- 'vert-adv-y',
- ],
- contentGroups: [
+ ]),
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1430,48 +1462,53 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
mpath: {
- attrsGroups: ['core', 'xlink'],
- attrs: ['externalResourcesRequired', 'href', 'xlink:href'],
- contentGroups: ['descriptive'],
+ attrsGroups: new Set(['core', 'xlink']),
+ attrs: new Set(['externalResourcesRequired', 'href', 'xlink:href']),
+ contentGroups: new Set(['descriptive']),
},
path: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'transform',
'd',
+ 'externalResourcesRequired',
'pathLength',
- ],
- contentGroups: ['animation', 'descriptive'],
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set(['animation', 'descriptive']),
},
pattern: {
- attrsGroups: ['conditionalProcessing', 'core', 'presentation', 'xlink'],
- attrs: [
+ attrsGroups: new Set([
+ 'conditionalProcessing',
+ 'core',
+ 'presentation',
+ 'xlink',
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'viewBox',
- 'preserveAspectRatio',
- 'x',
- 'y',
- 'width',
'height',
- 'patternUnits',
+ 'href',
'patternContentUnits',
'patternTransform',
- 'href',
+ 'patternUnits',
+ 'preserveAspectRatio',
+ 'style',
+ 'viewBox',
+ 'width',
+ 'x',
'xlink:href',
- ],
+ 'y',
+ ]),
defaults: {
patternUnits: 'objectBoundingBox',
patternContentUnits: 'userSpaceOnUse',
@@ -1481,22 +1518,22 @@ exports.elems = {
height: '0',
preserveAspectRatio: 'xMidYMid meet',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
'paintServer',
'shape',
'structural',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1507,166 +1544,166 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
polygon: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'transform',
'points',
- ],
- contentGroups: ['animation', 'descriptive'],
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set(['animation', 'descriptive']),
},
polyline: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'transform',
'points',
- ],
- contentGroups: ['animation', 'descriptive'],
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set(['animation', 'descriptive']),
},
radialGradient: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: [
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
'cx',
'cy',
- 'r',
+ 'externalResourcesRequired',
+ 'fr',
'fx',
'fy',
- 'fr',
- 'gradientUnits',
'gradientTransform',
- 'spreadMethod',
+ 'gradientUnits',
'href',
+ 'r',
+ 'spreadMethod',
+ 'style',
'xlink:href',
- ],
+ ]),
defaults: {
gradientUnits: 'objectBoundingBox',
cx: '50%',
cy: '50%',
r: '50%',
},
- contentGroups: ['descriptive'],
- content: ['animate', 'animateTransform', 'set', 'stop'],
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['animate', 'animateTransform', 'set', 'stop']),
},
meshGradient: {
- attrsGroups: ['core', 'presentation', 'xlink'],
- attrs: ['class', 'style', 'x', 'y', 'gradientUnits', 'transform'],
- contentGroups: ['descriptive', 'paintServer', 'animation'],
- content: ['meshRow'],
+ attrsGroups: new Set(['core', 'presentation', 'xlink']),
+ attrs: new Set(['class', 'style', 'x', 'y', 'gradientUnits', 'transform']),
+ contentGroups: new Set(['descriptive', 'paintServer', 'animation']),
+ content: new Set(['meshRow']),
},
meshRow: {
- attrsGroups: ['core', 'presentation'],
- attrs: ['class', 'style'],
- contentGroups: ['descriptive'],
- content: ['meshPatch'],
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set(['class', 'style']),
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['meshPatch']),
},
meshPatch: {
- attrsGroups: ['core', 'presentation'],
- attrs: ['class', 'style'],
- contentGroups: ['descriptive'],
- content: ['stop'],
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set(['class', 'style']),
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['stop']),
},
rect: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'transform',
- 'x',
- 'y',
- 'width',
'height',
'rx',
'ry',
- ],
+ 'style',
+ 'transform',
+ 'width',
+ 'x',
+ 'y',
+ ]),
defaults: {
x: '0',
y: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
script: {
- attrsGroups: ['core', 'xlink'],
- attrs: ['externalResourcesRequired', 'type', 'href', 'xlink:href'],
+ attrsGroups: new Set(['core', 'xlink']),
+ attrs: new Set(['externalResourcesRequired', 'type', 'href', 'xlink:href']),
},
set: {
- attrsGroups: [
- 'conditionalProcessing',
- 'core',
+ attrsGroups: new Set([
'animation',
- 'xlink',
'animationAttributeTarget',
'animationTiming',
- ],
- attrs: ['externalResourcesRequired', 'to'],
- contentGroups: ['descriptive'],
+ 'conditionalProcessing',
+ 'core',
+ 'xlink',
+ ]),
+ attrs: new Set(['externalResourcesRequired', 'to']),
+ contentGroups: new Set(['descriptive']),
},
solidColor: {
- attrsGroups: ['core', 'presentation'],
- attrs: ['class', 'style'],
- contentGroups: ['paintServer'],
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set(['class', 'style']),
+ contentGroups: new Set(['paintServer']),
},
stop: {
- attrsGroups: ['core', 'presentation'],
- attrs: ['class', 'style', 'offset', 'path'],
- content: ['animate', 'animateColor', 'set'],
+ attrsGroups: new Set(['core', 'presentation']),
+ attrs: new Set(['class', 'style', 'offset', 'path']),
+ content: new Set(['animate', 'animateColor', 'set']),
},
style: {
- attrsGroups: ['core'],
- attrs: ['type', 'media', 'title'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['type', 'media', 'title']),
defaults: {
type: 'text/css',
},
},
svg: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'documentEvent',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
+ 'baseProfile',
'class',
+ 'contentScriptType',
+ 'contentStyleType',
+ 'height',
+ 'preserveAspectRatio',
'style',
+ 'version',
+ 'viewBox',
+ 'width',
'x',
'y',
- 'width',
- 'height',
- 'viewBox',
- 'preserveAspectRatio',
'zoomAndPan',
- 'version',
- 'baseProfile',
- 'contentScriptType',
- 'contentStyleType',
- ],
+ ]),
defaults: {
x: '0',
y: '0',
@@ -1679,22 +1716,22 @@ exports.elems = {
contentScriptType: 'application/ecmascript',
contentStyleType: 'text/css',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1705,18 +1742,23 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
switch: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: ['class', 'style', 'externalResourcesRequired', 'transform'],
- contentGroups: ['animation', 'descriptive', 'shape'],
- content: [
+ ]),
+ attrs: new Set([
+ 'class',
+ 'externalResourcesRequired',
+ 'style',
+ 'transform',
+ ]),
+ contentGroups: new Set(['animation', 'descriptive', 'shape']),
+ content: new Set([
'a',
'foreignObject',
'g',
@@ -1725,39 +1767,39 @@ exports.elems = {
'switch',
'text',
'use',
- ],
+ ]),
},
symbol: {
- attrsGroups: ['core', 'graphicalEvent', 'presentation'],
- attrs: [
+ attrsGroups: new Set(['core', 'graphicalEvent', 'presentation']),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
'preserveAspectRatio',
- 'viewBox',
'refX',
'refY',
- ],
+ 'style',
+ 'viewBox',
+ ]),
defaults: {
refX: '0',
refY: '0',
},
- contentGroups: [
+ contentGroups: new Set([
'animation',
'descriptive',
+ 'paintServer',
'shape',
'structural',
- 'paintServer',
- ],
- content: [
+ ]),
+ content: new Set([
'a',
'altGlyphDef',
'clipPath',
'color-profile',
'cursor',
'filter',
- 'font',
'font-face',
+ 'font',
'foreignObject',
'image',
'marker',
@@ -1768,62 +1810,62 @@ exports.elems = {
'switch',
'text',
'view',
- ],
+ ]),
},
text: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'transform',
- 'lengthAdjust',
- 'x',
- 'y',
'dx',
'dy',
+ 'externalResourcesRequired',
+ 'lengthAdjust',
'rotate',
+ 'style',
'textLength',
- ],
+ 'transform',
+ 'x',
+ 'y',
+ ]),
defaults: {
x: '0',
y: '0',
lengthAdjust: 'spacing',
},
- contentGroups: ['animation', 'descriptive', 'textContentChild'],
- content: ['a'],
+ contentGroups: new Set(['animation', 'descriptive', 'textContentChild']),
+ content: new Set(['a']),
},
textPath: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
'xlink',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
+ 'd',
'externalResourcesRequired',
'href',
- 'xlink:href',
- 'startOffset',
'method',
'spacing',
- 'd',
- ],
+ 'startOffset',
+ 'style',
+ 'xlink:href',
+ ]),
defaults: {
startOffset: '0',
method: 'align',
spacing: 'exact',
},
- contentGroups: ['descriptive'],
- content: [
+ contentGroups: new Set(['descriptive']),
+ content: new Set([
'a',
'altGlyph',
'animate',
@@ -1831,51 +1873,51 @@ exports.elems = {
'set',
'tref',
'tspan',
- ],
+ ]),
},
title: {
- attrsGroups: ['core'],
- attrs: ['class', 'style'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['class', 'style']),
},
tref: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
'xlink',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
'href',
+ 'style',
'xlink:href',
- ],
- contentGroups: ['descriptive'],
- content: ['animate', 'animateColor', 'set'],
+ ]),
+ contentGroups: new Set(['descriptive']),
+ content: new Set(['animate', 'animateColor', 'set']),
},
tspan: {
- attrsGroups: [
+ attrsGroups: new Set([
'conditionalProcessing',
'core',
'graphicalEvent',
'presentation',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
- 'externalResourcesRequired',
- 'x',
- 'y',
'dx',
'dy',
+ 'externalResourcesRequired',
+ 'lengthAdjust',
'rotate',
+ 'style',
'textLength',
- 'lengthAdjust',
- ],
- contentGroups: ['descriptive'],
- content: [
+ 'x',
+ 'y',
+ ]),
+ contentGroups: new Set(['descriptive']),
+ content: new Set([
'a',
'altGlyph',
'animate',
@@ -1883,129 +1925,128 @@ exports.elems = {
'set',
'tref',
'tspan',
- ],
+ ]),
},
use: {
- attrsGroups: [
- 'core',
+ attrsGroups: new Set([
'conditionalProcessing',
+ 'core',
'graphicalEvent',
'presentation',
'xlink',
- ],
- attrs: [
+ ]),
+ attrs: new Set([
'class',
- 'style',
'externalResourcesRequired',
- 'transform',
- 'x',
- 'y',
- 'width',
'height',
'href',
+ 'style',
+ 'transform',
+ 'width',
+ 'x',
'xlink:href',
- ],
+ 'y',
+ ]),
defaults: {
x: '0',
y: '0',
},
- contentGroups: ['animation', 'descriptive'],
+ contentGroups: new Set(['animation', 'descriptive']),
},
view: {
- attrsGroups: ['core'],
- attrs: [
+ attrsGroups: new Set(['core']),
+ attrs: new Set([
'externalResourcesRequired',
- 'viewBox',
'preserveAspectRatio',
- 'zoomAndPan',
+ 'viewBox',
'viewTarget',
- ],
- contentGroups: ['descriptive'],
+ 'zoomAndPan',
+ ]),
+ contentGroups: new Set(['descriptive']),
},
vkern: {
- attrsGroups: ['core'],
- attrs: ['u1', 'g1', 'u2', 'g2', 'k'],
+ attrsGroups: new Set(['core']),
+ attrs: new Set(['u1', 'g1', 'u2', 'g2', 'k']),
},
};
// https://wiki.inkscape.org/wiki/index.php/Inkscape-specific_XML_attributes
-exports.editorNamespaces = [
- 'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd',
+exports.editorNamespaces = new Set([
+ 'http://creativecommons.org/ns#',
'http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd',
- 'http://www.inkscape.org/namespaces/inkscape',
- 'http://www.bohemiancoding.com/sketch/ns',
'http://ns.adobe.com/AdobeIllustrator/10.0/',
- 'http://ns.adobe.com/Graphs/1.0/',
'http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/',
- 'http://ns.adobe.com/Variables/1.0/',
- 'http://ns.adobe.com/SaveForWeb/1.0/',
'http://ns.adobe.com/Extensibility/1.0/',
'http://ns.adobe.com/Flows/1.0/',
- 'http://ns.adobe.com/ImageReplacement/1.0/',
'http://ns.adobe.com/GenericCustomNamespace/1.0/',
+ 'http://ns.adobe.com/Graphs/1.0/',
+ 'http://ns.adobe.com/ImageReplacement/1.0/',
+ 'http://ns.adobe.com/SaveForWeb/1.0/',
+ 'http://ns.adobe.com/Variables/1.0/',
'http://ns.adobe.com/XPath/1.0/',
+ 'http://purl.org/dc/elements/1.1/',
'http://schemas.microsoft.com/visio/2003/SVGExtensions/',
+ 'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd',
'http://taptrix.com/vectorillustrator/svg_extensions',
+ 'http://www.bohemiancoding.com/sketch/ns',
'http://www.figma.com/figma/ns',
- 'http://purl.org/dc/elements/1.1/',
- 'http://creativecommons.org/ns#',
- 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
+ 'http://www.inkscape.org/namespaces/inkscape',
'http://www.serif.com/',
'http://www.vector.evaxdesign.sk',
-];
+ 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
+]);
/**
* @see https://www.w3.org/TR/SVG11/linking.html#processingIRI
*/
-exports.referencesProps = [
+exports.referencesProps = new Set([
'clip-path',
'color-profile',
'fill',
'filter',
- 'marker-start',
- 'marker-mid',
'marker-end',
+ 'marker-mid',
+ 'marker-start',
'mask',
'stroke',
'style',
-];
+]);
/**
* @see https://www.w3.org/TR/SVG11/propidx.html
*/
-exports.inheritableAttrs = [
+exports.inheritableAttrs = new Set([
'clip-rule',
- 'color',
- 'color-interpolation',
'color-interpolation-filters',
+ 'color-interpolation',
'color-profile',
'color-rendering',
+ 'color',
'cursor',
'direction',
'dominant-baseline',
- 'fill',
'fill-opacity',
'fill-rule',
- 'font',
+ 'fill',
'font-family',
- 'font-size',
'font-size-adjust',
+ 'font-size',
'font-stretch',
'font-style',
'font-variant',
'font-weight',
+ 'font',
'glyph-orientation-horizontal',
'glyph-orientation-vertical',
'image-rendering',
'letter-spacing',
- 'marker',
'marker-end',
'marker-mid',
'marker-start',
+ 'marker',
'paint-order',
'pointer-events',
'shape-rendering',
- 'stroke',
'stroke-dasharray',
'stroke-dashoffset',
'stroke-linecap',
@@ -2013,24 +2054,25 @@ exports.inheritableAttrs = [
'stroke-miterlimit',
'stroke-opacity',
'stroke-width',
+ 'stroke',
'text-anchor',
'text-rendering',
'transform',
'visibility',
'word-spacing',
'writing-mode',
-];
+]);
-exports.presentationNonInheritableGroupAttrs = [
- 'display',
+exports.presentationNonInheritableGroupAttrs = new Set([
'clip-path',
+ 'display',
'filter',
'mask',
'opacity',
'text-decoration',
'transform',
'unicode-bidi',
-];
+]);
/**
* https://www.w3.org/TR/SVG11/single-page.html#types-ColorKeywords
@@ -2229,63 +2271,69 @@ exports.colorsShortNames = {
/**
* @see https://www.w3.org/TR/SVG11/single-page.html#types-DataTypeColor
*/
-exports.colorsProps = [
+exports.colorsProps = new Set([
'color',
'fill',
- 'stroke',
- 'stop-color',
'flood-color',
'lighting-color',
-];
+ 'stop-color',
+ 'stroke',
+]);
/** @see https://developer.mozilla.org/docs/Web/CSS/Pseudo-classes */
exports.pseudoClasses = {
- displayState: ['fullscreen', 'modal', 'picture-in-picture'],
- input: [
+ displayState: new Set(['fullscreen', 'modal', 'picture-in-picture']),
+ input: new Set([
'autofill',
- 'enabled',
- 'disabled',
- 'read-only',
- 'read-write',
- 'placeholder-shown',
- 'default',
+ 'blank',
'checked',
+ 'default',
+ 'disabled',
+ 'enabled',
+ 'in-range',
'indetermined',
- 'blank',
- 'valid',
'invalid',
- 'in-range',
+ 'optional',
'out-of-range',
+ 'placeholder-shown',
+ 'read-only',
+ 'read-write',
'required',
- 'optional',
'user-invalid',
- ],
- linguistic: ['dir', 'lang'],
- location: [
+ 'valid',
+ ]),
+ linguistic: new Set(['dir', 'lang']),
+ location: new Set([
'any-link',
'link',
- 'visited',
'local-link',
- 'target',
- 'target-within',
'scope',
- ],
- resourceState: ['playing', 'paused'],
- timeDimensional: ['current', 'past', 'future'],
- treeStructural: [
- 'root',
+ 'target-within',
+ 'target',
+ 'visited',
+ ]),
+ resourceState: new Set(['playing', 'paused']),
+ timeDimensional: new Set(['current', 'past', 'future']),
+ treeStructural: new Set([
'empty',
- 'nth-child',
- 'nth-last-child',
'first-child',
- 'last-child',
- 'only-child',
- 'nth-of-type',
- 'nth-last-of-type',
'first-of-type',
+ 'last-child',
'last-of-type',
+ 'nth-child',
+ 'nth-last-child',
+ 'nth-last-of-type',
+ 'nth-of-type',
+ 'only-child',
'only-of-type',
- ],
- userAction: ['hover', 'active', 'focus', 'focus-visible', 'focus-within'],
- functional: ['is', 'not', 'where', 'has'],
+ 'root',
+ ]),
+ userAction: new Set([
+ 'active',
+ 'focus-visible',
+ 'focus-within',
+ 'focus',
+ 'hover',
+ ]),
+ functional: new Set(['is', 'not', 'where', 'has']),
};
diff --git a/node_modules/svgo/plugins/_path.js b/node_modules/svgo/plugins/_path.js
index 60002d7a..7c3a28b9 100644
--- a/node_modules/svgo/plugins/_path.js
+++ b/node_modules/svgo/plugins/_path.js
@@ -15,13 +15,13 @@ var prevCtrlPoint;
/**
* Convert path string to JS representation.
*
- * @type {(path: XastElement) => Array<PathDataItem>}
+ * @type {(path: XastElement) => PathDataItem[]}
*/
const path2js = (path) => {
// @ts-ignore legacy
if (path.pathJS) return path.pathJS;
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = []; // JS representation of the path data
const newPathData = parsePathData(path.attributes.d);
@@ -41,12 +41,12 @@ exports.path2js = path2js;
/**
* Convert relative Path data to absolute.
*
- * @type {(data: Array<PathDataItem>) => Array<PathDataItem>}
+ * @type {(data: PathDataItem[]) => PathDataItem[]}
*
*/
const convertRelativeToAbsolute = (data) => {
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const newData = [];
let start = [0, 0];
@@ -179,7 +179,7 @@ const convertRelativeToAbsolute = (data) => {
/**
* Convert path array to string.
*
- * @type {(path: XastElement, data: Array<PathDataItem>, params: Js2PathParams) => void}
+ * @type {(path: XastElement, data: PathDataItem[], params: Js2PathParams) => void}
*/
exports.js2path = function (path, data, params) {
// @ts-ignore legacy
@@ -211,7 +211,7 @@ exports.js2path = function (path, data, params) {
};
/**
- * @type {(dest: Array<number>, source: Array<number>) => Array<number>}
+ * @type {(dest: number[], source: number[]) => number[]}
*/
function set(dest, source) {
dest[0] = source[source.length - 2];
@@ -224,7 +224,7 @@ function set(dest, source) {
* collision using Gilbert-Johnson-Keerthi distance algorithm
* https://web.archive.org/web/20180822200027/http://entropyinteractive.com/2011/04/gjk-algorithm/
*
- * @type {(path1: Array<PathDataItem>, path2: Array<PathDataItem>) => boolean}
+ * @type {(path1: PathDataItem[], path2: PathDataItem[]) => boolean}
*/
exports.intersects = function (path1, path2) {
// Collect points of every subpath.
@@ -267,10 +267,9 @@ exports.intersects = function (path1, path2) {
var iterations = 1e4; // infinite loop protection, 10 000 iterations is more than enough
// eslint-disable-next-line no-constant-condition
while (true) {
- // eslint-disable-next-line no-constant-condition
if (iterations-- == 0) {
console.error(
- 'Error: infinite loop while processing mergePaths plugin.'
+ 'Error: infinite loop while processing mergePaths plugin.',
);
return true; // true is the safe value that means “do nothing with paths”
}
@@ -285,7 +284,7 @@ exports.intersects = function (path1, path2) {
});
/**
- * @type {(a: Point, b: Point, direction: Array<number>) => Array<number>}
+ * @type {(a: Point, b: Point, direction: number[]) => number[]}
*/
function getSupport(a, b, direction) {
return sub(supportPoint(a, direction), supportPoint(b, minus(direction)));
@@ -295,7 +294,7 @@ exports.intersects = function (path1, path2) {
// Thanks to knowledge of min/max x and y coordinates we can choose a quadrant to search in.
// Since we're working on convex hull, the dot product is increasing until we find the farthest point.
/**
- * @type {(polygon: Point, direction: Array<number>) => Array<number>}
+ * @type {(polygon: Point, direction: number[]) => number[]}
*/
function supportPoint(polygon, direction) {
var index =
@@ -304,8 +303,8 @@ exports.intersects = function (path1, path2) {
? polygon.maxY
: polygon.maxX
: direction[0] < 0
- ? polygon.minX
- : polygon.minY,
+ ? polygon.minX
+ : polygon.minY,
max = -Infinity,
value;
while ((value = dot(polygon.list[index], direction)) > max) {
@@ -317,7 +316,7 @@ exports.intersects = function (path1, path2) {
};
/**
- * @type {(simplex: Array<Array<number>>, direction: Array<number>) => boolean}
+ * @type {(simplex: number[][], direction: number[]) => boolean}
*/
function processSimplex(simplex, direction) {
// we only need to handle to 1-simplex and 2-simplex
@@ -374,28 +373,28 @@ function processSimplex(simplex, direction) {
}
/**
- * @type {(v: Array<number>) => Array<number>}
+ * @type {(v: number[]) => number[]}
*/
function minus(v) {
return [-v[0], -v[1]];
}
/**
- * @type {(v1: Array<number>, v2: Array<number>) => Array<number>}
+ * @type {(v1: number[], v2: number[]) => number[]}
*/
function sub(v1, v2) {
return [v1[0] - v2[0], v1[1] - v2[1]];
}
/**
- * @type {(v1: Array<number>, v2: Array<number>) => number}
+ * @type {(v1: number[], v2: number[]) => number}
*/
function dot(v1, v2) {
return v1[0] * v2[0] + v1[1] * v2[1];
}
/**
- * @type {(v1: Array<number>, v2: Array<number>) => Array<number>}
+ * @type {(v1: number[], v2: number[]) => number[]}
*/
function orth(v, from) {
var o = [-v[1], v[0]];
@@ -404,7 +403,7 @@ function orth(v, from) {
/**
* @typedef {{
- * list: Array<Array<number>>,
+ * list: number[][],
* minX: number,
* minY: number,
* maxX: number,
@@ -414,7 +413,7 @@ function orth(v, from) {
/**
* @typedef {{
- * list: Array<Point>,
+ * list: Point[],
* minX: number,
* minY: number,
* maxX: number,
@@ -423,7 +422,7 @@ function orth(v, from) {
*/
/**
- * @type {(pathData: Array<PathDataItem>) => Points}
+ * @type {(pathData: PathDataItem[]) => Points}
*/
function gatherPoints(pathData) {
/**
@@ -433,7 +432,7 @@ function gatherPoints(pathData) {
// Writes data about the extreme points on each axle
/**
- * @type {(path: Point, point: Array<number>) => void}
+ * @type {(path: Point, point: number[]) => void}
*/
const addPoint = (path, point) => {
if (!path.list.length || point[1] > path.list[path.maxY][1]) {
@@ -671,7 +670,7 @@ function convexHull(points) {
}
/**
- * @type {(o: Array<number>, a: Array<number>, b: Array<number>) => number}
+ * @type {(o: number[], a: number[], b: number[]) => number}
*/
function cross(o, a, b) {
return (a[0] - o[0]) * (b[1] - o[1]) - (a[1] - o[1]) * (b[0] - o[0]);
@@ -691,8 +690,8 @@ function cross(o, a, b) {
* sweep_flag: number,
* x2: number,
* y2: number,
- * recursive: Array<number>
- * ) => Array<number>}
+ * recursive: number[]
+ * ) => number[]}
*/
const a2c = (
x1,
@@ -704,14 +703,14 @@ const a2c = (
sweep_flag,
x2,
y2,
- recursive
+ recursive,
) => {
// for more information of where this Math came from visit:
// https://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
const _120 = (Math.PI * 120) / 180;
const rad = (Math.PI / 180) * (+angle || 0);
/**
- * @type {Array<number>}
+ * @type {number[]}
*/
let res = [];
/**
@@ -745,8 +744,8 @@ const a2c = (
(large_arc_flag == sweep_flag ? -1 : 1) *
Math.sqrt(
Math.abs(
- (rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)
- )
+ (rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x),
+ ),
);
var cx = (k * rx * y) / ry + (x1 + x2) / 2;
var cy = (k * -ry * x) / rx + (y1 + y2) / 2;
diff --git a/node_modules/svgo/plugins/_transforms.js b/node_modules/svgo/plugins/_transforms.js
index efc141c7..1ab6d648 100644
--- a/node_modules/svgo/plugins/_transforms.js
+++ b/node_modules/svgo/plugins/_transforms.js
@@ -1,176 +1,182 @@
'use strict';
-const regTransformTypes = /matrix|translate|scale|rotate|skewX|skewY/;
-const regTransformSplit =
- /\s*(matrix|translate|scale|rotate|skewX|skewY)\s*\(\s*(.+?)\s*\)[\s,]*/;
-const regNumericValues = /[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;
+const { toFixed } = require('../lib/svgo/tools');
/**
- * @typedef {{ name: string, data: Array<number> }} TransformItem
+ * @typedef {{ name: string, data: number[] }} TransformItem
+ * @typedef {{
+ * convertToShorts: boolean,
+ * floatPrecision: number,
+ * transformPrecision: number,
+ * matrixToTransform: boolean,
+ * shortTranslate: boolean,
+ * shortScale: boolean,
+ * shortRotate: boolean,
+ * removeUseless: boolean,
+ * collapseIntoOne: boolean,
+ * leadingZero: boolean,
+ * negativeExtraSpace: boolean,
+ * }} TransformParams
*/
+const transformTypes = new Set([
+ 'matrix',
+ 'rotate',
+ 'scale',
+ 'skewX',
+ 'skewY',
+ 'translate',
+]);
+
+const regTransformSplit =
+ /\s*(matrix|translate|scale|rotate|skewX|skewY)\s*\(\s*(.+?)\s*\)[\s,]*/;
+const regNumericValues = /[-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;
+
/**
* Convert transform string to JS representation.
*
- * @type {(transformString: string) => Array<TransformItem>}
+ * @param {string} transformString
+ * @returns {TransformItem[]} Object representation of transform, or an empty array if it was malformed.
*/
exports.transform2js = (transformString) => {
- // JS representation of the transform data
- /**
- * @type {Array<TransformItem>}
- */
+ /** @type {TransformItem[]} */
const transforms = [];
- // current transform context
- /**
- * @type {?TransformItem}
- */
- let current = null;
+ /** @type {?TransformItem} */
+ let currentTransform = null;
+
// split value into ['', 'translate', '10 50', '', 'scale', '2', '', 'rotate', '-45', '']
for (const item of transformString.split(regTransformSplit)) {
- var num;
- if (item) {
- // if item is a translate function
- if (regTransformTypes.test(item)) {
- // then collect it and change current context
- current = { name: item, data: [] };
- transforms.push(current);
- // else if item is data
- } else {
- // then split it into [10, 50] and collect as context.data
- // eslint-disable-next-line no-cond-assign
- while ((num = regNumericValues.exec(item))) {
- num = Number(num);
- if (current != null) {
- current.data.push(num);
- }
+ if (!item) {
+ continue;
+ }
+
+ if (transformTypes.has(item)) {
+ currentTransform = { name: item, data: [] };
+ transforms.push(currentTransform);
+ } else {
+ let num;
+ // then split it into [10, 50] and collect as context.data
+ while ((num = regNumericValues.exec(item))) {
+ num = Number(num);
+ if (currentTransform != null) {
+ currentTransform.data.push(num);
}
}
}
}
- // return empty array if broken transform (no data)
- return current == null || current.data.length == 0 ? [] : transforms;
+
+ return currentTransform == null || currentTransform.data.length == 0
+ ? []
+ : transforms;
};
/**
* Multiply transforms into one.
*
- * @type {(transforms: Array<TransformItem>) => TransformItem}
+ * @param {TransformItem[]} transforms
+ * @returns {TransformItem}
*/
exports.transformsMultiply = (transforms) => {
- // convert transforms objects to the matrices
const matrixData = transforms.map((transform) => {
if (transform.name === 'matrix') {
return transform.data;
}
return transformToMatrix(transform);
});
- // multiply all matrices into one
+
const matrixTransform = {
name: 'matrix',
data:
matrixData.length > 0 ? matrixData.reduce(multiplyTransformMatrices) : [],
};
+
return matrixTransform;
};
/**
- * math utilities in radians.
+ * Math utilities in radians.
*/
const mth = {
/**
- * @type {(deg: number) => number}
+ * @param {number} deg
+ * @returns {number}
*/
rad: (deg) => {
return (deg * Math.PI) / 180;
},
/**
- * @type {(rad: number) => number}
+ * @param {number} rad
+ * @returns {number}
*/
deg: (rad) => {
return (rad * 180) / Math.PI;
},
/**
- * @type {(deg: number) => number}
+ * @param {number} deg
+ * @returns {number}
*/
cos: (deg) => {
return Math.cos(mth.rad(deg));
},
/**
- * @type {(val: number, floatPrecision: number) => number}
+ * @param {number} val
+ * @param {number} floatPrecision
+ * @returns {number}
*/
acos: (val, floatPrecision) => {
- return Number(mth.deg(Math.acos(val)).toFixed(floatPrecision));
+ return toFixed(mth.deg(Math.acos(val)), floatPrecision);
},
/**
- * @type {(deg: number) => number}
+ * @param {number} deg
+ * @returns {number}
*/
sin: (deg) => {
return Math.sin(mth.rad(deg));
},
/**
- * @type {(val: number, floatPrecision: number) => number}
+ * @param {number} val
+ * @param {number} floatPrecision
+ * @returns {number}
*/
asin: (val, floatPrecision) => {
- return Number(mth.deg(Math.asin(val)).toFixed(floatPrecision));
+ return toFixed(mth.deg(Math.asin(val)), floatPrecision);
},
/**
- * @type {(deg: number) => number}
+ * @param {number} deg
+ * @returns {number}
*/
tan: (deg) => {
return Math.tan(mth.rad(deg));
},
/**
- * @type {(val: number, floatPrecision: number) => number}
+ * @param {number} val
+ * @param {number} floatPrecision
+ * @returns {number}
*/
atan: (val, floatPrecision) => {
- return Number(mth.deg(Math.atan(val)).toFixed(floatPrecision));
+ return toFixed(mth.deg(Math.atan(val)), floatPrecision);
},
};
/**
- * @typedef {{
- * convertToShorts: boolean,
- * floatPrecision: number,
- * transformPrecision: number,
- * matrixToTransform: boolean,
- * shortTranslate: boolean,
- * shortScale: boolean,
- * shortRotate: boolean,
- * removeUseless: boolean,
- * collapseIntoOne: boolean,
- * leadingZero: boolean,
- * negativeExtraSpace: boolean,
- * }} TransformParams
- */
-
-/**
- * Decompose matrix into simple transforms. See
- * https://frederic-wang.fr/decomposition-of-2d-transform-matrices.html
+ * Decompose matrix into simple transforms.
*
- * @type {(transform: TransformItem, params: TransformParams) => Array<TransformItem>}
+ * @param {TransformItem} transform
+ * @param {TransformParams} params
+ * @returns {TransformItem[]}
+ * @see https://frederic-wang.fr/decomposition-of-2d-transform-matrices.html
*/
exports.matrixToTransform = (transform, params) => {
- let floatPrecision = params.floatPrecision;
- let data = transform.data;
- let transforms = [];
- let sx = Number(
- Math.hypot(data[0], data[1]).toFixed(params.transformPrecision)
- );
- let sy = Number(
- ((data[0] * data[3] - data[1] * data[2]) / sx).toFixed(
- params.transformPrecision
- )
- );
- let colsSum = data[0] * data[2] + data[1] * data[3];
- let rowsSum = data[0] * data[1] + data[2] * data[3];
- let scaleBefore = rowsSum != 0 || sx == sy;
+ const floatPrecision = params.floatPrecision;
+ const data = transform.data;
+ const transforms = [];
// [..., ..., ..., ..., tx, ty] → translate(tx, ty)
if (data[4] || data[5]) {
@@ -180,6 +186,15 @@ exports.matrixToTransform = (transform, params) => {
});
}
+ let sx = toFixed(Math.hypot(data[0], data[1]), params.transformPrecision);
+ let sy = toFixed(
+ (data[0] * data[3] - data[1] * data[2]) / sx,
+ params.transformPrecision,
+ );
+ const colsSum = data[0] * data[2] + data[1] * data[3];
+ const rowsSum = data[0] * data[1] + data[2] * data[3];
+ const scaleBefore = rowsSum !== 0 || sx === sy;
+
// [sx, 0, tan(a)·sy, sy, 0, 0] → skewX(a)·scale(sx, sy)
if (!data[1] && data[2]) {
transforms.push({
@@ -198,19 +213,34 @@ exports.matrixToTransform = (transform, params) => {
// [sx·cos(a), sx·sin(a), sy·-sin(a), sy·cos(a), x, y] → rotate(a[, cx, cy])·(scale or skewX) or
// [sx·cos(a), sy·sin(a), sx·-sin(a), sy·cos(a), x, y] → scale(sx, sy)·rotate(a[, cx, cy]) (if !scaleBefore)
- } else if (!colsSum || (sx == 1 && sy == 1) || !scaleBefore) {
+ } else if (!colsSum || (sx === 1 && sy === 1) || !scaleBefore) {
if (!scaleBefore) {
- sx = (data[0] < 0 ? -1 : 1) * Math.hypot(data[0], data[2]);
- sy = (data[3] < 0 ? -1 : 1) * Math.hypot(data[1], data[3]);
+ sx = Math.hypot(data[0], data[2]);
+ sy = Math.hypot(data[1], data[3]);
+
+ if (toFixed(data[0], params.transformPrecision) < 0) {
+ sx = -sx;
+ }
+
+ if (
+ data[3] < 0 ||
+ (Math.sign(data[1]) === Math.sign(data[2]) &&
+ toFixed(data[3], params.transformPrecision) === 0)
+ ) {
+ sy = -sy;
+ }
+
transforms.push({ name: 'scale', data: [sx, sy] });
}
- var angle = Math.min(Math.max(-1, data[0] / sx), 1),
- rotate = [
- mth.acos(angle, floatPrecision) *
- ((scaleBefore ? 1 : sy) * data[1] < 0 ? -1 : 1),
- ];
+ const angle = Math.min(Math.max(-1, data[0] / sx), 1);
+ const rotate = [
+ mth.acos(angle, floatPrecision) *
+ ((scaleBefore ? 1 : sy) * data[1] < 0 ? -1 : 1),
+ ];
- if (rotate[0]) transforms.push({ name: 'rotate', data: rotate });
+ if (rotate[0]) {
+ transforms.push({ name: 'rotate', data: rotate });
+ }
if (rowsSum && colsSum)
transforms.push({
@@ -221,15 +251,15 @@ exports.matrixToTransform = (transform, params) => {
// rotate(a, cx, cy) can consume translate() within optional arguments cx, cy (rotation point)
if (rotate[0] && (data[4] || data[5])) {
transforms.shift();
- var cos = data[0] / sx,
- sin = data[1] / (scaleBefore ? sx : sy),
- x = data[4] * (scaleBefore ? 1 : sy),
- y = data[5] * (scaleBefore ? 1 : sx),
- denom =
- (Math.pow(1 - cos, 2) + Math.pow(sin, 2)) *
- (scaleBefore ? 1 : sx * sy);
- rotate.push(((1 - cos) * x - sin * y) / denom);
- rotate.push(((1 - cos) * y + sin * x) / denom);
+ const oneOverCos = 1 - data[0] / sx;
+ const sin = data[1] / (scaleBefore ? sx : sy);
+ const x = data[4] * (scaleBefore ? 1 : sy);
+ const y = data[5] * (scaleBefore ? 1 : sx);
+ const denom = (oneOverCos ** 2 + sin ** 2) * (scaleBefore ? 1 : sx * sy);
+ rotate.push(
+ (oneOverCos * x - sin * y) / denom,
+ (oneOverCos * y + sin * x) / denom,
+ );
}
// Too many transformations, return original matrix if it isn't just a scale/translate
@@ -237,11 +267,12 @@ exports.matrixToTransform = (transform, params) => {
return [transform];
}
- if ((scaleBefore && (sx != 1 || sy != 1)) || !transforms.length)
+ if ((scaleBefore && (sx != 1 || sy != 1)) || !transforms.length) {
transforms.push({
name: 'scale',
data: sx == sy ? [sx] : [sx, sy],
});
+ }
return transforms;
};
@@ -249,7 +280,7 @@ exports.matrixToTransform = (transform, params) => {
/**
* Convert transform to the matrix data.
*
- * @type {(transform: TransformItem) => Array<number> }
+ * @type {(transform: TransformItem) => number[] }
*/
const transformToMatrix = (transform) => {
if (transform.name === 'matrix') {
@@ -302,9 +333,9 @@ const transformToMatrix = (transform) => {
*
* @type {(
* cursor: [x: number, y: number],
- * arc: Array<number>,
- * transform: Array<number>
- * ) => Array<number>}
+ * arc: number[],
+ * transform: number[]
+ * ) => number[]}
*/
exports.transformArc = (cursor, arc, transform) => {
const x = arc[5] - cursor[0];
@@ -365,7 +396,7 @@ exports.transformArc = (cursor, arc, transform) => {
/**
* Multiply transformation matrices.
*
- * @type {(a: Array<number>, b: Array<number>) => Array<number>}
+ * @type {(a: number[], b: number[]) => number[]}
*/
const multiplyTransformMatrices = (a, b) => {
return [
diff --git a/node_modules/svgo/plugins/addClassesToSVGElement.js b/node_modules/svgo/plugins/addClassesToSVGElement.js
index 9a015c7b..1e773d85 100644
--- a/node_modules/svgo/plugins/addClassesToSVGElement.js
+++ b/node_modules/svgo/plugins/addClassesToSVGElement.js
@@ -67,7 +67,7 @@ exports.fn = (root, params) => {
const classList = new Set(
node.attributes.class == null
? null
- : node.attributes.class.split(' ')
+ : node.attributes.class.split(' '),
);
for (const className of classNames) {
if (className != null) {
diff --git a/node_modules/svgo/plugins/applyTransforms.js b/node_modules/svgo/plugins/applyTransforms.js
index c0b848c9..ae492d54 100644
--- a/node_modules/svgo/plugins/applyTransforms.js
+++ b/node_modules/svgo/plugins/applyTransforms.js
@@ -19,8 +19,8 @@ const {
const { referencesProps, attrsGroupsDefaults } = require('./_collections.js');
/**
- * @typedef {Array<PathDataItem>} PathData
- * @typedef {Array<number>} Matrix
+ * @typedef {PathDataItem[]} PathData
+ * @typedef {number[]} Matrix
*/
const regNumericValues = /[-+]?(\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?/g;
@@ -57,7 +57,7 @@ const applyTransforms = (root, params) => {
node.attributes.style != null ||
Object.entries(node.attributes).some(
([name, value]) =>
- referencesProps.includes(name) && includesUrlReference(value)
+ referencesProps.has(name) && includesUrlReference(value),
)
) {
return;
@@ -75,7 +75,7 @@ const applyTransforms = (root, params) => {
}
const matrix = transformsMultiply(
- transform2js(node.attributes.transform)
+ transform2js(node.attributes.transform),
);
const stroke =
@@ -98,8 +98,8 @@ const applyTransforms = (root, params) => {
const scale = Number(
Math.sqrt(
- matrix.data[0] * matrix.data[0] + matrix.data[1] * matrix.data[1]
- ).toFixed(transformPrecision)
+ matrix.data[0] * matrix.data[0] + matrix.data[1] * matrix.data[1],
+ ).toFixed(transformPrecision),
);
if (stroke && stroke != 'none') {
@@ -125,7 +125,7 @@ const applyTransforms = (root, params) => {
)
.trim()
.replace(regNumericValues, (num) =>
- removeLeadingZero(Number(num) * scale)
+ removeLeadingZero(Number(num) * scale),
);
if (node.attributes['stroke-dashoffset'] != null) {
@@ -134,7 +134,7 @@ const applyTransforms = (root, params) => {
]
.trim()
.replace(regNumericValues, (num) =>
- removeLeadingZero(Number(num) * scale)
+ removeLeadingZero(Number(num) * scale),
);
}
@@ -144,7 +144,7 @@ const applyTransforms = (root, params) => {
]
.trim()
.replace(regNumericValues, (num) =>
- removeLeadingZero(Number(num) * scale)
+ removeLeadingZero(Number(num) * scale),
);
}
}
diff --git a/node_modules/svgo/plugins/cleanupAttrs.js b/node_modules/svgo/plugins/cleanupAttrs.js
index af66193a..7b4c6b70 100644
--- a/node_modules/svgo/plugins/cleanupAttrs.js
+++ b/node_modules/svgo/plugins/cleanupAttrs.js
@@ -25,12 +25,12 @@ exports.fn = (root, params) => {
// new line which requires a space instead of themself
node.attributes[name] = node.attributes[name].replace(
regNewlinesNeedSpace,
- (match, p1, p2) => p1 + ' ' + p2
+ (match, p1, p2) => p1 + ' ' + p2,
);
// simple new line
node.attributes[name] = node.attributes[name].replace(
regNewlines,
- ''
+ '',
);
}
if (trim) {
@@ -39,7 +39,7 @@ exports.fn = (root, params) => {
if (spaces) {
node.attributes[name] = node.attributes[name].replace(
regSpaces,
- ' '
+ ' ',
);
}
}
diff --git a/node_modules/svgo/plugins/cleanupEnableBackground.js b/node_modules/svgo/plugins/cleanupEnableBackground.js
index 1d2690d8..330cfb57 100644
--- a/node_modules/svgo/plugins/cleanupEnableBackground.js
+++ b/node_modules/svgo/plugins/cleanupEnableBackground.js
@@ -99,7 +99,7 @@ exports.fn = (root) => {
attrValue,
node.name,
node.attributes.width,
- node.attributes.height
+ node.attributes.height,
);
if (attrCleaned) {
@@ -114,13 +114,13 @@ exports.fn = (root) => {
) {
const styleValue = csstree.generate(
// @ts-ignore
- enableBackgroundDeclaration.data.value
+ enableBackgroundDeclaration.data.value,
);
const styleCleaned = cleanupValue(
styleValue,
node.name,
node.attributes.width,
- node.attributes.height
+ node.attributes.height,
);
if (styleCleaned) {
diff --git a/node_modules/svgo/plugins/cleanupIds.js b/node_modules/svgo/plugins/cleanupIds.js
index 65b38d16..bfabcca5 100644
--- a/node_modules/svgo/plugins/cleanupIds.js
+++ b/node_modules/svgo/plugins/cleanupIds.js
@@ -69,7 +69,7 @@ const maxIdIndex = generateIdChars.length - 1;
/**
* Check if an ID starts with any one of a list of strings.
*
- * @type {(string: string, prefixes: Array<string>) => boolean}
+ * @type {(string: string, prefixes: string[]) => boolean}
*/
const hasStringPrefix = (string, prefixes) => {
for (const prefix of prefixes) {
@@ -109,7 +109,7 @@ const generateId = (currentId) => {
/**
* Get string from generated ID array.
*
- * @type {(arr: Array<number>) => string}
+ * @type {(arr: number[]) => string}
*/
const getIdString = (arr) => {
return arr.map((i) => generateIdChars[i]).join('');
@@ -132,19 +132,19 @@ exports.fn = (_root, params) => {
force = false,
} = params;
const preserveIds = new Set(
- Array.isArray(preserve) ? preserve : preserve ? [preserve] : []
+ Array.isArray(preserve) ? preserve : preserve ? [preserve] : [],
);
const preserveIdPrefixes = Array.isArray(preservePrefixes)
? preservePrefixes
: preservePrefixes
- ? [preservePrefixes]
- : [];
+ ? [preservePrefixes]
+ : [];
/**
* @type {Map<string, XastElement>}
*/
const nodeById = new Map();
/**
- * @type {Map<string, Array<{element: XastElement, name: string }>>}
+ * @type {Map<string, {element: XastElement, name: string }[]>}
*/
const referencesById = new Map();
let deoptimized = false;
@@ -236,13 +236,13 @@ exports.fn = (_root, params) => {
// replace id in href and url()
element.attributes[name] = value.replace(
`#${encodeURI(id)}`,
- `#${currentIdString}`
+ `#${currentIdString}`,
);
} else {
// replace id in begin attribute
element.attributes[name] = value.replace(
`${id}.`,
- `${currentIdString}.`
+ `${currentIdString}.`,
);
}
}
diff --git a/node_modules/svgo/plugins/cleanupListOfValues.js b/node_modules/svgo/plugins/cleanupListOfValues.js
index 7150449e..618fd062 100644
--- a/node_modules/svgo/plugins/cleanupListOfValues.js
+++ b/node_modules/svgo/plugins/cleanupListOfValues.js
@@ -68,7 +68,7 @@ exports.fn = (_root, params) => {
// convert absolute values to pixels
if (convertToPx && units && units in absoluteLengths) {
const pxNum = Number(
- (absoluteLengths[units] * Number(match[1])).toFixed(floatPrecision)
+ (absoluteLengths[units] * Number(match[1])).toFixed(floatPrecision),
);
if (pxNum.toString().length < match[0].length) {
@@ -112,7 +112,7 @@ exports.fn = (_root, params) => {
if (node.attributes['enable-background'] != null) {
node.attributes['enable-background'] = roundValues(
- node.attributes['enable-background']
+ node.attributes['enable-background'],
);
}
@@ -122,7 +122,7 @@ exports.fn = (_root, params) => {
if (node.attributes['stroke-dasharray'] != null) {
node.attributes['stroke-dasharray'] = roundValues(
- node.attributes['stroke-dasharray']
+ node.attributes['stroke-dasharray'],
);
}
diff --git a/node_modules/svgo/plugins/cleanupNumericValues.js b/node_modules/svgo/plugins/cleanupNumericValues.js
index 6a15dddd..9b782c3d 100644
--- a/node_modules/svgo/plugins/cleanupNumericValues.js
+++ b/node_modules/svgo/plugins/cleanupNumericValues.js
@@ -75,8 +75,8 @@ exports.fn = (_root, params) => {
if (convertToPx && units !== '' && units in absoluteLengths) {
const pxNum = Number(
(absoluteLengths[units] * Number(match[1])).toFixed(
- floatPrecision
- )
+ floatPrecision,
+ ),
);
if (pxNum.toString().length < match[0].length) {
num = pxNum;
diff --git a/node_modules/svgo/plugins/collapseGroups.js b/node_modules/svgo/plugins/collapseGroups.js
index 6042a01c..0534ad77 100644
--- a/node_modules/svgo/plugins/collapseGroups.js
+++ b/node_modules/svgo/plugins/collapseGroups.js
@@ -15,7 +15,7 @@ exports.description = 'collapses useless groups';
const hasAnimatedAttr = (node, name) => {
if (node.type === 'element') {
if (
- elemsGroups.animation.includes(node.name) &&
+ elemsGroups.animation.has(node.name) &&
node.attributes.attributeName === name
) {
return true;
@@ -95,7 +95,7 @@ exports.fn = () => {
} else if (firstChild.attributes[name] === 'inherit') {
firstChild.attributes[name] = value;
} else if (
- inheritableAttrs.includes(name) === false &&
+ inheritableAttrs.has(name) === false &&
firstChild.attributes[name] !== value
) {
return;
@@ -112,7 +112,7 @@ exports.fn = () => {
for (const child of node.children) {
if (
child.type === 'element' &&
- elemsGroups.animation.includes(child.name)
+ elemsGroups.animation.has(child.name)
) {
return;
}
diff --git a/node_modules/svgo/plugins/convertColors.js b/node_modules/svgo/plugins/convertColors.js
index c9609d8b..d894283f 100644
--- a/node_modules/svgo/plugins/convertColors.js
+++ b/node_modules/svgo/plugins/convertColors.js
@@ -8,7 +8,7 @@ exports.description = 'converts colors: rgb() to #rrggbb and #rrggbb to #rgb';
const rNumber = '([+-]?(?:\\d*\\.\\d+|\\d+\\.?)%?)';
const rComma = '\\s*,\\s*';
const regRGB = new RegExp(
- '^rgb\\(\\s*' + rNumber + rComma + rNumber + rComma + rNumber + '\\s*\\)$'
+ '^rgb\\(\\s*' + rNumber + rComma + rNumber + rComma + rNumber + '\\s*\\)$',
);
const regHEX = /^#(([a-fA-F0-9])\2){3}$/;
@@ -22,7 +22,7 @@ const regHEX = /^#(([a-fA-F0-9])\2){3}$/;
*
* @author Jed Schmidt
*
- * @type {(rgb: Array<number>) => string}
+ * @type {(rgb: number[]) => string}
*/
const convertRgbToHex = ([r, g, b]) => {
// combine the octets into a 32-bit integer as: [1][r][g][b]
@@ -76,7 +76,7 @@ exports.fn = (_root, params) => {
element: {
enter: (node) => {
for (const [name, value] of Object.entries(node.attributes)) {
- if (collections.colorsProps.includes(name)) {
+ if (collections.colorsProps.has(name)) {
let val = value;
// convert colors to currentColor
diff --git a/node_modules/svgo/plugins/convertOneStopGradients.js b/node_modules/svgo/plugins/convertOneStopGradients.js
index e5f4625d..1cf0d66b 100644
--- a/node_modules/svgo/plugins/convertOneStopGradients.js
+++ b/node_modules/svgo/plugins/convertOneStopGradients.js
@@ -104,7 +104,7 @@ exports.fn = (root) => {
const selectorVal = `url(#${node.attributes.id})`;
- const selector = colorsProps
+ const selector = [...colorsProps]
.map((attr) => `[${attr}="${selectorVal}"]`)
.join(',');
const elements = querySelectorAll(root, selector);
@@ -128,7 +128,7 @@ exports.fn = (root) => {
const styledElements = querySelectorAll(
root,
- `[style*=${selectorVal}]`
+ `[style*=${selectorVal}]`,
);
for (const element of styledElements) {
if (element.type !== 'element') {
@@ -137,7 +137,7 @@ exports.fn = (root) => {
element.attributes.style = element.attributes.style.replace(
selectorVal,
- color || attrsGroupsDefaults.presentation['stop-color']
+ color || attrsGroupsDefaults.presentation['stop-color'],
);
}
},
diff --git a/node_modules/svgo/plugins/convertPathData.js b/node_modules/svgo/plugins/convertPathData.js
index 6229d9f7..de7b357f 100644
--- a/node_modules/svgo/plugins/convertPathData.js
+++ b/node_modules/svgo/plugins/convertPathData.js
@@ -9,31 +9,21 @@ const { visit } = require('../lib/xast.js');
const { pathElems } = require('./_collections.js');
const { path2js, js2path } = require('./_path.js');
const { applyTransforms } = require('./applyTransforms.js');
-const { cleanupOutData } = require('../lib/svgo/tools');
+const { cleanupOutData, toFixed } = require('../lib/svgo/tools');
exports.name = 'convertPathData';
exports.description =
'optimizes path data: writes in shorter form, applies transformations';
-/**
- * @type {(data: number[]) => number[]}
- */
+/** @type {(data: number[]) => number[]} */
let roundData;
-/**
- * @type {number | false}
- */
+/** @type {number | false} */
let precision;
-/**
- * @type {number}
- */
+/** @type {number} */
let error;
-/**
- * @type {number}
- */
+/** @type {number} */
let arcThreshold;
-/**
- * @type {number}
- */
+/** @type {number} */
let arcTolerance;
/**
@@ -45,11 +35,13 @@ let arcTolerance;
* tolerance: number,
* },
* straightCurves: boolean,
+ * convertToQ: boolean,
* lineShorthands: boolean,
* convertToZ: boolean,
* curveSmoothShorthands: boolean,
* floatPrecision: number | false,
* transformPrecision: number,
+ * smartArcRounding: boolean,
* removeUseless: boolean,
* collapseRepeated: boolean,
* utilizeAbsolute: boolean,
@@ -95,11 +87,13 @@ exports.fn = (root, params) => {
tolerance: 0.5, // percentage of radius
},
straightCurves = true,
+ convertToQ = true,
lineShorthands = true,
convertToZ = true,
curveSmoothShorthands = true,
floatPrecision = 3,
transformPrecision = 5,
+ smartArcRounding = true,
removeUseless = true,
collapseRepeated = true,
utilizeAbsolute = true,
@@ -117,11 +111,13 @@ exports.fn = (root, params) => {
applyTransformsStroked,
makeArcs,
straightCurves,
+ convertToQ,
lineShorthands,
convertToZ,
curveSmoothShorthands,
floatPrecision,
transformPrecision,
+ smartArcRounding,
removeUseless,
collapseRepeated,
utilizeAbsolute,
@@ -139,7 +135,7 @@ exports.fn = (root, params) => {
applyTransforms(root, {
transformPrecision,
applyTransformsStroked,
- })
+ }),
);
}
@@ -147,14 +143,15 @@ exports.fn = (root, params) => {
return {
element: {
enter: (node) => {
- if (pathElems.includes(node.name) && node.attributes.d != null) {
+ if (pathElems.has(node.name) && node.attributes.d != null) {
const computedStyle = computeStyle(stylesheet, node);
precision = floatPrecision;
error =
precision !== false
? +Math.pow(0.1, precision).toFixed(precision)
: 1e-2;
- roundData = precision > 0 && precision < 20 ? strongRound : round;
+ roundData =
+ precision && precision > 0 && precision < 20 ? strongRound : round;
if (makeArcs) {
arcThreshold = makeArcs.threshold;
arcTolerance = makeArcs.tolerance;
@@ -387,14 +384,20 @@ const convertToRelative = (pathData) => {
function filters(
path,
params,
- { isSafeToUseZ, maybeHasStrokeAndLinecap, hasMarkerMid }
+ { isSafeToUseZ, maybeHasStrokeAndLinecap, hasMarkerMid },
) {
- var stringify = data2Path.bind(null, params),
- relSubpoint = [0, 0],
- pathBase = [0, 0],
- prev = {};
+ const stringify = data2Path.bind(null, params);
+ const relSubpoint = [0, 0];
+ const pathBase = [0, 0];
+ /** @type {any} */
+ let prev = {};
+ /** @type {Point | undefined} */
+ let prevQControlPoint;
path = path.filter(function (item, index, path) {
+ const qControlPoint = prevQControlPoint;
+ prevQControlPoint = undefined;
+
let command = item.command;
let data = item.args;
let next = path[index + 1];
@@ -406,9 +409,8 @@ function filters(
if (command === 's') {
sdata = [0, 0].concat(data);
- // @ts-ignore
- var pdata = prev.args,
- n = pdata.length;
+ const pdata = prev.args;
+ const n = pdata.length;
// (-x, -y) of the prev tangent point relative to the current point
sdata[0] = pdata[n - 2] - pdata[n - 4];
@@ -455,16 +457,11 @@ function filters(
nextLonghand;
if (
- // @ts-ignore
(prev.command == 'c' &&
- // @ts-ignore
isConvex(prev.args) &&
- // @ts-ignore
isArcPrev(prev.args, circle)) ||
- // @ts-ignore
(prev.command == 'a' && prev.sdata && isArcPrev(prev.sdata, circle))
) {
- // @ts-ignore
arcCurves.unshift(prev);
// @ts-ignore
arc.base = prev.base;
@@ -472,7 +469,6 @@ function filters(
arc.args[5] = arc.coords[0] - arc.base[0];
// @ts-ignore
arc.args[6] = arc.coords[1] - arc.base[1];
- // @ts-ignore
var prevData = prev.command == 'a' ? prev.sdata : prev.args;
var prevAngle = findArcAngle(prevData, {
center: [
@@ -489,14 +485,14 @@ function filters(
// check if next curves are fitting the arc
for (
var j = index;
- (next = path[++j]) && ~'cs'.indexOf(next.command);
+ (next = path[++j]) && (next.command === 'c' || next.command === 's');
) {
var nextData = next.args;
if (next.command == 's') {
nextLonghand = makeLonghand(
{ command: 's', args: next.args.slice() },
- path[j - 1].args
+ path[j - 1].args,
);
nextData = nextLonghand.args;
nextLonghand.args = nextData.slice(0, 2);
@@ -565,7 +561,6 @@ function filters(
relSubpoint[0] += prevArc.args[5] - prev.args[prev.args.length - 2];
// @ts-ignore
relSubpoint[1] += prevArc.args[6] - prev.args[prev.args.length - 1];
- // @ts-ignore
prev.command = 'a';
// @ts-ignore
prev.args = prevArc.args;
@@ -579,11 +574,7 @@ function filters(
item.sdata = sdata.slice(); // preserve curve data for future checks
} else if (arcCurves.length - 1 - hasPrev > 0) {
// filter out consumed next items
- path.splice.apply(
- path,
- // @ts-ignore
- [index + 1, arcCurves.length - 1 - hasPrev].concat(output)
- );
+ path.splice(index + 1, arcCurves.length - 1 - hasPrev, ...output);
}
if (!arc) return false;
command = 'a';
@@ -637,6 +628,24 @@ function filters(
}
}
+ // round arc radius more accurately
+ // eg m 0 0 a 1234.567 1234.567 0 0 1 10 0 -> m 0 0 a 1235 1235 0 0 1 10 0
+ const sagitta = command === 'a' ? calculateSagitta(data) : undefined;
+ if (params.smartArcRounding && sagitta !== undefined && precision) {
+ for (let precisionNew = precision; precisionNew >= 0; precisionNew--) {
+ const radius = toFixed(data[0], precisionNew);
+ const sagittaNew = /** @type {number} */ (
+ calculateSagitta([radius, radius, ...data.slice(2)])
+ );
+ if (Math.abs(sagitta - sagittaNew) < error) {
+ data[0] = radius;
+ data[1] = radius;
+ } else {
+ break;
+ }
+ }
+ }
+
// convert straight curves into lines segments
if (params.straightCurves) {
if (
@@ -652,19 +661,60 @@ function filters(
data = data.slice(-2);
} else if (
command === 't' &&
- // @ts-ignore
prev.command !== 'q' &&
- // @ts-ignore
prev.command !== 't'
) {
command = 'l';
data = data.slice(-2);
- } else if (command === 'a' && (data[0] === 0 || data[1] === 0)) {
+ } else if (
+ command === 'a' &&
+ (data[0] === 0 ||
+ data[1] === 0 ||
+ (sagitta !== undefined && sagitta < error))
+ ) {
command = 'l';
data = data.slice(-2);
}
}
+ // degree-lower c to q when possible
+ // m 0 12 C 4 4 8 4 12 12 → M 0 12 Q 6 0 12 12
+ if (params.convertToQ && command == 'c') {
+ const x1 =
+ // @ts-ignore
+ 0.75 * (item.base[0] + data[0]) - 0.25 * item.base[0];
+ const x2 =
+ // @ts-ignore
+ 0.75 * (item.base[0] + data[2]) - 0.25 * (item.base[0] + data[4]);
+ if (Math.abs(x1 - x2) < error * 2) {
+ const y1 =
+ // @ts-ignore
+ 0.75 * (item.base[1] + data[1]) - 0.25 * item.base[1];
+ const y2 =
+ // @ts-ignore
+ 0.75 * (item.base[1] + data[3]) - 0.25 * (item.base[1] + data[5]);
+ if (Math.abs(y1 - y2) < error * 2) {
+ const newData = data.slice();
+ newData.splice(
+ 0,
+ 4,
+ // @ts-ignore
+ x1 + x2 - item.base[0],
+ // @ts-ignore
+ y1 + y2 - item.base[1],
+ );
+ roundData(newData);
+ const originalLength = cleanupOutData(data, params).length,
+ newLength = cleanupOutData(newData, params).length;
+ if (newLength < originalLength) {
+ command = 'q';
+ data = newData;
+ if (next && next.command == 's') makeLonghand(next, data); // fix up next curve
+ }
+ }
+ }
+ }
+
// horizontal and vertical line shorthands
// l 50 0 → h 50
// l 0 50 → v 50
@@ -678,64 +728,36 @@ function filters(
}
}
- // convert going home to z
- // m 0 0 h 5 v 5 l -5 -5 -> m 0 0 h 5 v 5 z
- if (
- params.convertToZ &&
- (isSafeToUseZ || next?.command === 'Z' || next?.command === 'z') &&
- (command === 'l' || command === 'h' || command === 'v')
- ) {
- if (
- // @ts-ignore
- Math.abs(pathBase[0] - item.coords[0]) < error &&
- // @ts-ignore
- Math.abs(pathBase[1] - item.coords[1]) < error
- ) {
- command = 'z';
- data = [];
- }
- }
-
// collapse repeated commands
// h 20 h 30 -> h 50
if (
params.collapseRepeated &&
hasMarkerMid === false &&
(command === 'm' || command === 'h' || command === 'v') &&
- // @ts-ignore
prev.command &&
- // @ts-ignore
command == prev.command.toLowerCase() &&
((command != 'h' && command != 'v') ||
- // @ts-ignore
prev.args[0] >= 0 == data[0] >= 0)
) {
- // @ts-ignore
prev.args[0] += data[0];
if (command != 'h' && command != 'v') {
- // @ts-ignore
prev.args[1] += data[1];
}
// @ts-ignore
prev.coords = item.coords;
- // @ts-ignore
path[index] = prev;
return false;
}
// convert curves into smooth shorthands
- // @ts-ignore
if (params.curveSmoothShorthands && prev.command) {
// curveto
if (command === 'c') {
// c + c → c + s
if (
- // @ts-ignore
prev.command === 'c' &&
- // @ts-ignore
- data[0] === -(prev.args[2] - prev.args[4]) &&
- // @ts-ignore
- data[1] === -(prev.args[3] - prev.args[5])
+ Math.abs(data[0] - -(prev.args[2] - prev.args[4])) < error &&
+ Math.abs(data[1] - -(prev.args[3] - prev.args[5])) < error
) {
command = 's';
data = data.slice(2);
@@ -743,12 +765,9 @@ function filters(
// s + c → s + s
else if (
- // @ts-ignore
prev.command === 's' &&
- // @ts-ignore
- data[0] === -(prev.args[0] - prev.args[2]) &&
- // @ts-ignore
- data[1] === -(prev.args[1] - prev.args[3])
+ Math.abs(data[0] - -(prev.args[0] - prev.args[2])) < error &&
+ Math.abs(data[1] - -(prev.args[1] - prev.args[3])) < error
) {
command = 's';
data = data.slice(2);
@@ -756,12 +775,10 @@ function filters(
// [^cs] + c → [^cs] + s
else if (
- // @ts-ignore
prev.command !== 'c' &&
- // @ts-ignore
prev.command !== 's' &&
- data[0] === 0 &&
- data[1] === 0
+ Math.abs(data[0]) < error &&
+ Math.abs(data[1]) < error
) {
command = 's';
data = data.slice(2);
@@ -772,28 +789,36 @@ function filters(
else if (command === 'q') {
// q + q → q + t
if (
- // @ts-ignore
prev.command === 'q' &&
- // @ts-ignore
- data[0] === prev.args[2] - prev.args[0] &&
- // @ts-ignore
- data[1] === prev.args[3] - prev.args[1]
+ Math.abs(data[0] - (prev.args[2] - prev.args[0])) < error &&
+ Math.abs(data[1] - (prev.args[3] - prev.args[1])) < error
) {
command = 't';
data = data.slice(2);
}
// t + q → t + t
- else if (
- // @ts-ignore
- prev.command === 't' &&
- // @ts-ignore
- data[2] === prev.args[0] &&
- // @ts-ignore
- data[3] === prev.args[1]
- ) {
- command = 't';
- data = data.slice(2);
+ else if (prev.command === 't') {
+ const predictedControlPoint = reflectPoint(
+ // @ts-ignore
+ qControlPoint,
+ // @ts-ignore
+ item.base,
+ );
+ const realControlPoint = [
+ // @ts-ignore
+ data[0] + item.base[0],
+ // @ts-ignore
+ data[1] + item.base[1],
+ ];
+ if (
+ Math.abs(predictedControlPoint[0] - realControlPoint[0]) <
+ error &&
+ Math.abs(predictedControlPoint[1] - realControlPoint[1]) < error
+ ) {
+ command = 't';
+ data = data.slice(2);
+ }
}
}
}
@@ -813,26 +838,41 @@ function filters(
return i === 0;
})
) {
- // @ts-ignore
path[index] = prev;
return false;
}
// a 25,25 -30 0,1 0,0
if (command === 'a' && data[5] === 0 && data[6] === 0) {
- // @ts-ignore
path[index] = prev;
return false;
}
}
+ // convert going home to z
+ // m 0 0 h 5 v 5 l -5 -5 -> m 0 0 h 5 v 5 z
+ if (
+ params.convertToZ &&
+ (isSafeToUseZ || next?.command === 'Z' || next?.command === 'z') &&
+ (command === 'l' || command === 'h' || command === 'v')
+ ) {
+ if (
+ // @ts-ignore
+ Math.abs(pathBase[0] - item.coords[0]) < error &&
+ // @ts-ignore
+ Math.abs(pathBase[1] - item.coords[1]) < error
+ ) {
+ command = 'z';
+ data = [];
+ }
+ }
+
item.command = command;
item.args = data;
} else {
// z resets coordinates
relSubpoint[0] = pathBase[0];
relSubpoint[1] = pathBase[1];
- // @ts-ignore
if (prev.command === 'Z' || prev.command === 'z') return false;
}
if (
@@ -846,6 +886,18 @@ function filters(
)
return false;
+ if (command === 'q') {
+ // @ts-ignore
+ prevQControlPoint = [data[0] + item.base[0], data[1] + item.base[1]];
+ } else if (command === 't') {
+ if (qControlPoint) {
+ // @ts-ignore
+ prevQControlPoint = reflectPoint(qControlPoint, item.base);
+ } else {
+ // @ts-ignore
+ prevQControlPoint = item.coords;
+ }
+ }
prev = item;
return true;
});
@@ -870,7 +922,8 @@ function convertToMixed(path, params) {
var command = item.command,
data = item.args,
- adata = data.slice();
+ adata = data.slice(),
+ rdata = data.slice();
if (
command === 'm' ||
@@ -898,9 +951,10 @@ function convertToMixed(path, params) {
}
roundData(adata);
+ roundData(rdata);
var absoluteDataStr = cleanupOutData(adata, params),
- relativeDataStr = cleanupOutData(data, params);
+ relativeDataStr = cleanupOutData(rdata, params);
// Convert to absolute coordinates if it's shorter or forceAbsolutePath is true.
// v-20 -> V0
@@ -915,8 +969,9 @@ function convertToMixed(path, params) {
prev.command.charCodeAt(0) > 96 &&
absoluteDataStr.length == relativeDataStr.length - 1 &&
(data[0] < 0 ||
- // @ts-ignore
- (/^0\./.test(data[0]) && prev.args[prev.args.length - 1] % 1))
+ (Math.floor(data[0]) === 0 &&
+ !Number.isInteger(data[0]) &&
+ prev.args[prev.args.length - 1] % 1))
))
) {
// @ts-ignore
@@ -925,7 +980,6 @@ function convertToMixed(path, params) {
}
prev = item;
-
return true;
});
@@ -992,16 +1046,6 @@ function getIntersection(coords) {
}
/**
- * Does the same as `Number.prototype.toFixed` but without casting
- * the return value to a string.
- * @type {(num: number, precision: number) => number}
- */
-function toFixed(num, precision) {
- const pow = 10 ** precision;
- return Math.round(num * pow) / pow;
-}
-
-/**
* Decrease accuracy of floating-point numbers
* in path data keeping a specified number of decimals.
* Smart rounds values like 2.3491 to 2.35 instead of 2.349.
@@ -1042,7 +1086,6 @@ function round(data) {
*
* @type {(data: number[]) => boolean}
*/
-
function isCurveStraightLine(data) {
// Get line equation a·x + b·y + c = 0 coefficients a, b (c = 0) by start and end points.
var i = data.length - 2,
@@ -1062,11 +1105,25 @@ function isCurveStraightLine(data) {
}
/**
+ * Calculates the sagitta of an arc if possible.
+ *
+ * @type {(data: number[]) => number | undefined}
+ * @see https://wikipedia.org/wiki/Sagitta_(geometry)#Formulas
+ */
+function calculateSagitta(data) {
+ if (data[3] === 1) return undefined;
+ const [rx, ry] = data;
+ if (Math.abs(rx - ry) > error) return undefined;
+ const chord = Math.sqrt(data[5] ** 2 + data[6] ** 2);
+ if (chord > rx * 2) return undefined;
+ return rx - Math.sqrt(rx ** 2 - 0.25 * chord ** 2);
+}
+
+/**
* Converts next curve from shorthand to full form using the current curve data.
*
* @type {(item: PathDataItem, data: number[]) => PathDataItem}
*/
-
function makeLonghand(item, data) {
switch (item.command) {
case 's':
@@ -1078,7 +1135,7 @@ function makeLonghand(item, data) {
}
item.args.unshift(
data[data.length - 2] - data[data.length - 4],
- data[data.length - 1] - data[data.length - 3]
+ data[data.length - 1] - data[data.length - 3],
);
return item;
}
@@ -1088,9 +1145,19 @@ function makeLonghand(item, data) {
*
* @type {(point1: Point, point2: Point) => number}
*/
-
function getDistance(point1, point2) {
- return Math.hypot(point1[0] - point2[0], point1[1] - point2[1]);
+ return Math.sqrt((point1[0] - point2[0]) ** 2 + (point1[1] - point2[1]) ** 2);
+}
+
+/**
+ * Reflects point across another point.
+ *
+ * @param {Point} controlPoint
+ * @param {Point} base
+ * @returns {Point}
+ */
+function reflectPoint(controlPoint, base) {
+ return [2 * base[0] - controlPoint[0], 2 * base[1] - controlPoint[1]];
}
/**
@@ -1100,7 +1167,6 @@ function getDistance(point1, point2) {
*
* @type {(curve: number[], t: number) => Point}
*/
-
function getCubicBezierPoint(curve, t) {
var sqrT = t * t,
cubT = sqrT * t,
@@ -1118,7 +1184,6 @@ function getCubicBezierPoint(curve, t) {
*
* @type {(curve: number[]) => undefined | Circle}
*/
-
function findCircle(curve) {
var midPoint = getCubicBezierPoint(curve, 1 / 2),
m1 = [midPoint[0] / 2, midPoint[1] / 2],
@@ -1145,7 +1210,7 @@ function findCircle(curve) {
return (
Math.abs(
// @ts-ignore
- getDistance(getCubicBezierPoint(curve, point), center) - radius
+ getDistance(getCubicBezierPoint(curve, point), center) - radius,
) <= tolerance
);
})
@@ -1159,18 +1224,17 @@ function findCircle(curve) {
*
* @type {(curve: number[], circle: Circle) => boolean}
*/
-
function isArc(curve, circle) {
var tolerance = Math.min(
arcThreshold * error,
- (arcTolerance * circle.radius) / 100
+ (arcTolerance * circle.radius) / 100,
);
return [0, 1 / 4, 1 / 2, 3 / 4, 1].every(function (point) {
return (
Math.abs(
getDistance(getCubicBezierPoint(curve, point), circle.center) -
- circle.radius
+ circle.radius,
) <= tolerance
);
});
@@ -1181,7 +1245,6 @@ function isArc(curve, circle) {
*
* @type {(curve: number[], circle: Circle) => boolean}
*/
-
function isArcPrev(curve, circle) {
return isArc(curve, {
center: [circle.center[0] + curve[4], circle.center[1] + curve[5]],
@@ -1194,7 +1257,6 @@ function isArcPrev(curve, circle) {
* @type {(curve: number[], relCircle: Circle) => number}
*/
-
function findArcAngle(curve, relCircle) {
var x1 = -relCircle.center[0],
y1 = -relCircle.center[1],
@@ -1202,7 +1264,7 @@ function findArcAngle(curve, relCircle) {
y2 = curve[5] - relCircle.center[1];
return Math.acos(
- (x1 * x2 + y1 * y2) / Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2))
+ (x1 * x2 + y1 * y2) / Math.sqrt((x1 * x1 + y1 * y1) * (x2 * x2 + y2 * y2)),
);
}
@@ -1211,7 +1273,6 @@ function findArcAngle(curve, relCircle) {
*
* @type {(params: InternalParams, pathData: PathDataItem[]) => string}
*/
-
function data2Path(params, pathData) {
return pathData.reduce(function (pathString, item) {
var strData = '';
diff --git a/node_modules/svgo/plugins/convertShapeToPath.js b/node_modules/svgo/plugins/convertShapeToPath.js
index 8a3b5a1f..f0ba0fd8 100644
--- a/node_modules/svgo/plugins/convertShapeToPath.js
+++ b/node_modules/svgo/plugins/convertShapeToPath.js
@@ -46,7 +46,7 @@ exports.fn = (root, params) => {
// TODO: Calculate sizes from % and non-px units if possible.
if (Number.isNaN(x - y + width - height)) return;
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [
{ command: 'M', args: [x, y] },
@@ -71,7 +71,7 @@ exports.fn = (root, params) => {
const y2 = Number(node.attributes.y2 || '0');
if (Number.isNaN(x1 - y1 + x2 - y2)) return;
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [
{ command: 'M', args: [x1, y1] },
@@ -91,14 +91,14 @@ exports.fn = (root, params) => {
node.attributes.points != null
) {
const coords = (node.attributes.points.match(regNumber) || []).map(
- Number
+ Number,
);
if (coords.length < 4) {
detachNodeFromParent(node, parentNode);
return;
}
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [];
for (let i = 0; i < coords.length; i += 2) {
@@ -124,7 +124,7 @@ exports.fn = (root, params) => {
return;
}
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [
{ command: 'M', args: [cx, cy - r] },
@@ -149,7 +149,7 @@ exports.fn = (root, params) => {
return;
}
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const pathData = [
{ command: 'M', args: [ecx, ecy - ry] },
diff --git a/node_modules/svgo/plugins/convertStyleToAttrs.js b/node_modules/svgo/plugins/convertStyleToAttrs.js
index 662119e4..a9305fc4 100644
--- a/node_modules/svgo/plugins/convertStyleToAttrs.js
+++ b/node_modules/svgo/plugins/convertStyleToAttrs.js
@@ -31,7 +31,7 @@ const rValue =
rSingleQuotes,
rQuotes,
rParenthesis,
- '[^;]*?'
+ '[^;]*?',
) +
'*?' +
')';
@@ -42,12 +42,12 @@ const rImportant = '(\\s*!important(?![-(\\w]))?';
// Final RegExp to parse CSS declarations.
const regDeclarationBlock = new RegExp(
rAttr + ':' + rValue + rImportant + rDeclEnd,
- 'ig'
+ 'ig',
);
// Comments expression. Honors escape sequences and strings.
const regStripComments = new RegExp(
g(rEscape, rSingleQuotes, rQuotes, '/\\*[^]*?\\*/'),
- 'ig'
+ 'ig',
);
/**
@@ -87,13 +87,12 @@ exports.fn = (_root, params) => {
return match[0] == '/'
? ''
: match[0] == '\\' && /[-g-z]/i.test(match[1])
- ? match[1]
- : match;
- }
+ ? match[1]
+ : match;
+ },
);
regDeclarationBlock.lastIndex = 0;
- // eslint-disable-next-line no-cond-assign
for (var rule; (rule = regDeclarationBlock.exec(styleValue)); ) {
if (!keepImportant || !rule[3]) {
styles.push([rule[1], rule[2]]);
@@ -110,7 +109,7 @@ exports.fn = (_root, params) => {
val = val.slice(1, -1);
}
- if (stylingProps.includes(prop)) {
+ if (stylingProps.has(prop)) {
newAttributes[prop] = val;
return false;
diff --git a/node_modules/svgo/plugins/convertTransform.js b/node_modules/svgo/plugins/convertTransform.js
index b69e17a3..6f399078 100644
--- a/node_modules/svgo/plugins/convertTransform.js
+++ b/node_modules/svgo/plugins/convertTransform.js
@@ -1,10 +1,12 @@
'use strict';
/**
+ * @typedef {import('../lib/types').XastChild} XastChild
* @typedef {import('../lib/types').XastElement} XastElement
+ * @typedef {import('../lib/types').XastParent} XastParent
*/
-const { cleanupOutData } = require('../lib/svgo/tools.js');
+const { cleanupOutData, toFixed } = require('../lib/svgo/tools.js');
const {
transform2js,
transformsMultiply,
@@ -59,15 +61,14 @@ exports.fn = (_root, params) => {
return {
element: {
enter: (node) => {
- // transform
if (node.attributes.transform != null) {
convertTransform(node, 'transform', newParams);
}
- // gradientTransform
+
if (node.attributes.gradientTransform != null) {
convertTransform(node, 'gradientTransform', newParams);
}
- // patternTransform
+
if (node.attributes.patternTransform != null) {
convertTransform(node, 'patternTransform', newParams);
}
@@ -94,13 +95,13 @@ exports.fn = (_root, params) => {
*/
/**
- * @typedef {{ name: string, data: Array<number> }} TransformItem
+ * @typedef {{ name: string, data: number[] }} TransformItem
*/
/**
- * Main function.
- *
- * @type {(item: XastElement, attrName: string, params: TransformParams) => void}
+ * @param {XastElement} item
+ * @param {string} attrName
+ * @param {TransformParams} params
*/
const convertTransform = (item, attrName, params) => {
let data = transform2js(item.attributes[attrName]);
@@ -134,7 +135,7 @@ const convertTransform = (item, attrName, params) => {
* degPrecision - for rotate and skew. By default it's equal to (roughly)
* transformPrecision - 2 or floatPrecision whichever is lower. Can be set in params.
*
- * @type {(data: Array<TransformItem>, params: TransformParams) => TransformParams}
+ * @type {(data: TransformItem[], params: TransformParams) => TransformParams}
*
* clone params so it don't affect other elements transformations.
*/
@@ -145,33 +146,33 @@ const definePrecision = (data, { ...newParams }) => {
matrixData.push(...item.data.slice(0, 4));
}
}
- let significantDigits = newParams.transformPrecision;
+ let numberOfDigits = newParams.transformPrecision;
// Limit transform precision with matrix one. Calculating with larger precision doesn't add any value.
if (matrixData.length) {
newParams.transformPrecision = Math.min(
newParams.transformPrecision,
Math.max.apply(Math, matrixData.map(floatDigits)) ||
- newParams.transformPrecision
+ newParams.transformPrecision,
);
- significantDigits = Math.max.apply(
+ numberOfDigits = Math.max.apply(
Math,
matrixData.map(
- (n) => n.toString().replace(/\D+/g, '').length // Number of digits in a number. 123.45 → 5
- )
+ (n) => n.toString().replace(/\D+/g, '').length, // Number of digits in a number. 123.45 → 5
+ ),
);
}
// No sense in angle precision more then number of significant digits in matrix.
if (newParams.degPrecision == null) {
newParams.degPrecision = Math.max(
0,
- Math.min(newParams.floatPrecision, significantDigits - 2)
+ Math.min(newParams.floatPrecision, numberOfDigits - 2),
);
}
return newParams;
};
/**
- * @type {(data: Array<number>, params: TransformParams) => Array<number>}
+ * @type {(data: number[], params: TransformParams) => number[]}
*/
const degRound = (data, params) => {
if (
@@ -185,7 +186,7 @@ const degRound = (data, params) => {
}
};
/**
- * @type {(data: Array<number>, params: TransformParams) => Array<number>}
+ * @type {(data: number[], params: TransformParams) => number[]}
*/
const floatRound = (data, params) => {
if (params.floatPrecision >= 1 && params.floatPrecision < 20) {
@@ -196,7 +197,7 @@ const floatRound = (data, params) => {
};
/**
- * @type {(data: Array<number>, params: TransformParams) => Array<number>}
+ * @type {(data: number[], params: TransformParams) => number[]}
*/
const transformRound = (data, params) => {
if (params.transformPrecision >= 1 && params.floatPrecision < 20) {
@@ -219,11 +220,13 @@ const floatDigits = (n) => {
/**
* Convert transforms to the shorthand alternatives.
*
- * @type {(transforms: Array<TransformItem>, params: TransformParams) => Array<TransformItem>}
+ * @param {TransformItem[]} transforms
+ * @param {TransformParams} params
+ * @returns {TransformItem[]}
*/
const convertToShorts = (transforms, params) => {
for (var i = 0; i < transforms.length; i++) {
- var transform = transforms[i];
+ let transform = transforms[i];
// convert matrix to the short aliases
if (params.matrixToTransform && transform.name === 'matrix') {
@@ -267,8 +270,7 @@ const convertToShorts = (transforms, params) => {
// translate(cx cy) rotate(a) translate(-cx -cy) → rotate(a cx cy)
if (
params.shortRotate &&
- transforms[i - 2] &&
- transforms[i - 2].name === 'translate' &&
+ transforms[i - 2]?.name === 'translate' &&
transforms[i - 1].name === 'rotate' &&
transforms[i].name === 'translate' &&
transforms[i - 2].data[0] === -transforms[i].data[0] &&
@@ -294,7 +296,7 @@ const convertToShorts = (transforms, params) => {
/**
* Remove useless transforms.
*
- * @type {(transforms: Array<TransformItem>) => Array<TransformItem>}
+ * @type {(transforms: TransformItem[]) => TransformItem[]}
*/
const removeUseless = (transforms) => {
return transforms.filter((transform) => {
@@ -332,7 +334,9 @@ const removeUseless = (transforms) => {
/**
* Convert transforms JS representation to string.
*
- * @type {(transformJS: Array<TransformItem>, params: TransformParams) => string}
+ * @param {TransformItem[]} transformJS
+ * @param {TransformParams} params
+ * @returns {string}
*/
const js2transform = (transformJS, params) => {
const transformString = transformJS
@@ -379,7 +383,7 @@ const roundTransform = (transform, params) => {
/**
* Rounds numbers in array.
*
- * @type {(data: Array<number>) => Array<number>}
+ * @type {(data: number[]) => number[]}
*/
const round = (data) => {
return data.map(Math.round);
@@ -390,7 +394,9 @@ const round = (data) => {
* in transforms keeping a specified number of decimals.
* Smart rounds values like 2.349 to 2.35.
*
- * @type {(precision: number, data: Array<number>) => Array<number>}
+ * @param {number} precision
+ * @param {number[]} data
+ * @returns {number[]}
*/
const smartRound = (precision, data) => {
for (
@@ -399,7 +405,7 @@ const smartRound = (precision, data) => {
i--;
) {
- if (Number(data[i].toFixed(precision)) !== data[i]) {
+ if (toFixed(data[i], precision) !== data[i]) {
var rounded = +data[i].toFixed(precision - 1);
data[i] =
+Math.abs(rounded - data[i]).toFixed(precision + 1) >= tolerance
@@ -407,5 +413,6 @@ const smartRound = (precision, data) => {
: rounded;
}
}
+
return data;
};
diff --git a/node_modules/svgo/plugins/inlineStyles.js b/node_modules/svgo/plugins/inlineStyles.js
index 1cdcebe7..e09988de 100644
--- a/node_modules/svgo/plugins/inlineStyles.js
+++ b/node_modules/svgo/plugins/inlineStyles.js
@@ -7,7 +7,6 @@
const csstree = require('css-tree');
const {
- // @ts-ignore internal api
syntax: { specificity },
} = require('csso');
const {
@@ -51,16 +50,16 @@ exports.fn = (root, params) => {
} = params;
/**
- * @type {Array<{ node: XastElement, parentNode: XastParent, cssAst: csstree.StyleSheet }>}
+ * @type {{ node: XastElement, parentNode: XastParent, cssAst: csstree.StyleSheet }[]}
*/
const styles = [];
/**
- * @type {Array<{
+ * @type {{
* node: csstree.Selector,
* item: csstree.ListItem<csstree.CssNode>,
* rule: csstree.Rule,
- * matchedElements?: Array<XastElement>
- * }>}
+ * matchedElements?: XastElement[]
+ * }[]}
*/
let selectors = [];
@@ -123,10 +122,10 @@ exports.fn = (root, params) => {
node.prelude.children.forEach((childNode, item) => {
if (childNode.type === 'Selector') {
/**
- * @type {Array<{
+ * @type {{
* item: csstree.ListItem<csstree.CssNode>,
* list: csstree.List<csstree.CssNode>
- * }>}
+ * }[]}
*/
const pseudos = [];
@@ -145,13 +144,13 @@ exports.fn = (root, params) => {
list: grandchildList,
});
}
- }
+ },
);
const pseudoSelectors = csstree.generate({
type: 'Selector',
children: new csstree.List().fromArray(
- pseudos.map((pseudo) => pseudo.item.data)
+ pseudos.map((pseudo) => pseudo.item.data),
),
});
@@ -187,7 +186,7 @@ exports.fn = (root, params) => {
for (const selector of sortedSelectors) {
// match selectors
const selectorText = csstree.generate(selector.item.data);
- /** @type {Array<XastElement>} */
+ /** @type {XastElement[]} */
const matchedElements = [];
try {
for (const node of querySelectorAll(root, selectorText)) {
@@ -216,7 +215,7 @@ exports.fn = (root, params) => {
{
context: 'declarationList',
parseValue: false,
- }
+ },
);
if (styleDeclarationList.type !== 'DeclarationList') {
continue;
@@ -247,9 +246,9 @@ exports.fn = (root, params) => {
const property = ruleDeclaration.property;
if (
- attrsGroups.presentation.includes(property) &&
+ attrsGroups.presentation.has(property) &&
!selectors.some((selector) =>
- includesAttrSelector(selector.item, property)
+ includesAttrSelector(selector.item, property),
)
) {
delete selectedEl.attributes[property];
@@ -261,7 +260,7 @@ exports.fn = (root, params) => {
if (matchedItem == null) {
styleDeclarationList.children.insert(
ruleDeclarationItem,
- firstListItem
+ firstListItem,
);
} else if (
matchedItem.data.important !== true &&
@@ -269,7 +268,7 @@ exports.fn = (root, params) => {
) {
styleDeclarationList.children.replace(
matchedItem,
- ruleDeclarationItem
+ ruleDeclarationItem,
);
styleDeclarationItems.set(property, ruleDeclarationItem);
}
@@ -314,14 +313,19 @@ exports.fn = (root, params) => {
const classList = new Set(
selectedEl.attributes.class == null
? null
- : selectedEl.attributes.class.split(' ')
+ : selectedEl.attributes.class.split(' '),
);
for (const child of selector.node.children) {
if (
child.type === 'ClassSelector' &&
!selectors.some((selector) =>
- includesAttrSelector(selector.item, 'class', child.name, true)
+ includesAttrSelector(
+ selector.item,
+ 'class',
+ child.name,
+ true,
+ ),
)
) {
classList.delete(child.name);
@@ -344,8 +348,8 @@ exports.fn = (root, params) => {
selector.item,
'id',
firstSubSelector.name,
- true
- )
+ true,
+ ),
)
) {
delete selectedEl.attributes.id;
diff --git a/node_modules/svgo/plugins/mergePaths.js b/node_modules/svgo/plugins/mergePaths.js
index 05c7ac70..fe982c13 100644
--- a/node_modules/svgo/plugins/mergePaths.js
+++ b/node_modules/svgo/plugins/mergePaths.js
@@ -1,6 +1,11 @@
'use strict';
-const { detachNodeFromParent } = require('../lib/xast.js');
+/**
+ * @typedef {import("../lib/types").PathDataItem} PathDataItem
+ * @typedef {import('../lib/types').XastChild} XastChild
+ * @typedef {import('../lib/types').XastElement} XastElement
+ */
+
const { collectStylesheet, computeStyle } = require('../lib/style.js');
const { path2js, js2path, intersects } = require('./_path.js');
@@ -25,73 +30,118 @@ exports.fn = (root, params) => {
return {
element: {
enter: (node) => {
- let prevChild = null;
+ if (node.children.length <= 1) {
+ return;
+ }
+
+ /** @type {XastChild[]} */
+ const elementsToRemove = [];
+ let prevChild = node.children[0];
+ let prevPathData = null;
+
+ /**
+ * @param {XastElement} child
+ * @param {PathDataItem[]} pathData
+ */
+ const updatePreviousPath = (child, pathData) => {
+ js2path(child, pathData, {
+ floatPrecision,
+ noSpaceAfterFlags,
+ });
+ prevPathData = null;
+ };
+
+ for (let i = 1; i < node.children.length; i++) {
+ const child = node.children[i];
- for (const child of node.children) {
- // skip if previous element is not path or contains animation elements
if (
- prevChild == null ||
prevChild.type !== 'element' ||
prevChild.name !== 'path' ||
prevChild.children.length !== 0 ||
prevChild.attributes.d == null
) {
+ if (prevPathData && prevChild.type === 'element') {
+ updatePreviousPath(prevChild, prevPathData);
+ }
prevChild = child;
continue;
}
- // skip if element is not path or contains animation elements
if (
child.type !== 'element' ||
child.name !== 'path' ||
child.children.length !== 0 ||
child.attributes.d == null
) {
+ if (prevPathData) {
+ updatePreviousPath(prevChild, prevPathData);
+ }
prevChild = child;
continue;
}
- // preserve paths with markers
const computedStyle = computeStyle(stylesheet, child);
if (
computedStyle['marker-start'] ||
computedStyle['marker-mid'] ||
computedStyle['marker-end']
) {
+ if (prevPathData) {
+ updatePreviousPath(prevChild, prevPathData);
+ }
prevChild = child;
continue;
}
-
- const prevChildAttrs = Object.keys(prevChild.attributes);
const childAttrs = Object.keys(child.attributes);
- let attributesAreEqual = prevChildAttrs.length === childAttrs.length;
- for (const name of childAttrs) {
- if (name !== 'd') {
- if (
- prevChild.attributes[name] == null ||
- prevChild.attributes[name] !== child.attributes[name]
- ) {
- attributesAreEqual = false;
- }
+ if (childAttrs.length !== Object.keys(prevChild.attributes).length) {
+ if (prevPathData) {
+ updatePreviousPath(prevChild, prevPathData);
}
+ prevChild = child;
+ continue;
}
- const prevPathJS = path2js(prevChild);
- const curPathJS = path2js(child);
- if (
- attributesAreEqual &&
- (force || !intersects(prevPathJS, curPathJS))
- ) {
- js2path(prevChild, prevPathJS.concat(curPathJS), {
- floatPrecision,
- noSpaceAfterFlags,
- });
- detachNodeFromParent(child, node);
+ const areAttrsEqual = childAttrs.some((attr) => {
+ return (
+ attr !== 'd' &&
+ prevChild.type === 'element' &&
+ prevChild.attributes[attr] !== child.attributes[attr]
+ );
+ });
+
+ if (areAttrsEqual) {
+ if (prevPathData) {
+ updatePreviousPath(prevChild, prevPathData);
+ }
+ prevChild = child;
continue;
}
+ const hasPrevPath = prevPathData != null;
+ const currentPathData = path2js(child);
+ prevPathData = prevPathData ?? path2js(prevChild);
+
+ if (force || !intersects(prevPathData, currentPathData)) {
+ prevPathData.push(...currentPathData);
+ elementsToRemove.push(child);
+ continue;
+ }
+
+ if (hasPrevPath) {
+ updatePreviousPath(prevChild, prevPathData);
+ }
+
prevChild = child;
+ prevPathData = null;
}
+
+ if (prevPathData && prevChild.type === 'element') {
+ updatePreviousPath(prevChild, prevPathData);
+ }
+
+ node.children = node.children.filter(
+ (child) => !elementsToRemove.includes(child),
+ );
},
},
};
diff --git a/node_modules/svgo/plugins/minifyStyles.js b/node_modules/svgo/plugins/minifyStyles.js
index 598b6db3..ade441b3 100644
--- a/node_modules/svgo/plugins/minifyStyles.js
+++ b/node_modules/svgo/plugins/minifyStyles.js
@@ -22,7 +22,7 @@ exports.fn = (_root, { usage, ...params }) => {
/** @type {Map<XastElement, XastParent>} */
const styleElements = new Map();
- /** @type {Array<XastElement>} */
+ /** @type {XastElement[]} */
const elementsWithStyleAttributes = [];
/** @type {Set<string>} */
diff --git a/node_modules/svgo/plugins/moveElemsAttrsToGroup.js b/node_modules/svgo/plugins/moveElemsAttrsToGroup.js
index 5f46e632..633f4439 100644
--- a/node_modules/svgo/plugins/moveElemsAttrsToGroup.js
+++ b/node_modules/svgo/plugins/moveElemsAttrsToGroup.js
@@ -64,7 +64,7 @@ exports.fn = (root) => {
let everyChildIsPath = true;
for (const child of node.children) {
if (child.type === 'element') {
- if (pathElems.includes(child.name) === false) {
+ if (!pathElems.has(child.name)) {
everyChildIsPath = false;
}
if (initial) {
@@ -72,7 +72,7 @@ exports.fn = (root) => {
// collect all inheritable attributes from first child element
for (const [name, value] of Object.entries(child.attributes)) {
// consider only inheritable attributes
- if (inheritableAttrs.includes(name)) {
+ if (inheritableAttrs.has(name)) {
commonAttributes.set(name, value);
}
}
diff --git a/node_modules/svgo/plugins/moveGroupAttrsToElems.js b/node_modules/svgo/plugins/moveGroupAttrsToElems.js
index acadd894..450fb265 100644
--- a/node_modules/svgo/plugins/moveGroupAttrsToElems.js
+++ b/node_modules/svgo/plugins/moveGroupAttrsToElems.js
@@ -37,13 +37,13 @@ exports.fn = () => {
node.attributes.transform != null &&
Object.entries(node.attributes).some(
([name, value]) =>
- referencesProps.includes(name) && includesUrlReference(value)
+ referencesProps.has(name) && includesUrlReference(value),
) === false &&
node.children.every(
(child) =>
child.type === 'element' &&
pathElemsWithGroupsAndText.includes(child.name) &&
- child.attributes.id == null
+ child.attributes.id == null,
)
) {
for (const child of node.children) {
diff --git a/node_modules/svgo/plugins/plugins-types.d.ts b/node_modules/svgo/plugins/plugins-types.d.ts
index 7cd56706..e94e7137 100644
--- a/node_modules/svgo/plugins/plugins-types.d.ts
+++ b/node_modules/svgo/plugins/plugins-types.d.ts
@@ -41,11 +41,13 @@ type DefaultPlugins = {
tolerance: number;
};
straightCurves?: boolean;
+ convertToQ?: boolean;
lineShorthands?: boolean;
convertToZ?: boolean;
curveSmoothShorthands?: boolean;
floatPrecision?: number | false;
transformPrecision?: number;
+ smartArcRounding?: boolean;
removeUseless?: boolean;
collapseRepeated?: boolean;
utilizeAbsolute?: boolean;
@@ -255,7 +257,7 @@ export type BuiltinsWithOptionalParams = DefaultPlugins & {
*
* @default false
*/
- includeLegacy: boolean
+ includeLegacy: boolean;
};
removeXMLNS: void;
reusePaths: void;
diff --git a/node_modules/svgo/plugins/prefixIds.js b/node_modules/svgo/plugins/prefixIds.js
index 2f23971e..ec305c6b 100644
--- a/node_modules/svgo/plugins/prefixIds.js
+++ b/node_modules/svgo/plugins/prefixIds.js
@@ -173,15 +173,12 @@ exports.fn = (_root, params, info) => {
node.name = prefixId(prefixGenerator, node.name);
return;
}
- // @ts-ignore csstree v2 changed this type
if (node.type === 'Url' && node.value.length > 0) {
const prefixed = prefixReference(
prefixGenerator,
- // @ts-ignore
- unquote(node.value)
+ unquote(node.value),
);
if (prefixed != null) {
- // @ts-ignore
node.value = prefixed;
}
}
@@ -222,7 +219,7 @@ exports.fn = (_root, params, info) => {
) {
const prefixed = prefixReference(
prefixGenerator,
- node.attributes[name]
+ node.attributes[name],
);
if (prefixed != null) {
node.attributes[name] = prefixed;
@@ -244,7 +241,7 @@ exports.fn = (_root, params, info) => {
return match;
}
return `url(${prefixed})`;
- }
+ },
);
}
}
diff --git a/node_modules/svgo/plugins/removeComments.js b/node_modules/svgo/plugins/removeComments.js
index 67f8efd1..46a32590 100644
--- a/node_modules/svgo/plugins/removeComments.js
+++ b/node_modules/svgo/plugins/removeComments.js
@@ -31,7 +31,7 @@ exports.fn = (_root, params) => {
if (preservePatterns) {
if (!Array.isArray(preservePatterns)) {
throw Error(
- `Expected array in removeComments preservePatterns parameter but received ${preservePatterns}`
+ `Expected array in removeComments preservePatterns parameter but received ${preservePatterns}`,
);
}
diff --git a/node_modules/svgo/plugins/removeEditorsNSData.js b/node_modules/svgo/plugins/removeEditorsNSData.js
index e85bef89..852681bf 100644
--- a/node_modules/svgo/plugins/removeEditorsNSData.js
+++ b/node_modules/svgo/plugins/removeEditorsNSData.js
@@ -19,12 +19,12 @@ exports.description = 'removes editors namespaces, elements and attributes';
* @type {import('./plugins-types').Plugin<'removeEditorsNSData'>}
*/
exports.fn = (_root, params) => {
- let namespaces = editorNamespaces;
+ let namespaces = [...editorNamespaces];
if (Array.isArray(params.additionalNamespaces)) {
namespaces = [...editorNamespaces, ...params.additionalNamespaces];
}
/**
- * @type {Array<string>}
+ * @type {string[]}
*/
const prefixes = [];
return {
diff --git a/node_modules/svgo/plugins/removeElementsByAttr.js b/node_modules/svgo/plugins/removeElementsByAttr.js
index b5fd91ba..9c9915f0 100644
--- a/node_modules/svgo/plugins/removeElementsByAttr.js
+++ b/node_modules/svgo/plugins/removeElementsByAttr.js
@@ -46,8 +46,8 @@ exports.fn = (root, params) => {
params.class == null
? []
: Array.isArray(params.class)
- ? params.class
- : [params.class];
+ ? params.class
+ : [params.class];
return {
element: {
enter: (node, parentNode) => {
diff --git a/node_modules/svgo/plugins/removeEmptyAttrs.js b/node_modules/svgo/plugins/removeEmptyAttrs.js
index 83f567c3..194d27b8 100644
--- a/node_modules/svgo/plugins/removeEmptyAttrs.js
+++ b/node_modules/svgo/plugins/removeEmptyAttrs.js
@@ -20,7 +20,7 @@ exports.fn = () => {
if (
value === '' &&
// empty conditional processing attributes prevents elements from rendering
- attrsGroups.conditionalProcessing.includes(name) === false
+ !attrsGroups.conditionalProcessing.has(name)
) {
delete node.attributes[name];
}
diff --git a/node_modules/svgo/plugins/removeEmptyContainers.js b/node_modules/svgo/plugins/removeEmptyContainers.js
index bff3ab9c..03907344 100644
--- a/node_modules/svgo/plugins/removeEmptyContainers.js
+++ b/node_modules/svgo/plugins/removeEmptyContainers.js
@@ -28,7 +28,7 @@ exports.fn = () => {
// remove only empty non-svg containers
if (
node.name === 'svg' ||
- elemsGroups.container.includes(node.name) === false ||
+ !elemsGroups.container.has(node.name) ||
node.children.length !== 0
) {
return;
diff --git a/node_modules/svgo/plugins/removeHiddenElems.js b/node_modules/svgo/plugins/removeHiddenElems.js
index 6ed2750b..75720a06 100644
--- a/node_modules/svgo/plugins/removeHiddenElems.js
+++ b/node_modules/svgo/plugins/removeHiddenElems.js
@@ -114,7 +114,7 @@ exports.fn = (root, params) => {
element: {
enter: (node, parentNode) => {
// transparent non-rendering elements still apply where referenced
- if (nonRendering.includes(node.name)) {
+ if (nonRendering.has(node.name)) {
if (node.attributes.id == null) {
detachNodeFromParent(node, parentNode);
return visitSkip;
diff --git a/node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js b/node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js
index faa93dff..73e6bcda 100644
--- a/node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js
+++ b/node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js
@@ -24,9 +24,9 @@ exports.fn = () => {
if (node.name === 'g') {
for (const name of Object.keys(node.attributes)) {
if (
- attrsGroups.presentation.includes(name) === true &&
- inheritableAttrs.includes(name) === false &&
- presentationNonInheritableGroupAttrs.includes(name) === false
+ attrsGroups.presentation.has(name) &&
+ !inheritableAttrs.has(name) &&
+ !presentationNonInheritableGroupAttrs.has(name)
) {
delete node.attributes[name];
}
diff --git a/node_modules/svgo/plugins/removeOffCanvasPaths.js b/node_modules/svgo/plugins/removeOffCanvasPaths.js
index 8afd1e9a..60a69fb1 100644
--- a/node_modules/svgo/plugins/removeOffCanvasPaths.js
+++ b/node_modules/svgo/plugins/removeOffCanvasPaths.js
@@ -57,7 +57,7 @@ exports.fn = () => {
// ensure that the dimensions are 4 values separated by space
const m =
/^(-?\d*\.?\d+) (-?\d*\.?\d+) (\d*\.?\d+) (\d*\.?\d+)$/.exec(
- viewBox
+ viewBox,
);
if (m == null) {
return;
@@ -116,7 +116,7 @@ exports.fn = () => {
const { left, top, width, height } = viewBoxData;
/**
- * @type {Array<PathDataItem>}
+ * @type {PathDataItem[]}
*/
const viewBoxPathData = [
{ command: 'M', args: [left, top] },
diff --git a/node_modules/svgo/plugins/removeUnknownsAndDefaults.js b/node_modules/svgo/plugins/removeUnknownsAndDefaults.js
index 7462e8dc..e76e4e5f 100644
--- a/node_modules/svgo/plugins/removeUnknownsAndDefaults.js
+++ b/node_modules/svgo/plugins/removeUnknownsAndDefaults.js
@@ -129,7 +129,7 @@ exports.fn = (root, params) => {
// remove unknown element's content
if (unknownContent && parentNode.type === 'element') {
const allowedChildren = allowedChildrenPerElement.get(
- parentNode.name
+ parentNode.name,
);
if (allowedChildren == null || allowedChildren.size === 0) {
// remove unknown elements
@@ -197,7 +197,7 @@ exports.fn = (root, params) => {
if (uselessOverrides && node.attributes.id == null) {
const style = computedParentStyle?.[name];
if (
- presentationNonInheritableGroupAttrs.includes(name) === false &&
+ presentationNonInheritableGroupAttrs.has(name) === false &&
style != null &&
style.type === 'static' &&
style.value === value
diff --git a/node_modules/svgo/plugins/removeUselessDefs.js b/node_modules/svgo/plugins/removeUselessDefs.js
index 46461a98..5d19810e 100644
--- a/node_modules/svgo/plugins/removeUselessDefs.js
+++ b/node_modules/svgo/plugins/removeUselessDefs.js
@@ -23,7 +23,7 @@ exports.fn = () => {
enter: (node, parentNode) => {
if (node.name === 'defs') {
/**
- * @type {Array<XastElement>}
+ * @type {XastElement[]}
*/
const usefulNodes = [];
collectUsefulNodes(node, usefulNodes);
@@ -39,7 +39,7 @@ exports.fn = () => {
}
node.children = usefulNodes;
} else if (
- elemsGroups.nonRendering.includes(node.name) &&
+ elemsGroups.nonRendering.has(node.name) &&
node.attributes.id == null
) {
detachNodeFromParent(node, parentNode);
@@ -50,7 +50,7 @@ exports.fn = () => {
};
/**
- * @type {(node: XastElement, usefulNodes: Array<XastElement>) => void}
+ * @type {(node: XastElement, usefulNodes: XastElement[]) => void}
*/
const collectUsefulNodes = (node, usefulNodes) => {
for (const child of node.children) {
diff --git a/node_modules/svgo/plugins/removeUselessStrokeAndFill.js b/node_modules/svgo/plugins/removeUselessStrokeAndFill.js
index f5f99855..95193fa6 100644
--- a/node_modules/svgo/plugins/removeUselessStrokeAndFill.js
+++ b/node_modules/svgo/plugins/removeUselessStrokeAndFill.js
@@ -46,7 +46,7 @@ exports.fn = (root, params) => {
if (node.attributes.id != null) {
return visitSkip;
}
- if (elemsGroups.shape.includes(node.name) == false) {
+ if (!elemsGroups.shape.has(node.name)) {
return;
}
const computedStyle = computeStyle(stylesheet, node);
diff --git a/node_modules/svgo/plugins/removeViewBox.js b/node_modules/svgo/plugins/removeViewBox.js
index 5618d8bd..c0f23de2 100644
--- a/node_modules/svgo/plugins/removeViewBox.js
+++ b/node_modules/svgo/plugins/removeViewBox.js
@@ -3,7 +3,7 @@
exports.name = 'removeViewBox';
exports.description = 'removes viewBox attribute when possible';
-const viewBoxElems = ['svg', 'pattern', 'symbol'];
+const viewBoxElems = new Set(['pattern', 'svg', 'symbol']);
/**
* Remove viewBox attr which coincides with a width/height box.
@@ -24,7 +24,7 @@ exports.fn = () => {
element: {
enter: (node, parentNode) => {
if (
- viewBoxElems.includes(node.name) &&
+ viewBoxElems.has(node.name) &&
node.attributes.viewBox != null &&
node.attributes.width != null &&
node.attributes.height != null
diff --git a/node_modules/svgo/plugins/removeXlink.js b/node_modules/svgo/plugins/removeXlink.js
index d341b673..0411cc14 100644
--- a/node_modules/svgo/plugins/removeXlink.js
+++ b/node_modules/svgo/plugins/removeXlink.js
@@ -28,17 +28,17 @@ const SHOW_TO_TARGET = {
* Elements that use xlink:href, but were deprecated in SVG 2 and therefore
* don't support the SVG 2 href attribute.
*
- * @type {string[]}
+ * @type {Set<string>}
* @see https://developer.mozilla.org/docs/Web/SVG/Attribute/xlink:href
* @see https://developer.mozilla.org/docs/Web/SVG/Attribute/href
*/
-const LEGACY_ELEMENTS = [
+const LEGACY_ELEMENTS = new Set([
'cursor',
'filter',
'font-face-uri',
'glyphRef',
'tref',
-];
+]);
/**
* @param {XastElement} node
@@ -136,7 +136,7 @@ exports.fn = (_, params) => {
const attr = titleAttrs[i];
const value = node.attributes[attr];
const hasTitle = node.children.filter(
- (child) => child.type === 'element' && child.name === 'title'
+ (child) => child.type === 'element' && child.name === 'title',
);
if (hasTitle.length > 0) {
@@ -170,7 +170,7 @@ exports.fn = (_, params) => {
if (
hrefAttrs.length > 0 &&
- LEGACY_ELEMENTS.includes(node.name) &&
+ LEGACY_ELEMENTS.has(node.name) &&
!includeLegacy
) {
hrefAttrs
diff --git a/node_modules/svgo/plugins/reusePaths.js b/node_modules/svgo/plugins/reusePaths.js
index 89ff1f6b..8c2ddf0d 100644
--- a/node_modules/svgo/plugins/reusePaths.js
+++ b/node_modules/svgo/plugins/reusePaths.js
@@ -27,7 +27,7 @@ exports.fn = (root) => {
const stylesheet = collectStylesheet(root);
/**
- * @type {Map<string, Array<XastElement>>}
+ * @type {Map<string, XastElement[]>}
*/
const paths = new Map();
@@ -123,7 +123,7 @@ exports.fn = (root) => {
originalId == null ||
hrefs.has(originalId) ||
stylesheet.rules.some(
- (rule) => rule.selector === `#${originalId}`
+ (rule) => rule.selector === `#${originalId}`,
)
) {
reusablePath.attributes.id = 'reuse-' + index++;