From 35a52dcbe46824fb2a0d4fa44c537073aa634b0b Mon Sep 17 00:00:00 2001
From: Sofiane Lasri <alasri250@gmail.com>
Date: Mon, 17 Apr 2023 15:08:03 +0200
Subject: [PATCH] =?UTF-8?q?Ajout=20de=20SASS=20et=20Bootstrap.=20D=C3=A9bu?=
 =?UTF-8?q?t=20de=20la=20cr=C3=A9ation=20des=20styles.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                                    |     3 +-
 index.php                                     |     4 -
 package-lock.json                             |  2585 ++++
 package.json                                  |    11 +
 pages/accueil.php                             |    32 +-
 pages/footer.php                              |     8 +-
 pages/navbar.php                              |    37 +-
 styles/bootstrap/_accordion.scss              |   149 +
 styles/bootstrap/_alert.scss                  |    71 +
 styles/bootstrap/_badge.scss                  |    38 +
 styles/bootstrap/_breadcrumb.scss             |    40 +
 styles/bootstrap/_button-group.scss           |   142 +
 styles/bootstrap/_buttons.scss                |   207 +
 styles/bootstrap/_card.scss                   |   234 +
 styles/bootstrap/_carousel.scss               |   226 +
 styles/bootstrap/_close.scss                  |    40 +
 styles/bootstrap/_containers.scss             |    41 +
 styles/bootstrap/_dropdown.scss               |   249 +
 styles/bootstrap/_forms.scss                  |     9 +
 styles/bootstrap/_functions.scss              |   302 +
 styles/bootstrap/_grid.scss                   |    33 +
 styles/bootstrap/_helpers.scss                |    10 +
 styles/bootstrap/_images.scss                 |    42 +
 styles/bootstrap/_list-group.scss             |   192 +
 styles/bootstrap/_maps.scss                   |    54 +
 styles/bootstrap/_mixins.scss                 |    43 +
 styles/bootstrap/_modal.scss                  |   237 +
 styles/bootstrap/_nav.scss                    |   172 +
 styles/bootstrap/_navbar.scss                 |   278 +
 styles/bootstrap/_offcanvas.scss              |   144 +
 styles/bootstrap/_pagination.scss             |   109 +
 styles/bootstrap/_placeholders.scss           |    51 +
 styles/bootstrap/_popover.scss                |   196 +
 styles/bootstrap/_progress.scss               |    59 +
 styles/bootstrap/_reboot.scss                 |   610 +
 styles/bootstrap/_root.scss                   |    73 +
 styles/bootstrap/_spinners.scss               |    85 +
 styles/bootstrap/_tables.scss                 |   164 +
 styles/bootstrap/_toasts.scss                 |    73 +
 styles/bootstrap/_tooltip.scss                |   120 +
 styles/bootstrap/_transitions.scss            |    27 +
 styles/bootstrap/_type.scss                   |   106 +
 styles/bootstrap/_utilities.scss              |   647 +
 styles/bootstrap/_variables.scss              |  1634 +++
 styles/bootstrap/bootstrap-grid.scss          |    64 +
 styles/bootstrap/bootstrap-reboot.scss        |     9 +
 styles/bootstrap/bootstrap-utilities.scss     |    18 +
 styles/bootstrap/bootstrap.scss               |    51 +
 styles/bootstrap/forms/_floating-labels.scss  |    75 +
 styles/bootstrap/forms/_form-check.scss       |   175 +
 styles/bootstrap/forms/_form-control.scss     |   194 +
 styles/bootstrap/forms/_form-range.scss       |    91 +
 styles/bootstrap/forms/_form-select.scss      |    71 +
 styles/bootstrap/forms/_form-text.scss        |    11 +
 styles/bootstrap/forms/_input-group.scss      |   132 +
 styles/bootstrap/forms/_labels.scss           |    36 +
 styles/bootstrap/forms/_validation.scss       |    12 +
 styles/bootstrap/helpers/_clearfix.scss       |     3 +
 styles/bootstrap/helpers/_color-bg.scss       |    10 +
 styles/bootstrap/helpers/_colored-links.scss  |    12 +
 styles/bootstrap/helpers/_position.scss       |    36 +
 styles/bootstrap/helpers/_ratio.scss          |    26 +
 styles/bootstrap/helpers/_stacks.scss         |    15 +
 styles/bootstrap/helpers/_stretched-link.scss |    15 +
 .../bootstrap/helpers/_text-truncation.scss   |     7 +
 .../bootstrap/helpers/_visually-hidden.scss   |     8 +
 styles/bootstrap/helpers/_vr.scss             |     8 +
 styles/bootstrap/mixins/_alert.scss           |    15 +
 styles/bootstrap/mixins/_backdrop.scss        |    14 +
 styles/bootstrap/mixins/_banner.scss          |     9 +
 styles/bootstrap/mixins/_border-radius.scss   |    78 +
 styles/bootstrap/mixins/_box-shadow.scss      |    18 +
 styles/bootstrap/mixins/_breakpoints.scss     |   127 +
 styles/bootstrap/mixins/_buttons.scss         |    70 +
 styles/bootstrap/mixins/_caret.scss           |    64 +
 styles/bootstrap/mixins/_clearfix.scss        |     9 +
 styles/bootstrap/mixins/_color-scheme.scss    |     7 +
 styles/bootstrap/mixins/_container.scss       |    11 +
 styles/bootstrap/mixins/_deprecate.scss       |    10 +
 styles/bootstrap/mixins/_forms.scss           |   152 +
 styles/bootstrap/mixins/_gradients.scss       |    47 +
 styles/bootstrap/mixins/_grid.scss            |   151 +
 styles/bootstrap/mixins/_image.scss           |    16 +
 styles/bootstrap/mixins/_list-group.scss      |    24 +
 styles/bootstrap/mixins/_lists.scss           |     7 +
 styles/bootstrap/mixins/_pagination.scss      |    10 +
 styles/bootstrap/mixins/_reset-text.scss      |    17 +
 styles/bootstrap/mixins/_resize.scss          |     6 +
 styles/bootstrap/mixins/_table-variants.scss  |    24 +
 styles/bootstrap/mixins/_text-truncate.scss   |     8 +
 styles/bootstrap/mixins/_transition.scss      |    26 +
 styles/bootstrap/mixins/_utilities.scss       |    97 +
 styles/bootstrap/mixins/_visually-hidden.scss |    29 +
 styles/bootstrap/utilities/_api.scss          |    47 +
 styles/bootstrap/vendor/_rfs.scss             |   354 +
 styles/dist/styles.css                        | 11160 ++++++++++++++++
 styles/dist/styles.css.map                    |   182 +
 styles/scss/app.scss                          |    20 +
 98 files changed, 23428 insertions(+), 47 deletions(-)
 create mode 100644 package-lock.json
 create mode 100644 package.json
 create mode 100644 styles/bootstrap/_accordion.scss
 create mode 100644 styles/bootstrap/_alert.scss
 create mode 100644 styles/bootstrap/_badge.scss
 create mode 100644 styles/bootstrap/_breadcrumb.scss
 create mode 100644 styles/bootstrap/_button-group.scss
 create mode 100644 styles/bootstrap/_buttons.scss
 create mode 100644 styles/bootstrap/_card.scss
 create mode 100644 styles/bootstrap/_carousel.scss
 create mode 100644 styles/bootstrap/_close.scss
 create mode 100644 styles/bootstrap/_containers.scss
 create mode 100644 styles/bootstrap/_dropdown.scss
 create mode 100644 styles/bootstrap/_forms.scss
 create mode 100644 styles/bootstrap/_functions.scss
 create mode 100644 styles/bootstrap/_grid.scss
 create mode 100644 styles/bootstrap/_helpers.scss
 create mode 100644 styles/bootstrap/_images.scss
 create mode 100644 styles/bootstrap/_list-group.scss
 create mode 100644 styles/bootstrap/_maps.scss
 create mode 100644 styles/bootstrap/_mixins.scss
 create mode 100644 styles/bootstrap/_modal.scss
 create mode 100644 styles/bootstrap/_nav.scss
 create mode 100644 styles/bootstrap/_navbar.scss
 create mode 100644 styles/bootstrap/_offcanvas.scss
 create mode 100644 styles/bootstrap/_pagination.scss
 create mode 100644 styles/bootstrap/_placeholders.scss
 create mode 100644 styles/bootstrap/_popover.scss
 create mode 100644 styles/bootstrap/_progress.scss
 create mode 100644 styles/bootstrap/_reboot.scss
 create mode 100644 styles/bootstrap/_root.scss
 create mode 100644 styles/bootstrap/_spinners.scss
 create mode 100644 styles/bootstrap/_tables.scss
 create mode 100644 styles/bootstrap/_toasts.scss
 create mode 100644 styles/bootstrap/_tooltip.scss
 create mode 100644 styles/bootstrap/_transitions.scss
 create mode 100644 styles/bootstrap/_type.scss
 create mode 100644 styles/bootstrap/_utilities.scss
 create mode 100644 styles/bootstrap/_variables.scss
 create mode 100644 styles/bootstrap/bootstrap-grid.scss
 create mode 100644 styles/bootstrap/bootstrap-reboot.scss
 create mode 100644 styles/bootstrap/bootstrap-utilities.scss
 create mode 100644 styles/bootstrap/bootstrap.scss
 create mode 100644 styles/bootstrap/forms/_floating-labels.scss
 create mode 100644 styles/bootstrap/forms/_form-check.scss
 create mode 100644 styles/bootstrap/forms/_form-control.scss
 create mode 100644 styles/bootstrap/forms/_form-range.scss
 create mode 100644 styles/bootstrap/forms/_form-select.scss
 create mode 100644 styles/bootstrap/forms/_form-text.scss
 create mode 100644 styles/bootstrap/forms/_input-group.scss
 create mode 100644 styles/bootstrap/forms/_labels.scss
 create mode 100644 styles/bootstrap/forms/_validation.scss
 create mode 100644 styles/bootstrap/helpers/_clearfix.scss
 create mode 100644 styles/bootstrap/helpers/_color-bg.scss
 create mode 100644 styles/bootstrap/helpers/_colored-links.scss
 create mode 100644 styles/bootstrap/helpers/_position.scss
 create mode 100644 styles/bootstrap/helpers/_ratio.scss
 create mode 100644 styles/bootstrap/helpers/_stacks.scss
 create mode 100644 styles/bootstrap/helpers/_stretched-link.scss
 create mode 100644 styles/bootstrap/helpers/_text-truncation.scss
 create mode 100644 styles/bootstrap/helpers/_visually-hidden.scss
 create mode 100644 styles/bootstrap/helpers/_vr.scss
 create mode 100644 styles/bootstrap/mixins/_alert.scss
 create mode 100644 styles/bootstrap/mixins/_backdrop.scss
 create mode 100644 styles/bootstrap/mixins/_banner.scss
 create mode 100644 styles/bootstrap/mixins/_border-radius.scss
 create mode 100644 styles/bootstrap/mixins/_box-shadow.scss
 create mode 100644 styles/bootstrap/mixins/_breakpoints.scss
 create mode 100644 styles/bootstrap/mixins/_buttons.scss
 create mode 100644 styles/bootstrap/mixins/_caret.scss
 create mode 100644 styles/bootstrap/mixins/_clearfix.scss
 create mode 100644 styles/bootstrap/mixins/_color-scheme.scss
 create mode 100644 styles/bootstrap/mixins/_container.scss
 create mode 100644 styles/bootstrap/mixins/_deprecate.scss
 create mode 100644 styles/bootstrap/mixins/_forms.scss
 create mode 100644 styles/bootstrap/mixins/_gradients.scss
 create mode 100644 styles/bootstrap/mixins/_grid.scss
 create mode 100644 styles/bootstrap/mixins/_image.scss
 create mode 100644 styles/bootstrap/mixins/_list-group.scss
 create mode 100644 styles/bootstrap/mixins/_lists.scss
 create mode 100644 styles/bootstrap/mixins/_pagination.scss
 create mode 100644 styles/bootstrap/mixins/_reset-text.scss
 create mode 100644 styles/bootstrap/mixins/_resize.scss
 create mode 100644 styles/bootstrap/mixins/_table-variants.scss
 create mode 100644 styles/bootstrap/mixins/_text-truncate.scss
 create mode 100644 styles/bootstrap/mixins/_transition.scss
 create mode 100644 styles/bootstrap/mixins/_utilities.scss
 create mode 100644 styles/bootstrap/mixins/_visually-hidden.scss
 create mode 100644 styles/bootstrap/utilities/_api.scss
 create mode 100644 styles/bootstrap/vendor/_rfs.scss
 create mode 100644 styles/dist/styles.css
 create mode 100644 styles/dist/styles.css.map
 create mode 100644 styles/scss/app.scss

diff --git a/.gitignore b/.gitignore
index 242d3d1..60135da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 config/bddConnect.php
-/.idea
\ No newline at end of file
+/.idea
+/node_modules
\ No newline at end of file
diff --git a/index.php b/index.php
index 2429645..95f13b8 100644
--- a/index.php
+++ b/index.php
@@ -4,10 +4,6 @@ require_once('core/_inc.php');
 //Not currently used
 /* require_once('config/bddConnect.php'); */
 
-require_once('pages/header.php');
-require_once('pages/navbar.php');
-require_once('pages/voice.php');
-
 if(!empty($_GET['page'])){
     switch ($_GET["page"]) {
         case 'accueil':
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..e792639
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2585 @@
+{
+  "name": "Cristo",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "Cristo",
+      "version": "1.0.0",
+      "devDependencies": {
+        "clean-css-cli": "^5.6.2",
+        "node-sass": "^8.0.0"
+      }
+    },
+    "node_modules/@babel/code-frame": {
+      "version": "7.21.4",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
+      "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/highlight": "^7.18.6"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/helper-validator-identifier": {
+      "version": "7.19.1",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
+      "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+      "dev": true,
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight": {
+      "version": "7.18.6",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
+      "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+      "dev": true,
+      "dependencies": {
+        "@babel/helper-validator-identifier": "^7.18.6",
+        "chalk": "^2.0.0",
+        "js-tokens": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^1.9.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "1.1.3"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+      "dev": true
+    },
+    "node_modules/@babel/highlight/node_modules/has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@babel/highlight/node_modules/supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/@gar/promisify": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+      "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+      "dev": true
+    },
+    "node_modules/@npmcli/fs": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz",
+      "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==",
+      "dev": true,
+      "dependencies": {
+        "@gar/promisify": "^1.1.3",
+        "semver": "^7.3.5"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@npmcli/move-file": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz",
+      "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==",
+      "deprecated": "This functionality has been moved to @npmcli/fs",
+      "dev": true,
+      "dependencies": {
+        "mkdirp": "^1.0.4",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/@tootallnate/once": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
+      "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+      "dev": true,
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/@types/minimist": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+      "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+      "dev": true
+    },
+    "node_modules/@types/normalize-package-data": {
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+      "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+      "dev": true
+    },
+    "node_modules/abbrev": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+      "dev": true
+    },
+    "node_modules/agent-base": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+      "dev": true,
+      "dependencies": {
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6.0.0"
+      }
+    },
+    "node_modules/agentkeepalive": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz",
+      "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==",
+      "dev": true,
+      "dependencies": {
+        "debug": "^4.1.0",
+        "depd": "^2.0.0",
+        "humanize-ms": "^1.2.1"
+      },
+      "engines": {
+        "node": ">= 8.0.0"
+      }
+    },
+    "node_modules/aggregate-error": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+      "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+      "dev": true,
+      "dependencies": {
+        "clean-stack": "^2.0.0",
+        "indent-string": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dev": true,
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/aproba": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+      "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+      "dev": true
+    },
+    "node_modules/are-we-there-yet": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz",
+      "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==",
+      "dev": true,
+      "dependencies": {
+        "delegates": "^1.0.0",
+        "readable-stream": "^3.6.0"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/arrify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+      "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/async-foreach": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+      "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==",
+      "dev": true,
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+      "dev": true
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dev": true,
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/cacache": {
+      "version": "16.1.3",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz",
+      "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==",
+      "dev": true,
+      "dependencies": {
+        "@npmcli/fs": "^2.1.0",
+        "@npmcli/move-file": "^2.0.0",
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.1.0",
+        "glob": "^8.0.1",
+        "infer-owner": "^1.0.4",
+        "lru-cache": "^7.7.1",
+        "minipass": "^3.1.6",
+        "minipass-collect": "^1.0.2",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.4",
+        "mkdirp": "^1.0.4",
+        "p-map": "^4.0.0",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^3.0.2",
+        "ssri": "^9.0.0",
+        "tar": "^6.1.11",
+        "unique-filename": "^2.0.0"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/cacache/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/cacache/node_modules/glob": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+      "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^5.0.1",
+        "once": "^1.3.0"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/cacache/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/camelcase-keys": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+      "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+      "dev": true,
+      "dependencies": {
+        "camelcase": "^5.3.1",
+        "map-obj": "^4.0.0",
+        "quick-lru": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+      "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://paulmillr.com/funding/"
+        }
+      ],
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/chownr": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+      "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/clean-css": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
+      "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
+      "dev": true,
+      "dependencies": {
+        "source-map": "~0.6.0"
+      },
+      "engines": {
+        "node": ">= 10.0"
+      }
+    },
+    "node_modules/clean-css-cli": {
+      "version": "5.6.2",
+      "resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.6.2.tgz",
+      "integrity": "sha512-GDQkr6zVqHJhO3yWTy3sA22sMCT6iUqaJuBdqZMW6oI25MtiJ2iZXDmWzErpjoRotsB+TYPTpuZSNSgaC1n4lA==",
+      "dev": true,
+      "dependencies": {
+        "chokidar": "^3.5.2",
+        "clean-css": "^5.3.2",
+        "commander": "7.x",
+        "glob": "^7.1.6"
+      },
+      "bin": {
+        "cleancss": "bin/cleancss"
+      },
+      "engines": {
+        "node": ">= 10.12.0"
+      }
+    },
+    "node_modules/clean-stack": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+      "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.1",
+        "wrap-ansi": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
+    "node_modules/color-support": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+      "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+      "dev": true,
+      "bin": {
+        "color-support": "bin.js"
+      }
+    },
+    "node_modules/commander": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+      "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+      "dev": true
+    },
+    "node_modules/console-control-strings": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+      "dev": true
+    },
+    "node_modules/core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+      "dev": true
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/decamelize-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+      "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
+      "dev": true,
+      "dependencies": {
+        "decamelize": "^1.1.0",
+        "map-obj": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/decamelize-keys/node_modules/map-obj": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+      "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/delegates": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+      "dev": true
+    },
+    "node_modules/depd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
+    "node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "node_modules/encoding": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+      "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "iconv-lite": "^0.6.2"
+      }
+    },
+    "node_modules/env-paths": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+      "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/err-code": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+      "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+      "dev": true
+    },
+    "node_modules/error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "dependencies": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "node_modules/escalade": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+      "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.0"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dev": true,
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+      "dev": true,
+      "dependencies": {
+        "locate-path": "^5.0.0",
+        "path-exists": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/fs-minipass": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+      "dev": true
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+      "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
+    },
+    "node_modules/gauge": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
+      "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
+      "dev": true,
+      "dependencies": {
+        "aproba": "^1.0.3 || ^2.0.0",
+        "color-support": "^1.1.3",
+        "console-control-strings": "^1.1.0",
+        "has-unicode": "^2.0.1",
+        "signal-exit": "^3.0.7",
+        "string-width": "^4.2.3",
+        "strip-ansi": "^6.0.1",
+        "wide-align": "^1.1.5"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/gaze": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+      "dev": true,
+      "dependencies": {
+        "globule": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 4.0.0"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true,
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+      "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/globule": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
+      "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
+      "dev": true,
+      "dependencies": {
+        "glob": "~7.1.1",
+        "lodash": "^4.17.21",
+        "minimatch": "~3.0.2"
+      },
+      "engines": {
+        "node": ">= 0.10"
+      }
+    },
+    "node_modules/globule/node_modules/glob": {
+      "version": "7.1.7",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+      "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/globule/node_modules/minimatch": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+      "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+      "dev": true
+    },
+    "node_modules/hard-rejection": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+      "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
+      "dependencies": {
+        "function-bind": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/has-unicode": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+      "dev": true
+    },
+    "node_modules/hosted-git-info": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+      "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/hosted-git-info/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/http-cache-semantics": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+      "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+      "dev": true
+    },
+    "node_modules/http-proxy-agent": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
+      "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+      "dev": true,
+      "dependencies": {
+        "@tootallnate/once": "2",
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/https-proxy-agent": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/humanize-ms": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+      "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+      "dev": true,
+      "dependencies": {
+        "ms": "^2.0.0"
+      }
+    },
+    "node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dev": true,
+      "optional": true,
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.8.19"
+      }
+    },
+    "node_modules/indent-string": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+      "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+      "dev": true
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dev": true,
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "node_modules/ip": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
+      "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
+      "dev": true
+    },
+    "node_modules/is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+      "dev": true
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dev": true,
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-core-module": {
+      "version": "2.12.0",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
+      "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
+      "dev": true,
+      "dependencies": {
+        "has": "^1.0.3"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dev": true,
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-lambda": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+      "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+      "dev": true
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+      "dev": true
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/js-base64": {
+      "version": "2.6.4",
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+      "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
+      "dev": true
+    },
+    "node_modules/js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true
+    },
+    "node_modules/json-parse-even-better-errors": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+      "dev": true
+    },
+    "node_modules/kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/lines-and-columns": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+      "dev": true
+    },
+    "node_modules/locate-path": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^4.1.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+      "dev": true
+    },
+    "node_modules/lru-cache": {
+      "version": "7.18.3",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/make-fetch-happen": {
+      "version": "10.2.1",
+      "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz",
+      "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==",
+      "dev": true,
+      "dependencies": {
+        "agentkeepalive": "^4.2.1",
+        "cacache": "^16.1.0",
+        "http-cache-semantics": "^4.1.0",
+        "http-proxy-agent": "^5.0.0",
+        "https-proxy-agent": "^5.0.0",
+        "is-lambda": "^1.0.1",
+        "lru-cache": "^7.7.1",
+        "minipass": "^3.1.6",
+        "minipass-collect": "^1.0.2",
+        "minipass-fetch": "^2.0.3",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.4",
+        "negotiator": "^0.6.3",
+        "promise-retry": "^2.0.1",
+        "socks-proxy-agent": "^7.0.0",
+        "ssri": "^9.0.0"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/map-obj": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+      "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/meow": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+      "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+      "dev": true,
+      "dependencies": {
+        "@types/minimist": "^1.2.0",
+        "camelcase-keys": "^6.2.2",
+        "decamelize": "^1.2.0",
+        "decamelize-keys": "^1.1.0",
+        "hard-rejection": "^2.1.0",
+        "minimist-options": "4.1.0",
+        "normalize-package-data": "^3.0.0",
+        "read-pkg-up": "^7.0.1",
+        "redent": "^3.0.0",
+        "trim-newlines": "^3.0.0",
+        "type-fest": "^0.18.0",
+        "yargs-parser": "^20.2.3"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/min-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+      "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/minimist-options": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+      "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+      "dev": true,
+      "dependencies": {
+        "arrify": "^1.0.1",
+        "is-plain-obj": "^1.1.0",
+        "kind-of": "^6.0.3"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/minipass": {
+      "version": "3.3.6",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+      "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-collect": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+      "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/minipass-fetch": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz",
+      "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.1.6",
+        "minipass-sized": "^1.0.3",
+        "minizlib": "^2.1.2"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      },
+      "optionalDependencies": {
+        "encoding": "^0.1.13"
+      }
+    },
+    "node_modules/minipass-flush": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+      "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/minipass-pipeline": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+      "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minipass-sized": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+      "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/minizlib": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+      "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.0.0",
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/mkdirp": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+      "dev": true,
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/nan": {
+      "version": "2.17.0",
+      "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
+      "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
+      "dev": true
+    },
+    "node_modules/negotiator": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/node-gyp": {
+      "version": "8.4.1",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
+      "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
+      "dev": true,
+      "dependencies": {
+        "env-paths": "^2.2.0",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.2.6",
+        "make-fetch-happen": "^9.1.0",
+        "nopt": "^5.0.0",
+        "npmlog": "^6.0.0",
+        "rimraf": "^3.0.2",
+        "semver": "^7.3.5",
+        "tar": "^6.1.2",
+        "which": "^2.0.2"
+      },
+      "bin": {
+        "node-gyp": "bin/node-gyp.js"
+      },
+      "engines": {
+        "node": ">= 10.12.0"
+      }
+    },
+    "node_modules/node-gyp/node_modules/@npmcli/fs": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+      "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
+      "dev": true,
+      "dependencies": {
+        "@gar/promisify": "^1.0.1",
+        "semver": "^7.3.5"
+      }
+    },
+    "node_modules/node-gyp/node_modules/@npmcli/move-file": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+      "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
+      "deprecated": "This functionality has been moved to @npmcli/fs",
+      "dev": true,
+      "dependencies": {
+        "mkdirp": "^1.0.4",
+        "rimraf": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/node-gyp/node_modules/@tootallnate/once": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+      "dev": true,
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/node-gyp/node_modules/cacache": {
+      "version": "15.3.0",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+      "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
+      "dev": true,
+      "dependencies": {
+        "@npmcli/fs": "^1.0.0",
+        "@npmcli/move-file": "^1.0.1",
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "glob": "^7.1.4",
+        "infer-owner": "^1.0.4",
+        "lru-cache": "^6.0.0",
+        "minipass": "^3.1.1",
+        "minipass-collect": "^1.0.2",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.2",
+        "mkdirp": "^1.0.3",
+        "p-map": "^4.0.0",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^3.0.2",
+        "ssri": "^8.0.1",
+        "tar": "^6.0.2",
+        "unique-filename": "^1.1.1"
+      },
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/node-gyp/node_modules/http-proxy-agent": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
+      "dev": true,
+      "dependencies": {
+        "@tootallnate/once": "1",
+        "agent-base": "6",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/node-gyp/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/node-gyp/node_modules/make-fetch-happen": {
+      "version": "9.1.0",
+      "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+      "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
+      "dev": true,
+      "dependencies": {
+        "agentkeepalive": "^4.1.3",
+        "cacache": "^15.2.0",
+        "http-cache-semantics": "^4.1.0",
+        "http-proxy-agent": "^4.0.1",
+        "https-proxy-agent": "^5.0.0",
+        "is-lambda": "^1.0.1",
+        "lru-cache": "^6.0.0",
+        "minipass": "^3.1.3",
+        "minipass-collect": "^1.0.2",
+        "minipass-fetch": "^1.3.2",
+        "minipass-flush": "^1.0.5",
+        "minipass-pipeline": "^1.2.4",
+        "negotiator": "^0.6.2",
+        "promise-retry": "^2.0.1",
+        "socks-proxy-agent": "^6.0.0",
+        "ssri": "^8.0.0"
+      },
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/node-gyp/node_modules/minipass-fetch": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+      "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.1.0",
+        "minipass-sized": "^1.0.3",
+        "minizlib": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "optionalDependencies": {
+        "encoding": "^0.1.12"
+      }
+    },
+    "node_modules/node-gyp/node_modules/socks-proxy-agent": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+      "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "^6.0.2",
+        "debug": "^4.3.3",
+        "socks": "^2.6.2"
+      },
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/node-gyp/node_modules/ssri": {
+      "version": "8.0.1",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+      "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.1.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/node-gyp/node_modules/unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "dev": true,
+      "dependencies": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "node_modules/node-gyp/node_modules/unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+      "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+      "dev": true,
+      "dependencies": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "node_modules/node-sass": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-8.0.0.tgz",
+      "integrity": "sha512-jPzqCF2/e6JXw6r3VxfIqYc8tKQdkj5Z/BDATYyG6FL6b/LuYBNFGFVhus0mthcWifHm/JzBpKAd+3eXsWeK/A==",
+      "dev": true,
+      "hasInstallScript": true,
+      "dependencies": {
+        "async-foreach": "^0.1.3",
+        "chalk": "^4.1.2",
+        "cross-spawn": "^7.0.3",
+        "gaze": "^1.0.0",
+        "get-stdin": "^4.0.1",
+        "glob": "^7.0.3",
+        "lodash": "^4.17.15",
+        "make-fetch-happen": "^10.0.4",
+        "meow": "^9.0.0",
+        "nan": "^2.17.0",
+        "node-gyp": "^8.4.1",
+        "sass-graph": "^4.0.1",
+        "stdout-stream": "^1.4.0",
+        "true-case-path": "^2.2.1"
+      },
+      "bin": {
+        "node-sass": "bin/node-sass"
+      },
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/nopt": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+      "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+      "dev": true,
+      "dependencies": {
+        "abbrev": "1"
+      },
+      "bin": {
+        "nopt": "bin/nopt.js"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/normalize-package-data": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+      "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+      "dev": true,
+      "dependencies": {
+        "hosted-git-info": "^4.0.1",
+        "is-core-module": "^2.5.0",
+        "semver": "^7.3.4",
+        "validate-npm-package-license": "^3.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/npmlog": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
+      "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
+      "dev": true,
+      "dependencies": {
+        "are-we-there-yet": "^3.0.0",
+        "console-control-strings": "^1.1.0",
+        "gauge": "^4.0.3",
+        "set-blocking": "^2.0.0"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dev": true,
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "dependencies": {
+        "p-try": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-locate": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^2.2.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/p-map": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+      "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+      "dev": true,
+      "dependencies": {
+        "aggregate-error": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/parse-json": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+      "dev": true,
+      "dependencies": {
+        "@babel/code-frame": "^7.0.0",
+        "error-ex": "^1.3.1",
+        "json-parse-even-better-errors": "^2.3.0",
+        "lines-and-columns": "^1.1.6"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+      "dev": true
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "dev": true
+    },
+    "node_modules/promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+      "dev": true
+    },
+    "node_modules/promise-retry": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+      "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+      "dev": true,
+      "dependencies": {
+        "err-code": "^2.0.2",
+        "retry": "^0.12.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/quick-lru": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+      "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/read-pkg": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+      "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+      "dev": true,
+      "dependencies": {
+        "@types/normalize-package-data": "^2.4.0",
+        "normalize-package-data": "^2.5.0",
+        "parse-json": "^5.0.0",
+        "type-fest": "^0.6.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/read-pkg-up": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+      "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+      "dev": true,
+      "dependencies": {
+        "find-up": "^4.1.0",
+        "read-pkg": "^5.2.0",
+        "type-fest": "^0.8.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/read-pkg-up/node_modules/type-fest": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+      "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/read-pkg/node_modules/hosted-git-info": {
+      "version": "2.8.9",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+      "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+      "dev": true
+    },
+    "node_modules/read-pkg/node_modules/normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "dependencies": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "node_modules/read-pkg/node_modules/semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "dev": true,
+      "bin": {
+        "semver": "bin/semver"
+      }
+    },
+    "node_modules/read-pkg/node_modules/type-fest": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+      "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/readable-stream": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+      "dev": true,
+      "dependencies": {
+        "inherits": "^2.0.3",
+        "string_decoder": "^1.1.1",
+        "util-deprecate": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dev": true,
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/redent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+      "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+      "dev": true,
+      "dependencies": {
+        "indent-string": "^4.0.0",
+        "strip-indent": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/resolve": {
+      "version": "1.22.3",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.3.tgz",
+      "integrity": "sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==",
+      "dev": true,
+      "dependencies": {
+        "is-core-module": "^2.12.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/retry": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+      "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+      "dev": true,
+      "engines": {
+        "node": ">= 4"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true,
+      "optional": true
+    },
+    "node_modules/sass-graph": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-4.0.1.tgz",
+      "integrity": "sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA==",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.0.0",
+        "lodash": "^4.17.11",
+        "scss-tokenizer": "^0.4.3",
+        "yargs": "^17.2.1"
+      },
+      "bin": {
+        "sassgraph": "bin/sassgraph"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/scss-tokenizer": {
+      "version": "0.4.3",
+      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz",
+      "integrity": "sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw==",
+      "dev": true,
+      "dependencies": {
+        "js-base64": "^2.4.9",
+        "source-map": "^0.7.3"
+      }
+    },
+    "node_modules/scss-tokenizer/node_modules/source-map": {
+      "version": "0.7.4",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+      "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+      "dev": true,
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.4.0",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz",
+      "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^6.0.0"
+      },
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/semver/node_modules/lru-cache": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+      "dev": true,
+      "dependencies": {
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+      "dev": true
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/signal-exit": {
+      "version": "3.0.7",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+      "dev": true
+    },
+    "node_modules/smart-buffer": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+      "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 6.0.0",
+        "npm": ">= 3.0.0"
+      }
+    },
+    "node_modules/socks": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
+      "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+      "dev": true,
+      "dependencies": {
+        "ip": "^2.0.0",
+        "smart-buffer": "^4.2.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0",
+        "npm": ">= 3.0.0"
+      }
+    },
+    "node_modules/socks-proxy-agent": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz",
+      "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==",
+      "dev": true,
+      "dependencies": {
+        "agent-base": "^6.0.2",
+        "debug": "^4.3.3",
+        "socks": "^2.6.2"
+      },
+      "engines": {
+        "node": ">= 10"
+      }
+    },
+    "node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/spdx-correct": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+      "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+      "dev": true,
+      "dependencies": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-exceptions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+      "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+      "dev": true
+    },
+    "node_modules/spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+      "dev": true,
+      "dependencies": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "node_modules/spdx-license-ids": {
+      "version": "3.0.13",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
+      "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
+      "dev": true
+    },
+    "node_modules/ssri": {
+      "version": "9.0.1",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz",
+      "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==",
+      "dev": true,
+      "dependencies": {
+        "minipass": "^3.1.1"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/stdout-stream": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+      "dev": true,
+      "dependencies": {
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "node_modules/stdout-stream/node_modules/readable-stream": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+      "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+      "dev": true,
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "node_modules/stdout-stream/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "dev": true
+    },
+    "node_modules/stdout-stream/node_modules/string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dev": true,
+      "dependencies": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "node_modules/string_decoder": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+      "dev": true,
+      "dependencies": {
+        "safe-buffer": "~5.2.0"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-indent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+      "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+      "dev": true,
+      "dependencies": {
+        "min-indent": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/tar": {
+      "version": "6.1.13",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz",
+      "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==",
+      "dev": true,
+      "dependencies": {
+        "chownr": "^2.0.0",
+        "fs-minipass": "^2.0.0",
+        "minipass": "^4.0.0",
+        "minizlib": "^2.1.1",
+        "mkdirp": "^1.0.3",
+        "yallist": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/tar/node_modules/minipass": {
+      "version": "4.2.8",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+      "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dev": true,
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/trim-newlines": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+      "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/true-case-path": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
+      "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==",
+      "dev": true
+    },
+    "node_modules/type-fest": {
+      "version": "0.18.1",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+      "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/unique-filename": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz",
+      "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==",
+      "dev": true,
+      "dependencies": {
+        "unique-slug": "^3.0.0"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/unique-slug": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz",
+      "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==",
+      "dev": true,
+      "dependencies": {
+        "imurmurhash": "^0.1.4"
+      },
+      "engines": {
+        "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+      }
+    },
+    "node_modules/util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+      "dev": true
+    },
+    "node_modules/validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "dependencies": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/wide-align": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+      "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^1.0.2 || 2 || 3 || 4"
+      }
+    },
+    "node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "dev": true
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yallist": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+      "dev": true
+    },
+    "node_modules/yargs": {
+      "version": "17.7.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
+      "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+      "dev": true,
+      "dependencies": {
+        "cliui": "^8.0.1",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.3",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^21.1.1"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "20.2.9",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+      "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs/node_modules/yargs-parser": {
+      "version": "21.1.1",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+      "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      }
+    }
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..d9e9a2b
--- /dev/null
+++ b/package.json
@@ -0,0 +1,11 @@
+{
+  "name": "Cristo",
+  "scripts": {
+    "build": "node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 styles/scss/app.scss styles/dist/styles.css"
+  },
+  "version": "1.0.0",
+  "devDependencies": {
+    "clean-css-cli": "^5.6.2",
+    "node-sass": "^8.0.0"
+  }
+}
diff --git a/pages/accueil.php b/pages/accueil.php
index ab68c60..51888d4 100644
--- a/pages/accueil.php
+++ b/pages/accueil.php
@@ -1,25 +1,17 @@
-
 <!DOCTYPE html>
 <html lang="fr">
-    <head>
-        <meta charset="utf-8">
-        <title> Cristo </title>
-        <link rel="stylesheet" href="styles/font-awesome/css/font-awesome.min.css">
-    </head>
-    <body> 
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title> Cristo </title>
+    <link rel="stylesheet" href="/styles/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="/styles/dist/styles.css">
+</head>
+<body>
     <header>
-        <nav>
-            <?php
-       ?>
-        </nav>
+        <?php include "navbar.php"; ?>
     </header>
-    <main>
-      
-    </main>
-    <?php
-    ?>
-</body>
-</html>
 
-
-<?php
\ No newline at end of file
+    <?php include "footer.php"; ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/pages/footer.php b/pages/footer.php
index 24923e2..5489347 100644
--- a/pages/footer.php
+++ b/pages/footer.php
@@ -1,6 +1,8 @@
 <script type="text/javascript" src="js/app.js"></script>
 <script type="text/javascript" src="js/voice.js"></script>
-<script src="https://kit.fontawesome.com/731cc9a451.js" crossorigin="anonymous"></script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"
+        integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4"
+        crossorigin="anonymous"></script>
 <footer>
-    © Cristo 2023 
-    </footer>
\ No newline at end of file
+    © Cristo 2023
+</footer>
\ No newline at end of file
diff --git a/pages/navbar.php b/pages/navbar.php
index 9851cca..f352f5f 100644
--- a/pages/navbar.php
+++ b/pages/navbar.php
@@ -1,20 +1,19 @@
+<nav class="navbar">
+    <div class="d-flex align-items-center gap-3">
+        <a class="logo" href="#Acceuil" class="link">Crist'o</a>
+        <a href="#recette" class="link">Recettes de cuisine</a>
+        <a href="#special" class="link">Spéciales pâques</a>
+    </div>
 
-    <nav class="topnav">
-         <div>
-             <a class="active" href="#Acceuil">Acceuil</a>
-             <a href="#recette">Recettes de cuisine</a>
-             <a href="#special">Spéciales pâques</a>
-         </div>
-
-        <!-- barre de recherche -->
-        <div class="search-container">
-            <form action="/action_page.php">
-                <input type="text" placeholder="Chercher quelque chose" name="search">
-                <button type="submit"><i class="fa fa-search"></i></button>
-            </form>
-        </div>
-        <div>
-            <a href="#connexion">Connexion</a>
-            <a href="#inscription">Inscription</a>
-        </div>
-    </nav>
\ No newline at end of file
+    <!-- barre de recherche -->
+    <div class="search-container">
+        <form action="/action_page.php" method="get" class="d-flex gap-3">
+            <input class="form-control rounded-pill" type="text" placeholder="Chercher quelque chose" name="search">
+            <button class="btn btn-primary rounded-pill" type="submit"><i class="fa fa-search"></i></button>
+        </form>
+    </div>
+    <div>
+        <a href="#connexion">Connexion</a>
+        <a href="#inscription">Inscription</a>
+    </div>
+</nav>
\ No newline at end of file
diff --git a/styles/bootstrap/_accordion.scss b/styles/bootstrap/_accordion.scss
new file mode 100644
index 0000000..f09601b
--- /dev/null
+++ b/styles/bootstrap/_accordion.scss
@@ -0,0 +1,149 @@
+//
+// Base styles
+//
+
+.accordion {
+  // scss-docs-start accordion-css-vars
+  --#{$prefix}accordion-color: #{$accordion-color};
+  --#{$prefix}accordion-bg: #{$accordion-bg};
+  --#{$prefix}accordion-transition: #{$accordion-transition};
+  --#{$prefix}accordion-border-color: #{$accordion-border-color};
+  --#{$prefix}accordion-border-width: #{$accordion-border-width};
+  --#{$prefix}accordion-border-radius: #{$accordion-border-radius};
+  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};
+  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};
+  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};
+  --#{$prefix}accordion-btn-color: #{$accordion-button-color};
+  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};
+  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};
+  --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};
+  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
+  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
+  --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
+  --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
+  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
+  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
+  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
+  --#{$prefix}accordion-active-color: #{$accordion-button-active-color};
+  --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};
+  // scss-docs-end accordion-css-vars
+}
+
+.accordion-button {
+  position: relative;
+  display: flex;
+  align-items: center;
+  width: 100%;
+  padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);
+  @include font-size($font-size-base);
+  color: var(--#{$prefix}accordion-btn-color);
+  text-align: left; // Reset button style
+  background-color: var(--#{$prefix}accordion-btn-bg);
+  border: 0;
+  @include border-radius(0);
+  overflow-anchor: none;
+  @include transition(var(--#{$prefix}accordion-transition));
+
+  &:not(.collapsed) {
+    color: var(--#{$prefix}accordion-active-color);
+    background-color: var(--#{$prefix}accordion-active-bg);
+    box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list
+
+    &::after {
+      background-image: var(--#{$prefix}accordion-btn-active-icon);
+      transform: var(--#{$prefix}accordion-btn-icon-transform);
+    }
+  }
+
+  // Accordion icon
+  &::after {
+    flex-shrink: 0;
+    width: var(--#{$prefix}accordion-btn-icon-width);
+    height: var(--#{$prefix}accordion-btn-icon-width);
+    margin-left: auto;
+    content: "";
+    background-image: var(--#{$prefix}accordion-btn-icon);
+    background-repeat: no-repeat;
+    background-size: var(--#{$prefix}accordion-btn-icon-width);
+    @include transition(var(--#{$prefix}accordion-btn-icon-transition));
+  }
+
+  &:hover {
+    z-index: 2;
+  }
+
+  &:focus {
+    z-index: 3;
+    border-color: var(--#{$prefix}accordion-btn-focus-border-color);
+    outline: 0;
+    box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
+  }
+}
+
+.accordion-header {
+  margin-bottom: 0;
+}
+
+.accordion-item {
+  color: var(--#{$prefix}accordion-color);
+  background-color: var(--#{$prefix}accordion-bg);
+  border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);
+
+  &:first-of-type {
+    @include border-top-radius(var(--#{$prefix}accordion-border-radius));
+
+    .accordion-button {
+      @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));
+    }
+  }
+
+  &:not(:first-of-type) {
+    border-top: 0;
+  }
+
+  // Only set a border-radius on the last item if the accordion is collapsed
+  &:last-of-type {
+    @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
+
+    .accordion-button {
+      &.collapsed {
+        @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));
+      }
+    }
+
+    .accordion-collapse {
+      @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));
+    }
+  }
+}
+
+.accordion-body {
+  padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);
+}
+
+
+// Flush accordion items
+//
+// Remove borders and border-radius to keep accordion items edge-to-edge.
+
+.accordion-flush {
+  .accordion-collapse {
+    border-width: 0;
+  }
+
+  .accordion-item {
+    border-right: 0;
+    border-left: 0;
+    @include border-radius(0);
+
+    &:first-child { border-top: 0; }
+    &:last-child { border-bottom: 0; }
+
+    .accordion-button {
+      &,
+      &.collapsed {
+        @include border-radius(0);
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/_alert.scss b/styles/bootstrap/_alert.scss
new file mode 100644
index 0000000..c8bc91b
--- /dev/null
+++ b/styles/bootstrap/_alert.scss
@@ -0,0 +1,71 @@
+//
+// Base styles
+//
+
+.alert {
+  // scss-docs-start alert-css-vars
+  --#{$prefix}alert-bg: transparent;
+  --#{$prefix}alert-padding-x: #{$alert-padding-x};
+  --#{$prefix}alert-padding-y: #{$alert-padding-y};
+  --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
+  --#{$prefix}alert-color: inherit;
+  --#{$prefix}alert-border-color: transparent;
+  --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
+  --#{$prefix}alert-border-radius: #{$alert-border-radius};
+  // scss-docs-end alert-css-vars
+
+  position: relative;
+  padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);
+  margin-bottom: var(--#{$prefix}alert-margin-bottom);
+  color: var(--#{$prefix}alert-color);
+  background-color: var(--#{$prefix}alert-bg);
+  border: var(--#{$prefix}alert-border);
+  @include border-radius(var(--#{$prefix}alert-border-radius));
+}
+
+// Headings for larger alerts
+.alert-heading {
+  // Specified to prevent conflicts of changing $headings-color
+  color: inherit;
+}
+
+// Provide class for links that match alerts
+.alert-link {
+  font-weight: $alert-link-font-weight;
+}
+
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissible {
+  padding-right: $alert-dismissible-padding-r;
+
+  // Adjust close link position
+  .btn-close {
+    position: absolute;
+    top: 0;
+    right: 0;
+    z-index: $stretched-link-z-index + 1;
+    padding: $alert-padding-y * 1.25 $alert-padding-x;
+  }
+}
+
+
+// scss-docs-start alert-modifiers
+// Generate contextual modifier classes for colorizing the alert.
+
+@each $state, $value in $theme-colors {
+  $alert-background: shift-color($value, $alert-bg-scale);
+  $alert-border: shift-color($value, $alert-border-scale);
+  $alert-color: shift-color($value, $alert-color-scale);
+
+  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
+    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
+  }
+  .alert-#{$state} {
+    @include alert-variant($alert-background, $alert-border, $alert-color);
+  }
+}
+// scss-docs-end alert-modifiers
diff --git a/styles/bootstrap/_badge.scss b/styles/bootstrap/_badge.scss
new file mode 100644
index 0000000..cc3d269
--- /dev/null
+++ b/styles/bootstrap/_badge.scss
@@ -0,0 +1,38 @@
+// Base class
+//
+// Requires one of the contextual, color modifier classes for `color` and
+// `background-color`.
+
+.badge {
+  // scss-docs-start badge-css-vars
+  --#{$prefix}badge-padding-x: #{$badge-padding-x};
+  --#{$prefix}badge-padding-y: #{$badge-padding-y};
+  @include rfs($badge-font-size, --#{$prefix}badge-font-size);
+  --#{$prefix}badge-font-weight: #{$badge-font-weight};
+  --#{$prefix}badge-color: #{$badge-color};
+  --#{$prefix}badge-border-radius: #{$badge-border-radius};
+  // scss-docs-end badge-css-vars
+
+  display: inline-block;
+  padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);
+  @include font-size(var(--#{$prefix}badge-font-size));
+  font-weight: var(--#{$prefix}badge-font-weight);
+  line-height: 1;
+  color: var(--#{$prefix}badge-color);
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  @include border-radius(var(--#{$prefix}badge-border-radius));
+  @include gradient-bg();
+
+  // Empty badges collapse automatically
+  &:empty {
+    display: none;
+  }
+}
+
+// Quick fix for badges in buttons
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
diff --git a/styles/bootstrap/_breadcrumb.scss b/styles/bootstrap/_breadcrumb.scss
new file mode 100644
index 0000000..b8252ff
--- /dev/null
+++ b/styles/bootstrap/_breadcrumb.scss
@@ -0,0 +1,40 @@
+.breadcrumb {
+  // scss-docs-start breadcrumb-css-vars
+  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};
+  --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};
+  --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
+  @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);
+  --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};
+  --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};
+  --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};
+  --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
+  --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};
+  // scss-docs-end breadcrumb-css-vars
+
+  display: flex;
+  flex-wrap: wrap;
+  padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);
+  margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);
+  @include font-size(var(--#{$prefix}breadcrumb-font-size));
+  list-style: none;
+  background-color: var(--#{$prefix}breadcrumb-bg);
+  @include border-radius(var(--#{$prefix}breadcrumb-border-radius));
+}
+
+.breadcrumb-item {
+  // The separator between breadcrumbs (by default, a forward-slash: "/")
+  + .breadcrumb-item {
+    padding-left: var(--#{$prefix}breadcrumb-item-padding-x);
+
+    &::before {
+      float: left; // Suppress inline spacings and underlining of the separator
+      padding-right: var(--#{$prefix}breadcrumb-item-padding-x);
+      color: var(--#{$prefix}breadcrumb-divider-color);
+      content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
+    }
+  }
+
+  &.active {
+    color: var(--#{$prefix}breadcrumb-item-active-color);
+  }
+}
diff --git a/styles/bootstrap/_button-group.scss b/styles/bootstrap/_button-group.scss
new file mode 100644
index 0000000..79b100c
--- /dev/null
+++ b/styles/bootstrap/_button-group.scss
@@ -0,0 +1,142 @@
+// Make the div behave like a button
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-flex;
+  vertical-align: middle; // match .btn alignment given font-size hack above
+
+  > .btn {
+    position: relative;
+    flex: 1 1 auto;
+  }
+
+  // Bring the hover, focused, and "active" buttons to the front to overlay
+  // the borders properly
+  > .btn-check:checked + .btn,
+  > .btn-check:focus + .btn,
+  > .btn:hover,
+  > .btn:focus,
+  > .btn:active,
+  > .btn.active {
+    z-index: 1;
+  }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+
+  .input-group {
+    width: auto;
+  }
+}
+
+.btn-group {
+  @include border-radius($btn-border-radius);
+
+  // Prevent double borders when buttons are next to each other
+  > :not(.btn-check:first-child) + .btn,
+  > .btn-group:not(:first-child) {
+    margin-left: -$btn-border-width;
+  }
+
+  // Reset rounded corners
+  > .btn:not(:last-child):not(.dropdown-toggle),
+  > .btn.dropdown-toggle-split:first-child,
+  > .btn-group:not(:last-child) > .btn {
+    @include border-end-radius(0);
+  }
+
+  // The left radius should be 0 if the button is:
+  // - the "third or more" child
+  // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
+  // - part of a btn-group which isn't the first child
+  > .btn:nth-child(n + 3),
+  > :not(.btn-check) + .btn,
+  > .btn-group:not(:first-child) > .btn {
+    @include border-start-radius(0);
+  }
+}
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.btn-group-sm > .btn { @extend .btn-sm; }
+.btn-group-lg > .btn { @extend .btn-lg; }
+
+
+//
+// Split button dropdowns
+//
+
+.dropdown-toggle-split {
+  padding-right: $btn-padding-x * .75;
+  padding-left: $btn-padding-x * .75;
+
+  &::after,
+  .dropup &::after,
+  .dropend &::after {
+    margin-left: 0;
+  }
+
+  .dropstart &::before {
+    margin-right: 0;
+  }
+}
+
+.btn-sm + .dropdown-toggle-split {
+  padding-right: $btn-padding-x-sm * .75;
+  padding-left: $btn-padding-x-sm * .75;
+}
+
+.btn-lg + .dropdown-toggle-split {
+  padding-right: $btn-padding-x-lg * .75;
+  padding-left: $btn-padding-x-lg * .75;
+}
+
+
+// The clickable button for toggling the menu
+// Set the same inset shadow as the :active state
+.btn-group.show .dropdown-toggle {
+  @include box-shadow($btn-active-box-shadow);
+
+  // Show no shadow for `.btn-link` since it has no other button styles.
+  &.btn-link {
+    @include box-shadow(none);
+  }
+}
+
+
+//
+// Vertical button groups
+//
+
+.btn-group-vertical {
+  flex-direction: column;
+  align-items: flex-start;
+  justify-content: center;
+
+  > .btn,
+  > .btn-group {
+    width: 100%;
+  }
+
+  > .btn:not(:first-child),
+  > .btn-group:not(:first-child) {
+    margin-top: -$btn-border-width;
+  }
+
+  // Reset rounded corners
+  > .btn:not(:last-child):not(.dropdown-toggle),
+  > .btn-group:not(:last-child) > .btn {
+    @include border-bottom-radius(0);
+  }
+
+  > .btn ~ .btn,
+  > .btn-group:not(:first-child) > .btn {
+    @include border-top-radius(0);
+  }
+}
diff --git a/styles/bootstrap/_buttons.scss b/styles/bootstrap/_buttons.scss
new file mode 100644
index 0000000..f2c4c13
--- /dev/null
+++ b/styles/bootstrap/_buttons.scss
@@ -0,0 +1,207 @@
+//
+// Base styles
+//
+
+.btn {
+  // scss-docs-start btn-css-vars
+  --#{$prefix}btn-padding-x: #{$btn-padding-x};
+  --#{$prefix}btn-padding-y: #{$btn-padding-y};
+  --#{$prefix}btn-font-family: #{$btn-font-family};
+  @include rfs($btn-font-size, --#{$prefix}btn-font-size);
+  --#{$prefix}btn-font-weight: #{$btn-font-weight};
+  --#{$prefix}btn-line-height: #{$btn-line-height};
+  --#{$prefix}btn-color: #{$body-color};
+  --#{$prefix}btn-bg: transparent;
+  --#{$prefix}btn-border-width: #{$btn-border-width};
+  --#{$prefix}btn-border-color: transparent;
+  --#{$prefix}btn-border-radius: #{$btn-border-radius};
+  --#{$prefix}btn-hover-border-color: transparent;
+  --#{$prefix}btn-box-shadow: #{$btn-box-shadow};
+  --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
+  --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
+  // scss-docs-end btn-css-vars
+
+  display: inline-block;
+  padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);
+  font-family: var(--#{$prefix}btn-font-family);
+  @include font-size(var(--#{$prefix}btn-font-size));
+  font-weight: var(--#{$prefix}btn-font-weight);
+  line-height: var(--#{$prefix}btn-line-height);
+  color: var(--#{$prefix}btn-color);
+  text-align: center;
+  text-decoration: if($link-decoration == none, null, none);
+  white-space: $btn-white-space;
+  vertical-align: middle;
+  cursor: if($enable-button-pointers, pointer, null);
+  user-select: none;
+  border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);
+  @include border-radius(var(--#{$prefix}btn-border-radius));
+  @include gradient-bg(var(--#{$prefix}btn-bg));
+  @include box-shadow(var(--#{$prefix}btn-box-shadow));
+  @include transition($btn-transition);
+
+  &:hover {
+    color: var(--#{$prefix}btn-hover-color);
+    text-decoration: if($link-hover-decoration == underline, none, null);
+    background-color: var(--#{$prefix}btn-hover-bg);
+    border-color: var(--#{$prefix}btn-hover-border-color);
+  }
+
+  .btn-check + &:hover {
+    // override for the checkbox/radio buttons
+    color: var(--#{$prefix}btn-color);
+    background-color: var(--#{$prefix}btn-bg);
+    border-color: var(--#{$prefix}btn-border-color);
+  }
+
+  &:focus-visible {
+    color: var(--#{$prefix}btn-hover-color);
+    @include gradient-bg(var(--#{$prefix}btn-hover-bg));
+    border-color: var(--#{$prefix}btn-hover-border-color);
+    outline: 0;
+    // Avoid using mixin so we can pass custom focus shadow properly
+    @if $enable-shadows {
+      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
+    } @else {
+      box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+    }
+  }
+
+  .btn-check:focus-visible + & {
+    border-color: var(--#{$prefix}btn-hover-border-color);
+    outline: 0;
+    // Avoid using mixin so we can pass custom focus shadow properly
+    @if $enable-shadows {
+      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);
+    } @else {
+      box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+    }
+  }
+
+  .btn-check:checked + &,
+  :not(.btn-check) + &:active,
+  &:first-child:active,
+  &.active,
+  &.show {
+    color: var(--#{$prefix}btn-active-color);
+    background-color: var(--#{$prefix}btn-active-bg);
+    // Remove CSS gradients if they're enabled
+    background-image: if($enable-gradients, none, null);
+    border-color: var(--#{$prefix}btn-active-border-color);
+    @include box-shadow(var(--#{$prefix}btn-active-shadow));
+
+    &:focus-visible {
+      // Avoid using mixin so we can pass custom focus shadow properly
+      @if $enable-shadows {
+        box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
+      } @else {
+        box-shadow: var(--#{$prefix}btn-focus-box-shadow);
+      }
+    }
+  }
+
+  &:disabled,
+  &.disabled,
+  fieldset:disabled & {
+    color: var(--#{$prefix}btn-disabled-color);
+    pointer-events: none;
+    background-color: var(--#{$prefix}btn-disabled-bg);
+    background-image: if($enable-gradients, none, null);
+    border-color: var(--#{$prefix}btn-disabled-border-color);
+    opacity: var(--#{$prefix}btn-disabled-opacity);
+    @include box-shadow(none);
+  }
+}
+
+
+//
+// Alternate buttons
+//
+
+// scss-docs-start btn-variant-loops
+@each $color, $value in $theme-colors {
+  .btn-#{$color} {
+    @if $color == "light" {
+      @include button-variant(
+        $value,
+        $value,
+        $hover-background: shade-color($value, $btn-hover-bg-shade-amount),
+        $hover-border: shade-color($value, $btn-hover-border-shade-amount),
+        $active-background: shade-color($value, $btn-active-bg-shade-amount),
+        $active-border: shade-color($value, $btn-active-border-shade-amount)
+      );
+    } @else if $color == "dark" {
+      @include button-variant(
+        $value,
+        $value,
+        $hover-background: tint-color($value, $btn-hover-bg-tint-amount),
+        $hover-border: tint-color($value, $btn-hover-border-tint-amount),
+        $active-background: tint-color($value, $btn-active-bg-tint-amount),
+        $active-border: tint-color($value, $btn-active-border-tint-amount)
+      );
+    } @else {
+      @include button-variant($value, $value);
+    }
+  }
+}
+
+@each $color, $value in $theme-colors {
+  .btn-outline-#{$color} {
+    @include button-outline-variant($value);
+  }
+}
+// scss-docs-end btn-variant-loops
+
+
+//
+// Link buttons
+//
+
+// Make a button look and behave like a link
+.btn-link {
+  --#{$prefix}btn-font-weight: #{$font-weight-normal};
+  --#{$prefix}btn-color: #{$btn-link-color};
+  --#{$prefix}btn-bg: transparent;
+  --#{$prefix}btn-border-color: transparent;
+  --#{$prefix}btn-hover-color: #{$btn-link-hover-color};
+  --#{$prefix}btn-hover-border-color: transparent;
+  --#{$prefix}btn-active-color: #{$btn-link-hover-color};
+  --#{$prefix}btn-active-border-color: transparent;
+  --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};
+  --#{$prefix}btn-disabled-border-color: transparent;
+  --#{$prefix}btn-box-shadow: none;
+  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};
+
+  text-decoration: $link-decoration;
+  @if $enable-gradients {
+    background-image: none;
+  }
+
+  &:hover,
+  &:focus-visible {
+    text-decoration: $link-hover-decoration;
+  }
+
+  &:focus-visible {
+    color: var(--#{$prefix}btn-color);
+  }
+
+  &:hover {
+    color: var(--#{$prefix}btn-hover-color);
+  }
+
+  // No need for an active state here
+}
+
+
+//
+// Button Sizes
+//
+
+.btn-lg {
+  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
+}
+
+.btn-sm {
+  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
+}
diff --git a/styles/bootstrap/_card.scss b/styles/bootstrap/_card.scss
new file mode 100644
index 0000000..ce8c02f
--- /dev/null
+++ b/styles/bootstrap/_card.scss
@@ -0,0 +1,234 @@
+//
+// Base styles
+//
+
+.card {
+  // scss-docs-start card-css-vars
+  --#{$prefix}card-spacer-y: #{$card-spacer-y};
+  --#{$prefix}card-spacer-x: #{$card-spacer-x};
+  --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};
+  --#{$prefix}card-border-width: #{$card-border-width};
+  --#{$prefix}card-border-color: #{$card-border-color};
+  --#{$prefix}card-border-radius: #{$card-border-radius};
+  --#{$prefix}card-box-shadow: #{$card-box-shadow};
+  --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};
+  --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};
+  --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};
+  --#{$prefix}card-cap-bg: #{$card-cap-bg};
+  --#{$prefix}card-cap-color: #{$card-cap-color};
+  --#{$prefix}card-height: #{$card-height};
+  --#{$prefix}card-color: #{$card-color};
+  --#{$prefix}card-bg: #{$card-bg};
+  --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};
+  --#{$prefix}card-group-margin: #{$card-group-margin};
+  // scss-docs-end card-css-vars
+
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
+  height: var(--#{$prefix}card-height);
+  word-wrap: break-word;
+  background-color: var(--#{$prefix}card-bg);
+  background-clip: border-box;
+  border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+  @include border-radius(var(--#{$prefix}card-border-radius));
+  @include box-shadow(var(--#{$prefix}card-box-shadow));
+
+  > hr {
+    margin-right: 0;
+    margin-left: 0;
+  }
+
+  > .list-group {
+    border-top: inherit;
+    border-bottom: inherit;
+
+    &:first-child {
+      border-top-width: 0;
+      @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
+    }
+
+    &:last-child  {
+      border-bottom-width: 0;
+      @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
+    }
+  }
+
+  // Due to specificity of the above selector (`.card > .list-group`), we must
+  // use a child selector here to prevent double borders.
+  > .card-header + .list-group,
+  > .list-group + .card-footer {
+    border-top: 0;
+  }
+}
+
+.card-body {
+  // Enable `flex-grow: 1` for decks and groups so that card blocks take up
+  // as much space as possible, ensuring footers are aligned to the bottom.
+  flex: 1 1 auto;
+  padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);
+  color: var(--#{$prefix}card-color);
+}
+
+.card-title {
+  margin-bottom: var(--#{$prefix}card-title-spacer-y);
+}
+
+.card-subtitle {
+  margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list
+  margin-bottom: 0;
+}
+
+.card-text:last-child {
+  margin-bottom: 0;
+}
+
+.card-link {
+  &:hover {
+    text-decoration: if($link-hover-decoration == underline, none, null);
+  }
+
+  + .card-link {
+    margin-left: var(--#{$prefix}card-spacer-x);
+  }
+}
+
+//
+// Optional textual caps
+//
+
+.card-header {
+  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
+  margin-bottom: 0; // Removes the default margin-bottom of <hN>
+  color: var(--#{$prefix}card-cap-color);
+  background-color: var(--#{$prefix}card-cap-bg);
+  border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+
+  &:first-child {
+    @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);
+  }
+}
+
+.card-footer {
+  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);
+  color: var(--#{$prefix}card-cap-color);
+  background-color: var(--#{$prefix}card-cap-bg);
+  border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);
+
+  &:last-child {
+    @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));
+  }
+}
+
+
+//
+// Header navs
+//
+
+.card-header-tabs {
+  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+  margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list
+  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+  border-bottom: 0;
+
+  .nav-link.active {
+    background-color: var(--#{$prefix}card-bg);
+    border-bottom-color: var(--#{$prefix}card-bg);
+  }
+}
+
+.card-header-pills {
+  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list
+}
+
+// Card image
+.card-img-overlay {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: var(--#{$prefix}card-img-overlay-padding);
+  @include border-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
+}
+
+.card-img,
+.card-img-top {
+  @include border-top-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+.card-img,
+.card-img-bottom {
+  @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));
+}
+
+
+//
+// Card groups
+//
+
+.card-group {
+  // The child selector allows nested `.card` within `.card-group`
+  // to display properly.
+  > .card {
+    margin-bottom: var(--#{$prefix}card-group-margin);
+  }
+
+  @include media-breakpoint-up(sm) {
+    display: flex;
+    flex-flow: row wrap;
+    // The child selector allows nested `.card` within `.card-group`
+    // to display properly.
+    > .card {
+      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
+      flex: 1 0 0%;
+      margin-bottom: 0;
+
+      + .card {
+        margin-left: 0;
+        border-left: 0;
+      }
+
+      // Handle rounded corners
+      @if $enable-rounded {
+        &:not(:last-child) {
+          @include border-end-radius(0);
+
+          .card-img-top,
+          .card-header {
+            // stylelint-disable-next-line property-disallowed-list
+            border-top-right-radius: 0;
+          }
+          .card-img-bottom,
+          .card-footer {
+            // stylelint-disable-next-line property-disallowed-list
+            border-bottom-right-radius: 0;
+          }
+        }
+
+        &:not(:first-child) {
+          @include border-start-radius(0);
+
+          .card-img-top,
+          .card-header {
+            // stylelint-disable-next-line property-disallowed-list
+            border-top-left-radius: 0;
+          }
+          .card-img-bottom,
+          .card-footer {
+            // stylelint-disable-next-line property-disallowed-list
+            border-bottom-left-radius: 0;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/_carousel.scss b/styles/bootstrap/_carousel.scss
new file mode 100644
index 0000000..858b836
--- /dev/null
+++ b/styles/bootstrap/_carousel.scss
@@ -0,0 +1,226 @@
+// Notes on the classes:
+//
+// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
+//    even when their scroll action started on a carousel, but for compatibility (with Firefox)
+//    we're preventing all actions instead
+// 2. The .carousel-item-start and .carousel-item-end is used to indicate where
+//    the active slide is heading.
+// 3. .active.carousel-item is the current slide.
+// 4. .active.carousel-item-start and .active.carousel-item-end is the current
+//    slide in its in-transition state. Only one of these occurs at a time.
+// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
+//    is the upcoming slide in transition.
+
+.carousel {
+  position: relative;
+}
+
+.carousel.pointer-event {
+  touch-action: pan-y;
+}
+
+.carousel-inner {
+  position: relative;
+  width: 100%;
+  overflow: hidden;
+  @include clearfix();
+}
+
+.carousel-item {
+  position: relative;
+  display: none;
+  float: left;
+  width: 100%;
+  margin-right: -100%;
+  backface-visibility: hidden;
+  @include transition($carousel-transition);
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+  display: block;
+}
+
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
+  transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
+  transform: translateX(-100%);
+}
+
+
+//
+// Alternate transitions
+//
+
+.carousel-fade {
+  .carousel-item {
+    opacity: 0;
+    transition-property: opacity;
+    transform: none;
+  }
+
+  .carousel-item.active,
+  .carousel-item-next.carousel-item-start,
+  .carousel-item-prev.carousel-item-end {
+    z-index: 1;
+    opacity: 1;
+  }
+
+  .active.carousel-item-start,
+  .active.carousel-item-end {
+    z-index: 0;
+    opacity: 0;
+    @include transition(opacity 0s $carousel-transition-duration);
+  }
+}
+
+
+//
+// Left/right controls for nav
+//
+
+.carousel-control-prev,
+.carousel-control-next {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  z-index: 1;
+  // Use flex for alignment (1-3)
+  display: flex; // 1. allow flex styles
+  align-items: center; // 2. vertically center contents
+  justify-content: center; // 3. horizontally center contents
+  width: $carousel-control-width;
+  padding: 0;
+  color: $carousel-control-color;
+  text-align: center;
+  background: none;
+  border: 0;
+  opacity: $carousel-control-opacity;
+  @include transition($carousel-control-transition);
+
+  // Hover/focus state
+  &:hover,
+  &:focus {
+    color: $carousel-control-color;
+    text-decoration: none;
+    outline: 0;
+    opacity: $carousel-control-hover-opacity;
+  }
+}
+.carousel-control-prev {
+  left: 0;
+  background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
+}
+.carousel-control-next {
+  right: 0;
+  background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
+}
+
+// Icons for within
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+  display: inline-block;
+  width: $carousel-control-icon-width;
+  height: $carousel-control-icon-width;
+  background-repeat: no-repeat;
+  background-position: 50%;
+  background-size: 100% 100%;
+}
+
+/* rtl:options: {
+  "autoRename": true,
+  "stringMap":[ {
+    "name"    : "prev-next",
+    "search"  : "prev",
+    "replace" : "next"
+  } ]
+} */
+.carousel-control-prev-icon {
+  background-image: escape-svg($carousel-control-prev-icon-bg);
+}
+.carousel-control-next-icon {
+  background-image: escape-svg($carousel-control-next-icon-bg);
+}
+
+// Optional indicator pips/controls
+//
+// Add a container (such as a list) with the following class and add an item (ideally a focusable control,
+// like a button) with data-bs-target for each slide your carousel holds.
+
+.carousel-indicators {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 2;
+  display: flex;
+  justify-content: center;
+  padding: 0;
+  // Use the .carousel-control's width as margin so we don't overlay those
+  margin-right: $carousel-control-width;
+  margin-bottom: 1rem;
+  margin-left: $carousel-control-width;
+  list-style: none;
+
+  [data-bs-target] {
+    box-sizing: content-box;
+    flex: 0 1 auto;
+    width: $carousel-indicator-width;
+    height: $carousel-indicator-height;
+    padding: 0;
+    margin-right: $carousel-indicator-spacer;
+    margin-left: $carousel-indicator-spacer;
+    text-indent: -999px;
+    cursor: pointer;
+    background-color: $carousel-indicator-active-bg;
+    background-clip: padding-box;
+    border: 0;
+    // Use transparent borders to increase the hit area by 10px on top and bottom.
+    border-top: $carousel-indicator-hit-area-height solid transparent;
+    border-bottom: $carousel-indicator-hit-area-height solid transparent;
+    opacity: $carousel-indicator-opacity;
+    @include transition($carousel-indicator-transition);
+  }
+
+  .active {
+    opacity: $carousel-indicator-active-opacity;
+  }
+}
+
+
+// Optional captions
+//
+//
+
+.carousel-caption {
+  position: absolute;
+  right: (100% - $carousel-caption-width) * .5;
+  bottom: $carousel-caption-spacer;
+  left: (100% - $carousel-caption-width) * .5;
+  padding-top: $carousel-caption-padding-y;
+  padding-bottom: $carousel-caption-padding-y;
+  color: $carousel-caption-color;
+  text-align: center;
+}
+
+// Dark mode carousel
+
+.carousel-dark {
+  .carousel-control-prev-icon,
+  .carousel-control-next-icon {
+    filter: $carousel-dark-control-icon-filter;
+  }
+
+  .carousel-indicators [data-bs-target] {
+    background-color: $carousel-dark-indicator-active-bg;
+  }
+
+  .carousel-caption {
+    color: $carousel-dark-caption-color;
+  }
+}
diff --git a/styles/bootstrap/_close.scss b/styles/bootstrap/_close.scss
new file mode 100644
index 0000000..a0813de
--- /dev/null
+++ b/styles/bootstrap/_close.scss
@@ -0,0 +1,40 @@
+// Transparent background and border properties included for button version.
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+
+.btn-close {
+  box-sizing: content-box;
+  width: $btn-close-width;
+  height: $btn-close-height;
+  padding: $btn-close-padding-y $btn-close-padding-x;
+  color: $btn-close-color;
+  background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
+  border: 0; // for button elements
+  @include border-radius();
+  opacity: $btn-close-opacity;
+
+  // Override <a>'s hover style
+  &:hover {
+    color: $btn-close-color;
+    text-decoration: none;
+    opacity: $btn-close-hover-opacity;
+  }
+
+  &:focus {
+    outline: 0;
+    box-shadow: $btn-close-focus-shadow;
+    opacity: $btn-close-focus-opacity;
+  }
+
+  &:disabled,
+  &.disabled {
+    pointer-events: none;
+    user-select: none;
+    opacity: $btn-close-disabled-opacity;
+  }
+}
+
+.btn-close-white {
+  filter: $btn-close-white-filter;
+}
diff --git a/styles/bootstrap/_containers.scss b/styles/bootstrap/_containers.scss
new file mode 100644
index 0000000..83b3138
--- /dev/null
+++ b/styles/bootstrap/_containers.scss
@@ -0,0 +1,41 @@
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+@if $enable-container-classes {
+  // Single container class with breakpoint max-widths
+  .container,
+  // 100% wide container at all breakpoints
+  .container-fluid {
+    @include make-container();
+  }
+
+  // Responsive containers that are 100% wide until a breakpoint
+  @each $breakpoint, $container-max-width in $container-max-widths {
+    .container-#{$breakpoint} {
+      @extend .container-fluid;
+    }
+
+    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
+      %responsive-container-#{$breakpoint} {
+        max-width: $container-max-width;
+      }
+
+      // Extend each breakpoint which is smaller or equal to the current breakpoint
+      $extend-breakpoint: true;
+
+      @each $name, $width in $grid-breakpoints {
+        @if ($extend-breakpoint) {
+          .container#{breakpoint-infix($name, $grid-breakpoints)} {
+            @extend %responsive-container-#{$breakpoint};
+          }
+
+          // Once the current breakpoint is reached, stop extending
+          @if ($breakpoint == $name) {
+            $extend-breakpoint: false;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/_dropdown.scss b/styles/bootstrap/_dropdown.scss
new file mode 100644
index 0000000..8899d25
--- /dev/null
+++ b/styles/bootstrap/_dropdown.scss
@@ -0,0 +1,249 @@
+// The dropdown wrapper (`<div>`)
+.dropup,
+.dropend,
+.dropdown,
+.dropstart,
+.dropup-center,
+.dropdown-center {
+  position: relative;
+}
+
+.dropdown-toggle {
+  white-space: nowrap;
+
+  // Generate the caret automatically
+  @include caret();
+}
+
+// The dropdown menu
+.dropdown-menu {
+  // scss-docs-start dropdown-css-vars
+  --#{$prefix}dropdown-zindex: #{$zindex-dropdown};
+  --#{$prefix}dropdown-min-width: #{$dropdown-min-width};
+  --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};
+  --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};
+  --#{$prefix}dropdown-spacer: #{$dropdown-spacer};
+  @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);
+  --#{$prefix}dropdown-color: #{$dropdown-color};
+  --#{$prefix}dropdown-bg: #{$dropdown-bg};
+  --#{$prefix}dropdown-border-color: #{$dropdown-border-color};
+  --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};
+  --#{$prefix}dropdown-border-width: #{$dropdown-border-width};
+  --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};
+  --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};
+  --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};
+  --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};
+  --#{$prefix}dropdown-link-color: #{$dropdown-link-color};
+  --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};
+  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};
+  --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};
+  --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};
+  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};
+  --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};
+  --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};
+  --#{$prefix}dropdown-header-color: #{$dropdown-header-color};
+  --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};
+  --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};
+  // scss-docs-end dropdown-css-vars
+
+  position: absolute;
+  z-index: var(--#{$prefix}dropdown-zindex);
+  display: none; // none by default, but block on "open" of the menu
+  min-width: var(--#{$prefix}dropdown-min-width);
+  padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);
+  margin: 0; // Override default margin of ul
+  @include font-size(var(--#{$prefix}dropdown-font-size));
+  color: var(--#{$prefix}dropdown-color);
+  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+  list-style: none;
+  background-color: var(--#{$prefix}dropdown-bg);
+  background-clip: padding-box;
+  border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);
+  @include border-radius(var(--#{$prefix}dropdown-border-radius));
+  @include box-shadow(var(--#{$prefix}dropdown-box-shadow));
+
+  &[data-bs-popper] {
+    top: 100%;
+    left: 0;
+    margin-top: var(--#{$prefix}dropdown-spacer);
+  }
+
+  @if $dropdown-padding-y == 0 {
+    > .dropdown-item:first-child,
+    > li:first-child .dropdown-item {
+      @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));
+    }
+    > .dropdown-item:last-child,
+    > li:last-child .dropdown-item {
+      @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));
+    }
+
+  }
+}
+
+// scss-docs-start responsive-breakpoints
+// We deliberately hardcode the `bs-` prefix because we check
+// this custom property in JS to determine Popper's positioning
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+  @include media-breakpoint-up($breakpoint) {
+    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+    .dropdown-menu#{$infix}-start {
+      --bs-position: start;
+
+      &[data-bs-popper] {
+        right: auto;
+        left: 0;
+      }
+    }
+
+    .dropdown-menu#{$infix}-end {
+      --bs-position: end;
+
+      &[data-bs-popper] {
+        right: 0;
+        left: auto;
+      }
+    }
+  }
+}
+// scss-docs-end responsive-breakpoints
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+// Just add .dropup after the standard .dropdown class and you're set.
+.dropup {
+  .dropdown-menu[data-bs-popper] {
+    top: auto;
+    bottom: 100%;
+    margin-top: 0;
+    margin-bottom: var(--#{$prefix}dropdown-spacer);
+  }
+
+  .dropdown-toggle {
+    @include caret(up);
+  }
+}
+
+.dropend {
+  .dropdown-menu[data-bs-popper] {
+    top: 0;
+    right: auto;
+    left: 100%;
+    margin-top: 0;
+    margin-left: var(--#{$prefix}dropdown-spacer);
+  }
+
+  .dropdown-toggle {
+    @include caret(end);
+    &::after {
+      vertical-align: 0;
+    }
+  }
+}
+
+.dropstart {
+  .dropdown-menu[data-bs-popper] {
+    top: 0;
+    right: 100%;
+    left: auto;
+    margin-top: 0;
+    margin-right: var(--#{$prefix}dropdown-spacer);
+  }
+
+  .dropdown-toggle {
+    @include caret(start);
+    &::before {
+      vertical-align: 0;
+    }
+  }
+}
+
+
+// Dividers (basically an `<hr>`) within the dropdown
+.dropdown-divider {
+  height: 0;
+  margin: var(--#{$prefix}dropdown-divider-margin-y) 0;
+  overflow: hidden;
+  border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);
+  opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element
+}
+
+// Links, buttons, and more within the dropdown menu
+//
+// `<button>`-specific styles are denoted with `// For <button>s`
+.dropdown-item {
+  display: block;
+  width: 100%; // For `<button>`s
+  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
+  clear: both;
+  font-weight: $font-weight-normal;
+  color: var(--#{$prefix}dropdown-link-color);
+  text-align: inherit; // For `<button>`s
+  text-decoration: if($link-decoration == none, null, none);
+  white-space: nowrap; // prevent links from randomly breaking onto new lines
+  background-color: transparent; // For `<button>`s
+  border: 0; // For `<button>`s
+
+  &:hover,
+  &:focus {
+    color: var(--#{$prefix}dropdown-link-hover-color);
+    text-decoration: if($link-hover-decoration == underline, none, null);
+    @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));
+  }
+
+  &.active,
+  &:active {
+    color: var(--#{$prefix}dropdown-link-active-color);
+    text-decoration: none;
+    @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));
+  }
+
+  &.disabled,
+  &:disabled {
+    color: var(--#{$prefix}dropdown-link-disabled-color);
+    pointer-events: none;
+    background-color: transparent;
+    // Remove CSS gradients if they're enabled
+    background-image: if($enable-gradients, none, null);
+  }
+}
+
+.dropdown-menu.show {
+  display: block;
+}
+
+// Dropdown section headers
+.dropdown-header {
+  display: block;
+  padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);
+  margin-bottom: 0; // for use with heading elements
+  @include font-size($font-size-sm);
+  color: var(--#{$prefix}dropdown-header-color);
+  white-space: nowrap; // as with > li > a
+}
+
+// Dropdown text
+.dropdown-item-text {
+  display: block;
+  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);
+  color: var(--#{$prefix}dropdown-link-color);
+}
+
+// Dark dropdowns
+.dropdown-menu-dark {
+  // scss-docs-start dropdown-dark-css-vars
+  --#{$prefix}dropdown-color: #{$dropdown-dark-color};
+  --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};
+  --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};
+  --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};
+  --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};
+  --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};
+  --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};
+  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};
+  --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};
+  --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};
+  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};
+  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};
+  // scss-docs-end dropdown-dark-css-vars
+}
diff --git a/styles/bootstrap/_forms.scss b/styles/bootstrap/_forms.scss
new file mode 100644
index 0000000..7b17d84
--- /dev/null
+++ b/styles/bootstrap/_forms.scss
@@ -0,0 +1,9 @@
+@import "forms/labels";
+@import "forms/form-text";
+@import "forms/form-control";
+@import "forms/form-select";
+@import "forms/form-check";
+@import "forms/form-range";
+@import "forms/floating-labels";
+@import "forms/input-group";
+@import "forms/validation";
diff --git a/styles/bootstrap/_functions.scss b/styles/bootstrap/_functions.scss
new file mode 100644
index 0000000..26c953b
--- /dev/null
+++ b/styles/bootstrap/_functions.scss
@@ -0,0 +1,302 @@
+// Bootstrap functions
+//
+// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
+
+// Ascending
+// Used to evaluate Sass maps like our grid breakpoints.
+@mixin _assert-ascending($map, $map-name) {
+  $prev-key: null;
+  $prev-num: null;
+  @each $key, $num in $map {
+    @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
+      // Do nothing
+    } @else if not comparable($prev-num, $num) {
+      @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
+    } @else if $prev-num >= $num {
+      @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
+    }
+    $prev-key: $key;
+    $prev-num: $num;
+  }
+}
+
+// Starts at zero
+// Used to ensure the min-width of the lowest breakpoint starts at 0.
+@mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
+  @if length($map) > 0 {
+    $values: map-values($map);
+    $first-value: nth($values, 1);
+    @if $first-value != 0 {
+      @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
+    }
+  }
+}
+
+// Colors
+@function to-rgb($value) {
+  @return red($value), green($value), blue($value);
+}
+
+// stylelint-disable scss/dollar-variable-pattern
+@function rgba-css-var($identifier, $target) {
+  @if $identifier == "body" and $target == "bg" {
+    @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));
+  } @if $identifier == "body" and $target == "text" {
+    @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));
+  } @else {
+    @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));
+  }
+}
+
+@function map-loop($map, $func, $args...) {
+  $_map: ();
+
+  @each $key, $value in $map {
+    // allow to pass the $key and $value of the map as an function argument
+    $_args: ();
+    @each $arg in $args {
+      $_args: append($_args, if($arg == "$key", $key, if($arg == "$value", $value, $arg)));
+    }
+
+    $_map: map-merge($_map, ($key: call(get-function($func), $_args...)));
+  }
+
+  @return $_map;
+}
+// stylelint-enable scss/dollar-variable-pattern
+
+@function varify($list) {
+  $result: null;
+  @each $entry in $list {
+    $result: append($result, var(--#{$prefix}#{$entry}), space);
+  }
+  @return $result;
+}
+
+// Internal Bootstrap function to turn maps into its negative variant.
+// It prefixes the keys with `n` and makes the value negative.
+@function negativify-map($map) {
+  $result: ();
+  @each $key, $value in $map {
+    @if $key != 0 {
+      $result: map-merge($result, ("n" + $key: (-$value)));
+    }
+  }
+  @return $result;
+}
+
+// Get multiple keys from a sass map
+@function map-get-multiple($map, $values) {
+  $result: ();
+  @each $key, $value in $map {
+    @if (index($values, $key) != null) {
+      $result: map-merge($result, ($key: $value));
+    }
+  }
+  @return $result;
+}
+
+// Merge multiple maps
+@function map-merge-multiple($maps...) {
+  $merged-maps: ();
+
+  @each $map in $maps {
+    $merged-maps: map-merge($merged-maps, $map);
+  }
+  @return $merged-maps;
+}
+
+// Replace `$search` with `$replace` in `$string`
+// Used on our SVG icon backgrounds for custom forms.
+//
+// @author Kitty Giraudel
+// @param {String} $string - Initial string
+// @param {String} $search - Substring to replace
+// @param {String} $replace ('') - New value
+// @return {String} - Updated string
+@function str-replace($string, $search, $replace: "") {
+  $index: str-index($string, $search);
+
+  @if $index {
+    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+  }
+
+  @return $string;
+}
+
+// See https://codepen.io/kevinweber/pen/dXWoRw
+//
+// Requires the use of quotes around data URIs.
+
+@function escape-svg($string) {
+  @if str-index($string, "data:image/svg+xml") {
+    @each $char, $encoded in $escaped-characters {
+      // Do not escape the url brackets
+      @if str-index($string, "url(") == 1 {
+        $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
+      } @else {
+        $string: str-replace($string, $char, $encoded);
+      }
+    }
+  }
+
+  @return $string;
+}
+
+// Color contrast
+// See https://github.com/twbs/bootstrap/pull/30168
+
+// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)
+// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern
+$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;
+
+@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
+  $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;
+  $max-ratio: 0;
+  $max-ratio-color: null;
+
+  @each $color in $foregrounds {
+    $contrast-ratio: contrast-ratio($background, $color);
+    @if $contrast-ratio > $min-contrast-ratio {
+      @return $color;
+    } @else if $contrast-ratio > $max-ratio {
+      $max-ratio: $contrast-ratio;
+      $max-ratio-color: $color;
+    }
+  }
+
+  @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
+
+  @return $max-ratio-color;
+}
+
+@function contrast-ratio($background, $foreground: $color-contrast-light) {
+  $l1: luminance($background);
+  $l2: luminance(opaque($background, $foreground));
+
+  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
+}
+
+// Return WCAG2.1 relative luminance
+// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
+// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
+@function luminance($color) {
+  $rgb: (
+    "r": red($color),
+    "g": green($color),
+    "b": blue($color)
+  );
+
+  @each $name, $value in $rgb {
+    $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));
+    $rgb: map-merge($rgb, ($name: $value));
+  }
+
+  @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722);
+}
+
+// Return opaque color
+// opaque(#fff, rgba(0, 0, 0, .5)) => #808080
+@function opaque($background, $foreground) {
+  @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
+}
+
+// scss-docs-start color-functions
+// Tint a color: mix a color with white
+@function tint-color($color, $weight) {
+  @return mix(white, $color, $weight);
+}
+
+// Shade a color: mix a color with black
+@function shade-color($color, $weight) {
+  @return mix(black, $color, $weight);
+}
+
+// Shade the color if the weight is positive, else tint it
+@function shift-color($color, $weight) {
+  @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));
+}
+// scss-docs-end color-functions
+
+// Return valid calc
+@function add($value1, $value2, $return-calc: true) {
+  @if $value1 == null {
+    @return $value2;
+  }
+
+  @if $value2 == null {
+    @return $value1;
+  }
+
+  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
+    @return $value1 + $value2;
+  }
+
+  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
+}
+
+@function subtract($value1, $value2, $return-calc: true) {
+  @if $value1 == null and $value2 == null {
+    @return null;
+  }
+
+  @if $value1 == null {
+    @return -$value2;
+  }
+
+  @if $value2 == null {
+    @return $value1;
+  }
+
+  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
+    @return $value1 - $value2;
+  }
+
+  @if type-of($value2) != number {
+    $value2: unquote("(") + $value2 + unquote(")");
+  }
+
+  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
+}
+
+@function divide($dividend, $divisor, $precision: 10) {
+  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
+  $dividend: abs($dividend);
+  $divisor: abs($divisor);
+  @if $dividend == 0 {
+    @return 0;
+  }
+  @if $divisor == 0 {
+    @error "Cannot divide by 0";
+  }
+  $remainder: $dividend;
+  $result: 0;
+  $factor: 10;
+  @while ($remainder > 0 and $precision >= 0) {
+    $quotient: 0;
+    @while ($remainder >= $divisor) {
+      $remainder: $remainder - $divisor;
+      $quotient: $quotient + 1;
+    }
+    $result: $result * 10 + $quotient;
+    $factor: $factor * .1;
+    $remainder: $remainder * 10;
+    $precision: $precision - 1;
+    @if ($precision < 0 and $remainder >= $divisor * 5) {
+      $result: $result + 1;
+    }
+  }
+  $result: $result * $factor * $sign;
+  $dividend-unit: unit($dividend);
+  $divisor-unit: unit($divisor);
+  $unit-map: (
+    "px": 1px,
+    "rem": 1rem,
+    "em": 1em,
+    "%": 1%
+  );
+  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
+    $result: $result * map-get($unit-map, $dividend-unit);
+  }
+  @return $result;
+}
diff --git a/styles/bootstrap/_grid.scss b/styles/bootstrap/_grid.scss
new file mode 100644
index 0000000..0e0ba21
--- /dev/null
+++ b/styles/bootstrap/_grid.scss
@@ -0,0 +1,33 @@
+// Row
+//
+// Rows contain your columns.
+
+@if $enable-grid-classes {
+  .row {
+    @include make-row();
+
+    > * {
+      @include make-col-ready();
+    }
+  }
+}
+
+@if $enable-cssgrid {
+  .grid {
+    display: grid;
+    grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);
+    grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);
+    gap: var(--#{$prefix}gap, #{$grid-gutter-width});
+
+    @include make-cssgrid();
+  }
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+@if $enable-grid-classes {
+  @include make-grid-columns();
+}
diff --git a/styles/bootstrap/_helpers.scss b/styles/bootstrap/_helpers.scss
new file mode 100644
index 0000000..644b693
--- /dev/null
+++ b/styles/bootstrap/_helpers.scss
@@ -0,0 +1,10 @@
+@import "helpers/clearfix";
+@import "helpers/color-bg";
+@import "helpers/colored-links";
+@import "helpers/ratio";
+@import "helpers/position";
+@import "helpers/stacks";
+@import "helpers/visually-hidden";
+@import "helpers/stretched-link";
+@import "helpers/text-truncation";
+@import "helpers/vr";
diff --git a/styles/bootstrap/_images.scss b/styles/bootstrap/_images.scss
new file mode 100644
index 0000000..3d6a101
--- /dev/null
+++ b/styles/bootstrap/_images.scss
@@ -0,0 +1,42 @@
+// Responsive images (ensure images don't scale beyond their parents)
+//
+// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
+// We previously tried the "images are responsive by default" approach in Bootstrap v2,
+// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
+// which weren't expecting the images within themselves to be involuntarily resized.
+// See also https://github.com/twbs/bootstrap/issues/18178
+.img-fluid {
+  @include img-fluid();
+}
+
+
+// Image thumbnails
+.img-thumbnail {
+  padding: $thumbnail-padding;
+  background-color: $thumbnail-bg;
+  border: $thumbnail-border-width solid $thumbnail-border-color;
+  @include border-radius($thumbnail-border-radius);
+  @include box-shadow($thumbnail-box-shadow);
+
+  // Keep them at most 100% wide
+  @include img-fluid();
+}
+
+//
+// Figures
+//
+
+.figure {
+  // Ensures the caption's text aligns with the image.
+  display: inline-block;
+}
+
+.figure-img {
+  margin-bottom: $spacer * .5;
+  line-height: 1;
+}
+
+.figure-caption {
+  @include font-size($figure-caption-font-size);
+  color: $figure-caption-color;
+}
diff --git a/styles/bootstrap/_list-group.scss b/styles/bootstrap/_list-group.scss
new file mode 100644
index 0000000..c0ec164
--- /dev/null
+++ b/styles/bootstrap/_list-group.scss
@@ -0,0 +1,192 @@
+// Base class
+//
+// Easily usable on <ul>, <ol>, or <div>.
+
+.list-group {
+  // scss-docs-start list-group-css-vars
+  --#{$prefix}list-group-color: #{$list-group-color};
+  --#{$prefix}list-group-bg: #{$list-group-bg};
+  --#{$prefix}list-group-border-color: #{$list-group-border-color};
+  --#{$prefix}list-group-border-width: #{$list-group-border-width};
+  --#{$prefix}list-group-border-radius: #{$list-group-border-radius};
+  --#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};
+  --#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};
+  --#{$prefix}list-group-action-color: #{$list-group-action-color};
+  --#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};
+  --#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};
+  --#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};
+  --#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};
+  --#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};
+  --#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};
+  --#{$prefix}list-group-active-color: #{$list-group-active-color};
+  --#{$prefix}list-group-active-bg: #{$list-group-active-bg};
+  --#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};
+  // scss-docs-end list-group-css-vars
+
+  display: flex;
+  flex-direction: column;
+
+  // No need to set list-style: none; since .list-group-item is block level
+  padding-left: 0; // reset padding because ul and ol
+  margin-bottom: 0;
+  @include border-radius(var(--#{$prefix}list-group-border-radius));
+}
+
+.list-group-numbered {
+  list-style-type: none;
+  counter-reset: section;
+
+  > .list-group-item::before {
+    // Increments only this instance of the section counter
+    content: counters(section, ".") ". ";
+    counter-increment: section;
+  }
+}
+
+// Interactive list items
+//
+// Use anchor or button elements instead of `li`s or `div`s to create interactive
+// list items. Includes an extra `.active` modifier class for selected items.
+
+.list-group-item-action {
+  width: 100%; // For `<button>`s (anchors become 100% by default though)
+  color: var(--#{$prefix}list-group-action-color);
+  text-align: inherit; // For `<button>`s (anchors inherit)
+
+  // Hover state
+  &:hover,
+  &:focus {
+    z-index: 1; // Place hover/focus items above their siblings for proper border styling
+    color: var(--#{$prefix}list-group-action-hover-color);
+    text-decoration: none;
+    background-color: var(--#{$prefix}list-group-action-hover-bg);
+  }
+
+  &:active {
+    color: var(--#{$prefix}list-group-action-active-color);
+    background-color: var(--#{$prefix}list-group-action-active-bg);
+  }
+}
+
+// Individual list items
+//
+// Use on `li`s or `div`s within the `.list-group` parent.
+
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);
+  color: var(--#{$prefix}list-group-color);
+  text-decoration: if($link-decoration == none, null, none);
+  background-color: var(--#{$prefix}list-group-bg);
+  border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);
+
+  &:first-child {
+    @include border-top-radius(inherit);
+  }
+
+  &:last-child {
+    @include border-bottom-radius(inherit);
+  }
+
+  &.disabled,
+  &:disabled {
+    color: var(--#{$prefix}list-group-disabled-color);
+    pointer-events: none;
+    background-color: var(--#{$prefix}list-group-disabled-bg);
+  }
+
+  // Include both here for `<a>`s and `<button>`s
+  &.active {
+    z-index: 2; // Place active items above their siblings for proper border styling
+    color: var(--#{$prefix}list-group-active-color);
+    background-color: var(--#{$prefix}list-group-active-bg);
+    border-color: var(--#{$prefix}list-group-active-border-color);
+  }
+
+  // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector
+  & + .list-group-item {
+    border-top-width: 0;
+
+    &.active {
+      margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
+      border-top-width: var(--#{$prefix}list-group-border-width);
+    }
+  }
+}
+
+// Horizontal
+//
+// Change the layout of list group items from vertical (default) to horizontal.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+  @include media-breakpoint-up($breakpoint) {
+    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+    .list-group-horizontal#{$infix} {
+      flex-direction: row;
+
+      > .list-group-item {
+        &:first-child:not(:last-child) {
+          @include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));
+          @include border-top-end-radius(0);
+        }
+
+        &:last-child:not(:first-child) {
+          @include border-top-end-radius(var(--#{$prefix}list-group-border-radius));
+          @include border-bottom-start-radius(0);
+        }
+
+        &.active {
+          margin-top: 0;
+        }
+
+        + .list-group-item {
+          border-top-width: var(--#{$prefix}list-group-border-width);
+          border-left-width: 0;
+
+          &.active {
+            margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list
+            border-left-width: var(--#{$prefix}list-group-border-width);
+          }
+        }
+      }
+    }
+  }
+}
+
+
+// Flush list items
+//
+// Remove borders and border-radius to keep list group items edge-to-edge. Most
+// useful within other components (e.g., cards).
+
+.list-group-flush {
+  @include border-radius(0);
+
+  > .list-group-item {
+    border-width: 0 0 var(--#{$prefix}list-group-border-width);
+
+    &:last-child {
+      border-bottom-width: 0;
+    }
+  }
+}
+
+
+// scss-docs-start list-group-modifiers
+// List group contextual variants
+//
+// Add modifier classes to change text and background color on individual items.
+// Organizationally, this must come after the `:hover` states.
+
+@each $state, $value in $theme-colors {
+  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
+  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);
+  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {
+    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));
+  }
+
+  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);
+}
+// scss-docs-end list-group-modifiers
diff --git a/styles/bootstrap/_maps.scss b/styles/bootstrap/_maps.scss
new file mode 100644
index 0000000..2770a67
--- /dev/null
+++ b/styles/bootstrap/_maps.scss
@@ -0,0 +1,54 @@
+// Re-assigned maps
+//
+// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
+
+// scss-docs-start theme-colors-rgb
+$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
+// scss-docs-end theme-colors-rgb
+
+// Utilities maps
+//
+// Extends the default `$theme-colors` maps to help create our utilities.
+
+// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
+// scss-docs-start utilities-colors
+$utilities-colors: $theme-colors-rgb !default;
+// scss-docs-end utilities-colors
+
+// scss-docs-start utilities-text-colors
+$utilities-text: map-merge(
+  $utilities-colors,
+  (
+    "black": to-rgb($black),
+    "white": to-rgb($white),
+    "body": to-rgb($body-color)
+  )
+) !default;
+$utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
+// scss-docs-end utilities-text-colors
+
+// scss-docs-start utilities-bg-colors
+$utilities-bg: map-merge(
+  $utilities-colors,
+  (
+    "black": to-rgb($black),
+    "white": to-rgb($white),
+    "body": to-rgb($body-bg)
+  )
+) !default;
+$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
+// scss-docs-end utilities-bg-colors
+
+// scss-docs-start utilities-border-colors
+$utilities-border: map-merge(
+  $utilities-colors,
+  (
+    "white": to-rgb($white)
+  )
+) !default;
+$utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
+// scss-docs-end utilities-border-colors
+
+$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
+
+$gutters: $spacers !default;
diff --git a/styles/bootstrap/_mixins.scss b/styles/bootstrap/_mixins.scss
new file mode 100644
index 0000000..af1f74f
--- /dev/null
+++ b/styles/bootstrap/_mixins.scss
@@ -0,0 +1,43 @@
+// Toggles
+//
+// Used in conjunction with global variables to enable certain theme features.
+
+// Vendor
+@import "vendor/rfs";
+
+// Deprecate
+@import "mixins/deprecate";
+
+// Helpers
+@import "mixins/breakpoints";
+@import "mixins/color-scheme";
+@import "mixins/image";
+@import "mixins/resize";
+@import "mixins/visually-hidden";
+@import "mixins/reset-text";
+@import "mixins/text-truncate";
+
+// Utilities
+@import "mixins/utilities";
+
+// Components
+@import "mixins/alert";
+@import "mixins/backdrop";
+@import "mixins/buttons";
+@import "mixins/caret";
+@import "mixins/pagination";
+@import "mixins/lists";
+@import "mixins/list-group";
+@import "mixins/forms";
+@import "mixins/table-variants";
+
+// Skins
+@import "mixins/border-radius";
+@import "mixins/box-shadow";
+@import "mixins/gradients";
+@import "mixins/transition";
+
+// Layout
+@import "mixins/clearfix";
+@import "mixins/container";
+@import "mixins/grid";
diff --git a/styles/bootstrap/_modal.scss b/styles/bootstrap/_modal.scss
new file mode 100644
index 0000000..5f1429f
--- /dev/null
+++ b/styles/bootstrap/_modal.scss
@@ -0,0 +1,237 @@
+// stylelint-disable function-disallowed-list
+
+// .modal-open      - body class for killing the scroll
+// .modal           - container to scroll within
+// .modal-dialog    - positioning shell for the actual modal
+// .modal-content   - actual modal w/ bg and corners and stuff
+
+
+// Container that the modal scrolls within
+.modal {
+  // scss-docs-start modal-css-vars
+  --#{$prefix}modal-zindex: #{$zindex-modal};
+  --#{$prefix}modal-width: #{$modal-md};
+  --#{$prefix}modal-padding: #{$modal-inner-padding};
+  --#{$prefix}modal-margin: #{$modal-dialog-margin};
+  --#{$prefix}modal-color: #{$modal-content-color};
+  --#{$prefix}modal-bg: #{$modal-content-bg};
+  --#{$prefix}modal-border-color: #{$modal-content-border-color};
+  --#{$prefix}modal-border-width: #{$modal-content-border-width};
+  --#{$prefix}modal-border-radius: #{$modal-content-border-radius};
+  --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};
+  --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};
+  --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};
+  --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};
+  --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y
+  --#{$prefix}modal-header-border-color: #{$modal-header-border-color};
+  --#{$prefix}modal-header-border-width: #{$modal-header-border-width};
+  --#{$prefix}modal-title-line-height: #{$modal-title-line-height};
+  --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};
+  --#{$prefix}modal-footer-bg: #{$modal-footer-bg};
+  --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};
+  --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};
+  // scss-docs-end modal-css-vars
+
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: var(--#{$prefix}modal-zindex);
+  display: none;
+  width: 100%;
+  height: 100%;
+  overflow-x: hidden;
+  overflow-y: auto;
+  // Prevent Chrome on Windows from adding a focus outline. For details, see
+  // https://github.com/twbs/bootstrap/pull/10951.
+  outline: 0;
+  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
+  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
+  // See also https://github.com/twbs/bootstrap/issues/17695
+}
+
+// Shell div to position the modal with bottom padding
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: var(--#{$prefix}modal-margin);
+  // allow clicks to pass through for custom click handling to close modal
+  pointer-events: none;
+
+  // When fading in the modal, animate it to slide down
+  .modal.fade & {
+    @include transition($modal-transition);
+    transform: $modal-fade-transform;
+  }
+  .modal.show & {
+    transform: $modal-show-transform;
+  }
+
+  // When trying to close, animate focus to scale
+  .modal.modal-static & {
+    transform: $modal-scale-transform;
+  }
+}
+
+.modal-dialog-scrollable {
+  height: calc(100% - var(--#{$prefix}modal-margin) * 2);
+
+  .modal-content {
+    max-height: 100%;
+    overflow: hidden;
+  }
+
+  .modal-body {
+    overflow-y: auto;
+  }
+}
+
+.modal-dialog-centered {
+  display: flex;
+  align-items: center;
+  min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);
+}
+
+// Actual modal
+.modal-content {
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
+  // counteract the pointer-events: none; in the .modal-dialog
+  color: var(--#{$prefix}modal-color);
+  pointer-events: auto;
+  background-color: var(--#{$prefix}modal-bg);
+  background-clip: padding-box;
+  border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);
+  @include border-radius(var(--#{$prefix}modal-border-radius));
+  @include box-shadow(var(--#{$prefix}modal-box-shadow));
+  // Remove focus outline from opened modal
+  outline: 0;
+}
+
+// Modal background
+.modal-backdrop {
+  // scss-docs-start modal-backdrop-css-vars
+  --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};
+  --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};
+  --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};
+  // scss-docs-end modal-backdrop-css-vars
+
+  @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));
+}
+
+// Modal header
+// Top section of the modal w/ title and dismiss
+.modal-header {
+  display: flex;
+  flex-shrink: 0;
+  align-items: center;
+  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
+  padding: var(--#{$prefix}modal-header-padding);
+  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);
+  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));
+
+  .btn-close {
+    padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
+    margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;
+  }
+}
+
+// Title text within header
+.modal-title {
+  margin-bottom: 0;
+  line-height: var(--#{$prefix}modal-title-line-height);
+}
+
+// Modal body
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
+.modal-body {
+  position: relative;
+  // Enable `flex-grow: 1` so that the body take up as much space as possible
+  // when there should be a fixed height on `.modal-dialog`.
+  flex: 1 1 auto;
+  padding: var(--#{$prefix}modal-padding);
+}
+
+// Footer (for actions)
+.modal-footer {
+  display: flex;
+  flex-shrink: 0;
+  flex-wrap: wrap;
+  align-items: center; // vertically center
+  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
+  padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);
+  background-color: var(--#{$prefix}modal-footer-bg);
+  border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);
+  @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));
+
+  // Place margin between footer elements
+  // This solution is far from ideal because of the universal selector usage,
+  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
+  > * {
+    margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class
+  }
+}
+
+// Scale up the modal
+@include media-breakpoint-up(sm) {
+  .modal {
+    --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};
+    --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};
+  }
+
+  // Automatically set modal's width for larger viewports
+  .modal-dialog {
+    max-width: var(--#{$prefix}modal-width);
+    margin-right: auto;
+    margin-left: auto;
+  }
+
+  .modal-sm {
+    --#{$prefix}modal-width: #{$modal-sm};
+  }
+}
+
+@include media-breakpoint-up(lg) {
+  .modal-lg,
+  .modal-xl {
+    --#{$prefix}modal-width: #{$modal-lg};
+  }
+}
+
+@include media-breakpoint-up(xl) {
+  .modal-xl {
+    --#{$prefix}modal-width: #{$modal-xl};
+  }
+}
+
+// scss-docs-start modal-fullscreen-loop
+@each $breakpoint in map-keys($grid-breakpoints) {
+  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+  $postfix: if($infix != "", $infix + "-down", "");
+
+  @include media-breakpoint-down($breakpoint) {
+    .modal-fullscreen#{$postfix} {
+      width: 100vw;
+      max-width: none;
+      height: 100%;
+      margin: 0;
+
+      .modal-content {
+        height: 100%;
+        border: 0;
+        @include border-radius(0);
+      }
+
+      .modal-header,
+      .modal-footer {
+        @include border-radius(0);
+      }
+
+      .modal-body {
+        overflow-y: auto;
+      }
+    }
+  }
+}
+// scss-docs-end modal-fullscreen-loop
diff --git a/styles/bootstrap/_nav.scss b/styles/bootstrap/_nav.scss
new file mode 100644
index 0000000..9efc03b
--- /dev/null
+++ b/styles/bootstrap/_nav.scss
@@ -0,0 +1,172 @@
+// Base class
+//
+// Kickstart any navigation component with a set of style resets. Works with
+// `<nav>`s, `<ul>`s or `<ol>`s.
+
+.nav {
+  // scss-docs-start nav-css-vars
+  --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
+  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+  --#{$prefix}nav-link-color: #{$nav-link-color};
+  --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
+  --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
+  // scss-docs-end nav-css-vars
+
+  display: flex;
+  flex-wrap: wrap;
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none;
+}
+
+.nav-link {
+  display: block;
+  padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
+  @include font-size(var(--#{$prefix}nav-link-font-size));
+  font-weight: var(--#{$prefix}nav-link-font-weight);
+  color: var(--#{$prefix}nav-link-color);
+  text-decoration: if($link-decoration == none, null, none);
+  @include transition($nav-link-transition);
+
+  &:hover,
+  &:focus {
+    color: var(--#{$prefix}nav-link-hover-color);
+    text-decoration: if($link-hover-decoration == underline, none, null);
+  }
+
+  // Disabled state lightens text
+  &.disabled {
+    color: var(--#{$prefix}nav-link-disabled-color);
+    pointer-events: none;
+    cursor: default;
+  }
+}
+
+//
+// Tabs
+//
+
+.nav-tabs {
+  // scss-docs-start nav-tabs-css-vars
+  --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
+  --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
+  --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
+  --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
+  --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
+  --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
+  --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
+  // scss-docs-end nav-tabs-css-vars
+
+  border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
+
+  .nav-link {
+    margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
+    background: none;
+    border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
+    @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
+
+    &:hover,
+    &:focus {
+      // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
+      isolation: isolate;
+      border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
+    }
+
+    &.disabled,
+    &:disabled {
+      color: var(--#{$prefix}nav-link-disabled-color);
+      background-color: transparent;
+      border-color: transparent;
+    }
+  }
+
+  .nav-link.active,
+  .nav-item.show .nav-link {
+    color: var(--#{$prefix}nav-tabs-link-active-color);
+    background-color: var(--#{$prefix}nav-tabs-link-active-bg);
+    border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
+  }
+
+  .dropdown-menu {
+    // Make dropdown border overlap tab border
+    margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
+    // Remove the top rounded corners here since there is a hard edge above the menu
+    @include border-top-radius(0);
+  }
+}
+
+
+//
+// Pills
+//
+
+.nav-pills {
+  // scss-docs-start nav-pills-css-vars
+  --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
+  --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
+  --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
+  // scss-docs-end nav-pills-css-vars
+
+  .nav-link {
+    background: none;
+    border: 0;
+    @include border-radius(var(--#{$prefix}nav-pills-border-radius));
+
+    &:disabled {
+      color: var(--#{$prefix}nav-link-disabled-color);
+      background-color: transparent;
+      border-color: transparent;
+    }
+  }
+
+  .nav-link.active,
+  .show > .nav-link {
+    color: var(--#{$prefix}nav-pills-link-active-color);
+    @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
+  }
+}
+
+
+//
+// Justified variants
+//
+
+.nav-fill {
+  > .nav-link,
+  .nav-item {
+    flex: 1 1 auto;
+    text-align: center;
+  }
+}
+
+.nav-justified {
+  > .nav-link,
+  .nav-item {
+    flex-basis: 0;
+    flex-grow: 1;
+    text-align: center;
+  }
+}
+
+.nav-fill,
+.nav-justified {
+  .nav-item .nav-link {
+    width: 100%; // Make sure button will grow
+  }
+}
+
+
+// Tabbable tabs
+//
+// Hide tabbable panes to start, show them when `.active`
+
+.tab-content {
+  > .tab-pane {
+    display: none;
+  }
+  > .active {
+    display: block;
+  }
+}
diff --git a/styles/bootstrap/_navbar.scss b/styles/bootstrap/_navbar.scss
new file mode 100644
index 0000000..599b055
--- /dev/null
+++ b/styles/bootstrap/_navbar.scss
@@ -0,0 +1,278 @@
+// Navbar
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+  // scss-docs-start navbar-css-vars
+  --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
+  --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
+  --#{$prefix}navbar-color: #{$navbar-light-color};
+  --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
+  --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
+  --#{$prefix}navbar-active-color: #{$navbar-light-active-color};
+  --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
+  --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
+  --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
+  --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
+  --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
+  --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
+  --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
+  --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
+  --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
+  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
+  --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
+  --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
+  --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
+  --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
+  // scss-docs-end navbar-css-vars
+
+  position: relative;
+  display: flex;
+  flex-wrap: wrap; // allow us to do the line break for collapsing content
+  align-items: center;
+  justify-content: space-between; // space out brand from logo
+  padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
+  @include gradient-bg();
+
+  // Because flex properties aren't inherited, we need to redeclare these first
+  // few properties so that content nested within behave properly.
+  // The `flex-wrap` property is inherited to simplify the expanded navbars
+  %container-flex-properties {
+    display: flex;
+    flex-wrap: inherit;
+    align-items: center;
+    justify-content: space-between;
+  }
+
+  > .container,
+  > .container-fluid {
+    @extend %container-flex-properties;
+  }
+
+  @each $breakpoint, $container-max-width in $container-max-widths {
+    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
+      @extend %container-flex-properties;
+    }
+  }
+}
+
+
+// Navbar brand
+//
+// Used for brand, project, or site names.
+
+.navbar-brand {
+  padding-top: var(--#{$prefix}navbar-brand-padding-y);
+  padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
+  margin-right: var(--#{$prefix}navbar-brand-margin-end);
+  @include font-size(var(--#{$prefix}navbar-brand-font-size));
+  color: var(--#{$prefix}navbar-brand-color);
+  text-decoration: if($link-decoration == none, null, none);
+  white-space: nowrap;
+
+  &:hover,
+  &:focus {
+    color: var(--#{$prefix}navbar-brand-hover-color);
+    text-decoration: if($link-hover-decoration == underline, none, null);
+  }
+}
+
+
+// Navbar nav
+//
+// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
+
+.navbar-nav {
+  // scss-docs-start navbar-nav-css-vars
+  --#{$prefix}nav-link-padding-x: 0;
+  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
+  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
+  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
+  --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
+  --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
+  --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
+  // scss-docs-end navbar-nav-css-vars
+
+  display: flex;
+  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none;
+
+  .show > .nav-link,
+  .nav-link.active {
+    color: var(--#{$prefix}navbar-active-color);
+  }
+
+  .dropdown-menu {
+    position: static;
+  }
+}
+
+
+// Navbar text
+//
+//
+
+.navbar-text {
+  padding-top: $nav-link-padding-y;
+  padding-bottom: $nav-link-padding-y;
+  color: var(--#{$prefix}navbar-color);
+
+  a,
+  a:hover,
+  a:focus  {
+    color: var(--#{$prefix}navbar-active-color);
+  }
+}
+
+
+// Responsive navbar
+//
+// Custom styles for responsive collapsing and toggling of navbar contents.
+// Powered by the collapse Bootstrap JavaScript plugin.
+
+// When collapsed, prevent the toggleable navbar contents from appearing in
+// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
+// on the `.navbar` parent.
+.navbar-collapse {
+  flex-basis: 100%;
+  flex-grow: 1;
+  // For always expanded or extra full navbars, ensure content aligns itself
+  // properly vertically. Can be easily overridden with flex utilities.
+  align-items: center;
+}
+
+// Button for toggling the navbar when in its collapsed state
+.navbar-toggler {
+  padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
+  @include font-size(var(--#{$prefix}navbar-toggler-font-size));
+  line-height: 1;
+  color: var(--#{$prefix}navbar-color);
+  background-color: transparent; // remove default button style
+  border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
+  @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
+  @include transition(var(--#{$prefix}navbar-toggler-transition));
+
+  &:hover {
+    text-decoration: none;
+  }
+
+  &:focus {
+    text-decoration: none;
+    outline: 0;
+    box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
+  }
+}
+
+// Keep as a separate element so folks can easily override it with another icon
+// or image file as needed.
+.navbar-toggler-icon {
+  display: inline-block;
+  width: 1.5em;
+  height: 1.5em;
+  vertical-align: middle;
+  background-image: var(--#{$prefix}navbar-toggler-icon-bg);
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: 100%;
+}
+
+.navbar-nav-scroll {
+  max-height: var(--#{$prefix}scroll-height, 75vh);
+  overflow-y: auto;
+}
+
+// scss-docs-start navbar-expand-loop
+// Generate series of `.navbar-expand-*` responsive classes for configuring
+// where your navbar collapses.
+.navbar-expand {
+  @each $breakpoint in map-keys($grid-breakpoints) {
+    $next: breakpoint-next($breakpoint, $grid-breakpoints);
+    $infix: breakpoint-infix($next, $grid-breakpoints);
+
+    // stylelint-disable-next-line scss/selector-no-union-class-name
+    &#{$infix} {
+      @include media-breakpoint-up($next) {
+        flex-wrap: nowrap;
+        justify-content: flex-start;
+
+        .navbar-nav {
+          flex-direction: row;
+
+          .dropdown-menu {
+            position: absolute;
+          }
+
+          .nav-link {
+            padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
+            padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
+          }
+        }
+
+        .navbar-nav-scroll {
+          overflow: visible;
+        }
+
+        .navbar-collapse {
+          display: flex !important; // stylelint-disable-line declaration-no-important
+          flex-basis: auto;
+        }
+
+        .navbar-toggler {
+          display: none;
+        }
+
+        .offcanvas {
+          // stylelint-disable declaration-no-important
+          position: static;
+          z-index: auto;
+          flex-grow: 1;
+          width: auto !important;
+          height: auto !important;
+          visibility: visible !important;
+          background-color: transparent !important;
+          border: 0 !important;
+          transform: none !important;
+          @include box-shadow(none);
+          @include transition(none);
+          // stylelint-enable declaration-no-important
+
+          .offcanvas-header {
+            display: none;
+          }
+
+          .offcanvas-body {
+            display: flex;
+            flex-grow: 0;
+            padding: 0;
+            overflow-y: visible;
+          }
+        }
+      }
+    }
+  }
+}
+// scss-docs-end navbar-expand-loop
+
+// Navbar themes
+//
+// Styles for switching between navbars with light or dark background.
+
+.navbar-light {
+  @include deprecate("`.navbar-light`", "v5.2.0", "v6.0.0", true);
+}
+
+.navbar-dark {
+  // scss-docs-start navbar-dark-css-vars
+  --#{$prefix}navbar-color: #{$navbar-dark-color};
+  --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
+  --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
+  --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
+  --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
+  --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
+  --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
+  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
+  // scss-docs-end navbar-dark-css-vars
+}
diff --git a/styles/bootstrap/_offcanvas.scss b/styles/bootstrap/_offcanvas.scss
new file mode 100644
index 0000000..23fc357
--- /dev/null
+++ b/styles/bootstrap/_offcanvas.scss
@@ -0,0 +1,144 @@
+// stylelint-disable function-disallowed-list
+
+%offcanvas-css-vars {
+  // scss-docs-start offcanvas-css-vars
+  --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};
+  --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
+  --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
+  --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
+  --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
+  --#{$prefix}offcanvas-color: #{$offcanvas-color};
+  --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
+  --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
+  --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
+  --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
+  // scss-docs-end offcanvas-css-vars
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+  $next: breakpoint-next($breakpoint, $grid-breakpoints);
+  $infix: breakpoint-infix($next, $grid-breakpoints);
+
+  .offcanvas#{$infix} {
+    @extend %offcanvas-css-vars;
+  }
+}
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+  $next: breakpoint-next($breakpoint, $grid-breakpoints);
+  $infix: breakpoint-infix($next, $grid-breakpoints);
+
+  .offcanvas#{$infix} {
+    @include media-breakpoint-down($next) {
+      position: fixed;
+      bottom: 0;
+      z-index: var(--#{$prefix}offcanvas-zindex);
+      display: flex;
+      flex-direction: column;
+      max-width: 100%;
+      color: var(--#{$prefix}offcanvas-color);
+      visibility: hidden;
+      background-color: var(--#{$prefix}offcanvas-bg);
+      background-clip: padding-box;
+      outline: 0;
+      @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
+      @include transition(transform $offcanvas-transition-duration ease-in-out);
+
+      &.offcanvas-start {
+        top: 0;
+        left: 0;
+        width: var(--#{$prefix}offcanvas-width);
+        border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+        transform: translateX(-100%);
+      }
+
+      &.offcanvas-end {
+        top: 0;
+        right: 0;
+        width: var(--#{$prefix}offcanvas-width);
+        border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+        transform: translateX(100%);
+      }
+
+      &.offcanvas-top {
+        top: 0;
+        right: 0;
+        left: 0;
+        height: var(--#{$prefix}offcanvas-height);
+        max-height: 100%;
+        border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+        transform: translateY(-100%);
+      }
+
+      &.offcanvas-bottom {
+        right: 0;
+        left: 0;
+        height: var(--#{$prefix}offcanvas-height);
+        max-height: 100%;
+        border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
+        transform: translateY(100%);
+      }
+
+      &.showing,
+      &.show:not(.hiding) {
+        transform: none;
+      }
+
+      &.showing,
+      &.hiding,
+      &.show {
+        visibility: visible;
+      }
+    }
+
+    @if not ($infix == "") {
+      @include media-breakpoint-up($next) {
+        --#{$prefix}offcanvas-height: auto;
+        --#{$prefix}offcanvas-border-width: 0;
+        background-color: transparent !important; // stylelint-disable-line declaration-no-important
+
+        .offcanvas-header {
+          display: none;
+        }
+
+        .offcanvas-body {
+          display: flex;
+          flex-grow: 0;
+          padding: 0;
+          overflow-y: visible;
+          // Reset `background-color` in case `.bg-*` classes are used in offcanvas
+          background-color: transparent !important; // stylelint-disable-line declaration-no-important
+        }
+      }
+    }
+  }
+}
+
+.offcanvas-backdrop {
+  @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
+}
+
+.offcanvas-header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+
+  .btn-close {
+    padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
+    margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+    margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
+    margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
+  }
+}
+
+.offcanvas-title {
+  margin-bottom: 0;
+  line-height: $offcanvas-title-line-height;
+}
+
+.offcanvas-body {
+  flex-grow: 1;
+  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
+  overflow-y: auto;
+}
diff --git a/styles/bootstrap/_pagination.scss b/styles/bootstrap/_pagination.scss
new file mode 100644
index 0000000..cf4db3c
--- /dev/null
+++ b/styles/bootstrap/_pagination.scss
@@ -0,0 +1,109 @@
+.pagination {
+  // scss-docs-start pagination-css-vars
+  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
+  --#{$prefix}pagination-padding-y: #{$pagination-padding-y};
+  @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);
+  --#{$prefix}pagination-color: #{$pagination-color};
+  --#{$prefix}pagination-bg: #{$pagination-bg};
+  --#{$prefix}pagination-border-width: #{$pagination-border-width};
+  --#{$prefix}pagination-border-color: #{$pagination-border-color};
+  --#{$prefix}pagination-border-radius: #{$pagination-border-radius};
+  --#{$prefix}pagination-hover-color: #{$pagination-hover-color};
+  --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};
+  --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};
+  --#{$prefix}pagination-focus-color: #{$pagination-focus-color};
+  --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};
+  --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
+  --#{$prefix}pagination-active-color: #{$pagination-active-color};
+  --#{$prefix}pagination-active-bg: #{$pagination-active-bg};
+  --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};
+  --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};
+  --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};
+  --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};
+  // scss-docs-end pagination-css-vars
+
+  display: flex;
+  @include list-unstyled();
+}
+
+.page-link {
+  position: relative;
+  display: block;
+  padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
+  @include font-size(var(--#{$prefix}pagination-font-size));
+  color: var(--#{$prefix}pagination-color);
+  text-decoration: if($link-decoration == none, null, none);
+  background-color: var(--#{$prefix}pagination-bg);
+  border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
+  @include transition($pagination-transition);
+
+  &:hover {
+    z-index: 2;
+    color: var(--#{$prefix}pagination-hover-color);
+    text-decoration: if($link-hover-decoration == underline, none, null);
+    background-color: var(--#{$prefix}pagination-hover-bg);
+    border-color: var(--#{$prefix}pagination-hover-border-color);
+  }
+
+  &:focus {
+    z-index: 3;
+    color: var(--#{$prefix}pagination-focus-color);
+    background-color: var(--#{$prefix}pagination-focus-bg);
+    outline: $pagination-focus-outline;
+    box-shadow: var(--#{$prefix}pagination-focus-box-shadow);
+  }
+
+  &.active,
+  .active > & {
+    z-index: 3;
+    color: var(--#{$prefix}pagination-active-color);
+    @include gradient-bg(var(--#{$prefix}pagination-active-bg));
+    border-color: var(--#{$prefix}pagination-active-border-color);
+  }
+
+  &.disabled,
+  .disabled > & {
+    color: var(--#{$prefix}pagination-disabled-color);
+    pointer-events: none;
+    background-color: var(--#{$prefix}pagination-disabled-bg);
+    border-color: var(--#{$prefix}pagination-disabled-border-color);
+  }
+}
+
+.page-item {
+  &:not(:first-child) .page-link {
+    margin-left: $pagination-margin-start;
+  }
+
+  @if $pagination-margin-start == ($pagination-border-width * -1) {
+    &:first-child {
+      .page-link {
+        @include border-start-radius(var(--#{$prefix}pagination-border-radius));
+      }
+    }
+
+    &:last-child {
+      .page-link {
+        @include border-end-radius(var(--#{$prefix}pagination-border-radius));
+      }
+    }
+  } @else {
+    // Add border-radius to all pageLinks in case they have left margin
+    .page-link {
+      @include border-radius(var(--#{$prefix}pagination-border-radius));
+    }
+  }
+}
+
+
+//
+// Sizing
+//
+
+.pagination-lg {
+  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);
+}
+
+.pagination-sm {
+  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);
+}
diff --git a/styles/bootstrap/_placeholders.scss b/styles/bootstrap/_placeholders.scss
new file mode 100644
index 0000000..6e32e1c
--- /dev/null
+++ b/styles/bootstrap/_placeholders.scss
@@ -0,0 +1,51 @@
+.placeholder {
+  display: inline-block;
+  min-height: 1em;
+  vertical-align: middle;
+  cursor: wait;
+  background-color: currentcolor;
+  opacity: $placeholder-opacity-max;
+
+  &.btn::before {
+    display: inline-block;
+    content: "";
+  }
+}
+
+// Sizing
+.placeholder-xs {
+  min-height: .6em;
+}
+
+.placeholder-sm {
+  min-height: .8em;
+}
+
+.placeholder-lg {
+  min-height: 1.2em;
+}
+
+// Animation
+.placeholder-glow {
+  .placeholder {
+    animation: placeholder-glow 2s ease-in-out infinite;
+  }
+}
+
+@keyframes placeholder-glow {
+  50% {
+    opacity: $placeholder-opacity-min;
+  }
+}
+
+.placeholder-wave {
+  mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);
+  mask-size: 200% 100%;
+  animation: placeholder-wave 2s linear infinite;
+}
+
+@keyframes placeholder-wave {
+  100% {
+    mask-position: -200% 0%;
+  }
+}
diff --git a/styles/bootstrap/_popover.scss b/styles/bootstrap/_popover.scss
new file mode 100644
index 0000000..7b69f62
--- /dev/null
+++ b/styles/bootstrap/_popover.scss
@@ -0,0 +1,196 @@
+.popover {
+  // scss-docs-start popover-css-vars
+  --#{$prefix}popover-zindex: #{$zindex-popover};
+  --#{$prefix}popover-max-width: #{$popover-max-width};
+  @include rfs($popover-font-size, --#{$prefix}popover-font-size);
+  --#{$prefix}popover-bg: #{$popover-bg};
+  --#{$prefix}popover-border-width: #{$popover-border-width};
+  --#{$prefix}popover-border-color: #{$popover-border-color};
+  --#{$prefix}popover-border-radius: #{$popover-border-radius};
+  --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};
+  --#{$prefix}popover-box-shadow: #{$popover-box-shadow};
+  --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};
+  --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};
+  @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);
+  --#{$prefix}popover-header-color: #{$popover-header-color};
+  --#{$prefix}popover-header-bg: #{$popover-header-bg};
+  --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};
+  --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};
+  --#{$prefix}popover-body-color: #{$popover-body-color};
+  --#{$prefix}popover-arrow-width: #{$popover-arrow-width};
+  --#{$prefix}popover-arrow-height: #{$popover-arrow-height};
+  --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);
+  // scss-docs-end popover-css-vars
+
+  z-index: var(--#{$prefix}popover-zindex);
+  display: block;
+  max-width: var(--#{$prefix}popover-max-width);
+  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+  // So reset our font and text properties to avoid inheriting weird values.
+  @include reset-text();
+  @include font-size(var(--#{$prefix}popover-font-size));
+  // Allow breaking very long words so they don't overflow the popover's bounds
+  word-wrap: break-word;
+  background-color: var(--#{$prefix}popover-bg);
+  background-clip: padding-box;
+  border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+  @include border-radius(var(--#{$prefix}popover-border-radius));
+  @include box-shadow(var(--#{$prefix}popover-box-shadow));
+
+  .popover-arrow {
+    display: block;
+    width: var(--#{$prefix}popover-arrow-width);
+    height: var(--#{$prefix}popover-arrow-height);
+
+    &::before,
+    &::after {
+      position: absolute;
+      display: block;
+      content: "";
+      border-color: transparent;
+      border-style: solid;
+      border-width: 0;
+    }
+  }
+}
+
+.bs-popover-top {
+  > .popover-arrow {
+    bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+
+    &::before,
+    &::after {
+      border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+    }
+
+    &::before {
+      bottom: 0;
+      border-top-color: var(--#{$prefix}popover-arrow-border);
+    }
+
+    &::after {
+      bottom: var(--#{$prefix}popover-border-width);
+      border-top-color: var(--#{$prefix}popover-bg);
+    }
+  }
+}
+
+/* rtl:begin:ignore */
+.bs-popover-end {
+  > .popover-arrow {
+    left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+    width: var(--#{$prefix}popover-arrow-height);
+    height: var(--#{$prefix}popover-arrow-width);
+
+    &::before,
+    &::after {
+      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+    }
+
+    &::before {
+      left: 0;
+      border-right-color: var(--#{$prefix}popover-arrow-border);
+    }
+
+    &::after {
+      left: var(--#{$prefix}popover-border-width);
+      border-right-color: var(--#{$prefix}popover-bg);
+    }
+  }
+}
+
+/* rtl:end:ignore */
+
+.bs-popover-bottom {
+  > .popover-arrow {
+    top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+
+    &::before,
+    &::after {
+      border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+    }
+
+    &::before {
+      top: 0;
+      border-bottom-color: var(--#{$prefix}popover-arrow-border);
+    }
+
+    &::after {
+      top: var(--#{$prefix}popover-border-width);
+      border-bottom-color: var(--#{$prefix}popover-bg);
+    }
+  }
+
+  // This will remove the popover-header's border just below the arrow
+  .popover-header::before {
+    position: absolute;
+    top: 0;
+    left: 50%;
+    display: block;
+    width: var(--#{$prefix}popover-arrow-width);
+    margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list
+    content: "";
+    border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);
+  }
+}
+
+/* rtl:begin:ignore */
+.bs-popover-start {
+  > .popover-arrow {
+    right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list
+    width: var(--#{$prefix}popover-arrow-height);
+    height: var(--#{$prefix}popover-arrow-width);
+
+    &::before,
+    &::after {
+      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list
+    }
+
+    &::before {
+      right: 0;
+      border-left-color: var(--#{$prefix}popover-arrow-border);
+    }
+
+    &::after {
+      right: var(--#{$prefix}popover-border-width);
+      border-left-color: var(--#{$prefix}popover-bg);
+    }
+  }
+}
+
+/* rtl:end:ignore */
+
+.bs-popover-auto {
+  &[data-popper-placement^="top"] {
+    @extend .bs-popover-top;
+  }
+  &[data-popper-placement^="right"] {
+    @extend .bs-popover-end;
+  }
+  &[data-popper-placement^="bottom"] {
+    @extend .bs-popover-bottom;
+  }
+  &[data-popper-placement^="left"] {
+    @extend .bs-popover-start;
+  }
+}
+
+// Offset the popover to account for the popover arrow
+.popover-header {
+  padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);
+  margin-bottom: 0; // Reset the default from Reboot
+  @include font-size(var(--#{$prefix}popover-header-font-size));
+  color: var(--#{$prefix}popover-header-color);
+  background-color: var(--#{$prefix}popover-header-bg);
+  border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);
+  @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));
+
+  &:empty {
+    display: none;
+  }
+}
+
+.popover-body {
+  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);
+  color: var(--#{$prefix}popover-body-color);
+}
diff --git a/styles/bootstrap/_progress.scss b/styles/bootstrap/_progress.scss
new file mode 100644
index 0000000..1bfafb5
--- /dev/null
+++ b/styles/bootstrap/_progress.scss
@@ -0,0 +1,59 @@
+// Disable animation if transitions are disabled
+
+// scss-docs-start progress-keyframes
+@if $enable-transitions {
+  @keyframes progress-bar-stripes {
+    0% { background-position-x: $progress-height; }
+  }
+}
+// scss-docs-end progress-keyframes
+
+.progress {
+  // scss-docs-start progress-css-vars
+  --#{$prefix}progress-height: #{$progress-height};
+  @include rfs($progress-font-size, --#{$prefix}progress-font-size);
+  --#{$prefix}progress-bg: #{$progress-bg};
+  --#{$prefix}progress-border-radius: #{$progress-border-radius};
+  --#{$prefix}progress-box-shadow: #{$progress-box-shadow};
+  --#{$prefix}progress-bar-color: #{$progress-bar-color};
+  --#{$prefix}progress-bar-bg: #{$progress-bar-bg};
+  --#{$prefix}progress-bar-transition: #{$progress-bar-transition};
+  // scss-docs-end progress-css-vars
+
+  display: flex;
+  height: var(--#{$prefix}progress-height);
+  overflow: hidden; // force rounded corners by cropping it
+  @include font-size(var(--#{$prefix}progress-font-size));
+  background-color: var(--#{$prefix}progress-bg);
+  @include border-radius(var(--#{$prefix}progress-border-radius));
+  @include box-shadow(var(--#{$prefix}progress-box-shadow));
+}
+
+.progress-bar {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  overflow: hidden;
+  color: var(--#{$prefix}progress-bar-color);
+  text-align: center;
+  white-space: nowrap;
+  background-color: var(--#{$prefix}progress-bar-bg);
+  @include transition(var(--#{$prefix}progress-bar-transition));
+}
+
+.progress-bar-striped {
+  @include gradient-striped();
+  background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);
+}
+
+@if $enable-transitions {
+  .progress-bar-animated {
+    animation: $progress-bar-animation-timing progress-bar-stripes;
+
+    @if $enable-reduced-motion {
+      @media (prefers-reduced-motion: reduce) {
+        animation: none;
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/_reboot.scss b/styles/bootstrap/_reboot.scss
new file mode 100644
index 0000000..8ac7903
--- /dev/null
+++ b/styles/bootstrap/_reboot.scss
@@ -0,0 +1,610 @@
+// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
+
+
+// Reboot
+//
+// Normalization of HTML elements, manually forked from Normalize.css to remove
+// styles targeting irrelevant browsers while applying new styles.
+//
+// Normalize is licensed MIT. https://github.com/necolas/normalize.css
+
+
+// Document
+//
+// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
+
+*,
+*::before,
+*::after {
+  box-sizing: border-box;
+}
+
+
+// Root
+//
+// Ability to the value of the root font sizes, affecting the value of `rem`.
+// null by default, thus nothing is generated.
+
+:root {
+  @if $font-size-root != null {
+    @include font-size(var(--#{$prefix}root-font-size));
+  }
+
+  @if $enable-smooth-scroll {
+    @media (prefers-reduced-motion: no-preference) {
+      scroll-behavior: smooth;
+    }
+  }
+}
+
+
+// Body
+//
+// 1. Remove the margin in all browsers.
+// 2. As a best practice, apply a default `background-color`.
+// 3. Prevent adjustments of font size after orientation changes in iOS.
+// 4. Change the default tap highlight to be completely transparent in iOS.
+
+// scss-docs-start reboot-body-rules
+body {
+  margin: 0; // 1
+  font-family: var(--#{$prefix}body-font-family);
+  @include font-size(var(--#{$prefix}body-font-size));
+  font-weight: var(--#{$prefix}body-font-weight);
+  line-height: var(--#{$prefix}body-line-height);
+  color: var(--#{$prefix}body-color);
+  text-align: var(--#{$prefix}body-text-align);
+  background-color: var(--#{$prefix}body-bg); // 2
+  -webkit-text-size-adjust: 100%; // 3
+  -webkit-tap-highlight-color: rgba($black, 0); // 4
+}
+// scss-docs-end reboot-body-rules
+
+
+// Content grouping
+//
+// 1. Reset Firefox's gray color
+
+hr {
+  margin: $hr-margin-y 0;
+  color: $hr-color; // 1
+  border: 0;
+  border-top: $hr-border-width solid $hr-border-color;
+  opacity: $hr-opacity;
+}
+
+
+// Typography
+//
+// 1. Remove top margins from headings
+//    By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
+//    margin for easier control within type scales as it avoids margin collapsing.
+
+%heading {
+  margin-top: 0; // 1
+  margin-bottom: $headings-margin-bottom;
+  font-family: $headings-font-family;
+  font-style: $headings-font-style;
+  font-weight: $headings-font-weight;
+  line-height: $headings-line-height;
+  color: $headings-color;
+}
+
+h1 {
+  @extend %heading;
+  @include font-size($h1-font-size);
+}
+
+h2 {
+  @extend %heading;
+  @include font-size($h2-font-size);
+}
+
+h3 {
+  @extend %heading;
+  @include font-size($h3-font-size);
+}
+
+h4 {
+  @extend %heading;
+  @include font-size($h4-font-size);
+}
+
+h5 {
+  @extend %heading;
+  @include font-size($h5-font-size);
+}
+
+h6 {
+  @extend %heading;
+  @include font-size($h6-font-size);
+}
+
+
+// Reset margins on paragraphs
+//
+// Similarly, the top margin on `<p>`s get reset. However, we also reset the
+// bottom margin to use `rem` units instead of `em`.
+
+p {
+  margin-top: 0;
+  margin-bottom: $paragraph-margin-bottom;
+}
+
+
+// Abbreviations
+//
+// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
+// 2. Add explicit cursor to indicate changed behavior.
+// 3. Prevent the text-decoration to be skipped.
+
+abbr[title] {
+  text-decoration: underline dotted; // 1
+  cursor: help; // 2
+  text-decoration-skip-ink: none; // 3
+}
+
+
+// Address
+
+address {
+  margin-bottom: 1rem;
+  font-style: normal;
+  line-height: inherit;
+}
+
+
+// Lists
+
+ol,
+ul {
+  padding-left: 2rem;
+}
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  margin-bottom: 0;
+}
+
+dt {
+  font-weight: $dt-font-weight;
+}
+
+// 1. Undo browser default
+
+dd {
+  margin-bottom: .5rem;
+  margin-left: 0; // 1
+}
+
+
+// Blockquote
+
+blockquote {
+  margin: 0 0 1rem;
+}
+
+
+// Strong
+//
+// Add the correct font weight in Chrome, Edge, and Safari
+
+b,
+strong {
+  font-weight: $font-weight-bolder;
+}
+
+
+// Small
+//
+// Add the correct font size in all browsers
+
+small {
+  @include font-size($small-font-size);
+}
+
+
+// Mark
+
+mark {
+  padding: $mark-padding;
+  background-color: var(--#{$prefix}highlight-bg);
+}
+
+
+// Sub and Sup
+//
+// Prevent `sub` and `sup` elements from affecting the line height in
+// all browsers.
+
+sub,
+sup {
+  position: relative;
+  @include font-size($sub-sup-font-size);
+  line-height: 0;
+  vertical-align: baseline;
+}
+
+sub { bottom: -.25em; }
+sup { top: -.5em; }
+
+
+// Links
+
+a {
+  color: var(--#{$prefix}link-color);
+  text-decoration: $link-decoration;
+
+  &:hover {
+    color: var(--#{$prefix}link-hover-color);
+    text-decoration: $link-hover-decoration;
+  }
+}
+
+// And undo these styles for placeholder links/named anchors (without href).
+// It would be more straightforward to just use a[href] in previous block, but that
+// causes specificity issues in many other styles that are too complex to fix.
+// See https://github.com/twbs/bootstrap/issues/19402
+
+a:not([href]):not([class]) {
+  &,
+  &:hover {
+    color: inherit;
+    text-decoration: none;
+  }
+}
+
+
+// Code
+
+pre,
+code,
+kbd,
+samp {
+  font-family: $font-family-code;
+  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
+}
+
+// 1. Remove browser default top margin
+// 2. Reset browser default of `1em` to use `rem`s
+// 3. Don't allow content to break outside
+
+pre {
+  display: block;
+  margin-top: 0; // 1
+  margin-bottom: 1rem; // 2
+  overflow: auto; // 3
+  @include font-size($code-font-size);
+  color: $pre-color;
+
+  // Account for some code outputs that place code tags in pre tags
+  code {
+    @include font-size(inherit);
+    color: inherit;
+    word-break: normal;
+  }
+}
+
+code {
+  @include font-size($code-font-size);
+  color: var(--#{$prefix}code-color);
+  word-wrap: break-word;
+
+  // Streamline the style when inside anchors to avoid broken underline and more
+  a > & {
+    color: inherit;
+  }
+}
+
+kbd {
+  padding: $kbd-padding-y $kbd-padding-x;
+  @include font-size($kbd-font-size);
+  color: $kbd-color;
+  background-color: $kbd-bg;
+  @include border-radius($border-radius-sm);
+
+  kbd {
+    padding: 0;
+    @include font-size(1em);
+    font-weight: $nested-kbd-font-weight;
+  }
+}
+
+
+// Figures
+//
+// Apply a consistent margin strategy (matches our type styles).
+
+figure {
+  margin: 0 0 1rem;
+}
+
+
+// Images and content
+
+img,
+svg {
+  vertical-align: middle;
+}
+
+
+// Tables
+//
+// Prevent double borders
+
+table {
+  caption-side: bottom;
+  border-collapse: collapse;
+}
+
+caption {
+  padding-top: $table-cell-padding-y;
+  padding-bottom: $table-cell-padding-y;
+  color: $table-caption-color;
+  text-align: left;
+}
+
+// 1. Removes font-weight bold by inheriting
+// 2. Matches default `<td>` alignment by inheriting `text-align`.
+// 3. Fix alignment for Safari
+
+th {
+  font-weight: $table-th-font-weight; // 1
+  text-align: inherit; // 2
+  text-align: -webkit-match-parent; // 3
+}
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+  border-color: inherit;
+  border-style: solid;
+  border-width: 0;
+}
+
+
+// Forms
+//
+// 1. Allow labels to use `margin` for spacing.
+
+label {
+  display: inline-block; // 1
+}
+
+// Remove the default `border-radius` that macOS Chrome adds.
+// See https://github.com/twbs/bootstrap/issues/24093
+
+button {
+  // stylelint-disable-next-line property-disallowed-list
+  border-radius: 0;
+}
+
+// Explicitly remove focus outline in Chromium when it shouldn't be
+// visible (e.g. as result of mouse click or touch tap). It already
+// should be doing this automatically, but seems to currently be
+// confused and applies its very visible two-tone outline anyway.
+
+button:focus:not(:focus-visible) {
+  outline: 0;
+}
+
+// 1. Remove the margin in Firefox and Safari
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0; // 1
+  font-family: inherit;
+  @include font-size(inherit);
+  line-height: inherit;
+}
+
+// Remove the inheritance of text transform in Firefox
+button,
+select {
+  text-transform: none;
+}
+// Set the cursor for non-`<button>` buttons
+//
+// Details at https://github.com/twbs/bootstrap/pull/30562
+[role="button"] {
+  cursor: pointer;
+}
+
+select {
+  // Remove the inheritance of word-wrap in Safari.
+  // See https://github.com/twbs/bootstrap/issues/24990
+  word-wrap: normal;
+
+  // Undo the opacity change from Chrome
+  &:disabled {
+    opacity: 1;
+  }
+}
+
+// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.
+// See https://stackoverflow.com/a/54997118
+
+[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
+  display: none !important;
+}
+
+// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+//    controls in Android 4.
+// 2. Correct the inability to style clickable types in iOS and Safari.
+// 3. Opinionated: add "hand" cursor to non-disabled button elements.
+
+button,
+[type="button"], // 1
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button; // 2
+
+  @if $enable-button-pointers {
+    &:not(:disabled) {
+      cursor: pointer; // 3
+    }
+  }
+}
+
+// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
+
+::-moz-focus-inner {
+  padding: 0;
+  border-style: none;
+}
+
+// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.
+
+textarea {
+  resize: vertical; // 1
+}
+
+// 1. Browsers set a default `min-width: min-content;` on fieldsets,
+//    unlike e.g. `<div>`s, which have `min-width: 0;` by default.
+//    So we reset that to ensure fieldsets behave more like a standard block element.
+//    See https://github.com/twbs/bootstrap/issues/12359
+//    and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
+// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.
+
+fieldset {
+  min-width: 0; // 1
+  padding: 0; // 2
+  margin: 0; // 2
+  border: 0; // 2
+}
+
+// 1. By using `float: left`, the legend will behave like a block element.
+//    This way the border of a fieldset wraps around the legend if present.
+// 2. Fix wrapping bug.
+//    See https://github.com/twbs/bootstrap/issues/29712
+
+legend {
+  float: left; // 1
+  width: 100%;
+  padding: 0;
+  margin-bottom: $legend-margin-bottom;
+  @include font-size($legend-font-size);
+  font-weight: $legend-font-weight;
+  line-height: inherit;
+
+  + * {
+    clear: left; // 2
+  }
+}
+
+// Fix height of inputs with a type of datetime-local, date, month, week, or time
+// See https://github.com/twbs/bootstrap/issues/18842
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+  padding: 0;
+}
+
+::-webkit-inner-spin-button {
+  height: auto;
+}
+
+// 1. Correct the outline style in Safari.
+// 2. This overrides the extra rounded corners on search inputs in iOS so that our
+//    `.form-control` class can properly style them. Note that this cannot simply
+//    be added to `.form-control` as it's not specific enough. For details, see
+//    https://github.com/twbs/bootstrap/issues/11586.
+
+[type="search"] {
+  outline-offset: -2px; // 1
+  -webkit-appearance: textfield; // 2
+}
+
+// 1. A few input types should stay LTR
+// See https://rtlstyling.com/posts/rtl-styling#form-inputs
+// 2. RTL only output
+// See https://rtlcss.com/learn/usage-guide/control-directives/#raw
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+  direction: ltr;
+}
+*/
+
+// Remove the inner padding in Chrome and Safari on macOS.
+
+::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+// Remove padding around color pickers in webkit browsers
+
+::-webkit-color-swatch-wrapper {
+  padding: 0;
+}
+
+
+// 1. Inherit font family and line height for file input buttons
+// 2. Correct the inability to style clickable types in iOS and Safari.
+
+::file-selector-button {
+  font: inherit; // 1
+  -webkit-appearance: button; // 2
+}
+
+// Correct element displays
+
+output {
+  display: inline-block;
+}
+
+// Remove border from iframe
+
+iframe {
+  border: 0;
+}
+
+// Summary
+//
+// 1. Add the correct display in all browsers
+
+summary {
+  display: list-item; // 1
+  cursor: pointer;
+}
+
+
+// Progress
+//
+// Add the correct vertical alignment in Chrome, Firefox, and Opera.
+
+progress {
+  vertical-align: baseline;
+}
+
+
+// Hidden attribute
+//
+// Always hide an element with the `hidden` HTML attribute.
+
+[hidden] {
+  display: none !important;
+}
diff --git a/styles/bootstrap/_root.scss b/styles/bootstrap/_root.scss
new file mode 100644
index 0000000..e64ae04
--- /dev/null
+++ b/styles/bootstrap/_root.scss
@@ -0,0 +1,73 @@
+:root {
+  // Note: Custom variable values only support SassScript inside `#{}`.
+
+  // Colors
+  //
+  // Generate palettes for full colors, grays, and theme colors.
+
+  @each $color, $value in $colors {
+    --#{$prefix}#{$color}: #{$value};
+  }
+
+  @each $color, $value in $grays {
+    --#{$prefix}gray-#{$color}: #{$value};
+  }
+
+  @each $color, $value in $theme-colors {
+    --#{$prefix}#{$color}: #{$value};
+  }
+
+  @each $color, $value in $theme-colors-rgb {
+    --#{$prefix}#{$color}-rgb: #{$value};
+  }
+
+  --#{$prefix}white-rgb: #{to-rgb($white)};
+  --#{$prefix}black-rgb: #{to-rgb($black)};
+  --#{$prefix}body-color-rgb: #{to-rgb($body-color)};
+  --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
+
+  // Fonts
+
+  // Note: Use `inspect` for lists so that quoted items keep the quotes.
+  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
+  --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
+  --#{$prefix}font-monospace: #{inspect($font-family-monospace)};
+  --#{$prefix}gradient: #{$gradient};
+
+  // Root and body
+  // scss-docs-start root-body-variables
+  @if $font-size-root != null {
+    --#{$prefix}root-font-size: #{$font-size-root};
+  }
+  --#{$prefix}body-font-family: #{$font-family-base};
+  @include rfs($font-size-base, --#{$prefix}body-font-size);
+  --#{$prefix}body-font-weight: #{$font-weight-base};
+  --#{$prefix}body-line-height: #{$line-height-base};
+  --#{$prefix}body-color: #{$body-color};
+  @if $body-text-align != null {
+    --#{$prefix}body-text-align: #{$body-text-align};
+  }
+  --#{$prefix}body-bg: #{$body-bg};
+  // scss-docs-end root-body-variables
+
+  // scss-docs-start root-border-var
+  --#{$prefix}border-width: #{$border-width};
+  --#{$prefix}border-style: #{$border-style};
+  --#{$prefix}border-color: #{$border-color};
+  --#{$prefix}border-color-translucent: #{$border-color-translucent};
+
+  --#{$prefix}border-radius: #{$border-radius};
+  --#{$prefix}border-radius-sm: #{$border-radius-sm};
+  --#{$prefix}border-radius-lg: #{$border-radius-lg};
+  --#{$prefix}border-radius-xl: #{$border-radius-xl};
+  --#{$prefix}border-radius-2xl: #{$border-radius-2xl};
+  --#{$prefix}border-radius-pill: #{$border-radius-pill};
+  // scss-docs-end root-border-var
+
+  --#{$prefix}link-color: #{$link-color};
+  --#{$prefix}link-hover-color: #{$link-hover-color};
+
+  --#{$prefix}code-color: #{$code-color};
+
+  --#{$prefix}highlight-bg: #{$mark-bg};
+}
diff --git a/styles/bootstrap/_spinners.scss b/styles/bootstrap/_spinners.scss
new file mode 100644
index 0000000..ec84732
--- /dev/null
+++ b/styles/bootstrap/_spinners.scss
@@ -0,0 +1,85 @@
+//
+// Rotating border
+//
+
+.spinner-grow,
+.spinner-border {
+  display: inline-block;
+  width: var(--#{$prefix}spinner-width);
+  height: var(--#{$prefix}spinner-height);
+  vertical-align: var(--#{$prefix}spinner-vertical-align);
+  // stylelint-disable-next-line property-disallowed-list
+  border-radius: 50%;
+  animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);
+}
+
+// scss-docs-start spinner-border-keyframes
+@keyframes spinner-border {
+  to { transform: rotate(360deg) #{"/* rtl:ignore */"}; }
+}
+// scss-docs-end spinner-border-keyframes
+
+.spinner-border {
+  // scss-docs-start spinner-border-css-vars
+  --#{$prefix}spinner-width: #{$spinner-width};
+  --#{$prefix}spinner-height: #{$spinner-height};
+  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+  --#{$prefix}spinner-border-width: #{$spinner-border-width};
+  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+  --#{$prefix}spinner-animation-name: spinner-border;
+  // scss-docs-end spinner-border-css-vars
+
+  border: var(--#{$prefix}spinner-border-width) solid currentcolor;
+  border-right-color: transparent;
+}
+
+.spinner-border-sm {
+  // scss-docs-start spinner-border-sm-css-vars
+  --#{$prefix}spinner-width: #{$spinner-width-sm};
+  --#{$prefix}spinner-height: #{$spinner-height-sm};
+  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};
+  // scss-docs-end spinner-border-sm-css-vars
+}
+
+//
+// Growing circle
+//
+
+// scss-docs-start spinner-grow-keyframes
+@keyframes spinner-grow {
+  0% {
+    transform: scale(0);
+  }
+  50% {
+    opacity: 1;
+    transform: none;
+  }
+}
+// scss-docs-end spinner-grow-keyframes
+
+.spinner-grow {
+  // scss-docs-start spinner-grow-css-vars
+  --#{$prefix}spinner-width: #{$spinner-width};
+  --#{$prefix}spinner-height: #{$spinner-height};
+  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};
+  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};
+  --#{$prefix}spinner-animation-name: spinner-grow;
+  // scss-docs-end spinner-grow-css-vars
+
+  background-color: currentcolor;
+  opacity: 0;
+}
+
+.spinner-grow-sm {
+  --#{$prefix}spinner-width: #{$spinner-width-sm};
+  --#{$prefix}spinner-height: #{$spinner-height-sm};
+}
+
+@if $enable-reduced-motion {
+  @media (prefers-reduced-motion: reduce) {
+    .spinner-border,
+    .spinner-grow {
+      --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};
+    }
+  }
+}
diff --git a/styles/bootstrap/_tables.scss b/styles/bootstrap/_tables.scss
new file mode 100644
index 0000000..1fdd43c
--- /dev/null
+++ b/styles/bootstrap/_tables.scss
@@ -0,0 +1,164 @@
+//
+// Basic Bootstrap table
+//
+
+.table {
+  --#{$prefix}table-color: #{$table-color};
+  --#{$prefix}table-bg: #{$table-bg};
+  --#{$prefix}table-border-color: #{$table-border-color};
+  --#{$prefix}table-accent-bg: #{$table-accent-bg};
+  --#{$prefix}table-striped-color: #{$table-striped-color};
+  --#{$prefix}table-striped-bg: #{$table-striped-bg};
+  --#{$prefix}table-active-color: #{$table-active-color};
+  --#{$prefix}table-active-bg: #{$table-active-bg};
+  --#{$prefix}table-hover-color: #{$table-hover-color};
+  --#{$prefix}table-hover-bg: #{$table-hover-bg};
+
+  width: 100%;
+  margin-bottom: $spacer;
+  color: var(--#{$prefix}table-color);
+  vertical-align: $table-cell-vertical-align;
+  border-color: var(--#{$prefix}table-border-color);
+
+  // Target th & td
+  // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.
+  // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).
+  // Another advantage is that this generates less code and makes the selector less specific making it easier to override.
+  // stylelint-disable-next-line selector-max-universal
+  > :not(caption) > * > * {
+    padding: $table-cell-padding-y $table-cell-padding-x;
+    background-color: var(--#{$prefix}table-bg);
+    border-bottom-width: $table-border-width;
+    box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);
+  }
+
+  > tbody {
+    vertical-align: inherit;
+  }
+
+  > thead {
+    vertical-align: bottom;
+  }
+}
+
+.table-group-divider {
+  border-top: ($table-border-width * 2) solid $table-group-separator-color;
+}
+
+//
+// Change placement of captions with a class
+//
+
+.caption-top {
+  caption-side: top;
+}
+
+
+//
+// Condensed table w/ half padding
+//
+
+.table-sm {
+  // stylelint-disable-next-line selector-max-universal
+  > :not(caption) > * > * {
+    padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;
+  }
+}
+
+
+// Border versions
+//
+// Add or remove borders all around the table and between all the columns.
+//
+// When borders are added on all sides of the cells, the corners can render odd when
+// these borders do not have the same color or if they are semi-transparent.
+// Therefor we add top and border bottoms to the `tr`s and left and right borders
+// to the `td`s or `th`s
+
+.table-bordered {
+  > :not(caption) > * {
+    border-width: $table-border-width 0;
+
+    // stylelint-disable-next-line selector-max-universal
+    > * {
+      border-width: 0 $table-border-width;
+    }
+  }
+}
+
+.table-borderless {
+  // stylelint-disable-next-line selector-max-universal
+  > :not(caption) > * > * {
+    border-bottom-width: 0;
+  }
+
+  > :not(:first-child) {
+    border-top-width: 0;
+  }
+}
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+// For rows
+.table-striped {
+  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {
+    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+    color: var(--#{$prefix}table-striped-color);
+  }
+}
+
+// For columns
+.table-striped-columns {
+  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {
+    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);
+    color: var(--#{$prefix}table-striped-color);
+  }
+}
+
+// Active table
+//
+// The `.table-active` class can be added to highlight rows or cells
+
+.table-active {
+  --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);
+  color: var(--#{$prefix}table-active-color);
+}
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+  > tbody > tr:hover > * {
+    --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);
+    color: var(--#{$prefix}table-hover-color);
+  }
+}
+
+
+// Table variants
+//
+// Table variants set the table cell backgrounds, border colors
+// and the colors of the striped, hovered & active tables
+
+@each $color, $value in $table-variants {
+  @include table-variant($color, $value);
+}
+
+// Responsive tables
+//
+// Generate series of `.table-responsive-*` classes for configuring the screen
+// size of where your table will overflow.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+  @include media-breakpoint-down($breakpoint) {
+    .table-responsive#{$infix} {
+      overflow-x: auto;
+      -webkit-overflow-scrolling: touch;
+    }
+  }
+}
diff --git a/styles/bootstrap/_toasts.scss b/styles/bootstrap/_toasts.scss
new file mode 100644
index 0000000..2ce378d
--- /dev/null
+++ b/styles/bootstrap/_toasts.scss
@@ -0,0 +1,73 @@
+.toast {
+  // scss-docs-start toast-css-vars
+  --#{$prefix}toast-zindex: #{$zindex-toast};
+  --#{$prefix}toast-padding-x: #{$toast-padding-x};
+  --#{$prefix}toast-padding-y: #{$toast-padding-y};
+  --#{$prefix}toast-spacing: #{$toast-spacing};
+  --#{$prefix}toast-max-width: #{$toast-max-width};
+  @include rfs($toast-font-size, --#{$prefix}toast-font-size);
+  --#{$prefix}toast-color: #{$toast-color};
+  --#{$prefix}toast-bg: #{$toast-background-color};
+  --#{$prefix}toast-border-width: #{$toast-border-width};
+  --#{$prefix}toast-border-color: #{$toast-border-color};
+  --#{$prefix}toast-border-radius: #{$toast-border-radius};
+  --#{$prefix}toast-box-shadow: #{$toast-box-shadow};
+  --#{$prefix}toast-header-color: #{$toast-header-color};
+  --#{$prefix}toast-header-bg: #{$toast-header-background-color};
+  --#{$prefix}toast-header-border-color: #{$toast-header-border-color};
+  // scss-docs-end toast-css-vars
+
+  width: var(--#{$prefix}toast-max-width);
+  max-width: 100%;
+  @include font-size(var(--#{$prefix}toast-font-size));
+  color: var(--#{$prefix}toast-color);
+  pointer-events: auto;
+  background-color: var(--#{$prefix}toast-bg);
+  background-clip: padding-box;
+  border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);
+  box-shadow: var(--#{$prefix}toast-box-shadow);
+  @include border-radius(var(--#{$prefix}toast-border-radius));
+
+  &.showing {
+    opacity: 0;
+  }
+
+  &:not(.show) {
+    display: none;
+  }
+}
+
+.toast-container {
+  --#{$prefix}toast-zindex: #{$zindex-toast};
+
+  position: absolute;
+  z-index: var(--#{$prefix}toast-zindex);
+  width: max-content;
+  max-width: 100%;
+  pointer-events: none;
+
+  > :not(:last-child) {
+    margin-bottom: var(--#{$prefix}toast-spacing);
+  }
+}
+
+.toast-header {
+  display: flex;
+  align-items: center;
+  padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);
+  color: var(--#{$prefix}toast-header-color);
+  background-color: var(--#{$prefix}toast-header-bg);
+  background-clip: padding-box;
+  border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);
+  @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));
+
+  .btn-close {
+    margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list
+    margin-left: var(--#{$prefix}toast-padding-x);
+  }
+}
+
+.toast-body {
+  padding: var(--#{$prefix}toast-padding-x);
+  word-wrap: break-word;
+}
diff --git a/styles/bootstrap/_tooltip.scss b/styles/bootstrap/_tooltip.scss
new file mode 100644
index 0000000..7da3df3
--- /dev/null
+++ b/styles/bootstrap/_tooltip.scss
@@ -0,0 +1,120 @@
+// Base class
+.tooltip {
+  // scss-docs-start tooltip-css-vars
+  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
+  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
+  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
+  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
+  --#{$prefix}tooltip-margin: #{$tooltip-margin};
+  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
+  --#{$prefix}tooltip-color: #{$tooltip-color};
+  --#{$prefix}tooltip-bg: #{$tooltip-bg};
+  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
+  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
+  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
+  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
+  // scss-docs-end tooltip-css-vars
+
+  z-index: var(--#{$prefix}tooltip-zindex);
+  display: block;
+  padding: var(--#{$prefix}tooltip-arrow-height);
+  margin: var(--#{$prefix}tooltip-margin);
+  @include deprecate("`$tooltip-margin`", "v5", "v5.x", true);
+  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+  // So reset our font and text properties to avoid inheriting weird values.
+  @include reset-text();
+  @include font-size(var(--#{$prefix}tooltip-font-size));
+  // Allow breaking very long words so they don't overflow the tooltip's bounds
+  word-wrap: break-word;
+  opacity: 0;
+
+  &.show { opacity: var(--#{$prefix}tooltip-opacity); }
+
+  .tooltip-arrow {
+    display: block;
+    width: var(--#{$prefix}tooltip-arrow-width);
+    height: var(--#{$prefix}tooltip-arrow-height);
+
+    &::before {
+      position: absolute;
+      content: "";
+      border-color: transparent;
+      border-style: solid;
+    }
+  }
+}
+
+.bs-tooltip-top .tooltip-arrow {
+  bottom: 0;
+
+  &::before {
+    top: -1px;
+    border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+    border-top-color: var(--#{$prefix}tooltip-bg);
+  }
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow {
+  left: 0;
+  width: var(--#{$prefix}tooltip-arrow-height);
+  height: var(--#{$prefix}tooltip-arrow-width);
+
+  &::before {
+    right: -1px;
+    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list
+    border-right-color: var(--#{$prefix}tooltip-bg);
+  }
+}
+
+/* rtl:end:ignore */
+
+.bs-tooltip-bottom .tooltip-arrow {
+  top: 0;
+
+  &::before {
+    bottom: -1px;
+    border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+    border-bottom-color: var(--#{$prefix}tooltip-bg);
+  }
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow {
+  right: 0;
+  width: var(--#{$prefix}tooltip-arrow-height);
+  height: var(--#{$prefix}tooltip-arrow-width);
+
+  &::before {
+    left: -1px;
+    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list
+    border-left-color: var(--#{$prefix}tooltip-bg);
+  }
+}
+
+/* rtl:end:ignore */
+
+.bs-tooltip-auto {
+  &[data-popper-placement^="top"] {
+    @extend .bs-tooltip-top;
+  }
+  &[data-popper-placement^="right"] {
+    @extend .bs-tooltip-end;
+  }
+  &[data-popper-placement^="bottom"] {
+    @extend .bs-tooltip-bottom;
+  }
+  &[data-popper-placement^="left"] {
+    @extend .bs-tooltip-start;
+  }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+  max-width: var(--#{$prefix}tooltip-max-width);
+  padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
+  color: var(--#{$prefix}tooltip-color);
+  text-align: center;
+  background-color: var(--#{$prefix}tooltip-bg);
+  @include border-radius(var(--#{$prefix}tooltip-border-radius));
+}
diff --git a/styles/bootstrap/_transitions.scss b/styles/bootstrap/_transitions.scss
new file mode 100644
index 0000000..bfb26aa
--- /dev/null
+++ b/styles/bootstrap/_transitions.scss
@@ -0,0 +1,27 @@
+.fade {
+  @include transition($transition-fade);
+
+  &:not(.show) {
+    opacity: 0;
+  }
+}
+
+// scss-docs-start collapse-classes
+.collapse {
+  &:not(.show) {
+    display: none;
+  }
+}
+
+.collapsing {
+  height: 0;
+  overflow: hidden;
+  @include transition($transition-collapse);
+
+  &.collapse-horizontal {
+    width: 0;
+    height: auto;
+    @include transition($transition-collapse-width);
+  }
+}
+// scss-docs-end collapse-classes
diff --git a/styles/bootstrap/_type.scss b/styles/bootstrap/_type.scss
new file mode 100644
index 0000000..37d64bf
--- /dev/null
+++ b/styles/bootstrap/_type.scss
@@ -0,0 +1,106 @@
+//
+// Headings
+//
+.h1 {
+  @extend h1;
+}
+
+.h2 {
+  @extend h2;
+}
+
+.h3 {
+  @extend h3;
+}
+
+.h4 {
+  @extend h4;
+}
+
+.h5 {
+  @extend h5;
+}
+
+.h6 {
+  @extend h6;
+}
+
+
+.lead {
+  @include font-size($lead-font-size);
+  font-weight: $lead-font-weight;
+}
+
+// Type display classes
+@each $display, $font-size in $display-font-sizes {
+  .display-#{$display} {
+    @include font-size($font-size);
+    font-family: $display-font-family;
+    font-style: $display-font-style;
+    font-weight: $display-font-weight;
+    line-height: $display-line-height;
+  }
+}
+
+//
+// Emphasis
+//
+.small {
+  @extend small;
+}
+
+.mark {
+  @extend mark;
+}
+
+//
+// Lists
+//
+
+.list-unstyled {
+  @include list-unstyled();
+}
+
+// Inline turns list items into inline-block
+.list-inline {
+  @include list-unstyled();
+}
+.list-inline-item {
+  display: inline-block;
+
+  &:not(:last-child) {
+    margin-right: $list-inline-padding;
+  }
+}
+
+
+//
+// Misc
+//
+
+// Builds on `abbr`
+.initialism {
+  @include font-size($initialism-font-size);
+  text-transform: uppercase;
+}
+
+// Blockquotes
+.blockquote {
+  margin-bottom: $blockquote-margin-y;
+  @include font-size($blockquote-font-size);
+
+  > :last-child {
+    margin-bottom: 0;
+  }
+}
+
+.blockquote-footer {
+  margin-top: -$blockquote-margin-y;
+  margin-bottom: $blockquote-margin-y;
+  @include font-size($blockquote-footer-font-size);
+  color: $blockquote-footer-color;
+
+  &::before {
+    content: "\2014\00A0"; // em dash, nbsp
+  }
+}
diff --git a/styles/bootstrap/_utilities.scss b/styles/bootstrap/_utilities.scss
new file mode 100644
index 0000000..1e0d141
--- /dev/null
+++ b/styles/bootstrap/_utilities.scss
@@ -0,0 +1,647 @@
+// Utilities
+
+$utilities: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-merge(
+  (
+    // scss-docs-start utils-vertical-align
+    "align": (
+      property: vertical-align,
+      class: align,
+      values: baseline top middle bottom text-bottom text-top
+    ),
+    // scss-docs-end utils-vertical-align
+    // scss-docs-start utils-float
+    "float": (
+      responsive: true,
+      property: float,
+      values: (
+        start: left,
+        end: right,
+        none: none,
+      )
+    ),
+    // scss-docs-end utils-float
+    // Opacity utilities
+    // scss-docs-start utils-opacity
+    "opacity": (
+      property: opacity,
+      values: (
+        0: 0,
+        25: .25,
+        50: .5,
+        75: .75,
+        100: 1,
+      )
+    ),
+    // scss-docs-end utils-opacity
+    // scss-docs-start utils-overflow
+    "overflow": (
+      property: overflow,
+      values: auto hidden visible scroll,
+    ),
+    // scss-docs-end utils-overflow
+    // scss-docs-start utils-display
+    "display": (
+      responsive: true,
+      print: true,
+      property: display,
+      class: d,
+      values: inline inline-block block grid table table-row table-cell flex inline-flex none
+    ),
+    // scss-docs-end utils-display
+    // scss-docs-start utils-shadow
+    "shadow": (
+      property: box-shadow,
+      class: shadow,
+      values: (
+        null: $box-shadow,
+        sm: $box-shadow-sm,
+        lg: $box-shadow-lg,
+        none: none,
+      )
+    ),
+    // scss-docs-end utils-shadow
+    // scss-docs-start utils-position
+    "position": (
+      property: position,
+      values: static relative absolute fixed sticky
+    ),
+    "top": (
+      property: top,
+      values: $position-values
+    ),
+    "bottom": (
+      property: bottom,
+      values: $position-values
+    ),
+    "start": (
+      property: left,
+      class: start,
+      values: $position-values
+    ),
+    "end": (
+      property: right,
+      class: end,
+      values: $position-values
+    ),
+    "translate-middle": (
+      property: transform,
+      class: translate-middle,
+      values: (
+        null: translate(-50%, -50%),
+        x: translateX(-50%),
+        y: translateY(-50%),
+      )
+    ),
+    // scss-docs-end utils-position
+    // scss-docs-start utils-borders
+    "border": (
+      property: border,
+      values: (
+        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+        0: 0,
+      )
+    ),
+    "border-top": (
+      property: border-top,
+      values: (
+        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+        0: 0,
+      )
+    ),
+    "border-end": (
+      property: border-right,
+      class: border-end,
+      values: (
+        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+        0: 0,
+      )
+    ),
+    "border-bottom": (
+      property: border-bottom,
+      values: (
+        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+        0: 0,
+      )
+    ),
+    "border-start": (
+      property: border-left,
+      class: border-start,
+      values: (
+        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),
+        0: 0,
+      )
+    ),
+    "border-color": (
+      property: border-color,
+      class: border,
+      local-vars: (
+        "border-opacity": 1
+      ),
+      values: $utilities-border-colors
+    ),
+    "border-width": (
+      css-var: true,
+      css-variable-name: border-width,
+      class: border,
+      values: $border-widths
+    ),
+    "border-opacity": (
+      css-var: true,
+      class: border-opacity,
+      values: (
+        10: .1,
+        25: .25,
+        50: .5,
+        75: .75,
+        100: 1
+      )
+    ),
+    // scss-docs-end utils-borders
+    // Sizing utilities
+    // scss-docs-start utils-sizing
+    "width": (
+      property: width,
+      class: w,
+      values: (
+        25: 25%,
+        50: 50%,
+        75: 75%,
+        100: 100%,
+        auto: auto
+      )
+    ),
+    "max-width": (
+      property: max-width,
+      class: mw,
+      values: (100: 100%)
+    ),
+    "viewport-width": (
+      property: width,
+      class: vw,
+      values: (100: 100vw)
+    ),
+    "min-viewport-width": (
+      property: min-width,
+      class: min-vw,
+      values: (100: 100vw)
+    ),
+    "height": (
+      property: height,
+      class: h,
+      values: (
+        25: 25%,
+        50: 50%,
+        75: 75%,
+        100: 100%,
+        auto: auto
+      )
+    ),
+    "max-height": (
+      property: max-height,
+      class: mh,
+      values: (100: 100%)
+    ),
+    "viewport-height": (
+      property: height,
+      class: vh,
+      values: (100: 100vh)
+    ),
+    "min-viewport-height": (
+      property: min-height,
+      class: min-vh,
+      values: (100: 100vh)
+    ),
+    // scss-docs-end utils-sizing
+    // Flex utilities
+    // scss-docs-start utils-flex
+    "flex": (
+      responsive: true,
+      property: flex,
+      values: (fill: 1 1 auto)
+    ),
+    "flex-direction": (
+      responsive: true,
+      property: flex-direction,
+      class: flex,
+      values: row column row-reverse column-reverse
+    ),
+    "flex-grow": (
+      responsive: true,
+      property: flex-grow,
+      class: flex,
+      values: (
+        grow-0: 0,
+        grow-1: 1,
+      )
+    ),
+    "flex-shrink": (
+      responsive: true,
+      property: flex-shrink,
+      class: flex,
+      values: (
+        shrink-0: 0,
+        shrink-1: 1,
+      )
+    ),
+    "flex-wrap": (
+      responsive: true,
+      property: flex-wrap,
+      class: flex,
+      values: wrap nowrap wrap-reverse
+    ),
+    "justify-content": (
+      responsive: true,
+      property: justify-content,
+      values: (
+        start: flex-start,
+        end: flex-end,
+        center: center,
+        between: space-between,
+        around: space-around,
+        evenly: space-evenly,
+      )
+    ),
+    "align-items": (
+      responsive: true,
+      property: align-items,
+      values: (
+        start: flex-start,
+        end: flex-end,
+        center: center,
+        baseline: baseline,
+        stretch: stretch,
+      )
+    ),
+    "align-content": (
+      responsive: true,
+      property: align-content,
+      values: (
+        start: flex-start,
+        end: flex-end,
+        center: center,
+        between: space-between,
+        around: space-around,
+        stretch: stretch,
+      )
+    ),
+    "align-self": (
+      responsive: true,
+      property: align-self,
+      values: (
+        auto: auto,
+        start: flex-start,
+        end: flex-end,
+        center: center,
+        baseline: baseline,
+        stretch: stretch,
+      )
+    ),
+    "order": (
+      responsive: true,
+      property: order,
+      values: (
+        first: -1,
+        0: 0,
+        1: 1,
+        2: 2,
+        3: 3,
+        4: 4,
+        5: 5,
+        last: 6,
+      ),
+    ),
+    // scss-docs-end utils-flex
+    // Margin utilities
+    // scss-docs-start utils-spacing
+    "margin": (
+      responsive: true,
+      property: margin,
+      class: m,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-x": (
+      responsive: true,
+      property: margin-right margin-left,
+      class: mx,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-y": (
+      responsive: true,
+      property: margin-top margin-bottom,
+      class: my,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-top": (
+      responsive: true,
+      property: margin-top,
+      class: mt,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-end": (
+      responsive: true,
+      property: margin-right,
+      class: me,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-bottom": (
+      responsive: true,
+      property: margin-bottom,
+      class: mb,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    "margin-start": (
+      responsive: true,
+      property: margin-left,
+      class: ms,
+      values: map-merge($spacers, (auto: auto))
+    ),
+    // Negative margin utilities
+    "negative-margin": (
+      responsive: true,
+      property: margin,
+      class: m,
+      values: $negative-spacers
+    ),
+    "negative-margin-x": (
+      responsive: true,
+      property: margin-right margin-left,
+      class: mx,
+      values: $negative-spacers
+    ),
+    "negative-margin-y": (
+      responsive: true,
+      property: margin-top margin-bottom,
+      class: my,
+      values: $negative-spacers
+    ),
+    "negative-margin-top": (
+      responsive: true,
+      property: margin-top,
+      class: mt,
+      values: $negative-spacers
+    ),
+    "negative-margin-end": (
+      responsive: true,
+      property: margin-right,
+      class: me,
+      values: $negative-spacers
+    ),
+    "negative-margin-bottom": (
+      responsive: true,
+      property: margin-bottom,
+      class: mb,
+      values: $negative-spacers
+    ),
+    "negative-margin-start": (
+      responsive: true,
+      property: margin-left,
+      class: ms,
+      values: $negative-spacers
+    ),
+    // Padding utilities
+    "padding": (
+      responsive: true,
+      property: padding,
+      class: p,
+      values: $spacers
+    ),
+    "padding-x": (
+      responsive: true,
+      property: padding-right padding-left,
+      class: px,
+      values: $spacers
+    ),
+    "padding-y": (
+      responsive: true,
+      property: padding-top padding-bottom,
+      class: py,
+      values: $spacers
+    ),
+    "padding-top": (
+      responsive: true,
+      property: padding-top,
+      class: pt,
+      values: $spacers
+    ),
+    "padding-end": (
+      responsive: true,
+      property: padding-right,
+      class: pe,
+      values: $spacers
+    ),
+    "padding-bottom": (
+      responsive: true,
+      property: padding-bottom,
+      class: pb,
+      values: $spacers
+    ),
+    "padding-start": (
+      responsive: true,
+      property: padding-left,
+      class: ps,
+      values: $spacers
+    ),
+    // Gap utility
+    "gap": (
+      responsive: true,
+      property: gap,
+      class: gap,
+      values: $spacers
+    ),
+    // scss-docs-end utils-spacing
+    // Text
+    // scss-docs-start utils-text
+    "font-family": (
+      property: font-family,
+      class: font,
+      values: (monospace: var(--#{$prefix}font-monospace))
+    ),
+    "font-size": (
+      rfs: true,
+      property: font-size,
+      class: fs,
+      values: $font-sizes
+    ),
+    "font-style": (
+      property: font-style,
+      class: fst,
+      values: italic normal
+    ),
+    "font-weight": (
+      property: font-weight,
+      class: fw,
+      values: (
+        light: $font-weight-light,
+        lighter: $font-weight-lighter,
+        normal: $font-weight-normal,
+        bold: $font-weight-bold,
+        semibold: $font-weight-semibold,
+        bolder: $font-weight-bolder
+      )
+    ),
+    "line-height": (
+      property: line-height,
+      class: lh,
+      values: (
+        1: 1,
+        sm: $line-height-sm,
+        base: $line-height-base,
+        lg: $line-height-lg,
+      )
+    ),
+    "text-align": (
+      responsive: true,
+      property: text-align,
+      class: text,
+      values: (
+        start: left,
+        end: right,
+        center: center,
+      )
+    ),
+    "text-decoration": (
+      property: text-decoration,
+      values: none underline line-through
+    ),
+    "text-transform": (
+      property: text-transform,
+      class: text,
+      values: lowercase uppercase capitalize
+    ),
+    "white-space": (
+      property: white-space,
+      class: text,
+      values: (
+        wrap: normal,
+        nowrap: nowrap,
+      )
+    ),
+    "word-wrap": (
+      property: word-wrap word-break,
+      class: text,
+      values: (break: break-word),
+      rtl: false
+    ),
+    // scss-docs-end utils-text
+    // scss-docs-start utils-color
+    "color": (
+      property: color,
+      class: text,
+      local-vars: (
+        "text-opacity": 1
+      ),
+      values: map-merge(
+        $utilities-text-colors,
+        (
+          "muted": $text-muted,
+          "black-50": rgba($black, .5), // deprecated
+          "white-50": rgba($white, .5), // deprecated
+          "reset": inherit,
+        )
+      )
+    ),
+    "text-opacity": (
+      css-var: true,
+      class: text-opacity,
+      values: (
+        25: .25,
+        50: .5,
+        75: .75,
+        100: 1
+      )
+    ),
+    // scss-docs-end utils-color
+    // scss-docs-start utils-bg-color
+    "background-color": (
+      property: background-color,
+      class: bg,
+      local-vars: (
+        "bg-opacity": 1
+      ),
+      values: map-merge(
+        $utilities-bg-colors,
+        (
+          "transparent": transparent
+        )
+      )
+    ),
+    "bg-opacity": (
+      css-var: true,
+      class: bg-opacity,
+      values: (
+        10: .1,
+        25: .25,
+        50: .5,
+        75: .75,
+        100: 1
+      )
+    ),
+    // scss-docs-end utils-bg-color
+    "gradient": (
+      property: background-image,
+      class: bg,
+      values: (gradient: var(--#{$prefix}gradient))
+    ),
+    // scss-docs-start utils-interaction
+    "user-select": (
+      property: user-select,
+      values: all auto none
+    ),
+    "pointer-events": (
+      property: pointer-events,
+      class: pe,
+      values: none auto,
+    ),
+    // scss-docs-end utils-interaction
+    // scss-docs-start utils-border-radius
+    "rounded": (
+      property: border-radius,
+      class: rounded,
+      values: (
+        null: var(--#{$prefix}border-radius),
+        0: 0,
+        1: var(--#{$prefix}border-radius-sm),
+        2: var(--#{$prefix}border-radius),
+        3: var(--#{$prefix}border-radius-lg),
+        4: var(--#{$prefix}border-radius-xl),
+        5: var(--#{$prefix}border-radius-2xl),
+        circle: 50%,
+        pill: var(--#{$prefix}border-radius-pill)
+      )
+    ),
+    "rounded-top": (
+      property: border-top-left-radius border-top-right-radius,
+      class: rounded-top,
+      values: (null: var(--#{$prefix}border-radius))
+    ),
+    "rounded-end": (
+      property: border-top-right-radius border-bottom-right-radius,
+      class: rounded-end,
+      values: (null: var(--#{$prefix}border-radius))
+    ),
+    "rounded-bottom": (
+      property: border-bottom-right-radius border-bottom-left-radius,
+      class: rounded-bottom,
+      values: (null: var(--#{$prefix}border-radius))
+    ),
+    "rounded-start": (
+      property: border-bottom-left-radius border-top-left-radius,
+      class: rounded-start,
+      values: (null: var(--#{$prefix}border-radius))
+    ),
+    // scss-docs-end utils-border-radius
+    // scss-docs-start utils-visibility
+    "visibility": (
+      property: visibility,
+      class: null,
+      values: (
+        visible: visible,
+        invisible: hidden,
+      )
+    )
+    // scss-docs-end utils-visibility
+  ),
+  $utilities
+);
diff --git a/styles/bootstrap/_variables.scss b/styles/bootstrap/_variables.scss
new file mode 100644
index 0000000..e021836
--- /dev/null
+++ b/styles/bootstrap/_variables.scss
@@ -0,0 +1,1634 @@
+// Variables
+//
+// Variables should follow the `$component-state-property-size` formula for
+// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
+
+// Color system
+
+// scss-docs-start gray-color-variables
+$white:    #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #6c757d !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black:    #000 !default;
+// scss-docs-end gray-color-variables
+
+// fusv-disable
+// scss-docs-start gray-colors-map
+$grays: (
+  "100": $gray-100,
+  "200": $gray-200,
+  "300": $gray-300,
+  "400": $gray-400,
+  "500": $gray-500,
+  "600": $gray-600,
+  "700": $gray-700,
+  "800": $gray-800,
+  "900": $gray-900
+) !default;
+// scss-docs-end gray-colors-map
+// fusv-enable
+
+// scss-docs-start color-variables
+$blue:    #0d6efd !default;
+$indigo:  #6610f2 !default;
+$purple:  #6f42c1 !default;
+$pink:    #d63384 !default;
+$red:     #dc3545 !default;
+$orange:  #fd7e14 !default;
+$yellow:  #ffc107 !default;
+$green:   #198754 !default;
+$teal:    #20c997 !default;
+$cyan:    #0dcaf0 !default;
+// scss-docs-end color-variables
+
+// scss-docs-start colors-map
+$colors: (
+  "blue":       $blue,
+  "indigo":     $indigo,
+  "purple":     $purple,
+  "pink":       $pink,
+  "red":        $red,
+  "orange":     $orange,
+  "yellow":     $yellow,
+  "green":      $green,
+  "teal":       $teal,
+  "cyan":       $cyan,
+  "black":      $black,
+  "white":      $white,
+  "gray":       $gray-600,
+  "gray-dark":  $gray-800
+) !default;
+// scss-docs-end colors-map
+
+// The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
+// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
+$min-contrast-ratio:   4.5 !default;
+
+// Customize the light and dark text colors for use in our color contrast function.
+$color-contrast-dark:      $black !default;
+$color-contrast-light:     $white !default;
+
+// fusv-disable
+$blue-100: tint-color($blue, 80%) !default;
+$blue-200: tint-color($blue, 60%) !default;
+$blue-300: tint-color($blue, 40%) !default;
+$blue-400: tint-color($blue, 20%) !default;
+$blue-500: $blue !default;
+$blue-600: shade-color($blue, 20%) !default;
+$blue-700: shade-color($blue, 40%) !default;
+$blue-800: shade-color($blue, 60%) !default;
+$blue-900: shade-color($blue, 80%) !default;
+
+$indigo-100: tint-color($indigo, 80%) !default;
+$indigo-200: tint-color($indigo, 60%) !default;
+$indigo-300: tint-color($indigo, 40%) !default;
+$indigo-400: tint-color($indigo, 20%) !default;
+$indigo-500: $indigo !default;
+$indigo-600: shade-color($indigo, 20%) !default;
+$indigo-700: shade-color($indigo, 40%) !default;
+$indigo-800: shade-color($indigo, 60%) !default;
+$indigo-900: shade-color($indigo, 80%) !default;
+
+$purple-100: tint-color($purple, 80%) !default;
+$purple-200: tint-color($purple, 60%) !default;
+$purple-300: tint-color($purple, 40%) !default;
+$purple-400: tint-color($purple, 20%) !default;
+$purple-500: $purple !default;
+$purple-600: shade-color($purple, 20%) !default;
+$purple-700: shade-color($purple, 40%) !default;
+$purple-800: shade-color($purple, 60%) !default;
+$purple-900: shade-color($purple, 80%) !default;
+
+$pink-100: tint-color($pink, 80%) !default;
+$pink-200: tint-color($pink, 60%) !default;
+$pink-300: tint-color($pink, 40%) !default;
+$pink-400: tint-color($pink, 20%) !default;
+$pink-500: $pink !default;
+$pink-600: shade-color($pink, 20%) !default;
+$pink-700: shade-color($pink, 40%) !default;
+$pink-800: shade-color($pink, 60%) !default;
+$pink-900: shade-color($pink, 80%) !default;
+
+$red-100: tint-color($red, 80%) !default;
+$red-200: tint-color($red, 60%) !default;
+$red-300: tint-color($red, 40%) !default;
+$red-400: tint-color($red, 20%) !default;
+$red-500: $red !default;
+$red-600: shade-color($red, 20%) !default;
+$red-700: shade-color($red, 40%) !default;
+$red-800: shade-color($red, 60%) !default;
+$red-900: shade-color($red, 80%) !default;
+
+$orange-100: tint-color($orange, 80%) !default;
+$orange-200: tint-color($orange, 60%) !default;
+$orange-300: tint-color($orange, 40%) !default;
+$orange-400: tint-color($orange, 20%) !default;
+$orange-500: $orange !default;
+$orange-600: shade-color($orange, 20%) !default;
+$orange-700: shade-color($orange, 40%) !default;
+$orange-800: shade-color($orange, 60%) !default;
+$orange-900: shade-color($orange, 80%) !default;
+
+$yellow-100: tint-color($yellow, 80%) !default;
+$yellow-200: tint-color($yellow, 60%) !default;
+$yellow-300: tint-color($yellow, 40%) !default;
+$yellow-400: tint-color($yellow, 20%) !default;
+$yellow-500: $yellow !default;
+$yellow-600: shade-color($yellow, 20%) !default;
+$yellow-700: shade-color($yellow, 40%) !default;
+$yellow-800: shade-color($yellow, 60%) !default;
+$yellow-900: shade-color($yellow, 80%) !default;
+
+$green-100: tint-color($green, 80%) !default;
+$green-200: tint-color($green, 60%) !default;
+$green-300: tint-color($green, 40%) !default;
+$green-400: tint-color($green, 20%) !default;
+$green-500: $green !default;
+$green-600: shade-color($green, 20%) !default;
+$green-700: shade-color($green, 40%) !default;
+$green-800: shade-color($green, 60%) !default;
+$green-900: shade-color($green, 80%) !default;
+
+$teal-100: tint-color($teal, 80%) !default;
+$teal-200: tint-color($teal, 60%) !default;
+$teal-300: tint-color($teal, 40%) !default;
+$teal-400: tint-color($teal, 20%) !default;
+$teal-500: $teal !default;
+$teal-600: shade-color($teal, 20%) !default;
+$teal-700: shade-color($teal, 40%) !default;
+$teal-800: shade-color($teal, 60%) !default;
+$teal-900: shade-color($teal, 80%) !default;
+
+$cyan-100: tint-color($cyan, 80%) !default;
+$cyan-200: tint-color($cyan, 60%) !default;
+$cyan-300: tint-color($cyan, 40%) !default;
+$cyan-400: tint-color($cyan, 20%) !default;
+$cyan-500: $cyan !default;
+$cyan-600: shade-color($cyan, 20%) !default;
+$cyan-700: shade-color($cyan, 40%) !default;
+$cyan-800: shade-color($cyan, 60%) !default;
+$cyan-900: shade-color($cyan, 80%) !default;
+
+$blues: (
+  "blue-100": $blue-100,
+  "blue-200": $blue-200,
+  "blue-300": $blue-300,
+  "blue-400": $blue-400,
+  "blue-500": $blue-500,
+  "blue-600": $blue-600,
+  "blue-700": $blue-700,
+  "blue-800": $blue-800,
+  "blue-900": $blue-900
+) !default;
+
+$indigos: (
+  "indigo-100": $indigo-100,
+  "indigo-200": $indigo-200,
+  "indigo-300": $indigo-300,
+  "indigo-400": $indigo-400,
+  "indigo-500": $indigo-500,
+  "indigo-600": $indigo-600,
+  "indigo-700": $indigo-700,
+  "indigo-800": $indigo-800,
+  "indigo-900": $indigo-900
+) !default;
+
+$purples: (
+  "purple-100": $purple-100,
+  "purple-200": $purple-200,
+  "purple-300": $purple-300,
+  "purple-400": $purple-400,
+  "purple-500": $purple-500,
+  "purple-600": $purple-600,
+  "purple-700": $purple-700,
+  "purple-800": $purple-800,
+  "purple-900": $purple-900
+) !default;
+
+$pinks: (
+  "pink-100": $pink-100,
+  "pink-200": $pink-200,
+  "pink-300": $pink-300,
+  "pink-400": $pink-400,
+  "pink-500": $pink-500,
+  "pink-600": $pink-600,
+  "pink-700": $pink-700,
+  "pink-800": $pink-800,
+  "pink-900": $pink-900
+) !default;
+
+$reds: (
+  "red-100": $red-100,
+  "red-200": $red-200,
+  "red-300": $red-300,
+  "red-400": $red-400,
+  "red-500": $red-500,
+  "red-600": $red-600,
+  "red-700": $red-700,
+  "red-800": $red-800,
+  "red-900": $red-900
+) !default;
+
+$oranges: (
+  "orange-100": $orange-100,
+  "orange-200": $orange-200,
+  "orange-300": $orange-300,
+  "orange-400": $orange-400,
+  "orange-500": $orange-500,
+  "orange-600": $orange-600,
+  "orange-700": $orange-700,
+  "orange-800": $orange-800,
+  "orange-900": $orange-900
+) !default;
+
+$yellows: (
+  "yellow-100": $yellow-100,
+  "yellow-200": $yellow-200,
+  "yellow-300": $yellow-300,
+  "yellow-400": $yellow-400,
+  "yellow-500": $yellow-500,
+  "yellow-600": $yellow-600,
+  "yellow-700": $yellow-700,
+  "yellow-800": $yellow-800,
+  "yellow-900": $yellow-900
+) !default;
+
+$greens: (
+  "green-100": $green-100,
+  "green-200": $green-200,
+  "green-300": $green-300,
+  "green-400": $green-400,
+  "green-500": $green-500,
+  "green-600": $green-600,
+  "green-700": $green-700,
+  "green-800": $green-800,
+  "green-900": $green-900
+) !default;
+
+$teals: (
+  "teal-100": $teal-100,
+  "teal-200": $teal-200,
+  "teal-300": $teal-300,
+  "teal-400": $teal-400,
+  "teal-500": $teal-500,
+  "teal-600": $teal-600,
+  "teal-700": $teal-700,
+  "teal-800": $teal-800,
+  "teal-900": $teal-900
+) !default;
+
+$cyans: (
+  "cyan-100": $cyan-100,
+  "cyan-200": $cyan-200,
+  "cyan-300": $cyan-300,
+  "cyan-400": $cyan-400,
+  "cyan-500": $cyan-500,
+  "cyan-600": $cyan-600,
+  "cyan-700": $cyan-700,
+  "cyan-800": $cyan-800,
+  "cyan-900": $cyan-900
+) !default;
+// fusv-enable
+
+// scss-docs-start theme-color-variables
+$primary:       $blue !default;
+$secondary:     $gray-600 !default;
+$success:       $green !default;
+$info:          $cyan !default;
+$warning:       $yellow !default;
+$danger:        $red !default;
+$light:         $gray-100 !default;
+$dark:          $gray-900 !default;
+// scss-docs-end theme-color-variables
+
+// scss-docs-start theme-colors-map
+$theme-colors: (
+  "primary":    $primary,
+  "secondary":  $secondary,
+  "success":    $success,
+  "info":       $info,
+  "warning":    $warning,
+  "danger":     $danger,
+  "light":      $light,
+  "dark":       $dark
+) !default;
+// scss-docs-end theme-colors-map
+
+// Characters which are escaped by the escape-svg function
+$escaped-characters: (
+  ("<", "%3c"),
+  (">", "%3e"),
+  ("#", "%23"),
+  ("(", "%28"),
+  (")", "%29"),
+) !default;
+
+// Options
+//
+// Quickly modify global styling by enabling or disabling optional features.
+
+$enable-caret:                true !default;
+$enable-rounded:              true !default;
+$enable-shadows:              false !default;
+$enable-gradients:            false !default;
+$enable-transitions:          true !default;
+$enable-reduced-motion:       true !default;
+$enable-smooth-scroll:        true !default;
+$enable-grid-classes:         true !default;
+$enable-container-classes:    true !default;
+$enable-cssgrid:              false !default;
+$enable-button-pointers:      true !default;
+$enable-rfs:                  true !default;
+$enable-validation-icons:     true !default;
+$enable-negative-margins:     false !default;
+$enable-deprecation-messages: true !default;
+$enable-important-utilities:  true !default;
+
+// Prefix for :root CSS variables
+
+$variable-prefix:             bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`
+$prefix:                      $variable-prefix !default;
+
+// Gradient
+//
+// The gradient which is added to components if `$enable-gradients` is `true`
+// This gradient is also added to elements with `.bg-gradient`
+// scss-docs-start variable-gradient
+$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;
+// scss-docs-end variable-gradient
+
+// Spacing
+//
+// Control the default styling of most Bootstrap elements by modifying these
+// variables. Mostly focused on spacing.
+// You can add more entries to the $spacers map, should you need more variation.
+
+// scss-docs-start spacer-variables-maps
+$spacer: 1rem !default;
+$spacers: (
+  0: 0,
+  1: $spacer * .25,
+  2: $spacer * .5,
+  3: $spacer,
+  4: $spacer * 1.5,
+  5: $spacer * 3,
+) !default;
+// scss-docs-end spacer-variables-maps
+
+// Position
+//
+// Define the edge positioning anchors of the position utilities.
+
+// scss-docs-start position-map
+$position-values: (
+  0: 0,
+  50: 50%,
+  100: 100%
+) !default;
+// scss-docs-end position-map
+
+// Body
+//
+// Settings for the `<body>` element.
+
+$body-bg:                   $white !default;
+$body-color:                $gray-900 !default;
+$body-text-align:           null !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color:                              $primary !default;
+$link-decoration:                         underline !default;
+$link-shade-percentage:                   20% !default;
+$link-hover-color:                        shift-color($link-color, $link-shade-percentage) !default;
+$link-hover-decoration:                   null !default;
+
+$stretched-link-pseudo-element:           after !default;
+$stretched-link-z-index:                  1 !default;
+
+// Paragraphs
+//
+// Style p element.
+
+$paragraph-margin-bottom:   1rem !default;
+
+
+// Grid breakpoints
+//
+// Define the minimum dimensions at which your layout will change,
+// adapting to different screen sizes, for use in media queries.
+
+// scss-docs-start grid-breakpoints
+$grid-breakpoints: (
+  xs: 0,
+  sm: 576px,
+  md: 768px,
+  lg: 992px,
+  xl: 1200px,
+  xxl: 1400px
+) !default;
+// scss-docs-end grid-breakpoints
+
+@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+@include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
+
+
+// Grid containers
+//
+// Define the maximum width of `.container` for different screen sizes.
+
+// scss-docs-start container-max-widths
+$container-max-widths: (
+  sm: 540px,
+  md: 720px,
+  lg: 960px,
+  xl: 1140px,
+  xxl: 1320px
+) !default;
+// scss-docs-end container-max-widths
+
+@include _assert-ascending($container-max-widths, "$container-max-widths");
+
+
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-columns:                12 !default;
+$grid-gutter-width:           1.5rem !default;
+$grid-row-columns:            6 !default;
+
+// Container padding
+
+$container-padding-x: $grid-gutter-width !default;
+
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+// scss-docs-start border-variables
+$border-width:                1px !default;
+$border-widths: (
+  1: 1px,
+  2: 2px,
+  3: 3px,
+  4: 4px,
+  5: 5px
+) !default;
+
+$border-style:                solid !default;
+$border-color:                $gray-300 !default;
+$border-color-translucent:    rgba($black, .175) !default;
+// scss-docs-end border-variables
+
+// scss-docs-start border-radius-variables
+$border-radius:               .375rem !default;
+$border-radius-sm:            .25rem !default;
+$border-radius-lg:            .5rem !default;
+$border-radius-xl:            1rem !default;
+$border-radius-2xl:           2rem !default;
+$border-radius-pill:          50rem !default;
+// scss-docs-end border-radius-variables
+
+// scss-docs-start box-shadow-variables
+$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;
+$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;
+$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;
+$box-shadow-inset:            inset 0 1px 2px rgba($black, .075) !default;
+// scss-docs-end box-shadow-variables
+
+$component-active-color:      $white !default;
+$component-active-bg:         $primary !default;
+
+// scss-docs-start caret-variables
+$caret-width:                 .3em !default;
+$caret-vertical-align:        $caret-width * .85 !default;
+$caret-spacing:               $caret-width * .85 !default;
+// scss-docs-end caret-variables
+
+$transition-base:             all .2s ease-in-out !default;
+$transition-fade:             opacity .15s linear !default;
+// scss-docs-start collapse-transition
+$transition-collapse:         height .35s ease !default;
+$transition-collapse-width:   width .35s ease !default;
+// scss-docs-end collapse-transition
+
+// stylelint-disable function-disallowed-list
+// scss-docs-start aspect-ratios
+$aspect-ratios: (
+  "1x1": 100%,
+  "4x3": calc(3 / 4 * 100%),
+  "16x9": calc(9 / 16 * 100%),
+  "21x9": calc(9 / 21 * 100%)
+) !default;
+// scss-docs-end aspect-ratios
+// stylelint-enable function-disallowed-list
+
+// Typography
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// scss-docs-start font-variables
+// stylelint-disable value-keyword-case
+$font-family-sans-serif:      system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
+$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
+// stylelint-enable value-keyword-case
+$font-family-base:            var(--#{$prefix}font-sans-serif) !default;
+$font-family-code:            var(--#{$prefix}font-monospace) !default;
+
+// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins
+// $font-size-base affects the font size of the body text
+$font-size-root:              null !default;
+$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`
+$font-size-sm:                $font-size-base * .875 !default;
+$font-size-lg:                $font-size-base * 1.25 !default;
+
+$font-weight-lighter:         lighter !default;
+$font-weight-light:           300 !default;
+$font-weight-normal:          400 !default;
+$font-weight-semibold:        600 !default;
+$font-weight-bold:            700 !default;
+$font-weight-bolder:          bolder !default;
+
+$font-weight-base:            $font-weight-normal !default;
+
+$line-height-base:            1.5 !default;
+$line-height-sm:              1.25 !default;
+$line-height-lg:              2 !default;
+
+$h1-font-size:                $font-size-base * 2.5 !default;
+$h2-font-size:                $font-size-base * 2 !default;
+$h3-font-size:                $font-size-base * 1.75 !default;
+$h4-font-size:                $font-size-base * 1.5 !default;
+$h5-font-size:                $font-size-base * 1.25 !default;
+$h6-font-size:                $font-size-base !default;
+// scss-docs-end font-variables
+
+// scss-docs-start font-sizes
+$font-sizes: (
+  1: $h1-font-size,
+  2: $h2-font-size,
+  3: $h3-font-size,
+  4: $h4-font-size,
+  5: $h5-font-size,
+  6: $h6-font-size
+) !default;
+// scss-docs-end font-sizes
+
+// scss-docs-start headings-variables
+$headings-margin-bottom:      $spacer * .5 !default;
+$headings-font-family:        null !default;
+$headings-font-style:         null !default;
+$headings-font-weight:        500 !default;
+$headings-line-height:        1.2 !default;
+$headings-color:              null !default;
+// scss-docs-end headings-variables
+
+// scss-docs-start display-headings
+$display-font-sizes: (
+  1: 5rem,
+  2: 4.5rem,
+  3: 4rem,
+  4: 3.5rem,
+  5: 3rem,
+  6: 2.5rem
+) !default;
+
+$display-font-family: null !default;
+$display-font-style:  null !default;
+$display-font-weight: 300 !default;
+$display-line-height: $headings-line-height !default;
+// scss-docs-end display-headings
+
+// scss-docs-start type-variables
+$lead-font-size:              $font-size-base * 1.25 !default;
+$lead-font-weight:            300 !default;
+
+$small-font-size:             .875em !default;
+
+$sub-sup-font-size:           .75em !default;
+
+$text-muted:                  $gray-600 !default;
+
+$initialism-font-size:        $small-font-size !default;
+
+$blockquote-margin-y:         $spacer !default;
+$blockquote-font-size:        $font-size-base * 1.25 !default;
+$blockquote-footer-color:     $gray-600 !default;
+$blockquote-footer-font-size: $small-font-size !default;
+
+$hr-margin-y:                 $spacer !default;
+$hr-color:                    inherit !default;
+
+// fusv-disable
+$hr-bg-color:                 null !default; // Deprecated in v5.2.0
+$hr-height:                   null !default; // Deprecated in v5.2.0
+// fusv-enable
+
+$hr-border-color:             null !default; // Allows for inherited colors
+$hr-border-width:             $border-width !default;
+$hr-opacity:                  .25 !default;
+
+$legend-margin-bottom:        .5rem !default;
+$legend-font-size:            1.5rem !default;
+$legend-font-weight:          null !default;
+
+$dt-font-weight:              $font-weight-bold !default;
+
+$list-inline-padding:         .5rem !default;
+
+$mark-padding:                .1875em !default;
+$mark-bg:                     $yellow-100 !default;
+// scss-docs-end type-variables
+
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+// scss-docs-start table-variables
+$table-cell-padding-y:        .5rem !default;
+$table-cell-padding-x:        .5rem !default;
+$table-cell-padding-y-sm:     .25rem !default;
+$table-cell-padding-x-sm:     .25rem !default;
+
+$table-cell-vertical-align:   top !default;
+
+$table-color:                 var(--#{$prefix}body-color) !default;
+$table-bg:                    transparent !default;
+$table-accent-bg:             transparent !default;
+
+$table-th-font-weight:        null !default;
+
+$table-striped-color:         $table-color !default;
+$table-striped-bg-factor:     .05 !default;
+$table-striped-bg:            rgba($black, $table-striped-bg-factor) !default;
+
+$table-active-color:          $table-color !default;
+$table-active-bg-factor:      .1 !default;
+$table-active-bg:             rgba($black, $table-active-bg-factor) !default;
+
+$table-hover-color:           $table-color !default;
+$table-hover-bg-factor:       .075 !default;
+$table-hover-bg:              rgba($black, $table-hover-bg-factor) !default;
+
+$table-border-factor:         .1 !default;
+$table-border-width:          $border-width !default;
+$table-border-color:          var(--#{$prefix}border-color) !default;
+
+$table-striped-order:         odd !default;
+$table-striped-columns-order: even !default;
+
+$table-group-separator-color: currentcolor !default;
+
+$table-caption-color:         $text-muted !default;
+
+$table-bg-scale:              -80% !default;
+// scss-docs-end table-variables
+
+// scss-docs-start table-loop
+$table-variants: (
+  "primary":    shift-color($primary, $table-bg-scale),
+  "secondary":  shift-color($secondary, $table-bg-scale),
+  "success":    shift-color($success, $table-bg-scale),
+  "info":       shift-color($info, $table-bg-scale),
+  "warning":    shift-color($warning, $table-bg-scale),
+  "danger":     shift-color($danger, $table-bg-scale),
+  "light":      $light,
+  "dark":       $dark,
+) !default;
+// scss-docs-end table-loop
+
+
+// Buttons + Forms
+//
+// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
+
+// scss-docs-start input-btn-variables
+$input-btn-padding-y:         .375rem !default;
+$input-btn-padding-x:         .75rem !default;
+$input-btn-font-family:       null !default;
+$input-btn-font-size:         $font-size-base !default;
+$input-btn-line-height:       $line-height-base !default;
+
+$input-btn-focus-width:         .25rem !default;
+$input-btn-focus-color-opacity: .25 !default;
+$input-btn-focus-color:         rgba($component-active-bg, $input-btn-focus-color-opacity) !default;
+$input-btn-focus-blur:          0 !default;
+$input-btn-focus-box-shadow:    0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;
+
+$input-btn-padding-y-sm:      .25rem !default;
+$input-btn-padding-x-sm:      .5rem !default;
+$input-btn-font-size-sm:      $font-size-sm !default;
+
+$input-btn-padding-y-lg:      .5rem !default;
+$input-btn-padding-x-lg:      1rem !default;
+$input-btn-font-size-lg:      $font-size-lg !default;
+
+$input-btn-border-width:      $border-width !default;
+// scss-docs-end input-btn-variables
+
+
+// Buttons
+//
+// For each of Bootstrap's buttons, define text, background, and border color.
+
+// scss-docs-start btn-variables
+$btn-padding-y:               $input-btn-padding-y !default;
+$btn-padding-x:               $input-btn-padding-x !default;
+$btn-font-family:             $input-btn-font-family !default;
+$btn-font-size:               $input-btn-font-size !default;
+$btn-line-height:             $input-btn-line-height !default;
+$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping
+
+$btn-padding-y-sm:            $input-btn-padding-y-sm !default;
+$btn-padding-x-sm:            $input-btn-padding-x-sm !default;
+$btn-font-size-sm:            $input-btn-font-size-sm !default;
+
+$btn-padding-y-lg:            $input-btn-padding-y-lg !default;
+$btn-padding-x-lg:            $input-btn-padding-x-lg !default;
+$btn-font-size-lg:            $input-btn-font-size-lg !default;
+
+$btn-border-width:            $input-btn-border-width !default;
+
+$btn-font-weight:             $font-weight-normal !default;
+$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
+$btn-focus-width:             $input-btn-focus-width !default;
+$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;
+$btn-disabled-opacity:        .65 !default;
+$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;
+
+$btn-link-color:              var(--#{$prefix}link-color) !default;
+$btn-link-hover-color:        var(--#{$prefix}link-hover-color) !default;
+$btn-link-disabled-color:     $gray-600 !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius:           $border-radius !default;
+$btn-border-radius-sm:        $border-radius-sm !default;
+$btn-border-radius-lg:        $border-radius-lg !default;
+
+$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$btn-hover-bg-shade-amount:       15% !default;
+$btn-hover-bg-tint-amount:        15% !default;
+$btn-hover-border-shade-amount:   20% !default;
+$btn-hover-border-tint-amount:    10% !default;
+$btn-active-bg-shade-amount:      20% !default;
+$btn-active-bg-tint-amount:       20% !default;
+$btn-active-border-shade-amount:  25% !default;
+$btn-active-border-tint-amount:   10% !default;
+// scss-docs-end btn-variables
+
+
+// Forms
+
+// scss-docs-start form-text-variables
+$form-text-margin-top:                  .25rem !default;
+$form-text-font-size:                   $small-font-size !default;
+$form-text-font-style:                  null !default;
+$form-text-font-weight:                 null !default;
+$form-text-color:                       $text-muted !default;
+// scss-docs-end form-text-variables
+
+// scss-docs-start form-label-variables
+$form-label-margin-bottom:              .5rem !default;
+$form-label-font-size:                  null !default;
+$form-label-font-style:                 null !default;
+$form-label-font-weight:                null !default;
+$form-label-color:                      null !default;
+// scss-docs-end form-label-variables
+
+// scss-docs-start form-input-variables
+$input-padding-y:                       $input-btn-padding-y !default;
+$input-padding-x:                       $input-btn-padding-x !default;
+$input-font-family:                     $input-btn-font-family !default;
+$input-font-size:                       $input-btn-font-size !default;
+$input-font-weight:                     $font-weight-base !default;
+$input-line-height:                     $input-btn-line-height !default;
+
+$input-padding-y-sm:                    $input-btn-padding-y-sm !default;
+$input-padding-x-sm:                    $input-btn-padding-x-sm !default;
+$input-font-size-sm:                    $input-btn-font-size-sm !default;
+
+$input-padding-y-lg:                    $input-btn-padding-y-lg !default;
+$input-padding-x-lg:                    $input-btn-padding-x-lg !default;
+$input-font-size-lg:                    $input-btn-font-size-lg !default;
+
+$input-bg:                              $body-bg !default;
+$input-disabled-color:                  null !default;
+$input-disabled-bg:                     $gray-200 !default;
+$input-disabled-border-color:           null !default;
+
+$input-color:                           $body-color !default;
+$input-border-color:                    $gray-400 !default;
+$input-border-width:                    $input-btn-border-width !default;
+$input-box-shadow:                      $box-shadow-inset !default;
+
+$input-border-radius:                   $border-radius !default;
+$input-border-radius-sm:                $border-radius-sm !default;
+$input-border-radius-lg:                $border-radius-lg !default;
+
+$input-focus-bg:                        $input-bg !default;
+$input-focus-border-color:              tint-color($component-active-bg, 50%) !default;
+$input-focus-color:                     $input-color !default;
+$input-focus-width:                     $input-btn-focus-width !default;
+$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;
+
+$input-placeholder-color:               $gray-600 !default;
+$input-plaintext-color:                 $body-color !default;
+
+$input-height-border:                   $input-border-width * 2 !default;
+
+$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;
+$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;
+$input-height-inner-quarter:            add($input-line-height * .25em, $input-padding-y * .5) !default;
+
+$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
+$input-height-sm:                       add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
+$input-height-lg:                       add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;
+
+$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$form-color-width:                      3rem !default;
+// scss-docs-end form-input-variables
+
+// scss-docs-start form-check-variables
+$form-check-input-width:                  1em !default;
+$form-check-min-height:                   $font-size-base * $line-height-base !default;
+$form-check-padding-start:                $form-check-input-width + .5em !default;
+$form-check-margin-bottom:                .125rem !default;
+$form-check-label-color:                  null !default;
+$form-check-label-cursor:                 null !default;
+$form-check-transition:                   null !default;
+
+$form-check-input-active-filter:          brightness(90%) !default;
+
+$form-check-input-bg:                     $input-bg !default;
+$form-check-input-border:                 1px solid rgba($black, .25) !default;
+$form-check-input-border-radius:          .25em !default;
+$form-check-radio-border-radius:          50% !default;
+$form-check-input-focus-border:           $input-focus-border-color !default;
+$form-check-input-focus-box-shadow:       $input-btn-focus-box-shadow !default;
+
+$form-check-input-checked-color:          $component-active-color !default;
+$form-check-input-checked-bg-color:       $component-active-bg !default;
+$form-check-input-checked-border-color:   $form-check-input-checked-bg-color !default;
+$form-check-input-checked-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>") !default;
+$form-check-radio-checked-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>") !default;
+
+$form-check-input-indeterminate-color:          $component-active-color !default;
+$form-check-input-indeterminate-bg-color:       $component-active-bg !default;
+$form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color !default;
+$form-check-input-indeterminate-bg-image:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>") !default;
+
+$form-check-input-disabled-opacity:        .5 !default;
+$form-check-label-disabled-opacity:        $form-check-input-disabled-opacity !default;
+$form-check-btn-check-disabled-opacity:    $btn-disabled-opacity !default;
+
+$form-check-inline-margin-end:    1rem !default;
+// scss-docs-end form-check-variables
+
+// scss-docs-start form-switch-variables
+$form-switch-color:               rgba($black, .25) !default;
+$form-switch-width:               2em !default;
+$form-switch-padding-start:       $form-switch-width + .5em !default;
+$form-switch-bg-image:            url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>") !default;
+$form-switch-border-radius:       $form-switch-width !default;
+$form-switch-transition:          background-position .15s ease-in-out !default;
+
+$form-switch-focus-color:         $input-focus-border-color !default;
+$form-switch-focus-bg-image:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>") !default;
+
+$form-switch-checked-color:       $component-active-color !default;
+$form-switch-checked-bg-image:    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>") !default;
+$form-switch-checked-bg-position: right center !default;
+// scss-docs-end form-switch-variables
+
+// scss-docs-start input-group-variables
+$input-group-addon-padding-y:           $input-padding-y !default;
+$input-group-addon-padding-x:           $input-padding-x !default;
+$input-group-addon-font-weight:         $input-font-weight !default;
+$input-group-addon-color:               $input-color !default;
+$input-group-addon-bg:                  $gray-200 !default;
+$input-group-addon-border-color:        $input-border-color !default;
+// scss-docs-end input-group-variables
+
+// scss-docs-start form-select-variables
+$form-select-padding-y:             $input-padding-y !default;
+$form-select-padding-x:             $input-padding-x !default;
+$form-select-font-family:           $input-font-family !default;
+$form-select-font-size:             $input-font-size !default;
+$form-select-indicator-padding:     $form-select-padding-x * 3 !default; // Extra padding for background-image
+$form-select-font-weight:           $input-font-weight !default;
+$form-select-line-height:           $input-line-height !default;
+$form-select-color:                 $input-color !default;
+$form-select-bg:                    $input-bg !default;
+$form-select-disabled-color:        null !default;
+$form-select-disabled-bg:           $gray-200 !default;
+$form-select-disabled-border-color: $input-disabled-border-color !default;
+$form-select-bg-position:           right $form-select-padding-x center !default;
+$form-select-bg-size:               16px 12px !default; // In pixels because image dimensions
+$form-select-indicator-color:       $gray-800 !default;
+$form-select-indicator:             url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
+
+$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;
+$form-select-feedback-icon-position:    center right $form-select-indicator-padding !default;
+$form-select-feedback-icon-size:        $input-height-inner-half $input-height-inner-half !default;
+
+$form-select-border-width:        $input-border-width !default;
+$form-select-border-color:        $input-border-color !default;
+$form-select-border-radius:       $input-border-radius !default;
+$form-select-box-shadow:          $box-shadow-inset !default;
+
+$form-select-focus-border-color:  $input-focus-border-color !default;
+$form-select-focus-width:         $input-focus-width !default;
+$form-select-focus-box-shadow:    0 0 0 $form-select-focus-width $input-btn-focus-color !default;
+
+$form-select-padding-y-sm:        $input-padding-y-sm !default;
+$form-select-padding-x-sm:        $input-padding-x-sm !default;
+$form-select-font-size-sm:        $input-font-size-sm !default;
+$form-select-border-radius-sm:    $input-border-radius-sm !default;
+
+$form-select-padding-y-lg:        $input-padding-y-lg !default;
+$form-select-padding-x-lg:        $input-padding-x-lg !default;
+$form-select-font-size-lg:        $input-font-size-lg !default;
+$form-select-border-radius-lg:    $input-border-radius-lg !default;
+
+$form-select-transition:          $input-transition !default;
+// scss-docs-end form-select-variables
+
+// scss-docs-start form-range-variables
+$form-range-track-width:          100% !default;
+$form-range-track-height:         .5rem !default;
+$form-range-track-cursor:         pointer !default;
+$form-range-track-bg:             $gray-300 !default;
+$form-range-track-border-radius:  1rem !default;
+$form-range-track-box-shadow:     $box-shadow-inset !default;
+
+$form-range-thumb-width:                   1rem !default;
+$form-range-thumb-height:                  $form-range-thumb-width !default;
+$form-range-thumb-bg:                      $component-active-bg !default;
+$form-range-thumb-border:                  0 !default;
+$form-range-thumb-border-radius:           1rem !default;
+$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;
+$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;
+$form-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in Edge
+$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%) !default;
+$form-range-thumb-disabled-bg:             $gray-500 !default;
+$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+// scss-docs-end form-range-variables
+
+// scss-docs-start form-file-variables
+$form-file-button-color:          $input-color !default;
+$form-file-button-bg:             $input-group-addon-bg !default;
+$form-file-button-hover-bg:       shade-color($form-file-button-bg, 5%) !default;
+// scss-docs-end form-file-variables
+
+// scss-docs-start form-floating-variables
+$form-floating-height:            add(3.5rem, $input-height-border) !default;
+$form-floating-line-height:       1.25 !default;
+$form-floating-padding-x:         $input-padding-x !default;
+$form-floating-padding-y:         1rem !default;
+$form-floating-input-padding-t:   1.625rem !default;
+$form-floating-input-padding-b:   .625rem !default;
+$form-floating-label-opacity:     .65 !default;
+$form-floating-label-transform:   scale(.85) translateY(-.5rem) translateX(.15rem) !default;
+$form-floating-transition:        opacity .1s ease-in-out, transform .1s ease-in-out !default;
+// scss-docs-end form-floating-variables
+
+// Form validation
+
+// scss-docs-start form-feedback-variables
+$form-feedback-margin-top:          $form-text-margin-top !default;
+$form-feedback-font-size:           $form-text-font-size !default;
+$form-feedback-font-style:          $form-text-font-style !default;
+$form-feedback-valid-color:         $success !default;
+$form-feedback-invalid-color:       $danger !default;
+
+$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;
+$form-feedback-icon-valid:          url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default;
+$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;
+$form-feedback-icon-invalid:        url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
+// scss-docs-end form-feedback-variables
+
+// scss-docs-start form-validation-states
+$form-validation-states: (
+  "valid": (
+    "color": $form-feedback-valid-color,
+    "icon": $form-feedback-icon-valid
+  ),
+  "invalid": (
+    "color": $form-feedback-invalid-color,
+    "icon": $form-feedback-icon-invalid
+  )
+) !default;
+// scss-docs-end form-validation-states
+
+// Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+
+// scss-docs-start zindex-stack
+$zindex-dropdown:                   1000 !default;
+$zindex-sticky:                     1020 !default;
+$zindex-fixed:                      1030 !default;
+$zindex-offcanvas-backdrop:         1040 !default;
+$zindex-offcanvas:                  1045 !default;
+$zindex-modal-backdrop:             1050 !default;
+$zindex-modal:                      1055 !default;
+$zindex-popover:                    1070 !default;
+$zindex-tooltip:                    1080 !default;
+$zindex-toast:                      1090 !default;
+// scss-docs-end zindex-stack
+
+
+// Navs
+
+// scss-docs-start nav-variables
+$nav-link-padding-y:                .5rem !default;
+$nav-link-padding-x:                1rem !default;
+$nav-link-font-size:                null !default;
+$nav-link-font-weight:              null !default;
+$nav-link-color:                    var(--#{$prefix}link-color) !default;
+$nav-link-hover-color:              var(--#{$prefix}link-hover-color) !default;
+$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;
+$nav-link-disabled-color:           $gray-600 !default;
+
+$nav-tabs-border-color:             $gray-300 !default;
+$nav-tabs-border-width:             $border-width !default;
+$nav-tabs-border-radius:            $border-radius !default;
+$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;
+$nav-tabs-link-active-color:        $gray-700 !default;
+$nav-tabs-link-active-bg:           $body-bg !default;
+$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
+
+$nav-pills-border-radius:           $border-radius !default;
+$nav-pills-link-active-color:       $component-active-color !default;
+$nav-pills-link-active-bg:          $component-active-bg !default;
+// scss-docs-end nav-variables
+
+
+// Navbar
+
+// scss-docs-start navbar-variables
+$navbar-padding-y:                  $spacer * .5 !default;
+$navbar-padding-x:                  null !default;
+
+$navbar-nav-link-padding-x:         .5rem !default;
+
+$navbar-brand-font-size:            $font-size-lg !default;
+// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
+$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
+$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;
+$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) * .5 !default;
+$navbar-brand-margin-end:           1rem !default;
+
+$navbar-toggler-padding-y:          .25rem !default;
+$navbar-toggler-padding-x:          .75rem !default;
+$navbar-toggler-font-size:          $font-size-lg !default;
+$navbar-toggler-border-radius:      $btn-border-radius !default;
+$navbar-toggler-focus-width:        $btn-focus-width !default;
+$navbar-toggler-transition:         box-shadow .15s ease-in-out !default;
+
+$navbar-light-color:                rgba($black, .55) !default;
+$navbar-light-hover-color:          rgba($black, .7) !default;
+$navbar-light-active-color:         rgba($black, .9) !default;
+$navbar-light-disabled-color:       rgba($black, .3) !default;
+$navbar-light-toggler-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
+$navbar-light-toggler-border-color: rgba($black, .1) !default;
+$navbar-light-brand-color:          $navbar-light-active-color !default;
+$navbar-light-brand-hover-color:    $navbar-light-active-color !default;
+// scss-docs-end navbar-variables
+
+// scss-docs-start navbar-dark-variables
+$navbar-dark-color:                 rgba($white, .55) !default;
+$navbar-dark-hover-color:           rgba($white, .75) !default;
+$navbar-dark-active-color:          $white !default;
+$navbar-dark-disabled-color:        rgba($white, .25) !default;
+$navbar-dark-toggler-icon-bg:       url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
+$navbar-dark-toggler-border-color:  rgba($white, .1) !default;
+$navbar-dark-brand-color:           $navbar-dark-active-color !default;
+$navbar-dark-brand-hover-color:     $navbar-dark-active-color !default;
+// scss-docs-end navbar-dark-variables
+
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+// scss-docs-start dropdown-variables
+$dropdown-min-width:                10rem !default;
+$dropdown-padding-x:                0 !default;
+$dropdown-padding-y:                .5rem !default;
+$dropdown-spacer:                   .125rem !default;
+$dropdown-font-size:                $font-size-base !default;
+$dropdown-color:                    $body-color !default;
+$dropdown-bg:                       $white !default;
+$dropdown-border-color:             var(--#{$prefix}border-color-translucent) !default;
+$dropdown-border-radius:            $border-radius !default;
+$dropdown-border-width:             $border-width !default;
+$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;
+$dropdown-divider-bg:               $dropdown-border-color !default;
+$dropdown-divider-margin-y:         $spacer * .5 !default;
+$dropdown-box-shadow:               $box-shadow !default;
+
+$dropdown-link-color:               $gray-900 !default;
+$dropdown-link-hover-color:         shade-color($dropdown-link-color, 10%) !default;
+$dropdown-link-hover-bg:            $gray-200 !default;
+
+$dropdown-link-active-color:        $component-active-color !default;
+$dropdown-link-active-bg:           $component-active-bg !default;
+
+$dropdown-link-disabled-color:      $gray-500 !default;
+
+$dropdown-item-padding-y:           $spacer * .25 !default;
+$dropdown-item-padding-x:           $spacer !default;
+
+$dropdown-header-color:             $gray-600 !default;
+$dropdown-header-padding-x:         $dropdown-item-padding-x !default;
+$dropdown-header-padding-y:         $dropdown-padding-y !default;
+// fusv-disable
+$dropdown-header-padding:           $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0
+// fusv-enable
+// scss-docs-end dropdown-variables
+
+// scss-docs-start dropdown-dark-variables
+$dropdown-dark-color:               $gray-300 !default;
+$dropdown-dark-bg:                  $gray-800 !default;
+$dropdown-dark-border-color:        $dropdown-border-color !default;
+$dropdown-dark-divider-bg:          $dropdown-divider-bg !default;
+$dropdown-dark-box-shadow:          null !default;
+$dropdown-dark-link-color:          $dropdown-dark-color !default;
+$dropdown-dark-link-hover-color:    $white !default;
+$dropdown-dark-link-hover-bg:       rgba($white, .15) !default;
+$dropdown-dark-link-active-color:   $dropdown-link-active-color !default;
+$dropdown-dark-link-active-bg:      $dropdown-link-active-bg !default;
+$dropdown-dark-link-disabled-color: $gray-500 !default;
+$dropdown-dark-header-color:        $gray-500 !default;
+// scss-docs-end dropdown-dark-variables
+
+
+// Pagination
+
+// scss-docs-start pagination-variables
+$pagination-padding-y:              .375rem !default;
+$pagination-padding-x:              .75rem !default;
+$pagination-padding-y-sm:           .25rem !default;
+$pagination-padding-x-sm:           .5rem !default;
+$pagination-padding-y-lg:           .75rem !default;
+$pagination-padding-x-lg:           1.5rem !default;
+
+$pagination-font-size:              $font-size-base !default;
+
+$pagination-color:                  var(--#{$prefix}link-color) !default;
+$pagination-bg:                     $white !default;
+$pagination-border-radius:          $border-radius !default;
+$pagination-border-width:           $border-width !default;
+$pagination-margin-start:           ($pagination-border-width * -1) !default;
+$pagination-border-color:           $gray-300 !default;
+
+$pagination-focus-color:            var(--#{$prefix}link-hover-color) !default;
+$pagination-focus-bg:               $gray-200 !default;
+$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;
+$pagination-focus-outline:          0 !default;
+
+$pagination-hover-color:            var(--#{$prefix}link-hover-color) !default;
+$pagination-hover-bg:               $gray-200 !default;
+$pagination-hover-border-color:     $gray-300 !default;
+
+$pagination-active-color:           $component-active-color !default;
+$pagination-active-bg:              $component-active-bg !default;
+$pagination-active-border-color:    $pagination-active-bg !default;
+
+$pagination-disabled-color:         $gray-600 !default;
+$pagination-disabled-bg:            $white !default;
+$pagination-disabled-border-color:  $gray-300 !default;
+
+$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$pagination-border-radius-sm:       $border-radius-sm !default;
+$pagination-border-radius-lg:       $border-radius-lg !default;
+// scss-docs-end pagination-variables
+
+
+// Placeholders
+
+// scss-docs-start placeholders
+$placeholder-opacity-max:           .5 !default;
+$placeholder-opacity-min:           .2 !default;
+// scss-docs-end placeholders
+
+// Cards
+
+// scss-docs-start card-variables
+$card-spacer-y:                     $spacer !default;
+$card-spacer-x:                     $spacer !default;
+$card-title-spacer-y:               $spacer * .5 !default;
+$card-border-width:                 $border-width !default;
+$card-border-color:                 var(--#{$prefix}border-color-translucent) !default;
+$card-border-radius:                $border-radius !default;
+$card-box-shadow:                   null !default;
+$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;
+$card-cap-padding-y:                $card-spacer-y * .5 !default;
+$card-cap-padding-x:                $card-spacer-x !default;
+$card-cap-bg:                       rgba($black, .03) !default;
+$card-cap-color:                    null !default;
+$card-height:                       null !default;
+$card-color:                        null !default;
+$card-bg:                           $white !default;
+$card-img-overlay-padding:          $spacer !default;
+$card-group-margin:                 $grid-gutter-width * .5 !default;
+// scss-docs-end card-variables
+
+// Accordion
+
+// scss-docs-start accordion-variables
+$accordion-padding-y:                     1rem !default;
+$accordion-padding-x:                     1.25rem !default;
+$accordion-color:                         $body-color !default; // Sass variable because of $accordion-button-icon
+$accordion-bg:                            $body-bg !default;
+$accordion-border-width:                  $border-width !default;
+$accordion-border-color:                  var(--#{$prefix}border-color) !default;
+$accordion-border-radius:                 $border-radius !default;
+$accordion-inner-border-radius:           subtract($accordion-border-radius, $accordion-border-width) !default;
+
+$accordion-body-padding-y:                $accordion-padding-y !default;
+$accordion-body-padding-x:                $accordion-padding-x !default;
+
+$accordion-button-padding-y:              $accordion-padding-y !default;
+$accordion-button-padding-x:              $accordion-padding-x !default;
+$accordion-button-color:                  $accordion-color !default;
+$accordion-button-bg:                     var(--#{$prefix}accordion-bg) !default;
+$accordion-transition:                    $btn-transition, border-radius .15s ease !default;
+$accordion-button-active-bg:              tint-color($component-active-bg, 90%) !default;
+$accordion-button-active-color:           shade-color($primary, 10%) !default;
+
+$accordion-button-focus-border-color:     $input-focus-border-color !default;
+$accordion-button-focus-box-shadow:       $btn-focus-box-shadow !default;
+
+$accordion-icon-width:                    1.25rem !default;
+$accordion-icon-color:                    $accordion-button-color !default;
+$accordion-icon-active-color:             $accordion-button-active-color !default;
+$accordion-icon-transition:               transform .2s ease-in-out !default;
+$accordion-icon-transform:                rotate(-180deg) !default;
+
+$accordion-button-icon:         url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
+$accordion-button-active-icon:  url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
+// scss-docs-end accordion-variables
+
+// Tooltips
+
+// scss-docs-start tooltip-variables
+$tooltip-font-size:                 $font-size-sm !default;
+$tooltip-max-width:                 200px !default;
+$tooltip-color:                     $white !default;
+$tooltip-bg:                        $black !default;
+$tooltip-border-radius:             $border-radius !default;
+$tooltip-opacity:                   .9 !default;
+$tooltip-padding-y:                 $spacer * .25 !default;
+$tooltip-padding-x:                 $spacer * .5 !default;
+$tooltip-margin:                    null !default; // TODO: remove this in v6
+
+$tooltip-arrow-width:               .8rem !default;
+$tooltip-arrow-height:              .4rem !default;
+// fusv-disable
+$tooltip-arrow-color:               null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables
+// fusv-enable
+// scss-docs-end tooltip-variables
+
+// Form tooltips must come after regular tooltips
+// scss-docs-start tooltip-feedback-variables
+$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;
+$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;
+$form-feedback-tooltip-font-size:     $tooltip-font-size !default;
+$form-feedback-tooltip-line-height:   null !default;
+$form-feedback-tooltip-opacity:       $tooltip-opacity !default;
+$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
+// scss-docs-end tooltip-feedback-variables
+
+
+// Popovers
+
+// scss-docs-start popover-variables
+$popover-font-size:                 $font-size-sm !default;
+$popover-bg:                        $white !default;
+$popover-max-width:                 276px !default;
+$popover-border-width:              $border-width !default;
+$popover-border-color:              var(--#{$prefix}border-color-translucent) !default;
+$popover-border-radius:             $border-radius-lg !default;
+$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;
+$popover-box-shadow:                $box-shadow !default;
+
+$popover-header-font-size:          $font-size-base !default;
+$popover-header-bg:                 shade-color($popover-bg, 6%) !default;
+$popover-header-color:              $headings-color !default;
+$popover-header-padding-y:          .5rem !default;
+$popover-header-padding-x:          $spacer !default;
+
+$popover-body-color:                $body-color !default;
+$popover-body-padding-y:            $spacer !default;
+$popover-body-padding-x:            $spacer !default;
+
+$popover-arrow-width:               1rem !default;
+$popover-arrow-height:              .5rem !default;
+// scss-docs-end popover-variables
+
+// fusv-disable
+// Deprecated in Bootstrap 5.2.0 for CSS variables
+$popover-arrow-color:               $popover-bg !default;
+$popover-arrow-outer-color:         var(--#{$prefix}border-color-translucent) !default;
+// fusv-enable
+
+
+// Toasts
+
+// scss-docs-start toast-variables
+$toast-max-width:                   350px !default;
+$toast-padding-x:                   .75rem !default;
+$toast-padding-y:                   .5rem !default;
+$toast-font-size:                   .875rem !default;
+$toast-color:                       null !default;
+$toast-background-color:            rgba($white, .85) !default;
+$toast-border-width:                $border-width !default;
+$toast-border-color:                var(--#{$prefix}border-color-translucent) !default;
+$toast-border-radius:               $border-radius !default;
+$toast-box-shadow:                  $box-shadow !default;
+$toast-spacing:                     $container-padding-x !default;
+
+$toast-header-color:                $gray-600 !default;
+$toast-header-background-color:     rgba($white, .85) !default;
+$toast-header-border-color:         rgba($black, .05) !default;
+// scss-docs-end toast-variables
+
+
+// Badges
+
+// scss-docs-start badge-variables
+$badge-font-size:                   .75em !default;
+$badge-font-weight:                 $font-weight-bold !default;
+$badge-color:                       $white !default;
+$badge-padding-y:                   .35em !default;
+$badge-padding-x:                   .65em !default;
+$badge-border-radius:               $border-radius !default;
+// scss-docs-end badge-variables
+
+
+// Modals
+
+// scss-docs-start modal-variables
+$modal-inner-padding:               $spacer !default;
+
+$modal-footer-margin-between:       .5rem !default;
+
+$modal-dialog-margin:               .5rem !default;
+$modal-dialog-margin-y-sm-up:       1.75rem !default;
+
+$modal-title-line-height:           $line-height-base !default;
+
+$modal-content-color:               null !default;
+$modal-content-bg:                  $white !default;
+$modal-content-border-color:        var(--#{$prefix}border-color-translucent) !default;
+$modal-content-border-width:        $border-width !default;
+$modal-content-border-radius:       $border-radius-lg !default;
+$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
+$modal-content-box-shadow-xs:       $box-shadow-sm !default;
+$modal-content-box-shadow-sm-up:    $box-shadow !default;
+
+$modal-backdrop-bg:                 $black !default;
+$modal-backdrop-opacity:            .5 !default;
+
+$modal-header-border-color:         var(--#{$prefix}border-color) !default;
+$modal-header-border-width:         $modal-content-border-width !default;
+$modal-header-padding-y:            $modal-inner-padding !default;
+$modal-header-padding-x:            $modal-inner-padding !default;
+$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
+
+$modal-footer-bg:                   null !default;
+$modal-footer-border-color:         $modal-header-border-color !default;
+$modal-footer-border-width:         $modal-header-border-width !default;
+
+$modal-sm:                          300px !default;
+$modal-md:                          500px !default;
+$modal-lg:                          800px !default;
+$modal-xl:                          1140px !default;
+
+$modal-fade-transform:              translate(0, -50px) !default;
+$modal-show-transform:              none !default;
+$modal-transition:                  transform .3s ease-out !default;
+$modal-scale-transform:             scale(1.02) !default;
+// scss-docs-end modal-variables
+
+
+// Alerts
+//
+// Define alert colors, border radius, and padding.
+
+// scss-docs-start alert-variables
+$alert-padding-y:               $spacer !default;
+$alert-padding-x:               $spacer !default;
+$alert-margin-bottom:           1rem !default;
+$alert-border-radius:           $border-radius !default;
+$alert-link-font-weight:        $font-weight-bold !default;
+$alert-border-width:            $border-width !default;
+$alert-bg-scale:                -80% !default;
+$alert-border-scale:            -70% !default;
+$alert-color-scale:             40% !default;
+$alert-dismissible-padding-r:   $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side
+// scss-docs-end alert-variables
+
+
+// Progress bars
+
+// scss-docs-start progress-variables
+$progress-height:                   1rem !default;
+$progress-font-size:                $font-size-base * .75 !default;
+$progress-bg:                       $gray-200 !default;
+$progress-border-radius:            $border-radius !default;
+$progress-box-shadow:               $box-shadow-inset !default;
+$progress-bar-color:                $white !default;
+$progress-bar-bg:                   $primary !default;
+$progress-bar-animation-timing:     1s linear infinite !default;
+$progress-bar-transition:           width .6s ease !default;
+// scss-docs-end progress-variables
+
+
+// List group
+
+// scss-docs-start list-group-variables
+$list-group-color:                  $gray-900 !default;
+$list-group-bg:                     $white !default;
+$list-group-border-color:           rgba($black, .125) !default;
+$list-group-border-width:           $border-width !default;
+$list-group-border-radius:          $border-radius !default;
+
+$list-group-item-padding-y:         $spacer * .5 !default;
+$list-group-item-padding-x:         $spacer !default;
+$list-group-item-bg-scale:          -80% !default;
+$list-group-item-color-scale:       40% !default;
+
+$list-group-hover-bg:               $gray-100 !default;
+$list-group-active-color:           $component-active-color !default;
+$list-group-active-bg:              $component-active-bg !default;
+$list-group-active-border-color:    $list-group-active-bg !default;
+
+$list-group-disabled-color:         $gray-600 !default;
+$list-group-disabled-bg:            $list-group-bg !default;
+
+$list-group-action-color:           $gray-700 !default;
+$list-group-action-hover-color:     $list-group-action-color !default;
+
+$list-group-action-active-color:    $body-color !default;
+$list-group-action-active-bg:       $gray-200 !default;
+// scss-docs-end list-group-variables
+
+
+// Image thumbnails
+
+// scss-docs-start thumbnail-variables
+$thumbnail-padding:                 .25rem !default;
+$thumbnail-bg:                      $body-bg !default;
+$thumbnail-border-width:            $border-width !default;
+$thumbnail-border-color:            var(--#{$prefix}border-color) !default;
+$thumbnail-border-radius:           $border-radius !default;
+$thumbnail-box-shadow:              $box-shadow-sm !default;
+// scss-docs-end thumbnail-variables
+
+
+// Figures
+
+// scss-docs-start figure-variables
+$figure-caption-font-size:          $small-font-size !default;
+$figure-caption-color:              $gray-600 !default;
+// scss-docs-end figure-variables
+
+
+// Breadcrumbs
+
+// scss-docs-start breadcrumb-variables
+$breadcrumb-font-size:              null !default;
+$breadcrumb-padding-y:              0 !default;
+$breadcrumb-padding-x:              0 !default;
+$breadcrumb-item-padding-x:         .5rem !default;
+$breadcrumb-margin-bottom:          1rem !default;
+$breadcrumb-bg:                     null !default;
+$breadcrumb-divider-color:          $gray-600 !default;
+$breadcrumb-active-color:           $gray-600 !default;
+$breadcrumb-divider:                quote("/") !default;
+$breadcrumb-divider-flipped:        $breadcrumb-divider !default;
+$breadcrumb-border-radius:          null !default;
+// scss-docs-end breadcrumb-variables
+
+// Carousel
+
+// scss-docs-start carousel-variables
+$carousel-control-color:             $white !default;
+$carousel-control-width:             15% !default;
+$carousel-control-opacity:           .5 !default;
+$carousel-control-hover-opacity:     .9 !default;
+$carousel-control-transition:        opacity .15s ease !default;
+
+$carousel-indicator-width:           30px !default;
+$carousel-indicator-height:          3px !default;
+$carousel-indicator-hit-area-height: 10px !default;
+$carousel-indicator-spacer:          3px !default;
+$carousel-indicator-opacity:         .5 !default;
+$carousel-indicator-active-bg:       $white !default;
+$carousel-indicator-active-opacity:  1 !default;
+$carousel-indicator-transition:      opacity .6s ease !default;
+
+$carousel-caption-width:             70% !default;
+$carousel-caption-color:             $white !default;
+$carousel-caption-padding-y:         1.25rem !default;
+$carousel-caption-spacer:            1.25rem !default;
+
+$carousel-control-icon-width:        2rem !default;
+
+$carousel-control-prev-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
+$carousel-control-next-icon-bg:      url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
+
+$carousel-transition-duration:       .6s !default;
+$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
+// scss-docs-end carousel-variables
+
+// scss-docs-start carousel-dark-variables
+$carousel-dark-indicator-active-bg:  $black !default;
+$carousel-dark-caption-color:        $black !default;
+$carousel-dark-control-icon-filter:  invert(1) grayscale(100) !default;
+// scss-docs-end carousel-dark-variables
+
+
+// Spinners
+
+// scss-docs-start spinner-variables
+$spinner-width:           2rem !default;
+$spinner-height:          $spinner-width !default;
+$spinner-vertical-align:  -.125em !default;
+$spinner-border-width:    .25em !default;
+$spinner-animation-speed: .75s !default;
+
+$spinner-width-sm:        1rem !default;
+$spinner-height-sm:       $spinner-width-sm !default;
+$spinner-border-width-sm: .2em !default;
+// scss-docs-end spinner-variables
+
+
+// Close
+
+// scss-docs-start close-variables
+$btn-close-width:            1em !default;
+$btn-close-height:           $btn-close-width !default;
+$btn-close-padding-x:        .25em !default;
+$btn-close-padding-y:        $btn-close-padding-x !default;
+$btn-close-color:            $black !default;
+$btn-close-bg:               url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
+$btn-close-focus-shadow:     $input-btn-focus-box-shadow !default;
+$btn-close-opacity:          .5 !default;
+$btn-close-hover-opacity:    .75 !default;
+$btn-close-focus-opacity:    1 !default;
+$btn-close-disabled-opacity: .25 !default;
+$btn-close-white-filter:     invert(1) grayscale(100%) brightness(200%) !default;
+// scss-docs-end close-variables
+
+
+// Offcanvas
+
+// scss-docs-start offcanvas-variables
+$offcanvas-padding-y:               $modal-inner-padding !default;
+$offcanvas-padding-x:               $modal-inner-padding !default;
+$offcanvas-horizontal-width:        400px !default;
+$offcanvas-vertical-height:         30vh !default;
+$offcanvas-transition-duration:     .3s !default;
+$offcanvas-border-color:            $modal-content-border-color !default;
+$offcanvas-border-width:            $modal-content-border-width !default;
+$offcanvas-title-line-height:       $modal-title-line-height !default;
+$offcanvas-bg-color:                $modal-content-bg !default;
+$offcanvas-color:                   $modal-content-color !default;
+$offcanvas-box-shadow:              $modal-content-box-shadow-xs !default;
+$offcanvas-backdrop-bg:             $modal-backdrop-bg !default;
+$offcanvas-backdrop-opacity:        $modal-backdrop-opacity !default;
+// scss-docs-end offcanvas-variables
+
+// Code
+
+$code-font-size:                    $small-font-size !default;
+$code-color:                        $pink !default;
+
+$kbd-padding-y:                     .1875rem !default;
+$kbd-padding-x:                     .375rem !default;
+$kbd-font-size:                     $code-font-size !default;
+$kbd-color:                         var(--#{$prefix}body-bg) !default;
+$kbd-bg:                            var(--#{$prefix}body-color) !default;
+$nested-kbd-font-weight:            null !default; // Deprecated in v5.2.0, removing in v6
+
+$pre-color:                         null !default;
diff --git a/styles/bootstrap/bootstrap-grid.scss b/styles/bootstrap/bootstrap-grid.scss
new file mode 100644
index 0000000..1c4cdd1
--- /dev/null
+++ b/styles/bootstrap/bootstrap-grid.scss
@@ -0,0 +1,64 @@
+@import "mixins/banner";
+@include bsBanner(Grid);
+
+$include-column-box-sizing: true !default;
+
+@import "functions";
+@import "variables";
+@import "maps";
+
+@import "mixins/lists";
+@import "mixins/breakpoints";
+@import "mixins/container";
+@import "mixins/grid";
+@import "mixins/utilities";
+
+@import "vendor/rfs";
+
+@import "root";
+
+@import "containers";
+@import "grid";
+
+@import "utilities";
+// Only use the utilities we need
+// stylelint-disable-next-line scss/dollar-variable-default
+$utilities: map-get-multiple(
+  $utilities,
+  (
+    "display",
+    "order",
+    "flex",
+    "flex-direction",
+    "flex-grow",
+    "flex-shrink",
+    "flex-wrap",
+    "justify-content",
+    "align-items",
+    "align-content",
+    "align-self",
+    "margin",
+    "margin-x",
+    "margin-y",
+    "margin-top",
+    "margin-end",
+    "margin-bottom",
+    "margin-start",
+    "negative-margin",
+    "negative-margin-x",
+    "negative-margin-y",
+    "negative-margin-top",
+    "negative-margin-end",
+    "negative-margin-bottom",
+    "negative-margin-start",
+    "padding",
+    "padding-x",
+    "padding-y",
+    "padding-top",
+    "padding-end",
+    "padding-bottom",
+    "padding-start",
+  )
+);
+
+@import "utilities/api";
diff --git a/styles/bootstrap/bootstrap-reboot.scss b/styles/bootstrap/bootstrap-reboot.scss
new file mode 100644
index 0000000..af52745
--- /dev/null
+++ b/styles/bootstrap/bootstrap-reboot.scss
@@ -0,0 +1,9 @@
+@import "mixins/banner";
+@include bsBanner(Reboot);
+
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "root";
+@import "reboot";
diff --git a/styles/bootstrap/bootstrap-utilities.scss b/styles/bootstrap/bootstrap-utilities.scss
new file mode 100644
index 0000000..2b3dbc5
--- /dev/null
+++ b/styles/bootstrap/bootstrap-utilities.scss
@@ -0,0 +1,18 @@
+@import "mixins/banner";
+@include bsBanner(Utilities);
+
+// Configuration
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "utilities";
+
+// Layout & components
+@import "root";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
diff --git a/styles/bootstrap/bootstrap.scss b/styles/bootstrap/bootstrap.scss
new file mode 100644
index 0000000..8f8296d
--- /dev/null
+++ b/styles/bootstrap/bootstrap.scss
@@ -0,0 +1,51 @@
+@import "mixins/banner";
+@include bsBanner("");
+
+
+// scss-docs-start import-stack
+// Configuration
+@import "functions";
+@import "variables";
+@import "maps";
+@import "mixins";
+@import "utilities";
+
+// Layout & components
+@import "root";
+@import "reboot";
+@import "type";
+@import "images";
+@import "containers";
+@import "grid";
+@import "tables";
+@import "forms";
+@import "buttons";
+@import "transitions";
+@import "dropdown";
+@import "button-group";
+@import "nav";
+@import "navbar";
+@import "card";
+@import "accordion";
+@import "breadcrumb";
+@import "pagination";
+@import "badge";
+@import "alert";
+@import "progress";
+@import "list-group";
+@import "close";
+@import "toasts";
+@import "modal";
+@import "tooltip";
+@import "popover";
+@import "carousel";
+@import "spinners";
+@import "offcanvas";
+@import "placeholders";
+
+// Helpers
+@import "helpers";
+
+// Utilities
+@import "utilities/api";
+// scss-docs-end import-stack
diff --git a/styles/bootstrap/forms/_floating-labels.scss b/styles/bootstrap/forms/_floating-labels.scss
new file mode 100644
index 0000000..6e5c9a7
--- /dev/null
+++ b/styles/bootstrap/forms/_floating-labels.scss
@@ -0,0 +1,75 @@
+.form-floating {
+  position: relative;
+
+  > .form-control,
+  > .form-control-plaintext,
+  > .form-select {
+    height: $form-floating-height;
+    line-height: $form-floating-line-height;
+  }
+
+  > label {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%; // allow textareas
+    padding: $form-floating-padding-y $form-floating-padding-x;
+    overflow: hidden;
+    text-align: start;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    pointer-events: none;
+    border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
+    transform-origin: 0 0;
+    @include transition($form-floating-transition);
+  }
+
+  > .form-control,
+  > .form-control-plaintext {
+    padding: $form-floating-padding-y $form-floating-padding-x;
+
+    &::placeholder {
+      color: transparent;
+    }
+
+    &:focus,
+    &:not(:placeholder-shown) {
+      padding-top: $form-floating-input-padding-t;
+      padding-bottom: $form-floating-input-padding-b;
+    }
+    // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+    &:-webkit-autofill {
+      padding-top: $form-floating-input-padding-t;
+      padding-bottom: $form-floating-input-padding-b;
+    }
+  }
+
+  > .form-select {
+    padding-top: $form-floating-input-padding-t;
+    padding-bottom: $form-floating-input-padding-b;
+  }
+
+  > .form-control:focus,
+  > .form-control:not(:placeholder-shown),
+  > .form-control-plaintext,
+  > .form-select {
+    ~ label {
+      opacity: $form-floating-label-opacity;
+      transform: $form-floating-label-transform;
+    }
+  }
+  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
+  > .form-control:-webkit-autofill {
+    ~ label {
+      opacity: $form-floating-label-opacity;
+      transform: $form-floating-label-transform;
+    }
+  }
+
+  > .form-control-plaintext {
+    ~ label {
+      border-width: $input-border-width 0; // Required to properly position label text - as explained above
+    }
+  }
+}
diff --git a/styles/bootstrap/forms/_form-check.scss b/styles/bootstrap/forms/_form-check.scss
new file mode 100644
index 0000000..42a2a96
--- /dev/null
+++ b/styles/bootstrap/forms/_form-check.scss
@@ -0,0 +1,175 @@
+//
+// Check/radio
+//
+
+.form-check {
+  display: block;
+  min-height: $form-check-min-height;
+  padding-left: $form-check-padding-start;
+  margin-bottom: $form-check-margin-bottom;
+
+  .form-check-input {
+    float: left;
+    margin-left: $form-check-padding-start * -1;
+  }
+}
+
+.form-check-reverse {
+  padding-right: $form-check-padding-start;
+  padding-left: 0;
+  text-align: right;
+
+  .form-check-input {
+    float: right;
+    margin-right: $form-check-padding-start * -1;
+    margin-left: 0;
+  }
+}
+
+.form-check-input {
+  width: $form-check-input-width;
+  height: $form-check-input-width;
+  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
+  vertical-align: top;
+  background-color: $form-check-input-bg;
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: contain;
+  border: $form-check-input-border;
+  appearance: none;
+  print-color-adjust: exact; // Keep themed appearance for print
+  @include transition($form-check-transition);
+
+  &[type="checkbox"] {
+    @include border-radius($form-check-input-border-radius);
+  }
+
+  &[type="radio"] {
+    // stylelint-disable-next-line property-disallowed-list
+    border-radius: $form-check-radio-border-radius;
+  }
+
+  &:active {
+    filter: $form-check-input-active-filter;
+  }
+
+  &:focus {
+    border-color: $form-check-input-focus-border;
+    outline: 0;
+    box-shadow: $form-check-input-focus-box-shadow;
+  }
+
+  &:checked {
+    background-color: $form-check-input-checked-bg-color;
+    border-color: $form-check-input-checked-border-color;
+
+    &[type="checkbox"] {
+      @if $enable-gradients {
+        background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);
+      } @else {
+        background-image: escape-svg($form-check-input-checked-bg-image);
+      }
+    }
+
+    &[type="radio"] {
+      @if $enable-gradients {
+        background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);
+      } @else {
+        background-image: escape-svg($form-check-radio-checked-bg-image);
+      }
+    }
+  }
+
+  &[type="checkbox"]:indeterminate {
+    background-color: $form-check-input-indeterminate-bg-color;
+    border-color: $form-check-input-indeterminate-border-color;
+
+    @if $enable-gradients {
+      background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);
+    } @else {
+      background-image: escape-svg($form-check-input-indeterminate-bg-image);
+    }
+  }
+
+  &:disabled {
+    pointer-events: none;
+    filter: none;
+    opacity: $form-check-input-disabled-opacity;
+  }
+
+  // Use disabled attribute in addition of :disabled pseudo-class
+  // See: https://github.com/twbs/bootstrap/issues/28247
+  &[disabled],
+  &:disabled {
+    ~ .form-check-label {
+      cursor: default;
+      opacity: $form-check-label-disabled-opacity;
+    }
+  }
+}
+
+.form-check-label {
+  color: $form-check-label-color;
+  cursor: $form-check-label-cursor;
+}
+
+//
+// Switch
+//
+
+.form-switch {
+  padding-left: $form-switch-padding-start;
+
+  .form-check-input {
+    width: $form-switch-width;
+    margin-left: $form-switch-padding-start * -1;
+    background-image: escape-svg($form-switch-bg-image);
+    background-position: left center;
+    @include border-radius($form-switch-border-radius);
+    @include transition($form-switch-transition);
+
+    &:focus {
+      background-image: escape-svg($form-switch-focus-bg-image);
+    }
+
+    &:checked {
+      background-position: $form-switch-checked-bg-position;
+
+      @if $enable-gradients {
+        background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);
+      } @else {
+        background-image: escape-svg($form-switch-checked-bg-image);
+      }
+    }
+  }
+
+  &.form-check-reverse {
+    padding-right: $form-switch-padding-start;
+    padding-left: 0;
+
+    .form-check-input {
+      margin-right: $form-switch-padding-start * -1;
+      margin-left: 0;
+    }
+  }
+}
+
+.form-check-inline {
+  display: inline-block;
+  margin-right: $form-check-inline-margin-end;
+}
+
+.btn-check {
+  position: absolute;
+  clip: rect(0, 0, 0, 0);
+  pointer-events: none;
+
+  &[disabled],
+  &:disabled {
+    + .btn {
+      pointer-events: none;
+      filter: none;
+      opacity: $form-check-btn-check-disabled-opacity;
+    }
+  }
+}
diff --git a/styles/bootstrap/forms/_form-control.scss b/styles/bootstrap/forms/_form-control.scss
new file mode 100644
index 0000000..e707c57
--- /dev/null
+++ b/styles/bootstrap/forms/_form-control.scss
@@ -0,0 +1,194 @@
+//
+// General form controls (plus a few specific high-level interventions)
+//
+
+.form-control {
+  display: block;
+  width: 100%;
+  padding: $input-padding-y $input-padding-x;
+  font-family: $input-font-family;
+  @include font-size($input-font-size);
+  font-weight: $input-font-weight;
+  line-height: $input-line-height;
+  color: $input-color;
+  background-color: $input-bg;
+  background-clip: padding-box;
+  border: $input-border-width solid $input-border-color;
+  appearance: none; // Fix appearance for date inputs in Safari
+
+  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
+  @include border-radius($input-border-radius, 0);
+
+  @include box-shadow($input-box-shadow);
+  @include transition($input-transition);
+
+  &[type="file"] {
+    overflow: hidden; // prevent pseudo element button overlap
+
+    &:not(:disabled):not([readonly]) {
+      cursor: pointer;
+    }
+  }
+
+  // Customize the `:focus` state to imitate native WebKit styles.
+  &:focus {
+    color: $input-focus-color;
+    background-color: $input-focus-bg;
+    border-color: $input-focus-border-color;
+    outline: 0;
+    @if $enable-shadows {
+      @include box-shadow($input-box-shadow, $input-focus-box-shadow);
+    } @else {
+      // Avoid using mixin so we can pass custom focus shadow properly
+      box-shadow: $input-focus-box-shadow;
+    }
+  }
+
+  // Add some height to date inputs on iOS
+  // https://github.com/twbs/bootstrap/issues/23307
+  // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
+  &::-webkit-date-and-time-value {
+    // Multiply line-height by 1em if it has no unit
+    height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
+  }
+
+  // Placeholder
+  &::placeholder {
+    color: $input-placeholder-color;
+    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
+    opacity: 1;
+  }
+
+  // Disabled inputs
+  //
+  // HTML5 says that controls under a fieldset > legend:first-child won't be
+  // disabled if the fieldset is disabled. Due to implementation difficulty, we
+  // don't honor that edge case; we style them as disabled anyway.
+  &:disabled {
+    color: $input-disabled-color;
+    background-color: $input-disabled-bg;
+    border-color: $input-disabled-border-color;
+    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
+    opacity: 1;
+  }
+
+  // File input buttons theming
+  &::file-selector-button {
+    padding: $input-padding-y $input-padding-x;
+    margin: (-$input-padding-y) (-$input-padding-x);
+    margin-inline-end: $input-padding-x;
+    color: $form-file-button-color;
+    @include gradient-bg($form-file-button-bg);
+    pointer-events: none;
+    border-color: inherit;
+    border-style: solid;
+    border-width: 0;
+    border-inline-end-width: $input-border-width;
+    border-radius: 0; // stylelint-disable-line property-disallowed-list
+    @include transition($btn-transition);
+  }
+
+  &:hover:not(:disabled):not([readonly])::file-selector-button {
+    background-color: $form-file-button-hover-bg;
+  }
+}
+
+// Readonly controls as plain text
+//
+// Apply class to a readonly input to make it appear like regular plain
+// text (without any border, background color, focus indicator)
+
+.form-control-plaintext {
+  display: block;
+  width: 100%;
+  padding: $input-padding-y 0;
+  margin-bottom: 0; // match inputs if this class comes on inputs with default margins
+  line-height: $input-line-height;
+  color: $input-plaintext-color;
+  background-color: transparent;
+  border: solid transparent;
+  border-width: $input-border-width 0;
+
+  &:focus {
+    outline: 0;
+  }
+
+  &.form-control-sm,
+  &.form-control-lg {
+    padding-right: 0;
+    padding-left: 0;
+  }
+}
+
+// Form control sizing
+//
+// Build on `.form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// Repeated in `_input_group.scss` to avoid Sass extend issues.
+
+.form-control-sm {
+  min-height: $input-height-sm;
+  padding: $input-padding-y-sm $input-padding-x-sm;
+  @include font-size($input-font-size-sm);
+  @include border-radius($input-border-radius-sm);
+
+  &::file-selector-button {
+    padding: $input-padding-y-sm $input-padding-x-sm;
+    margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
+    margin-inline-end: $input-padding-x-sm;
+  }
+}
+
+.form-control-lg {
+  min-height: $input-height-lg;
+  padding: $input-padding-y-lg $input-padding-x-lg;
+  @include font-size($input-font-size-lg);
+  @include border-radius($input-border-radius-lg);
+
+  &::file-selector-button {
+    padding: $input-padding-y-lg $input-padding-x-lg;
+    margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
+    margin-inline-end: $input-padding-x-lg;
+  }
+}
+
+// Make sure textareas don't shrink too much when resized
+// https://github.com/twbs/bootstrap/pull/29124
+// stylelint-disable selector-no-qualifying-type
+textarea {
+  &.form-control {
+    min-height: $input-height;
+  }
+
+  &.form-control-sm {
+    min-height: $input-height-sm;
+  }
+
+  &.form-control-lg {
+    min-height: $input-height-lg;
+  }
+}
+// stylelint-enable selector-no-qualifying-type
+
+.form-control-color {
+  width: $form-color-width;
+  height: $input-height;
+  padding: $input-padding-y;
+
+  &:not(:disabled):not([readonly]) {
+    cursor: pointer;
+  }
+
+  &::-moz-color-swatch {
+    border: 0 !important; // stylelint-disable-line declaration-no-important
+    @include border-radius($input-border-radius);
+  }
+
+  &::-webkit-color-swatch {
+    @include border-radius($input-border-radius);
+  }
+
+  &.form-control-sm { height: $input-height-sm; }
+  &.form-control-lg { height: $input-height-lg; }
+}
diff --git a/styles/bootstrap/forms/_form-range.scss b/styles/bootstrap/forms/_form-range.scss
new file mode 100644
index 0000000..6de4213
--- /dev/null
+++ b/styles/bootstrap/forms/_form-range.scss
@@ -0,0 +1,91 @@
+// Range
+//
+// Style range inputs the same across browsers. Vendor-specific rules for pseudo
+// elements cannot be mixed. As such, there are no shared styles for focus or
+// active states on prefixed selectors.
+
+.form-range {
+  width: 100%;
+  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
+  padding: 0; // Need to reset padding
+  background-color: transparent;
+  appearance: none;
+
+  &:focus {
+    outline: 0;
+
+    // Pseudo-elements must be split across multiple rulesets to have an effect.
+    // No box-shadow() mixin for focus accessibility.
+    &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
+    &::-moz-range-thumb     { box-shadow: $form-range-thumb-focus-box-shadow; }
+  }
+
+  &::-moz-focus-outer {
+    border: 0;
+  }
+
+  &::-webkit-slider-thumb {
+    width: $form-range-thumb-width;
+    height: $form-range-thumb-height;
+    margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
+    @include gradient-bg($form-range-thumb-bg);
+    border: $form-range-thumb-border;
+    @include border-radius($form-range-thumb-border-radius);
+    @include box-shadow($form-range-thumb-box-shadow);
+    @include transition($form-range-thumb-transition);
+    appearance: none;
+
+    &:active {
+      @include gradient-bg($form-range-thumb-active-bg);
+    }
+  }
+
+  &::-webkit-slider-runnable-track {
+    width: $form-range-track-width;
+    height: $form-range-track-height;
+    color: transparent; // Why?
+    cursor: $form-range-track-cursor;
+    background-color: $form-range-track-bg;
+    border-color: transparent;
+    @include border-radius($form-range-track-border-radius);
+    @include box-shadow($form-range-track-box-shadow);
+  }
+
+  &::-moz-range-thumb {
+    width: $form-range-thumb-width;
+    height: $form-range-thumb-height;
+    @include gradient-bg($form-range-thumb-bg);
+    border: $form-range-thumb-border;
+    @include border-radius($form-range-thumb-border-radius);
+    @include box-shadow($form-range-thumb-box-shadow);
+    @include transition($form-range-thumb-transition);
+    appearance: none;
+
+    &:active {
+      @include gradient-bg($form-range-thumb-active-bg);
+    }
+  }
+
+  &::-moz-range-track {
+    width: $form-range-track-width;
+    height: $form-range-track-height;
+    color: transparent;
+    cursor: $form-range-track-cursor;
+    background-color: $form-range-track-bg;
+    border-color: transparent; // Firefox specific?
+    @include border-radius($form-range-track-border-radius);
+    @include box-shadow($form-range-track-box-shadow);
+  }
+
+  &:disabled {
+    pointer-events: none;
+
+    &::-webkit-slider-thumb {
+      background-color: $form-range-thumb-disabled-bg;
+    }
+
+    &::-moz-range-thumb {
+      background-color: $form-range-thumb-disabled-bg;
+    }
+  }
+}
diff --git a/styles/bootstrap/forms/_form-select.scss b/styles/bootstrap/forms/_form-select.scss
new file mode 100644
index 0000000..78c34b8
--- /dev/null
+++ b/styles/bootstrap/forms/_form-select.scss
@@ -0,0 +1,71 @@
+// Select
+//
+// Replaces the browser default select with a custom one, mostly pulled from
+// https://primer.github.io/.
+
+.form-select {
+  display: block;
+  width: 100%;
+  padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
+  -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
+  font-family: $form-select-font-family;
+  @include font-size($form-select-font-size);
+  font-weight: $form-select-font-weight;
+  line-height: $form-select-line-height;
+  color: $form-select-color;
+  background-color: $form-select-bg;
+  background-image: escape-svg($form-select-indicator);
+  background-repeat: no-repeat;
+  background-position: $form-select-bg-position;
+  background-size: $form-select-bg-size;
+  border: $form-select-border-width solid $form-select-border-color;
+  @include border-radius($form-select-border-radius, 0);
+  @include box-shadow($form-select-box-shadow);
+  @include transition($form-select-transition);
+  appearance: none;
+
+  &:focus {
+    border-color: $form-select-focus-border-color;
+    outline: 0;
+    @if $enable-shadows {
+      @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
+    } @else {
+      // Avoid using mixin so we can pass custom focus shadow properly
+      box-shadow: $form-select-focus-box-shadow;
+    }
+  }
+
+  &[multiple],
+  &[size]:not([size="1"]) {
+    padding-right: $form-select-padding-x;
+    background-image: none;
+  }
+
+  &:disabled {
+    color: $form-select-disabled-color;
+    background-color: $form-select-disabled-bg;
+    border-color: $form-select-disabled-border-color;
+  }
+
+  // Remove outline from select box in FF
+  &:-moz-focusring {
+    color: transparent;
+    text-shadow: 0 0 0 $form-select-color;
+  }
+}
+
+.form-select-sm {
+  padding-top: $form-select-padding-y-sm;
+  padding-bottom: $form-select-padding-y-sm;
+  padding-left: $form-select-padding-x-sm;
+  @include font-size($form-select-font-size-sm);
+  @include border-radius($form-select-border-radius-sm);
+}
+
+.form-select-lg {
+  padding-top: $form-select-padding-y-lg;
+  padding-bottom: $form-select-padding-y-lg;
+  padding-left: $form-select-padding-x-lg;
+  @include font-size($form-select-font-size-lg);
+  @include border-radius($form-select-border-radius-lg);
+}
diff --git a/styles/bootstrap/forms/_form-text.scss b/styles/bootstrap/forms/_form-text.scss
new file mode 100644
index 0000000..f080d1a
--- /dev/null
+++ b/styles/bootstrap/forms/_form-text.scss
@@ -0,0 +1,11 @@
+//
+// Form text
+//
+
+.form-text {
+  margin-top: $form-text-margin-top;
+  @include font-size($form-text-font-size);
+  font-style: $form-text-font-style;
+  font-weight: $form-text-font-weight;
+  color: $form-text-color;
+}
diff --git a/styles/bootstrap/forms/_input-group.scss b/styles/bootstrap/forms/_input-group.scss
new file mode 100644
index 0000000..247f74a
--- /dev/null
+++ b/styles/bootstrap/forms/_input-group.scss
@@ -0,0 +1,132 @@
+//
+// Base styles
+//
+
+.input-group {
+  position: relative;
+  display: flex;
+  flex-wrap: wrap; // For form validation feedback
+  align-items: stretch;
+  width: 100%;
+
+  > .form-control,
+  > .form-select,
+  > .form-floating {
+    position: relative; // For focus state's z-index
+    flex: 1 1 auto;
+    width: 1%;
+    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
+  }
+
+  // Bring the "active" form control to the top of surrounding elements
+  > .form-control:focus,
+  > .form-select:focus,
+  > .form-floating:focus-within {
+    z-index: 5;
+  }
+
+  // Ensure buttons are always above inputs for more visually pleasing borders.
+  // This isn't needed for `.input-group-text` since it shares the same border-color
+  // as our inputs.
+  .btn {
+    position: relative;
+    z-index: 2;
+
+    &:focus {
+      z-index: 5;
+    }
+  }
+}
+
+
+// Textual addons
+//
+// Serves as a catch-all element for any text or radio/checkbox input you wish
+// to prepend or append to an input.
+
+.input-group-text {
+  display: flex;
+  align-items: center;
+  padding: $input-group-addon-padding-y $input-group-addon-padding-x;
+  @include font-size($input-font-size); // Match inputs
+  font-weight: $input-group-addon-font-weight;
+  line-height: $input-line-height;
+  color: $input-group-addon-color;
+  text-align: center;
+  white-space: nowrap;
+  background-color: $input-group-addon-bg;
+  border: $input-border-width solid $input-group-addon-border-color;
+  @include border-radius($input-border-radius);
+}
+
+
+// Sizing
+//
+// Remix the default form control sizing classes into new ones for easier
+// manipulation.
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+  padding: $input-padding-y-lg $input-padding-x-lg;
+  @include font-size($input-font-size-lg);
+  @include border-radius($input-border-radius-lg);
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+  padding: $input-padding-y-sm $input-padding-x-sm;
+  @include font-size($input-font-size-sm);
+  @include border-radius($input-border-radius-sm);
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+  padding-right: $form-select-padding-x + $form-select-indicator-padding;
+}
+
+
+// Rounded corners
+//
+// These rulesets must come after the sizing ones to properly override sm and lg
+// border-radius values when extending. They're more specific than we'd like
+// with the `.input-group >` part, but without it, we cannot override the sizing.
+
+// stylelint-disable-next-line no-duplicate-selectors
+.input-group {
+  &:not(.has-validation) {
+    > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    > .dropdown-toggle:nth-last-child(n + 3),
+    > .form-floating:not(:last-child) > .form-control,
+    > .form-floating:not(:last-child) > .form-select {
+      @include border-end-radius(0);
+    }
+  }
+
+  &.has-validation {
+    > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+    > .dropdown-toggle:nth-last-child(n + 4),
+    > .form-floating:nth-last-child(n + 3) > .form-control,
+    > .form-floating:nth-last-child(n + 3) > .form-select {
+      @include border-end-radius(0);
+    }
+  }
+
+  $validation-messages: "";
+  @each $state in map-keys($form-validation-states) {
+    $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
+  }
+
+  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
+    margin-left: -$input-border-width;
+    @include border-start-radius(0);
+  }
+
+  > .form-floating:not(:first-child) > .form-control,
+  > .form-floating:not(:first-child) > .form-select {
+    @include border-start-radius(0);
+  }
+}
diff --git a/styles/bootstrap/forms/_labels.scss b/styles/bootstrap/forms/_labels.scss
new file mode 100644
index 0000000..39ecafc
--- /dev/null
+++ b/styles/bootstrap/forms/_labels.scss
@@ -0,0 +1,36 @@
+//
+// Labels
+//
+
+.form-label {
+  margin-bottom: $form-label-margin-bottom;
+  @include font-size($form-label-font-size);
+  font-style: $form-label-font-style;
+  font-weight: $form-label-font-weight;
+  color: $form-label-color;
+}
+
+// For use with horizontal and inline forms, when you need the label (or legend)
+// text to align with the form controls.
+.col-form-label {
+  padding-top: add($input-padding-y, $input-border-width);
+  padding-bottom: add($input-padding-y, $input-border-width);
+  margin-bottom: 0; // Override the `<legend>` default
+  @include font-size(inherit); // Override the `<legend>` default
+  font-style: $form-label-font-style;
+  font-weight: $form-label-font-weight;
+  line-height: $input-line-height;
+  color: $form-label-color;
+}
+
+.col-form-label-lg {
+  padding-top: add($input-padding-y-lg, $input-border-width);
+  padding-bottom: add($input-padding-y-lg, $input-border-width);
+  @include font-size($input-font-size-lg);
+}
+
+.col-form-label-sm {
+  padding-top: add($input-padding-y-sm, $input-border-width);
+  padding-bottom: add($input-padding-y-sm, $input-border-width);
+  @include font-size($input-font-size-sm);
+}
diff --git a/styles/bootstrap/forms/_validation.scss b/styles/bootstrap/forms/_validation.scss
new file mode 100644
index 0000000..c48123a
--- /dev/null
+++ b/styles/bootstrap/forms/_validation.scss
@@ -0,0 +1,12 @@
+// Form validation
+//
+// Provide feedback to users when form field values are valid or invalid. Works
+// primarily for client-side validation via scoped `:invalid` and `:valid`
+// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
+// server-side validation.
+
+// scss-docs-start form-validation-states-loop
+@each $state, $data in $form-validation-states {
+  @include form-validation-state($state, $data...);
+}
+// scss-docs-end form-validation-states-loop
diff --git a/styles/bootstrap/helpers/_clearfix.scss b/styles/bootstrap/helpers/_clearfix.scss
new file mode 100644
index 0000000..e92522a
--- /dev/null
+++ b/styles/bootstrap/helpers/_clearfix.scss
@@ -0,0 +1,3 @@
+.clearfix {
+  @include clearfix();
+}
diff --git a/styles/bootstrap/helpers/_color-bg.scss b/styles/bootstrap/helpers/_color-bg.scss
new file mode 100644
index 0000000..b5ce770
--- /dev/null
+++ b/styles/bootstrap/helpers/_color-bg.scss
@@ -0,0 +1,10 @@
+// stylelint-disable function-name-case
+
+// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
+@each $color, $value in $theme-colors {
+  $color-rgb: to-rgb($value);
+  .text-bg-#{$color} {
+    color: color-contrast($value) if($enable-important-utilities, !important, null);
+    background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
+  }
+}
diff --git a/styles/bootstrap/helpers/_colored-links.scss b/styles/bootstrap/helpers/_colored-links.scss
new file mode 100644
index 0000000..1cb4182
--- /dev/null
+++ b/styles/bootstrap/helpers/_colored-links.scss
@@ -0,0 +1,12 @@
+@each $color, $value in $theme-colors {
+  .link-#{$color} {
+    color: $value !important; // stylelint-disable-line declaration-no-important
+
+    @if $link-shade-percentage != 0 {
+      &:hover,
+      &:focus {
+        color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/helpers/_position.scss b/styles/bootstrap/helpers/_position.scss
new file mode 100644
index 0000000..59103d9
--- /dev/null
+++ b/styles/bootstrap/helpers/_position.scss
@@ -0,0 +1,36 @@
+// Shorthand
+
+.fixed-top {
+  position: fixed;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: $zindex-fixed;
+}
+
+.fixed-bottom {
+  position: fixed;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zindex-fixed;
+}
+
+// Responsive sticky top and bottom
+@each $breakpoint in map-keys($grid-breakpoints) {
+  @include media-breakpoint-up($breakpoint) {
+    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+    .sticky#{$infix}-top {
+      position: sticky;
+      top: 0;
+      z-index: $zindex-sticky;
+    }
+
+    .sticky#{$infix}-bottom {
+      position: sticky;
+      bottom: 0;
+      z-index: $zindex-sticky;
+    }
+  }
+}
diff --git a/styles/bootstrap/helpers/_ratio.scss b/styles/bootstrap/helpers/_ratio.scss
new file mode 100644
index 0000000..b6a7654
--- /dev/null
+++ b/styles/bootstrap/helpers/_ratio.scss
@@ -0,0 +1,26 @@
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.ratio {
+  position: relative;
+  width: 100%;
+
+  &::before {
+    display: block;
+    padding-top: var(--#{$prefix}aspect-ratio);
+    content: "";
+  }
+
+  > * {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+  }
+}
+
+@each $key, $ratio in $aspect-ratios {
+  .ratio-#{$key} {
+    --#{$prefix}aspect-ratio: #{$ratio};
+  }
+}
diff --git a/styles/bootstrap/helpers/_stacks.scss b/styles/bootstrap/helpers/_stacks.scss
new file mode 100644
index 0000000..6cd237a
--- /dev/null
+++ b/styles/bootstrap/helpers/_stacks.scss
@@ -0,0 +1,15 @@
+// scss-docs-start stacks
+.hstack {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  align-self: stretch;
+}
+
+.vstack {
+  display: flex;
+  flex: 1 1 auto;
+  flex-direction: column;
+  align-self: stretch;
+}
+// scss-docs-end stacks
diff --git a/styles/bootstrap/helpers/_stretched-link.scss b/styles/bootstrap/helpers/_stretched-link.scss
new file mode 100644
index 0000000..71a1c75
--- /dev/null
+++ b/styles/bootstrap/helpers/_stretched-link.scss
@@ -0,0 +1,15 @@
+//
+// Stretched link
+//
+
+.stretched-link {
+  &::#{$stretched-link-pseudo-element} {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    z-index: $stretched-link-z-index;
+    content: "";
+  }
+}
diff --git a/styles/bootstrap/helpers/_text-truncation.scss b/styles/bootstrap/helpers/_text-truncation.scss
new file mode 100644
index 0000000..6421dac
--- /dev/null
+++ b/styles/bootstrap/helpers/_text-truncation.scss
@@ -0,0 +1,7 @@
+//
+// Text truncation
+//
+
+.text-truncate {
+  @include text-truncate();
+}
diff --git a/styles/bootstrap/helpers/_visually-hidden.scss b/styles/bootstrap/helpers/_visually-hidden.scss
new file mode 100644
index 0000000..4760ff0
--- /dev/null
+++ b/styles/bootstrap/helpers/_visually-hidden.scss
@@ -0,0 +1,8 @@
+//
+// Visually hidden
+//
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+  @include visually-hidden();
+}
diff --git a/styles/bootstrap/helpers/_vr.scss b/styles/bootstrap/helpers/_vr.scss
new file mode 100644
index 0000000..9bca099
--- /dev/null
+++ b/styles/bootstrap/helpers/_vr.scss
@@ -0,0 +1,8 @@
+.vr {
+  display: inline-block;
+  align-self: stretch;
+  width: 1px;
+  min-height: 1em;
+  background-color: currentcolor;
+  opacity: $hr-opacity;
+}
diff --git a/styles/bootstrap/mixins/_alert.scss b/styles/bootstrap/mixins/_alert.scss
new file mode 100644
index 0000000..231f068
--- /dev/null
+++ b/styles/bootstrap/mixins/_alert.scss
@@ -0,0 +1,15 @@
+// scss-docs-start alert-variant-mixin
+@mixin alert-variant($background, $border, $color) {
+  --#{$prefix}alert-color: #{$color};
+  --#{$prefix}alert-bg: #{$background};
+  --#{$prefix}alert-border-color: #{$border};
+
+  @if $enable-gradients {
+    background-image: var(--#{$prefix}gradient);
+  }
+
+  .alert-link {
+    color: shade-color($color, 20%);
+  }
+}
+// scss-docs-end alert-variant-mixin
diff --git a/styles/bootstrap/mixins/_backdrop.scss b/styles/bootstrap/mixins/_backdrop.scss
new file mode 100644
index 0000000..9705ae9
--- /dev/null
+++ b/styles/bootstrap/mixins/_backdrop.scss
@@ -0,0 +1,14 @@
+// Shared between modals and offcanvases
+@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: $zindex;
+  width: 100vw;
+  height: 100vh;
+  background-color: $backdrop-bg;
+
+  // Fade for backdrop
+  &.fade { opacity: 0; }
+  &.show { opacity: $backdrop-opacity; }
+}
diff --git a/styles/bootstrap/mixins/_banner.scss b/styles/bootstrap/mixins/_banner.scss
new file mode 100644
index 0000000..97ec9d1
--- /dev/null
+++ b/styles/bootstrap/mixins/_banner.scss
@@ -0,0 +1,9 @@
+@mixin bsBanner($file) {
+  /*!
+   * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)
+   * Copyright 2011-2022 The Bootstrap Authors
+   * Copyright 2011-2022 Twitter, Inc.
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+   */
+}
+
diff --git a/styles/bootstrap/mixins/_border-radius.scss b/styles/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 0000000..616decb
--- /dev/null
+++ b/styles/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,78 @@
+// stylelint-disable property-disallowed-list
+// Single side border-radius
+
+// Helper function to replace negative values with 0
+@function valid-radius($radius) {
+  $return: ();
+  @each $value in $radius {
+    @if type-of($value) == number {
+      $return: append($return, max($value, 0));
+    } @else {
+      $return: append($return, $value);
+    }
+  }
+  @return $return;
+}
+
+// scss-docs-start border-radius-mixins
+@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
+  @if $enable-rounded {
+    border-radius: valid-radius($radius);
+  }
+  @else if $fallback-border-radius != false {
+    border-radius: $fallback-border-radius;
+  }
+}
+
+@mixin border-top-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-top-left-radius: valid-radius($radius);
+    border-top-right-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-end-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-top-right-radius: valid-radius($radius);
+    border-bottom-right-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-bottom-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-bottom-right-radius: valid-radius($radius);
+    border-bottom-left-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-start-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-top-left-radius: valid-radius($radius);
+    border-bottom-left-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-top-start-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-top-left-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-top-end-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-top-right-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-bottom-end-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-bottom-right-radius: valid-radius($radius);
+  }
+}
+
+@mixin border-bottom-start-radius($radius: $border-radius) {
+  @if $enable-rounded {
+    border-bottom-left-radius: valid-radius($radius);
+  }
+}
+// scss-docs-end border-radius-mixins
diff --git a/styles/bootstrap/mixins/_box-shadow.scss b/styles/bootstrap/mixins/_box-shadow.scss
new file mode 100644
index 0000000..4172541
--- /dev/null
+++ b/styles/bootstrap/mixins/_box-shadow.scss
@@ -0,0 +1,18 @@
+@mixin box-shadow($shadow...) {
+  @if $enable-shadows {
+    $result: ();
+
+    @each $value in $shadow {
+      @if $value != null {
+        $result: append($result, $value, "comma");
+      }
+      @if $value == none and length($shadow) > 1 {
+        @warn "The keyword 'none' must be used as a single argument.";
+      }
+    }
+
+    @if (length($result) > 0) {
+      box-shadow: $result;
+    }
+  }
+}
diff --git a/styles/bootstrap/mixins/_breakpoints.scss b/styles/bootstrap/mixins/_breakpoints.scss
new file mode 100644
index 0000000..286be89
--- /dev/null
+++ b/styles/bootstrap/mixins/_breakpoints.scss
@@ -0,0 +1,127 @@
+// Breakpoint viewport sizes and media queries.
+//
+// Breakpoints are defined as a map of (name: minimum width), order from small to large:
+//
+//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)
+//
+// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
+
+// Name of the next breakpoint, or null for the last breakpoint.
+//
+//    >> breakpoint-next(sm)
+//    md
+//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+//    md
+//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))
+//    md
+@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
+  $n: index($breakpoint-names, $name);
+  @if not $n {
+    @error "breakpoint `#{$name}` not found in `#{$breakpoints}`";
+  }
+  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
+}
+
+// Minimum breakpoint width. Null for the smallest (first) breakpoint.
+//
+//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+//    576px
+@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
+  $min: map-get($breakpoints, $name);
+  @return if($min != 0, $min, null);
+}
+
+// Maximum breakpoint width.
+// The maximum value is reduced by 0.02px to work around the limitations of
+// `min-` and `max-` prefixes and viewports with fractional widths.
+// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
+// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
+// See https://bugs.webkit.org/show_bug.cgi?id=178261
+//
+//    >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+//    767.98px
+@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
+  $max: map-get($breakpoints, $name);
+  @return if($max and $max > 0, $max - .02, null);
+}
+
+// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
+// Useful for making responsive utilities.
+//
+//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+//    ""  (Returns a blank string)
+//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))
+//    "-sm"
+@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
+  @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
+}
+
+// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
+// Makes the @content apply to the given breakpoint and wider.
+@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
+  $min: breakpoint-min($name, $breakpoints);
+  @if $min {
+    @media (min-width: $min) {
+      @content;
+    }
+  } @else {
+    @content;
+  }
+}
+
+// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
+// Makes the @content apply to the given breakpoint and narrower.
+@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
+  $max: breakpoint-max($name, $breakpoints);
+  @if $max {
+    @media (max-width: $max) {
+      @content;
+    }
+  } @else {
+    @content;
+  }
+}
+
+// Media that spans multiple breakpoint widths.
+// Makes the @content apply between the min and max breakpoints
+@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
+  $min: breakpoint-min($lower, $breakpoints);
+  $max: breakpoint-max($upper, $breakpoints);
+
+  @if $min != null and $max != null {
+    @media (min-width: $min) and (max-width: $max) {
+      @content;
+    }
+  } @else if $max == null {
+    @include media-breakpoint-up($lower, $breakpoints) {
+      @content;
+    }
+  } @else if $min == null {
+    @include media-breakpoint-down($upper, $breakpoints) {
+      @content;
+    }
+  }
+}
+
+// Media between the breakpoint's minimum and maximum widths.
+// No minimum for the smallest breakpoint, and no maximum for the largest one.
+// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
+@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
+  $min:  breakpoint-min($name, $breakpoints);
+  $next: breakpoint-next($name, $breakpoints);
+  $max:  breakpoint-max($next, $breakpoints);
+
+  @if $min != null and $max != null {
+    @media (min-width: $min) and (max-width: $max) {
+      @content;
+    }
+  } @else if $max == null {
+    @include media-breakpoint-up($name, $breakpoints) {
+      @content;
+    }
+  } @else if $min == null {
+    @include media-breakpoint-down($next, $breakpoints) {
+      @content;
+    }
+  }
+}
diff --git a/styles/bootstrap/mixins/_buttons.scss b/styles/bootstrap/mixins/_buttons.scss
new file mode 100644
index 0000000..cf087fd
--- /dev/null
+++ b/styles/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,70 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+// scss-docs-start btn-variant-mixin
+@mixin button-variant(
+  $background,
+  $border,
+  $color: color-contrast($background),
+  $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
+  $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
+  $hover-color: color-contrast($hover-background),
+  $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
+  $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
+  $active-color: color-contrast($active-background),
+  $disabled-background: $background,
+  $disabled-border: $border,
+  $disabled-color: color-contrast($disabled-background)
+) {
+  --#{$prefix}btn-color: #{$color};
+  --#{$prefix}btn-bg: #{$background};
+  --#{$prefix}btn-border-color: #{$border};
+  --#{$prefix}btn-hover-color: #{$hover-color};
+  --#{$prefix}btn-hover-bg: #{$hover-background};
+  --#{$prefix}btn-hover-border-color: #{$hover-border};
+  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
+  --#{$prefix}btn-active-color: #{$active-color};
+  --#{$prefix}btn-active-bg: #{$active-background};
+  --#{$prefix}btn-active-border-color: #{$active-border};
+  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+  --#{$prefix}btn-disabled-color: #{$disabled-color};
+  --#{$prefix}btn-disabled-bg: #{$disabled-background};
+  --#{$prefix}btn-disabled-border-color: #{$disabled-border};
+}
+// scss-docs-end btn-variant-mixin
+
+// scss-docs-start btn-outline-variant-mixin
+@mixin button-outline-variant(
+  $color,
+  $color-hover: color-contrast($color),
+  $active-background: $color,
+  $active-border: $color,
+  $active-color: color-contrast($active-background)
+) {
+  --#{$prefix}btn-color: #{$color};
+  --#{$prefix}btn-border-color: #{$color};
+  --#{$prefix}btn-hover-color: #{$color-hover};
+  --#{$prefix}btn-hover-bg: #{$active-background};
+  --#{$prefix}btn-hover-border-color: #{$active-border};
+  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
+  --#{$prefix}btn-active-color: #{$active-color};
+  --#{$prefix}btn-active-bg: #{$active-background};
+  --#{$prefix}btn-active-border-color: #{$active-border};
+  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
+  --#{$prefix}btn-disabled-color: #{$color};
+  --#{$prefix}btn-disabled-bg: transparent;
+  --#{$prefix}btn-disabled-border-color: #{$color};
+  --#{$prefix}gradient: none;
+}
+// scss-docs-end btn-outline-variant-mixin
+
+// scss-docs-start btn-size-mixin
+@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
+  --#{$prefix}btn-padding-y: #{$padding-y};
+  --#{$prefix}btn-padding-x: #{$padding-x};
+  @include rfs($font-size, --#{$prefix}btn-font-size);
+  --#{$prefix}btn-border-radius: #{$border-radius};
+}
+// scss-docs-end btn-size-mixin
diff --git a/styles/bootstrap/mixins/_caret.scss b/styles/bootstrap/mixins/_caret.scss
new file mode 100644
index 0000000..4b0f036
--- /dev/null
+++ b/styles/bootstrap/mixins/_caret.scss
@@ -0,0 +1,64 @@
+// scss-docs-start caret-mixins
+@mixin caret-down {
+  border-top: $caret-width solid;
+  border-right: $caret-width solid transparent;
+  border-bottom: 0;
+  border-left: $caret-width solid transparent;
+}
+
+@mixin caret-up {
+  border-top: 0;
+  border-right: $caret-width solid transparent;
+  border-bottom: $caret-width solid;
+  border-left: $caret-width solid transparent;
+}
+
+@mixin caret-end {
+  border-top: $caret-width solid transparent;
+  border-right: 0;
+  border-bottom: $caret-width solid transparent;
+  border-left: $caret-width solid;
+}
+
+@mixin caret-start {
+  border-top: $caret-width solid transparent;
+  border-right: $caret-width solid;
+  border-bottom: $caret-width solid transparent;
+}
+
+@mixin caret($direction: down) {
+  @if $enable-caret {
+    &::after {
+      display: inline-block;
+      margin-left: $caret-spacing;
+      vertical-align: $caret-vertical-align;
+      content: "";
+      @if $direction == down {
+        @include caret-down();
+      } @else if $direction == up {
+        @include caret-up();
+      } @else if $direction == end {
+        @include caret-end();
+      }
+    }
+
+    @if $direction == start {
+      &::after {
+        display: none;
+      }
+
+      &::before {
+        display: inline-block;
+        margin-right: $caret-spacing;
+        vertical-align: $caret-vertical-align;
+        content: "";
+        @include caret-start();
+      }
+    }
+
+    &:empty::after {
+      margin-left: 0;
+    }
+  }
+}
+// scss-docs-end caret-mixins
diff --git a/styles/bootstrap/mixins/_clearfix.scss b/styles/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 0000000..ffc62bb
--- /dev/null
+++ b/styles/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,9 @@
+// scss-docs-start clearfix
+@mixin clearfix() {
+  &::after {
+    display: block;
+    clear: both;
+    content: "";
+  }
+}
+// scss-docs-end clearfix
diff --git a/styles/bootstrap/mixins/_color-scheme.scss b/styles/bootstrap/mixins/_color-scheme.scss
new file mode 100644
index 0000000..90497aa
--- /dev/null
+++ b/styles/bootstrap/mixins/_color-scheme.scss
@@ -0,0 +1,7 @@
+// scss-docs-start mixin-color-scheme
+@mixin color-scheme($name) {
+  @media (prefers-color-scheme: #{$name}) {
+    @content;
+  }
+}
+// scss-docs-end mixin-color-scheme
diff --git a/styles/bootstrap/mixins/_container.scss b/styles/bootstrap/mixins/_container.scss
new file mode 100644
index 0000000..b9f3351
--- /dev/null
+++ b/styles/bootstrap/mixins/_container.scss
@@ -0,0 +1,11 @@
+// Container mixins
+
+@mixin make-container($gutter: $container-padding-x) {
+  --#{$prefix}gutter-x: #{$gutter};
+  --#{$prefix}gutter-y: 0;
+  width: 100%;
+  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+  margin-right: auto;
+  margin-left: auto;
+}
diff --git a/styles/bootstrap/mixins/_deprecate.scss b/styles/bootstrap/mixins/_deprecate.scss
new file mode 100644
index 0000000..df070bc
--- /dev/null
+++ b/styles/bootstrap/mixins/_deprecate.scss
@@ -0,0 +1,10 @@
+// Deprecate mixin
+//
+// This mixin can be used to deprecate mixins or functions.
+// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
+// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
+@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
+  @if ($enable-deprecation-messages != false and $ignore-warning != true) {
+    @warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
+  }
+}
diff --git a/styles/bootstrap/mixins/_forms.scss b/styles/bootstrap/mixins/_forms.scss
new file mode 100644
index 0000000..2a853a7
--- /dev/null
+++ b/styles/bootstrap/mixins/_forms.scss
@@ -0,0 +1,152 @@
+// This mixin uses an `if()` technique to be compatible with Dart Sass
+// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
+
+// scss-docs-start form-validation-mixins
+@mixin form-validation-state-selector($state) {
+  @if ($state == "valid" or $state == "invalid") {
+    .was-validated #{if(&, "&", "")}:#{$state},
+    #{if(&, "&", "")}.is-#{$state} {
+      @content;
+    }
+  } @else {
+    #{if(&, "&", "")}.is-#{$state} {
+      @content;
+    }
+  }
+}
+
+@mixin form-validation-state(
+  $state,
+  $color,
+  $icon,
+  $tooltip-color: color-contrast($color),
+  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
+  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
+) {
+  .#{$state}-feedback {
+    display: none;
+    width: 100%;
+    margin-top: $form-feedback-margin-top;
+    @include font-size($form-feedback-font-size);
+    font-style: $form-feedback-font-style;
+    color: $color;
+  }
+
+  .#{$state}-tooltip {
+    position: absolute;
+    top: 100%;
+    z-index: 5;
+    display: none;
+    max-width: 100%; // Contain to parent when possible
+    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
+    margin-top: .1rem;
+    @include font-size($form-feedback-tooltip-font-size);
+    line-height: $form-feedback-tooltip-line-height;
+    color: $tooltip-color;
+    background-color: $tooltip-bg-color;
+    @include border-radius($form-feedback-tooltip-border-radius);
+  }
+
+  @include form-validation-state-selector($state) {
+    ~ .#{$state}-feedback,
+    ~ .#{$state}-tooltip {
+      display: block;
+    }
+  }
+
+  .form-control {
+    @include form-validation-state-selector($state) {
+      border-color: $color;
+
+      @if $enable-validation-icons {
+        padding-right: $input-height-inner;
+        background-image: escape-svg($icon);
+        background-repeat: no-repeat;
+        background-position: right $input-height-inner-quarter center;
+        background-size: $input-height-inner-half $input-height-inner-half;
+      }
+
+      &:focus {
+        border-color: $color;
+        box-shadow: $focus-box-shadow;
+      }
+    }
+  }
+
+  // stylelint-disable-next-line selector-no-qualifying-type
+  textarea.form-control {
+    @include form-validation-state-selector($state) {
+      @if $enable-validation-icons {
+        padding-right: $input-height-inner;
+        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
+      }
+    }
+  }
+
+  .form-select {
+    @include form-validation-state-selector($state) {
+      border-color: $color;
+
+      @if $enable-validation-icons {
+        &:not([multiple]):not([size]),
+        &:not([multiple])[size="1"] {
+          padding-right: $form-select-feedback-icon-padding-end;
+          background-image: escape-svg($form-select-indicator), escape-svg($icon);
+          background-position: $form-select-bg-position, $form-select-feedback-icon-position;
+          background-size: $form-select-bg-size, $form-select-feedback-icon-size;
+        }
+      }
+
+      &:focus {
+        border-color: $color;
+        box-shadow: $focus-box-shadow;
+      }
+    }
+  }
+
+  .form-control-color {
+    @include form-validation-state-selector($state) {
+      @if $enable-validation-icons {
+        width: add($form-color-width, $input-height-inner);
+      }
+    }
+  }
+
+  .form-check-input {
+    @include form-validation-state-selector($state) {
+      border-color: $color;
+
+      &:checked {
+        background-color: $color;
+      }
+
+      &:focus {
+        box-shadow: $focus-box-shadow;
+      }
+
+      ~ .form-check-label {
+        color: $color;
+      }
+    }
+  }
+  .form-check-inline .form-check-input {
+    ~ .#{$state}-feedback {
+      margin-left: .5em;
+    }
+  }
+
+  .input-group {
+    > .form-control:not(:focus),
+    > .form-select:not(:focus),
+    > .form-floating:not(:focus-within) {
+      @include form-validation-state-selector($state) {
+        @if $state == "valid" {
+          z-index: 3;
+        } @else if $state == "invalid" {
+          z-index: 4;
+        }
+      }
+    }
+  }
+}
+// scss-docs-end form-validation-mixins
diff --git a/styles/bootstrap/mixins/_gradients.scss b/styles/bootstrap/mixins/_gradients.scss
new file mode 100644
index 0000000..608e18d
--- /dev/null
+++ b/styles/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,47 @@
+// Gradients
+
+// scss-docs-start gradient-bg-mixin
+@mixin gradient-bg($color: null) {
+  background-color: $color;
+
+  @if $enable-gradients {
+    background-image: var(--#{$prefix}gradient);
+  }
+}
+// scss-docs-end gradient-bg-mixin
+
+// scss-docs-start gradient-mixins
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
+  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {
+  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
+}
+
+@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
+  background-image: linear-gradient($deg, $start-color, $end-color);
+}
+
+@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+}
+
+@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+}
+
+@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
+  background-image: radial-gradient(circle, $inner-color, $outer-color);
+}
+
+@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
+  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
+// scss-docs-end gradient-mixins
diff --git a/styles/bootstrap/mixins/_grid.scss b/styles/bootstrap/mixins/_grid.scss
new file mode 100644
index 0000000..38e2239
--- /dev/null
+++ b/styles/bootstrap/mixins/_grid.scss
@@ -0,0 +1,151 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+@mixin make-row($gutter: $grid-gutter-width) {
+  --#{$prefix}gutter-x: #{$gutter};
+  --#{$prefix}gutter-y: 0;
+  display: flex;
+  flex-wrap: wrap;
+  // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed
+  margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list
+  margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
+  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list
+}
+
+@mixin make-col-ready() {
+  // Add box sizing if only the grid is loaded
+  box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);
+  // Prevent columns from becoming too narrow when at smaller grid tiers by
+  // always setting `width: 100%;`. This works because we set the width
+  // later on to override this initial width.
+  flex-shrink: 0;
+  width: 100%;
+  max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid
+  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list
+  margin-top: var(--#{$prefix}gutter-y);
+}
+
+@mixin make-col($size: false, $columns: $grid-columns) {
+  @if $size {
+    flex: 0 0 auto;
+    width: percentage(divide($size, $columns));
+
+  } @else {
+    flex: 1 1 0;
+    max-width: 100%;
+  }
+}
+
+@mixin make-col-auto() {
+  flex: 0 0 auto;
+  width: auto;
+}
+
+@mixin make-col-offset($size, $columns: $grid-columns) {
+  $num: divide($size, $columns);
+  margin-left: if($num == 0, 0, percentage($num));
+}
+
+// Row columns
+//
+// Specify on a parent element(e.g., .row) to force immediate children into NN
+// number of columns. Supports wrapping to new lines, but does not do a Masonry
+// style grid.
+@mixin row-cols($count) {
+  > * {
+    flex: 0 0 auto;
+    width: divide(100%, $count);
+  }
+}
+
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
+  @each $breakpoint in map-keys($breakpoints) {
+    $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+    @include media-breakpoint-up($breakpoint, $breakpoints) {
+      // Provide basic `.col-{bp}` classes for equal-width flexbox columns
+      .col#{$infix} {
+        flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
+      }
+
+      .row-cols#{$infix}-auto > * {
+        @include make-col-auto();
+      }
+
+      @if $grid-row-columns > 0 {
+        @for $i from 1 through $grid-row-columns {
+          .row-cols#{$infix}-#{$i} {
+            @include row-cols($i);
+          }
+        }
+      }
+
+      .col#{$infix}-auto {
+        @include make-col-auto();
+      }
+
+      @if $columns > 0 {
+        @for $i from 1 through $columns {
+          .col#{$infix}-#{$i} {
+            @include make-col($i, $columns);
+          }
+        }
+
+        // `$columns - 1` because offsetting by the width of an entire row isn't possible
+        @for $i from 0 through ($columns - 1) {
+          @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
+            .offset#{$infix}-#{$i} {
+              @include make-col-offset($i, $columns);
+            }
+          }
+        }
+      }
+
+      // Gutters
+      //
+      // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.
+      @each $key, $value in $gutters {
+        .g#{$infix}-#{$key},
+        .gx#{$infix}-#{$key} {
+          --#{$prefix}gutter-x: #{$value};
+        }
+
+        .g#{$infix}-#{$key},
+        .gy#{$infix}-#{$key} {
+          --#{$prefix}gutter-y: #{$value};
+        }
+      }
+    }
+  }
+}
+
+@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {
+  @each $breakpoint in map-keys($breakpoints) {
+    $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+    @include media-breakpoint-up($breakpoint, $breakpoints) {
+      @if $columns > 0 {
+        @for $i from 1 through $columns {
+          .g-col#{$infix}-#{$i} {
+            grid-column: auto / span $i;
+          }
+        }
+
+        // Start with `1` because `0` is and invalid value.
+        // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
+        @for $i from 1 through ($columns - 1) {
+          .g-start#{$infix}-#{$i} {
+            grid-column-start: $i;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/mixins/_image.scss b/styles/bootstrap/mixins/_image.scss
new file mode 100644
index 0000000..e1df779
--- /dev/null
+++ b/styles/bootstrap/mixins/_image.scss
@@ -0,0 +1,16 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+
+@mixin img-fluid {
+  // Part 1: Set a maximum relative to the parent
+  max-width: 100%;
+  // Part 2: Override the height to auto, otherwise images will be stretched
+  // when setting a width and height attribute on the img element.
+  height: auto;
+}
diff --git a/styles/bootstrap/mixins/_list-group.scss b/styles/bootstrap/mixins/_list-group.scss
new file mode 100644
index 0000000..e55415f
--- /dev/null
+++ b/styles/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,24 @@
+// List Groups
+
+// scss-docs-start list-group-mixin
+@mixin list-group-item-variant($state, $background, $color) {
+  .list-group-item-#{$state} {
+    color: $color;
+    background-color: $background;
+
+    &.list-group-item-action {
+      &:hover,
+      &:focus {
+        color: $color;
+        background-color: shade-color($background, 10%);
+      }
+
+      &.active {
+        color: $white;
+        background-color: $color;
+        border-color: $color;
+      }
+    }
+  }
+}
+// scss-docs-end list-group-mixin
diff --git a/styles/bootstrap/mixins/_lists.scss b/styles/bootstrap/mixins/_lists.scss
new file mode 100644
index 0000000..2518562
--- /dev/null
+++ b/styles/bootstrap/mixins/_lists.scss
@@ -0,0 +1,7 @@
+// Lists
+
+// Unstyled keeps list items block level, just removes default browser padding and list-style
+@mixin list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
diff --git a/styles/bootstrap/mixins/_pagination.scss b/styles/bootstrap/mixins/_pagination.scss
new file mode 100644
index 0000000..0d65796
--- /dev/null
+++ b/styles/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,10 @@
+// Pagination
+
+// scss-docs-start pagination-mixin
+@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
+  --#{$prefix}pagination-padding-x: #{$padding-x};
+  --#{$prefix}pagination-padding-y: #{$padding-y};
+  @include rfs($font-size, --#{$prefix}pagination-font-size);
+  --#{$prefix}pagination-border-radius: #{$border-radius};
+}
+// scss-docs-end pagination-mixin
diff --git a/styles/bootstrap/mixins/_reset-text.scss b/styles/bootstrap/mixins/_reset-text.scss
new file mode 100644
index 0000000..f5bd1af
--- /dev/null
+++ b/styles/bootstrap/mixins/_reset-text.scss
@@ -0,0 +1,17 @@
+@mixin reset-text {
+  font-family: $font-family-base;
+  // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.
+  font-style: normal;
+  font-weight: $font-weight-normal;
+  line-height: $line-height-base;
+  text-align: left; // Fallback for where `start` is not supported
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  white-space: normal;
+  word-spacing: normal;
+  line-break: auto;
+}
diff --git a/styles/bootstrap/mixins/_resize.scss b/styles/bootstrap/mixins/_resize.scss
new file mode 100644
index 0000000..66f233a
--- /dev/null
+++ b/styles/bootstrap/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+  resize: $direction; // Options: horizontal, vertical, both
+}
diff --git a/styles/bootstrap/mixins/_table-variants.scss b/styles/bootstrap/mixins/_table-variants.scss
new file mode 100644
index 0000000..5fe1b9b
--- /dev/null
+++ b/styles/bootstrap/mixins/_table-variants.scss
@@ -0,0 +1,24 @@
+// scss-docs-start table-variant
+@mixin table-variant($state, $background) {
+  .table-#{$state} {
+    $color: color-contrast(opaque($body-bg, $background));
+    $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
+    $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
+    $active-bg: mix($color, $background, percentage($table-active-bg-factor));
+    $table-border-color: mix($color, $background, percentage($table-border-factor));
+
+    --#{$prefix}table-color: #{$color};
+    --#{$prefix}table-bg: #{$background};
+    --#{$prefix}table-border-color: #{$table-border-color};
+    --#{$prefix}table-striped-bg: #{$striped-bg};
+    --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};
+    --#{$prefix}table-active-bg: #{$active-bg};
+    --#{$prefix}table-active-color: #{color-contrast($active-bg)};
+    --#{$prefix}table-hover-bg: #{$hover-bg};
+    --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};
+
+    color: var(--#{$prefix}table-color);
+    border-color: var(--#{$prefix}table-border-color);
+  }
+}
+// scss-docs-end table-variant
diff --git a/styles/bootstrap/mixins/_text-truncate.scss b/styles/bootstrap/mixins/_text-truncate.scss
new file mode 100644
index 0000000..3504bb1
--- /dev/null
+++ b/styles/bootstrap/mixins/_text-truncate.scss
@@ -0,0 +1,8 @@
+// Text truncate
+// Requires inline-block or block for proper styling
+
+@mixin text-truncate() {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
diff --git a/styles/bootstrap/mixins/_transition.scss b/styles/bootstrap/mixins/_transition.scss
new file mode 100644
index 0000000..d437f6d
--- /dev/null
+++ b/styles/bootstrap/mixins/_transition.scss
@@ -0,0 +1,26 @@
+// stylelint-disable property-disallowed-list
+@mixin transition($transition...) {
+  @if length($transition) == 0 {
+    $transition: $transition-base;
+  }
+
+  @if length($transition) > 1 {
+    @each $value in $transition {
+      @if $value == null or $value == none {
+        @warn "The keyword 'none' or 'null' must be used as a single argument.";
+      }
+    }
+  }
+
+  @if $enable-transitions {
+    @if nth($transition, 1) != null {
+      transition: $transition;
+    }
+
+    @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {
+      @media (prefers-reduced-motion: reduce) {
+        transition: none;
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/mixins/_utilities.scss b/styles/bootstrap/mixins/_utilities.scss
new file mode 100644
index 0000000..59a2374
--- /dev/null
+++ b/styles/bootstrap/mixins/_utilities.scss
@@ -0,0 +1,97 @@
+// Utility generator
+// Used to generate utilities & print utilities
+@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
+  $values: map-get($utility, values);
+
+  // If the values are a list or string, convert it into a map
+  @if type-of($values) == "string" or type-of(nth($values, 1)) != "list" {
+    $values: zip($values, $values);
+  }
+
+  @each $key, $value in $values {
+    $properties: map-get($utility, property);
+
+    // Multiple properties are possible, for example with vertical or horizontal margins or paddings
+    @if type-of($properties) == "string" {
+      $properties: append((), $properties);
+    }
+
+    // Use custom class if present
+    $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
+    $property-class: if($property-class == null, "", $property-class);
+
+    // Use custom CSS variable name if present, otherwise default to `class`
+    $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));
+
+    // State params to generate pseudo-classes
+    $state: if(map-has-key($utility, state), map-get($utility, state), ());
+
+    $infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);
+
+    // Don't prefix if value key is null (e.g. with shadow class)
+    $property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");
+
+    @if map-get($utility, rfs) {
+      // Inside the media query
+      @if $is-rfs-media-query {
+        $val: rfs-value($value);
+
+        // Do not render anything if fluid and non fluid values are the same
+        $value: if($val == rfs-fluid-value($value), null, $val);
+      }
+      @else {
+        $value: rfs-fluid-value($value);
+      }
+    }
+
+    $is-css-var: map-get($utility, css-var);
+    $is-local-vars: map-get($utility, local-vars);
+    $is-rtl: map-get($utility, rtl);
+
+    @if $value != null {
+      @if $is-rtl == false {
+        /* rtl:begin:remove */
+      }
+
+      @if $is-css-var {
+        .#{$property-class + $infix + $property-class-modifier} {
+          --#{$prefix}#{$css-variable-name}: #{$value};
+        }
+
+        @each $pseudo in $state {
+          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+            --#{$prefix}#{$css-variable-name}: #{$value};
+          }
+        }
+      } @else {
+        .#{$property-class + $infix + $property-class-modifier} {
+          @each $property in $properties {
+            @if $is-local-vars {
+              @each $local-var, $variable in $is-local-vars {
+                --#{$prefix}#{$local-var}: #{$variable};
+              }
+            }
+            #{$property}: $value if($enable-important-utilities, !important, null);
+          }
+        }
+
+        @each $pseudo in $state {
+          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
+            @each $property in $properties {
+              @if $is-local-vars {
+                @each $local-var, $variable in $is-local-vars {
+                  --#{$prefix}#{$local-var}: #{$variable};
+                }
+              }
+              #{$property}: $value if($enable-important-utilities, !important, null);
+            }
+          }
+        }
+      }
+
+      @if $is-rtl == false {
+        /* rtl:end:remove */
+      }
+    }
+  }
+}
diff --git a/styles/bootstrap/mixins/_visually-hidden.scss b/styles/bootstrap/mixins/_visually-hidden.scss
new file mode 100644
index 0000000..4fc7f49
--- /dev/null
+++ b/styles/bootstrap/mixins/_visually-hidden.scss
@@ -0,0 +1,29 @@
+// stylelint-disable declaration-no-important
+
+// Hide content visually while keeping it accessible to assistive technologies
+//
+// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
+// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
+
+@mixin visually-hidden() {
+  position: absolute !important;
+  width: 1px !important;
+  height: 1px !important;
+  padding: 0 !important;
+  margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686
+  overflow: hidden !important;
+  clip: rect(0, 0, 0, 0) !important;
+  white-space: nowrap !important;
+  border: 0 !important;
+}
+
+// Use to only display content when it's focused, or one of its child elements is focused
+// (i.e. when focus is within the element/container that the class was applied to)
+//
+// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+
+@mixin visually-hidden-focusable() {
+  &:not(:focus):not(:focus-within) {
+    @include visually-hidden();
+  }
+}
diff --git a/styles/bootstrap/utilities/_api.scss b/styles/bootstrap/utilities/_api.scss
new file mode 100644
index 0000000..62e1d39
--- /dev/null
+++ b/styles/bootstrap/utilities/_api.scss
@@ -0,0 +1,47 @@
+// Loop over each breakpoint
+@each $breakpoint in map-keys($grid-breakpoints) {
+
+  // Generate media query if needed
+  @include media-breakpoint-up($breakpoint) {
+    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+    // Loop over each utility property
+    @each $key, $utility in $utilities {
+      // The utility can be disabled with `false`, thus check if the utility is a map first
+      // Only proceed if responsive media queries are enabled or if it's the base media query
+      @if type-of($utility) == "map" and (map-get($utility, responsive) or $infix == "") {
+        @include generate-utility($utility, $infix);
+      }
+    }
+  }
+}
+
+// RFS rescaling
+@media (min-width: $rfs-mq-value) {
+  @each $breakpoint in map-keys($grid-breakpoints) {
+    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+    @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {
+      // Loop over each utility property
+      @each $key, $utility in $utilities {
+        // The utility can be disabled with `false`, thus check if the utility is a map first
+        // Only proceed if responsive media queries are enabled or if it's the base media query
+        @if type-of($utility) == "map" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == "") {
+          @include generate-utility($utility, $infix, true);
+        }
+      }
+    }
+  }
+}
+
+
+// Print utilities
+@media print {
+  @each $key, $utility in $utilities {
+    // The utility can be disabled with `false`, thus check if the utility is a map first
+    // Then check if the utility needs print styles
+    @if type-of($utility) == "map" and map-get($utility, print) == true {
+      @include generate-utility($utility, "-print");
+    }
+  }
+}
diff --git a/styles/bootstrap/vendor/_rfs.scss b/styles/bootstrap/vendor/_rfs.scss
new file mode 100644
index 0000000..7e9a6c7
--- /dev/null
+++ b/styles/bootstrap/vendor/_rfs.scss
@@ -0,0 +1,354 @@
+// stylelint-disable property-blacklist, scss/dollar-variable-default
+
+// SCSS RFS mixin
+//
+// Automated responsive values for font sizes, paddings, margins and much more
+//
+// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
+
+// Configuration
+
+// Base value
+$rfs-base-value: 1.25rem !default;
+$rfs-unit: rem !default;
+
+@if $rfs-unit != rem and $rfs-unit != px {
+  @error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
+}
+
+// Breakpoint at where values start decreasing if screen width is smaller
+$rfs-breakpoint: 1200px !default;
+$rfs-breakpoint-unit: px !default;
+
+@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
+  @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
+}
+
+// Resize values based on screen height and width
+$rfs-two-dimensional: false !default;
+
+// Factor of decrease
+$rfs-factor: 10 !default;
+
+@if type-of($rfs-factor) != number or $rfs-factor <= 1 {
+  @error "`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.";
+}
+
+// Mode. Possibilities: "min-media-query", "max-media-query"
+$rfs-mode: min-media-query !default;
+
+// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
+$rfs-class: false !default;
+
+// 1 rem = $rfs-rem-value px
+$rfs-rem-value: 16 !default;
+
+// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
+$rfs-safari-iframe-resize-bug-fix: false !default;
+
+// Disable RFS by setting $enable-rfs to false
+$enable-rfs: true !default;
+
+// Cache $rfs-base-value unit
+$rfs-base-value-unit: unit($rfs-base-value);
+
+@function divide($dividend, $divisor, $precision: 10) {
+  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
+  $dividend: abs($dividend);
+  $divisor: abs($divisor);
+  @if $dividend == 0 {
+    @return 0;
+  }
+  @if $divisor == 0 {
+    @error "Cannot divide by 0";
+  }
+  $remainder: $dividend;
+  $result: 0;
+  $factor: 10;
+  @while ($remainder > 0 and $precision >= 0) {
+    $quotient: 0;
+    @while ($remainder >= $divisor) {
+      $remainder: $remainder - $divisor;
+      $quotient: $quotient + 1;
+    }
+    $result: $result * 10 + $quotient;
+    $factor: $factor * .1;
+    $remainder: $remainder * 10;
+    $precision: $precision - 1;
+    @if ($precision < 0 and $remainder >= $divisor * 5) {
+      $result: $result + 1;
+    }
+  }
+  $result: $result * $factor * $sign;
+  $dividend-unit: unit($dividend);
+  $divisor-unit: unit($divisor);
+  $unit-map: (
+    "px": 1px,
+    "rem": 1rem,
+    "em": 1em,
+    "%": 1%
+  );
+  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
+    $result: $result * map-get($unit-map, $dividend-unit);
+  }
+  @return $result;
+}
+
+// Remove px-unit from $rfs-base-value for calculations
+@if $rfs-base-value-unit == px {
+  $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
+}
+@else if $rfs-base-value-unit == rem {
+  $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
+}
+
+// Cache $rfs-breakpoint unit to prevent multiple calls
+$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
+
+// Remove unit from $rfs-breakpoint for calculations
+@if $rfs-breakpoint-unit-cache == px {
+  $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
+}
+@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
+  $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
+}
+
+// Calculate the media query value
+$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
+$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
+$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
+
+// Internal mixin used to determine which media query needs to be used
+@mixin _rfs-media-query {
+  @if $rfs-two-dimensional {
+    @if $rfs-mode == max-media-query {
+      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+        @content;
+      }
+    }
+    @else {
+      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
+        @content;
+      }
+    }
+  }
+  @else {
+    @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
+      @content;
+    }
+  }
+}
+
+// Internal mixin that adds disable classes to the selector if needed.
+@mixin _rfs-rule {
+  @if $rfs-class == disable and $rfs-mode == max-media-query {
+    // Adding an extra class increases specificity, which prevents the media query to override the property
+    &,
+    .disable-rfs &,
+    &.disable-rfs {
+      @content;
+    }
+  }
+  @else if $rfs-class == enable and $rfs-mode == min-media-query {
+    .enable-rfs &,
+    &.enable-rfs {
+      @content;
+    }
+  }
+  @else {
+    @content;
+  }
+}
+
+// Internal mixin that adds enable classes to the selector if needed.
+@mixin _rfs-media-query-rule {
+
+  @if $rfs-class == enable {
+    @if $rfs-mode == min-media-query {
+      @content;
+    }
+
+    @include _rfs-media-query {
+      .enable-rfs &,
+      &.enable-rfs {
+        @content;
+      }
+    }
+  }
+  @else {
+    @if $rfs-class == disable and $rfs-mode == min-media-query {
+      .disable-rfs &,
+      &.disable-rfs {
+        @content;
+      }
+    }
+    @include _rfs-media-query {
+      @content;
+    }
+  }
+}
+
+// Helper function to get the formatted non-responsive value
+@function rfs-value($values) {
+  // Convert to list
+  $values: if(type-of($values) != list, ($values,), $values);
+
+  $val: '';
+
+  // Loop over each value and calculate value
+  @each $value in $values {
+    @if $value == 0 {
+      $val: $val + ' 0';
+    }
+    @else {
+      // Cache $value unit
+      $unit: if(type-of($value) == "number", unit($value), false);
+
+      @if $unit == px {
+        // Convert to rem if needed
+        $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
+      }
+      @else if $unit == rem {
+        // Convert to px if needed
+        $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
+      }
+      @else {
+        // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+        $val: $val + ' ' + $value;
+      }
+    }
+  }
+
+  // Remove first space
+  @return unquote(str-slice($val, 2));
+}
+
+// Helper function to get the responsive value calculated by RFS
+@function rfs-fluid-value($values) {
+  // Convert to list
+  $values: if(type-of($values) != list, ($values,), $values);
+
+  $val: '';
+
+  // Loop over each value and calculate value
+  @each $value in $values {
+    @if $value == 0 {
+      $val: $val + ' 0';
+    }
+
+    @else {
+      // Cache $value unit
+      $unit: if(type-of($value) == "number", unit($value), false);
+
+      // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
+      @if not $unit or $unit != px and $unit != rem {
+        $val: $val + ' ' + $value;
+      }
+
+      @else {
+        // Remove unit from $value for calculations
+        $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
+
+        // Only add the media query if the value is greater than the minimum value
+        @if abs($value) <= $rfs-base-value or not $enable-rfs {
+          $val: $val + ' ' +  if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
+        }
+        @else {
+          // Calculate the minimum value
+          $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
+
+          // Calculate difference between $value and the minimum value
+          $value-diff: abs($value) - $value-min;
+
+          // Base value formatting
+          $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
+
+          // Use negative value if needed
+          $min-width: if($value < 0, -$min-width, $min-width);
+
+          // Use `vmin` if two-dimensional is enabled
+          $variable-unit: if($rfs-two-dimensional, vmin, vw);
+
+          // Calculate the variable width between 0 and $rfs-breakpoint
+          $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
+
+          // Return the calculated value
+          $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';
+        }
+      }
+    }
+  }
+
+  // Remove first space
+  @return unquote(str-slice($val, 2));
+}
+
+// RFS mixin
+@mixin rfs($values, $property: font-size) {
+  @if $values != null {
+    $val: rfs-value($values);
+    $fluidVal: rfs-fluid-value($values);
+
+    // Do not print the media query if responsive & non-responsive values are the same
+    @if $val == $fluidVal {
+      #{$property}: $val;
+    }
+    @else {
+      @include _rfs-rule {
+        #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);
+
+        // Include safari iframe resize fix if needed
+        min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
+      }
+
+      @include _rfs-media-query-rule {
+        #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);
+      }
+    }
+  }
+}
+
+// Shorthand helper mixins
+@mixin font-size($value) {
+  @include rfs($value);
+}
+
+@mixin padding($value) {
+  @include rfs($value, padding);
+}
+
+@mixin padding-top($value) {
+  @include rfs($value, padding-top);
+}
+
+@mixin padding-right($value) {
+  @include rfs($value, padding-right);
+}
+
+@mixin padding-bottom($value) {
+  @include rfs($value, padding-bottom);
+}
+
+@mixin padding-left($value) {
+  @include rfs($value, padding-left);
+}
+
+@mixin margin($value) {
+  @include rfs($value, margin);
+}
+
+@mixin margin-top($value) {
+  @include rfs($value, margin-top);
+}
+
+@mixin margin-right($value) {
+  @include rfs($value, margin-right);
+}
+
+@mixin margin-bottom($value) {
+  @include rfs($value, margin-bottom);
+}
+
+@mixin margin-left($value) {
+  @include rfs($value, margin-left);
+}
diff --git a/styles/dist/styles.css b/styles/dist/styles.css
new file mode 100644
index 0000000..31c12f6
--- /dev/null
+++ b/styles/dist/styles.css
@@ -0,0 +1,11160 @@
+@import url("https://fonts.googleapis.com/css2?family=Jacques+Francois+Shadow&family=Roboto:wght@500&display=swap");
+/*!
+   * Bootstrap  v5.2.3 (https://getbootstrap.com/)
+   * Copyright 2011-2022 The Bootstrap Authors
+   * Copyright 2011-2022 Twitter, Inc.
+   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+   */
+:root {
+  --bs-blue: #0d6efd;
+  --bs-indigo: #6610f2;
+  --bs-purple: #6f42c1;
+  --bs-pink: #d63384;
+  --bs-red: #dc3545;
+  --bs-orange: #fd7e14;
+  --bs-yellow: #ffc107;
+  --bs-green: #198754;
+  --bs-teal: #20c997;
+  --bs-cyan: #0dcaf0;
+  --bs-black: #000;
+  --bs-white: #fff;
+  --bs-gray: #6c757d;
+  --bs-gray-dark: #343a40;
+  --bs-gray-100: #f8f9fa;
+  --bs-gray-200: #e9ecef;
+  --bs-gray-300: #dee2e6;
+  --bs-gray-400: #ced4da;
+  --bs-gray-500: #adb5bd;
+  --bs-gray-600: #6c757d;
+  --bs-gray-700: #495057;
+  --bs-gray-800: #343a40;
+  --bs-gray-900: #212529;
+  --bs-primary: #0d6efd;
+  --bs-secondary: #6c757d;
+  --bs-success: #198754;
+  --bs-info: #0dcaf0;
+  --bs-warning: #ffc107;
+  --bs-danger: #dc3545;
+  --bs-light: #f8f9fa;
+  --bs-dark: #212529;
+  --bs-primary-rgb: 13, 110, 253;
+  --bs-secondary-rgb: 108, 117, 125;
+  --bs-success-rgb: 25, 135, 84;
+  --bs-info-rgb: 13, 202, 240;
+  --bs-warning-rgb: 255, 193, 7;
+  --bs-danger-rgb: 220, 53, 69;
+  --bs-light-rgb: 248, 249, 250;
+  --bs-dark-rgb: 33, 37, 41;
+  --bs-white-rgb: 255, 255, 255;
+  --bs-black-rgb: 0, 0, 0;
+  --bs-body-color-rgb: 33, 37, 41;
+  --bs-body-bg-rgb: 255, 255, 255;
+  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+  --bs-body-font-family: var(--bs-font-sans-serif);
+  --bs-body-font-size: 1rem;
+  --bs-body-font-weight: 400;
+  --bs-body-line-height: 1.5;
+  --bs-body-color: #212529;
+  --bs-body-bg: #fff;
+  --bs-border-width: 1px;
+  --bs-border-style: solid;
+  --bs-border-color: #dee2e6;
+  --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+  --bs-border-radius: 0.375rem;
+  --bs-border-radius-sm: 0.25rem;
+  --bs-border-radius-lg: 0.5rem;
+  --bs-border-radius-xl: 1rem;
+  --bs-border-radius-2xl: 2rem;
+  --bs-border-radius-pill: 50rem;
+  --bs-link-color: #0d6efd;
+  --bs-link-hover-color: #0a58ca;
+  --bs-code-color: #d63384;
+  --bs-highlight-bg: #fff3cd;
+}
+
+*,
+*::before,
+*::after {
+  box-sizing: border-box;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+  :root {
+    scroll-behavior: smooth;
+  }
+}
+
+body {
+  margin: 0;
+  font-family: var(--bs-body-font-family);
+  font-size: var(--bs-body-font-size);
+  font-weight: var(--bs-body-font-weight);
+  line-height: var(--bs-body-line-height);
+  color: var(--bs-body-color);
+  text-align: var(--bs-body-text-align);
+  background-color: var(--bs-body-bg);
+  -webkit-text-size-adjust: 100%;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+hr {
+  margin: 1rem 0;
+  color: inherit;
+  border: 0;
+  border-top: 1px solid;
+  opacity: 0.25;
+}
+
+h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
+  margin-top: 0;
+  margin-bottom: 0.5rem;
+  font-weight: 500;
+  line-height: 1.2;
+}
+
+h1, .h1 {
+  font-size: calc(1.375rem + 1.5vw);
+}
+
+@media (min-width: 1200px) {
+  h1, .h1 {
+    font-size: 2.5rem;
+  }
+}
+
+h2, .h2 {
+  font-size: calc(1.325rem + 0.9vw);
+}
+
+@media (min-width: 1200px) {
+  h2, .h2 {
+    font-size: 2rem;
+  }
+}
+
+h3, .h3 {
+  font-size: calc(1.3rem + 0.6vw);
+}
+
+@media (min-width: 1200px) {
+  h3, .h3 {
+    font-size: 1.75rem;
+  }
+}
+
+h4, .h4 {
+  font-size: calc(1.275rem + 0.3vw);
+}
+
+@media (min-width: 1200px) {
+  h4, .h4 {
+    font-size: 1.5rem;
+  }
+}
+
+h5, .h5 {
+  font-size: 1.25rem;
+}
+
+h6, .h6 {
+  font-size: 1rem;
+}
+
+p {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+abbr[title] {
+  text-decoration: underline dotted;
+  cursor: help;
+  text-decoration-skip-ink: none;
+}
+
+address {
+  margin-bottom: 1rem;
+  font-style: normal;
+  line-height: inherit;
+}
+
+ol,
+ul {
+  padding-left: 2rem;
+}
+
+ol,
+ul,
+dl {
+  margin-top: 0;
+  margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+  margin-bottom: 0;
+}
+
+dt {
+  font-weight: 700;
+}
+
+dd {
+  margin-bottom: .5rem;
+  margin-left: 0;
+}
+
+blockquote {
+  margin: 0 0 1rem;
+}
+
+b,
+strong {
+  font-weight: bolder;
+}
+
+small, .small {
+  font-size: 0.875em;
+}
+
+mark, .mark {
+  padding: 0.1875em;
+  background-color: var(--bs-highlight-bg);
+}
+
+sub,
+sup {
+  position: relative;
+  font-size: 0.75em;
+  line-height: 0;
+  vertical-align: baseline;
+}
+
+sub {
+  bottom: -.25em;
+}
+
+sup {
+  top: -.5em;
+}
+
+a {
+  color: var(--bs-link-color);
+  text-decoration: underline;
+}
+
+a:hover {
+  color: var(--bs-link-hover-color);
+}
+
+a:not([href]):not([class]), a:not([href]):not([class]):hover {
+  color: inherit;
+  text-decoration: none;
+}
+
+pre,
+code,
+kbd,
+samp {
+  font-family: var(--bs-font-monospace);
+  font-size: 1em;
+}
+
+pre {
+  display: block;
+  margin-top: 0;
+  margin-bottom: 1rem;
+  overflow: auto;
+  font-size: 0.875em;
+}
+
+pre code {
+  font-size: inherit;
+  color: inherit;
+  word-break: normal;
+}
+
+code {
+  font-size: 0.875em;
+  color: var(--bs-code-color);
+  word-wrap: break-word;
+}
+
+a > code {
+  color: inherit;
+}
+
+kbd {
+  padding: 0.1875rem 0.375rem;
+  font-size: 0.875em;
+  color: var(--bs-body-bg);
+  background-color: var(--bs-body-color);
+  border-radius: 0.25rem;
+}
+
+kbd kbd {
+  padding: 0;
+  font-size: 1em;
+}
+
+figure {
+  margin: 0 0 1rem;
+}
+
+img,
+svg {
+  vertical-align: middle;
+}
+
+table {
+  caption-side: bottom;
+  border-collapse: collapse;
+}
+
+caption {
+  padding-top: 0.5rem;
+  padding-bottom: 0.5rem;
+  color: #6c757d;
+  text-align: left;
+}
+
+th {
+  text-align: inherit;
+  text-align: -webkit-match-parent;
+}
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+  border-color: inherit;
+  border-style: solid;
+  border-width: 0;
+}
+
+label {
+  display: inline-block;
+}
+
+button {
+  border-radius: 0;
+}
+
+button:focus:not(:focus-visible) {
+  outline: 0;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+  margin: 0;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+button,
+select {
+  text-transform: none;
+}
+
+[role="button"] {
+  cursor: pointer;
+}
+
+select {
+  word-wrap: normal;
+}
+
+select:disabled {
+  opacity: 1;
+}
+
+[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
+  display: none !important;
+}
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+  -webkit-appearance: button;
+}
+
+button:not(:disabled),
+[type="button"]:not(:disabled),
+[type="reset"]:not(:disabled),
+[type="submit"]:not(:disabled) {
+  cursor: pointer;
+}
+
+::-moz-focus-inner {
+  padding: 0;
+  border-style: none;
+}
+
+textarea {
+  resize: vertical;
+}
+
+fieldset {
+  min-width: 0;
+  padding: 0;
+  margin: 0;
+  border: 0;
+}
+
+legend {
+  float: left;
+  width: 100%;
+  padding: 0;
+  margin-bottom: 0.5rem;
+  font-size: calc(1.275rem + 0.3vw);
+  line-height: inherit;
+}
+
+@media (min-width: 1200px) {
+  legend {
+    font-size: 1.5rem;
+  }
+}
+
+legend + * {
+  clear: left;
+}
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+  padding: 0;
+}
+
+::-webkit-inner-spin-button {
+  height: auto;
+}
+
+[type="search"] {
+  outline-offset: -2px;
+  -webkit-appearance: textfield;
+}
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+  direction: ltr;
+}
+*/
+::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+::-webkit-color-swatch-wrapper {
+  padding: 0;
+}
+
+::file-selector-button {
+  font: inherit;
+  -webkit-appearance: button;
+}
+
+output {
+  display: inline-block;
+}
+
+iframe {
+  border: 0;
+}
+
+summary {
+  display: list-item;
+  cursor: pointer;
+}
+
+progress {
+  vertical-align: baseline;
+}
+
+[hidden] {
+  display: none !important;
+}
+
+.lead {
+  font-size: 1.25rem;
+  font-weight: 300;
+}
+
+.display-1 {
+  font-size: calc(1.625rem + 4.5vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-1 {
+    font-size: 5rem;
+  }
+}
+
+.display-2 {
+  font-size: calc(1.575rem + 3.9vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-2 {
+    font-size: 4.5rem;
+  }
+}
+
+.display-3 {
+  font-size: calc(1.525rem + 3.3vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-3 {
+    font-size: 4rem;
+  }
+}
+
+.display-4 {
+  font-size: calc(1.475rem + 2.7vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-4 {
+    font-size: 3.5rem;
+  }
+}
+
+.display-5 {
+  font-size: calc(1.425rem + 2.1vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-5 {
+    font-size: 3rem;
+  }
+}
+
+.display-6 {
+  font-size: calc(1.375rem + 1.5vw);
+  font-weight: 300;
+  line-height: 1.2;
+}
+
+@media (min-width: 1200px) {
+  .display-6 {
+    font-size: 2.5rem;
+  }
+}
+
+.list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-inline {
+  padding-left: 0;
+  list-style: none;
+}
+
+.list-inline-item {
+  display: inline-block;
+}
+
+.list-inline-item:not(:last-child) {
+  margin-right: 0.5rem;
+}
+
+.initialism {
+  font-size: 0.875em;
+  text-transform: uppercase;
+}
+
+.blockquote {
+  margin-bottom: 1rem;
+  font-size: 1.25rem;
+}
+
+.blockquote > :last-child {
+  margin-bottom: 0;
+}
+
+.blockquote-footer {
+  margin-top: -1rem;
+  margin-bottom: 1rem;
+  font-size: 0.875em;
+  color: #6c757d;
+}
+
+.blockquote-footer::before {
+  content: "\2014\00A0";
+}
+
+.img-fluid {
+  max-width: 100%;
+  height: auto;
+}
+
+.img-thumbnail {
+  padding: 0.25rem;
+  background-color: #fff;
+  border: 1px solid var(--bs-border-color);
+  border-radius: 0.375rem;
+  max-width: 100%;
+  height: auto;
+}
+
+.figure {
+  display: inline-block;
+}
+
+.figure-img {
+  margin-bottom: 0.5rem;
+  line-height: 1;
+}
+
+.figure-caption {
+  font-size: 0.875em;
+  color: #6c757d;
+}
+
+.container,
+.container-fluid,
+.container-sm,
+.container-md,
+.container-lg,
+.container-xl,
+.container-xxl {
+  --bs-gutter-x: 1.5rem;
+  --bs-gutter-y: 0;
+  width: 100%;
+  padding-right: calc(var(--bs-gutter-x) * .5);
+  padding-left: calc(var(--bs-gutter-x) * .5);
+  margin-right: auto;
+  margin-left: auto;
+}
+
+@media (min-width: 576px) {
+  .container, .container-sm {
+    max-width: 540px;
+  }
+}
+
+@media (min-width: 768px) {
+  .container, .container-sm, .container-md {
+    max-width: 720px;
+  }
+}
+
+@media (min-width: 992px) {
+  .container, .container-sm, .container-md, .container-lg {
+    max-width: 960px;
+  }
+}
+
+@media (min-width: 1200px) {
+  .container, .container-sm, .container-md, .container-lg, .container-xl {
+    max-width: 1140px;
+  }
+}
+
+@media (min-width: 1400px) {
+  .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
+    max-width: 1320px;
+  }
+}
+
+.row {
+  --bs-gutter-x: 1.5rem;
+  --bs-gutter-y: 0;
+  display: flex;
+  flex-wrap: wrap;
+  margin-top: calc(-1 * var(--bs-gutter-y));
+  margin-right: calc(-.5 * var(--bs-gutter-x));
+  margin-left: calc(-.5 * var(--bs-gutter-x));
+}
+
+.row > * {
+  flex-shrink: 0;
+  width: 100%;
+  max-width: 100%;
+  padding-right: calc(var(--bs-gutter-x) * .5);
+  padding-left: calc(var(--bs-gutter-x) * .5);
+  margin-top: var(--bs-gutter-y);
+}
+
+.col {
+  flex: 1 0 0%;
+}
+
+.row-cols-auto > * {
+  flex: 0 0 auto;
+  width: auto;
+}
+
+.row-cols-1 > * {
+  flex: 0 0 auto;
+  width: 100%;
+}
+
+.row-cols-2 > * {
+  flex: 0 0 auto;
+  width: 50%;
+}
+
+.row-cols-3 > * {
+  flex: 0 0 auto;
+  width: 33.333333%;
+}
+
+.row-cols-4 > * {
+  flex: 0 0 auto;
+  width: 25%;
+}
+
+.row-cols-5 > * {
+  flex: 0 0 auto;
+  width: 20%;
+}
+
+.row-cols-6 > * {
+  flex: 0 0 auto;
+  width: 16.666667%;
+}
+
+.col-auto {
+  flex: 0 0 auto;
+  width: auto;
+}
+
+.col-1 {
+  flex: 0 0 auto;
+  width: 8.333333%;
+}
+
+.col-2 {
+  flex: 0 0 auto;
+  width: 16.666667%;
+}
+
+.col-3 {
+  flex: 0 0 auto;
+  width: 25%;
+}
+
+.col-4 {
+  flex: 0 0 auto;
+  width: 33.333333%;
+}
+
+.col-5 {
+  flex: 0 0 auto;
+  width: 41.666667%;
+}
+
+.col-6 {
+  flex: 0 0 auto;
+  width: 50%;
+}
+
+.col-7 {
+  flex: 0 0 auto;
+  width: 58.333333%;
+}
+
+.col-8 {
+  flex: 0 0 auto;
+  width: 66.666667%;
+}
+
+.col-9 {
+  flex: 0 0 auto;
+  width: 75%;
+}
+
+.col-10 {
+  flex: 0 0 auto;
+  width: 83.333333%;
+}
+
+.col-11 {
+  flex: 0 0 auto;
+  width: 91.666667%;
+}
+
+.col-12 {
+  flex: 0 0 auto;
+  width: 100%;
+}
+
+.offset-1 {
+  margin-left: 8.333333%;
+}
+
+.offset-2 {
+  margin-left: 16.666667%;
+}
+
+.offset-3 {
+  margin-left: 25%;
+}
+
+.offset-4 {
+  margin-left: 33.333333%;
+}
+
+.offset-5 {
+  margin-left: 41.666667%;
+}
+
+.offset-6 {
+  margin-left: 50%;
+}
+
+.offset-7 {
+  margin-left: 58.333333%;
+}
+
+.offset-8 {
+  margin-left: 66.666667%;
+}
+
+.offset-9 {
+  margin-left: 75%;
+}
+
+.offset-10 {
+  margin-left: 83.333333%;
+}
+
+.offset-11 {
+  margin-left: 91.666667%;
+}
+
+.g-0,
+.gx-0 {
+  --bs-gutter-x: 0;
+}
+
+.g-0,
+.gy-0 {
+  --bs-gutter-y: 0;
+}
+
+.g-1,
+.gx-1 {
+  --bs-gutter-x: 0.25rem;
+}
+
+.g-1,
+.gy-1 {
+  --bs-gutter-y: 0.25rem;
+}
+
+.g-2,
+.gx-2 {
+  --bs-gutter-x: 0.5rem;
+}
+
+.g-2,
+.gy-2 {
+  --bs-gutter-y: 0.5rem;
+}
+
+.g-3,
+.gx-3 {
+  --bs-gutter-x: 1rem;
+}
+
+.g-3,
+.gy-3 {
+  --bs-gutter-y: 1rem;
+}
+
+.g-4,
+.gx-4 {
+  --bs-gutter-x: 1.5rem;
+}
+
+.g-4,
+.gy-4 {
+  --bs-gutter-y: 1.5rem;
+}
+
+.g-5,
+.gx-5 {
+  --bs-gutter-x: 3rem;
+}
+
+.g-5,
+.gy-5 {
+  --bs-gutter-y: 3rem;
+}
+
+@media (min-width: 576px) {
+  .col-sm {
+    flex: 1 0 0%;
+  }
+  .row-cols-sm-auto > * {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .row-cols-sm-1 > * {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .row-cols-sm-2 > * {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .row-cols-sm-3 > * {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .row-cols-sm-4 > * {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .row-cols-sm-5 > * {
+    flex: 0 0 auto;
+    width: 20%;
+  }
+  .row-cols-sm-6 > * {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-sm-auto {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .col-sm-1 {
+    flex: 0 0 auto;
+    width: 8.333333%;
+  }
+  .col-sm-2 {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-sm-3 {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .col-sm-4 {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .col-sm-5 {
+    flex: 0 0 auto;
+    width: 41.666667%;
+  }
+  .col-sm-6 {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .col-sm-7 {
+    flex: 0 0 auto;
+    width: 58.333333%;
+  }
+  .col-sm-8 {
+    flex: 0 0 auto;
+    width: 66.666667%;
+  }
+  .col-sm-9 {
+    flex: 0 0 auto;
+    width: 75%;
+  }
+  .col-sm-10 {
+    flex: 0 0 auto;
+    width: 83.333333%;
+  }
+  .col-sm-11 {
+    flex: 0 0 auto;
+    width: 91.666667%;
+  }
+  .col-sm-12 {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .offset-sm-0 {
+    margin-left: 0;
+  }
+  .offset-sm-1 {
+    margin-left: 8.333333%;
+  }
+  .offset-sm-2 {
+    margin-left: 16.666667%;
+  }
+  .offset-sm-3 {
+    margin-left: 25%;
+  }
+  .offset-sm-4 {
+    margin-left: 33.333333%;
+  }
+  .offset-sm-5 {
+    margin-left: 41.666667%;
+  }
+  .offset-sm-6 {
+    margin-left: 50%;
+  }
+  .offset-sm-7 {
+    margin-left: 58.333333%;
+  }
+  .offset-sm-8 {
+    margin-left: 66.666667%;
+  }
+  .offset-sm-9 {
+    margin-left: 75%;
+  }
+  .offset-sm-10 {
+    margin-left: 83.333333%;
+  }
+  .offset-sm-11 {
+    margin-left: 91.666667%;
+  }
+  .g-sm-0,
+  .gx-sm-0 {
+    --bs-gutter-x: 0;
+  }
+  .g-sm-0,
+  .gy-sm-0 {
+    --bs-gutter-y: 0;
+  }
+  .g-sm-1,
+  .gx-sm-1 {
+    --bs-gutter-x: 0.25rem;
+  }
+  .g-sm-1,
+  .gy-sm-1 {
+    --bs-gutter-y: 0.25rem;
+  }
+  .g-sm-2,
+  .gx-sm-2 {
+    --bs-gutter-x: 0.5rem;
+  }
+  .g-sm-2,
+  .gy-sm-2 {
+    --bs-gutter-y: 0.5rem;
+  }
+  .g-sm-3,
+  .gx-sm-3 {
+    --bs-gutter-x: 1rem;
+  }
+  .g-sm-3,
+  .gy-sm-3 {
+    --bs-gutter-y: 1rem;
+  }
+  .g-sm-4,
+  .gx-sm-4 {
+    --bs-gutter-x: 1.5rem;
+  }
+  .g-sm-4,
+  .gy-sm-4 {
+    --bs-gutter-y: 1.5rem;
+  }
+  .g-sm-5,
+  .gx-sm-5 {
+    --bs-gutter-x: 3rem;
+  }
+  .g-sm-5,
+  .gy-sm-5 {
+    --bs-gutter-y: 3rem;
+  }
+}
+
+@media (min-width: 768px) {
+  .col-md {
+    flex: 1 0 0%;
+  }
+  .row-cols-md-auto > * {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .row-cols-md-1 > * {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .row-cols-md-2 > * {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .row-cols-md-3 > * {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .row-cols-md-4 > * {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .row-cols-md-5 > * {
+    flex: 0 0 auto;
+    width: 20%;
+  }
+  .row-cols-md-6 > * {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-md-auto {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .col-md-1 {
+    flex: 0 0 auto;
+    width: 8.333333%;
+  }
+  .col-md-2 {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-md-3 {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .col-md-4 {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .col-md-5 {
+    flex: 0 0 auto;
+    width: 41.666667%;
+  }
+  .col-md-6 {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .col-md-7 {
+    flex: 0 0 auto;
+    width: 58.333333%;
+  }
+  .col-md-8 {
+    flex: 0 0 auto;
+    width: 66.666667%;
+  }
+  .col-md-9 {
+    flex: 0 0 auto;
+    width: 75%;
+  }
+  .col-md-10 {
+    flex: 0 0 auto;
+    width: 83.333333%;
+  }
+  .col-md-11 {
+    flex: 0 0 auto;
+    width: 91.666667%;
+  }
+  .col-md-12 {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .offset-md-0 {
+    margin-left: 0;
+  }
+  .offset-md-1 {
+    margin-left: 8.333333%;
+  }
+  .offset-md-2 {
+    margin-left: 16.666667%;
+  }
+  .offset-md-3 {
+    margin-left: 25%;
+  }
+  .offset-md-4 {
+    margin-left: 33.333333%;
+  }
+  .offset-md-5 {
+    margin-left: 41.666667%;
+  }
+  .offset-md-6 {
+    margin-left: 50%;
+  }
+  .offset-md-7 {
+    margin-left: 58.333333%;
+  }
+  .offset-md-8 {
+    margin-left: 66.666667%;
+  }
+  .offset-md-9 {
+    margin-left: 75%;
+  }
+  .offset-md-10 {
+    margin-left: 83.333333%;
+  }
+  .offset-md-11 {
+    margin-left: 91.666667%;
+  }
+  .g-md-0,
+  .gx-md-0 {
+    --bs-gutter-x: 0;
+  }
+  .g-md-0,
+  .gy-md-0 {
+    --bs-gutter-y: 0;
+  }
+  .g-md-1,
+  .gx-md-1 {
+    --bs-gutter-x: 0.25rem;
+  }
+  .g-md-1,
+  .gy-md-1 {
+    --bs-gutter-y: 0.25rem;
+  }
+  .g-md-2,
+  .gx-md-2 {
+    --bs-gutter-x: 0.5rem;
+  }
+  .g-md-2,
+  .gy-md-2 {
+    --bs-gutter-y: 0.5rem;
+  }
+  .g-md-3,
+  .gx-md-3 {
+    --bs-gutter-x: 1rem;
+  }
+  .g-md-3,
+  .gy-md-3 {
+    --bs-gutter-y: 1rem;
+  }
+  .g-md-4,
+  .gx-md-4 {
+    --bs-gutter-x: 1.5rem;
+  }
+  .g-md-4,
+  .gy-md-4 {
+    --bs-gutter-y: 1.5rem;
+  }
+  .g-md-5,
+  .gx-md-5 {
+    --bs-gutter-x: 3rem;
+  }
+  .g-md-5,
+  .gy-md-5 {
+    --bs-gutter-y: 3rem;
+  }
+}
+
+@media (min-width: 992px) {
+  .col-lg {
+    flex: 1 0 0%;
+  }
+  .row-cols-lg-auto > * {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .row-cols-lg-1 > * {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .row-cols-lg-2 > * {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .row-cols-lg-3 > * {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .row-cols-lg-4 > * {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .row-cols-lg-5 > * {
+    flex: 0 0 auto;
+    width: 20%;
+  }
+  .row-cols-lg-6 > * {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-lg-auto {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .col-lg-1 {
+    flex: 0 0 auto;
+    width: 8.333333%;
+  }
+  .col-lg-2 {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-lg-3 {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .col-lg-4 {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .col-lg-5 {
+    flex: 0 0 auto;
+    width: 41.666667%;
+  }
+  .col-lg-6 {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .col-lg-7 {
+    flex: 0 0 auto;
+    width: 58.333333%;
+  }
+  .col-lg-8 {
+    flex: 0 0 auto;
+    width: 66.666667%;
+  }
+  .col-lg-9 {
+    flex: 0 0 auto;
+    width: 75%;
+  }
+  .col-lg-10 {
+    flex: 0 0 auto;
+    width: 83.333333%;
+  }
+  .col-lg-11 {
+    flex: 0 0 auto;
+    width: 91.666667%;
+  }
+  .col-lg-12 {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .offset-lg-0 {
+    margin-left: 0;
+  }
+  .offset-lg-1 {
+    margin-left: 8.333333%;
+  }
+  .offset-lg-2 {
+    margin-left: 16.666667%;
+  }
+  .offset-lg-3 {
+    margin-left: 25%;
+  }
+  .offset-lg-4 {
+    margin-left: 33.333333%;
+  }
+  .offset-lg-5 {
+    margin-left: 41.666667%;
+  }
+  .offset-lg-6 {
+    margin-left: 50%;
+  }
+  .offset-lg-7 {
+    margin-left: 58.333333%;
+  }
+  .offset-lg-8 {
+    margin-left: 66.666667%;
+  }
+  .offset-lg-9 {
+    margin-left: 75%;
+  }
+  .offset-lg-10 {
+    margin-left: 83.333333%;
+  }
+  .offset-lg-11 {
+    margin-left: 91.666667%;
+  }
+  .g-lg-0,
+  .gx-lg-0 {
+    --bs-gutter-x: 0;
+  }
+  .g-lg-0,
+  .gy-lg-0 {
+    --bs-gutter-y: 0;
+  }
+  .g-lg-1,
+  .gx-lg-1 {
+    --bs-gutter-x: 0.25rem;
+  }
+  .g-lg-1,
+  .gy-lg-1 {
+    --bs-gutter-y: 0.25rem;
+  }
+  .g-lg-2,
+  .gx-lg-2 {
+    --bs-gutter-x: 0.5rem;
+  }
+  .g-lg-2,
+  .gy-lg-2 {
+    --bs-gutter-y: 0.5rem;
+  }
+  .g-lg-3,
+  .gx-lg-3 {
+    --bs-gutter-x: 1rem;
+  }
+  .g-lg-3,
+  .gy-lg-3 {
+    --bs-gutter-y: 1rem;
+  }
+  .g-lg-4,
+  .gx-lg-4 {
+    --bs-gutter-x: 1.5rem;
+  }
+  .g-lg-4,
+  .gy-lg-4 {
+    --bs-gutter-y: 1.5rem;
+  }
+  .g-lg-5,
+  .gx-lg-5 {
+    --bs-gutter-x: 3rem;
+  }
+  .g-lg-5,
+  .gy-lg-5 {
+    --bs-gutter-y: 3rem;
+  }
+}
+
+@media (min-width: 1200px) {
+  .col-xl {
+    flex: 1 0 0%;
+  }
+  .row-cols-xl-auto > * {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .row-cols-xl-1 > * {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .row-cols-xl-2 > * {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .row-cols-xl-3 > * {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .row-cols-xl-4 > * {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .row-cols-xl-5 > * {
+    flex: 0 0 auto;
+    width: 20%;
+  }
+  .row-cols-xl-6 > * {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-xl-auto {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .col-xl-1 {
+    flex: 0 0 auto;
+    width: 8.333333%;
+  }
+  .col-xl-2 {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-xl-3 {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .col-xl-4 {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .col-xl-5 {
+    flex: 0 0 auto;
+    width: 41.666667%;
+  }
+  .col-xl-6 {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .col-xl-7 {
+    flex: 0 0 auto;
+    width: 58.333333%;
+  }
+  .col-xl-8 {
+    flex: 0 0 auto;
+    width: 66.666667%;
+  }
+  .col-xl-9 {
+    flex: 0 0 auto;
+    width: 75%;
+  }
+  .col-xl-10 {
+    flex: 0 0 auto;
+    width: 83.333333%;
+  }
+  .col-xl-11 {
+    flex: 0 0 auto;
+    width: 91.666667%;
+  }
+  .col-xl-12 {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .offset-xl-0 {
+    margin-left: 0;
+  }
+  .offset-xl-1 {
+    margin-left: 8.333333%;
+  }
+  .offset-xl-2 {
+    margin-left: 16.666667%;
+  }
+  .offset-xl-3 {
+    margin-left: 25%;
+  }
+  .offset-xl-4 {
+    margin-left: 33.333333%;
+  }
+  .offset-xl-5 {
+    margin-left: 41.666667%;
+  }
+  .offset-xl-6 {
+    margin-left: 50%;
+  }
+  .offset-xl-7 {
+    margin-left: 58.333333%;
+  }
+  .offset-xl-8 {
+    margin-left: 66.666667%;
+  }
+  .offset-xl-9 {
+    margin-left: 75%;
+  }
+  .offset-xl-10 {
+    margin-left: 83.333333%;
+  }
+  .offset-xl-11 {
+    margin-left: 91.666667%;
+  }
+  .g-xl-0,
+  .gx-xl-0 {
+    --bs-gutter-x: 0;
+  }
+  .g-xl-0,
+  .gy-xl-0 {
+    --bs-gutter-y: 0;
+  }
+  .g-xl-1,
+  .gx-xl-1 {
+    --bs-gutter-x: 0.25rem;
+  }
+  .g-xl-1,
+  .gy-xl-1 {
+    --bs-gutter-y: 0.25rem;
+  }
+  .g-xl-2,
+  .gx-xl-2 {
+    --bs-gutter-x: 0.5rem;
+  }
+  .g-xl-2,
+  .gy-xl-2 {
+    --bs-gutter-y: 0.5rem;
+  }
+  .g-xl-3,
+  .gx-xl-3 {
+    --bs-gutter-x: 1rem;
+  }
+  .g-xl-3,
+  .gy-xl-3 {
+    --bs-gutter-y: 1rem;
+  }
+  .g-xl-4,
+  .gx-xl-4 {
+    --bs-gutter-x: 1.5rem;
+  }
+  .g-xl-4,
+  .gy-xl-4 {
+    --bs-gutter-y: 1.5rem;
+  }
+  .g-xl-5,
+  .gx-xl-5 {
+    --bs-gutter-x: 3rem;
+  }
+  .g-xl-5,
+  .gy-xl-5 {
+    --bs-gutter-y: 3rem;
+  }
+}
+
+@media (min-width: 1400px) {
+  .col-xxl {
+    flex: 1 0 0%;
+  }
+  .row-cols-xxl-auto > * {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .row-cols-xxl-1 > * {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .row-cols-xxl-2 > * {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .row-cols-xxl-3 > * {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .row-cols-xxl-4 > * {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .row-cols-xxl-5 > * {
+    flex: 0 0 auto;
+    width: 20%;
+  }
+  .row-cols-xxl-6 > * {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-xxl-auto {
+    flex: 0 0 auto;
+    width: auto;
+  }
+  .col-xxl-1 {
+    flex: 0 0 auto;
+    width: 8.333333%;
+  }
+  .col-xxl-2 {
+    flex: 0 0 auto;
+    width: 16.666667%;
+  }
+  .col-xxl-3 {
+    flex: 0 0 auto;
+    width: 25%;
+  }
+  .col-xxl-4 {
+    flex: 0 0 auto;
+    width: 33.333333%;
+  }
+  .col-xxl-5 {
+    flex: 0 0 auto;
+    width: 41.666667%;
+  }
+  .col-xxl-6 {
+    flex: 0 0 auto;
+    width: 50%;
+  }
+  .col-xxl-7 {
+    flex: 0 0 auto;
+    width: 58.333333%;
+  }
+  .col-xxl-8 {
+    flex: 0 0 auto;
+    width: 66.666667%;
+  }
+  .col-xxl-9 {
+    flex: 0 0 auto;
+    width: 75%;
+  }
+  .col-xxl-10 {
+    flex: 0 0 auto;
+    width: 83.333333%;
+  }
+  .col-xxl-11 {
+    flex: 0 0 auto;
+    width: 91.666667%;
+  }
+  .col-xxl-12 {
+    flex: 0 0 auto;
+    width: 100%;
+  }
+  .offset-xxl-0 {
+    margin-left: 0;
+  }
+  .offset-xxl-1 {
+    margin-left: 8.333333%;
+  }
+  .offset-xxl-2 {
+    margin-left: 16.666667%;
+  }
+  .offset-xxl-3 {
+    margin-left: 25%;
+  }
+  .offset-xxl-4 {
+    margin-left: 33.333333%;
+  }
+  .offset-xxl-5 {
+    margin-left: 41.666667%;
+  }
+  .offset-xxl-6 {
+    margin-left: 50%;
+  }
+  .offset-xxl-7 {
+    margin-left: 58.333333%;
+  }
+  .offset-xxl-8 {
+    margin-left: 66.666667%;
+  }
+  .offset-xxl-9 {
+    margin-left: 75%;
+  }
+  .offset-xxl-10 {
+    margin-left: 83.333333%;
+  }
+  .offset-xxl-11 {
+    margin-left: 91.666667%;
+  }
+  .g-xxl-0,
+  .gx-xxl-0 {
+    --bs-gutter-x: 0;
+  }
+  .g-xxl-0,
+  .gy-xxl-0 {
+    --bs-gutter-y: 0;
+  }
+  .g-xxl-1,
+  .gx-xxl-1 {
+    --bs-gutter-x: 0.25rem;
+  }
+  .g-xxl-1,
+  .gy-xxl-1 {
+    --bs-gutter-y: 0.25rem;
+  }
+  .g-xxl-2,
+  .gx-xxl-2 {
+    --bs-gutter-x: 0.5rem;
+  }
+  .g-xxl-2,
+  .gy-xxl-2 {
+    --bs-gutter-y: 0.5rem;
+  }
+  .g-xxl-3,
+  .gx-xxl-3 {
+    --bs-gutter-x: 1rem;
+  }
+  .g-xxl-3,
+  .gy-xxl-3 {
+    --bs-gutter-y: 1rem;
+  }
+  .g-xxl-4,
+  .gx-xxl-4 {
+    --bs-gutter-x: 1.5rem;
+  }
+  .g-xxl-4,
+  .gy-xxl-4 {
+    --bs-gutter-y: 1.5rem;
+  }
+  .g-xxl-5,
+  .gx-xxl-5 {
+    --bs-gutter-x: 3rem;
+  }
+  .g-xxl-5,
+  .gy-xxl-5 {
+    --bs-gutter-y: 3rem;
+  }
+}
+
+.table {
+  --bs-table-color: var(--bs-body-color);
+  --bs-table-bg: transparent;
+  --bs-table-border-color: var(--bs-border-color);
+  --bs-table-accent-bg: transparent;
+  --bs-table-striped-color: var(--bs-body-color);
+  --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+  --bs-table-active-color: var(--bs-body-color);
+  --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+  --bs-table-hover-color: var(--bs-body-color);
+  --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+  width: 100%;
+  margin-bottom: 1rem;
+  color: var(--bs-table-color);
+  vertical-align: top;
+  border-color: var(--bs-table-border-color);
+}
+
+.table > :not(caption) > * > * {
+  padding: 0.5rem 0.5rem;
+  background-color: var(--bs-table-bg);
+  border-bottom-width: 1px;
+  box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+
+.table > tbody {
+  vertical-align: inherit;
+}
+
+.table > thead {
+  vertical-align: bottom;
+}
+
+.table-group-divider {
+  border-top: 2px solid currentcolor;
+}
+
+.caption-top {
+  caption-side: top;
+}
+
+.table-sm > :not(caption) > * > * {
+  padding: 0.25rem 0.25rem;
+}
+
+.table-bordered > :not(caption) > * {
+  border-width: 1px 0;
+}
+
+.table-bordered > :not(caption) > * > * {
+  border-width: 0 1px;
+}
+
+.table-borderless > :not(caption) > * > * {
+  border-bottom-width: 0;
+}
+
+.table-borderless > :not(:first-child) {
+  border-top-width: 0;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+  --bs-table-accent-bg: var(--bs-table-striped-bg);
+  color: var(--bs-table-striped-color);
+}
+
+.table-striped-columns > :not(caption) > tr > :nth-child(even) {
+  --bs-table-accent-bg: var(--bs-table-striped-bg);
+  color: var(--bs-table-striped-color);
+}
+
+.table-active {
+  --bs-table-accent-bg: var(--bs-table-active-bg);
+  color: var(--bs-table-active-color);
+}
+
+.table-hover > tbody > tr:hover > * {
+  --bs-table-accent-bg: var(--bs-table-hover-bg);
+  color: var(--bs-table-hover-color);
+}
+
+.table-primary {
+  --bs-table-color: #000;
+  --bs-table-bg: #cfe2ff;
+  --bs-table-border-color: #bacbe6;
+  --bs-table-striped-bg: #c5d7f2;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #bacbe6;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #bfd1ec;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-secondary {
+  --bs-table-color: #000;
+  --bs-table-bg: #e2e3e5;
+  --bs-table-border-color: #cbccce;
+  --bs-table-striped-bg: #d7d8da;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #cbccce;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #d1d2d4;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-success {
+  --bs-table-color: #000;
+  --bs-table-bg: #d1e7dd;
+  --bs-table-border-color: #bcd0c7;
+  --bs-table-striped-bg: #c7dbd2;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #bcd0c7;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #c1d6cc;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-info {
+  --bs-table-color: #000;
+  --bs-table-bg: #cff4fc;
+  --bs-table-border-color: #badce3;
+  --bs-table-striped-bg: #c5e8ef;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #badce3;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #bfe2e9;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-warning {
+  --bs-table-color: #000;
+  --bs-table-bg: #fff3cd;
+  --bs-table-border-color: #e6dbb9;
+  --bs-table-striped-bg: #f2e7c3;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #e6dbb9;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #ece1be;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-danger {
+  --bs-table-color: #000;
+  --bs-table-bg: #f8d7da;
+  --bs-table-border-color: #dfc2c4;
+  --bs-table-striped-bg: #eccccf;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #dfc2c4;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #e5c7ca;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-light {
+  --bs-table-color: #000;
+  --bs-table-bg: #f8f9fa;
+  --bs-table-border-color: #dfe0e1;
+  --bs-table-striped-bg: #ecedee;
+  --bs-table-striped-color: #000;
+  --bs-table-active-bg: #dfe0e1;
+  --bs-table-active-color: #000;
+  --bs-table-hover-bg: #e5e6e7;
+  --bs-table-hover-color: #000;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-dark {
+  --bs-table-color: #fff;
+  --bs-table-bg: #212529;
+  --bs-table-border-color: #373b3e;
+  --bs-table-striped-bg: #2c3034;
+  --bs-table-striped-color: #fff;
+  --bs-table-active-bg: #373b3e;
+  --bs-table-active-color: #fff;
+  --bs-table-hover-bg: #323539;
+  --bs-table-hover-color: #fff;
+  color: var(--bs-table-color);
+  border-color: var(--bs-table-border-color);
+}
+
+.table-responsive {
+  overflow-x: auto;
+  -webkit-overflow-scrolling: touch;
+}
+
+@media (max-width: 575.98px) {
+  .table-responsive-sm {
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+
+@media (max-width: 767.98px) {
+  .table-responsive-md {
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+
+@media (max-width: 991.98px) {
+  .table-responsive-lg {
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+
+@media (max-width: 1199.98px) {
+  .table-responsive-xl {
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+
+@media (max-width: 1399.98px) {
+  .table-responsive-xxl {
+    overflow-x: auto;
+    -webkit-overflow-scrolling: touch;
+  }
+}
+
+.form-label {
+  margin-bottom: 0.5rem;
+}
+
+.col-form-label {
+  padding-top: calc(0.375rem + 1px);
+  padding-bottom: calc(0.375rem + 1px);
+  margin-bottom: 0;
+  font-size: inherit;
+  line-height: 1.5;
+}
+
+.col-form-label-lg {
+  padding-top: calc(0.5rem + 1px);
+  padding-bottom: calc(0.5rem + 1px);
+  font-size: 1.25rem;
+}
+
+.col-form-label-sm {
+  padding-top: calc(0.25rem + 1px);
+  padding-bottom: calc(0.25rem + 1px);
+  font-size: 0.875rem;
+}
+
+.form-text {
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #6c757d;
+}
+
+.form-control {
+  display: block;
+  width: 100%;
+  padding: 0.375rem 0.75rem;
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #212529;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 1px solid #ced4da;
+  appearance: none;
+  border-radius: 0.375rem;
+  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-control {
+    transition: none;
+  }
+}
+
+.form-control[type="file"] {
+  overflow: hidden;
+}
+
+.form-control[type="file"]:not(:disabled):not([readonly]) {
+  cursor: pointer;
+}
+
+.form-control:focus {
+  color: #212529;
+  background-color: #fff;
+  border-color: #86b7fe;
+  outline: 0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+
+.form-control::-webkit-date-and-time-value {
+  height: 1.5em;
+}
+
+.form-control::placeholder {
+  color: #6c757d;
+  opacity: 1;
+}
+
+.form-control:disabled {
+  background-color: #e9ecef;
+  opacity: 1;
+}
+
+.form-control::file-selector-button {
+  padding: 0.375rem 0.75rem;
+  margin: -0.375rem -0.75rem;
+  margin-inline-end: 0.75rem;
+  color: #212529;
+  background-color: #e9ecef;
+  pointer-events: none;
+  border-color: inherit;
+  border-style: solid;
+  border-width: 0;
+  border-inline-end-width: 1px;
+  border-radius: 0;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-control::file-selector-button {
+    transition: none;
+  }
+}
+
+.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+  background-color: #dde0e3;
+}
+
+.form-control-plaintext {
+  display: block;
+  width: 100%;
+  padding: 0.375rem 0;
+  margin-bottom: 0;
+  line-height: 1.5;
+  color: #212529;
+  background-color: transparent;
+  border: solid transparent;
+  border-width: 1px 0;
+}
+
+.form-control-plaintext:focus {
+  outline: 0;
+}
+
+.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+  padding-right: 0;
+  padding-left: 0;
+}
+
+.form-control-sm {
+  min-height: calc(1.5em + 0.5rem + 2px);
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  border-radius: 0.25rem;
+}
+
+.form-control-sm::file-selector-button {
+  padding: 0.25rem 0.5rem;
+  margin: -0.25rem -0.5rem;
+  margin-inline-end: 0.5rem;
+}
+
+.form-control-lg {
+  min-height: calc(1.5em + 1rem + 2px);
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  border-radius: 0.5rem;
+}
+
+.form-control-lg::file-selector-button {
+  padding: 0.5rem 1rem;
+  margin: -0.5rem -1rem;
+  margin-inline-end: 1rem;
+}
+
+textarea.form-control {
+  min-height: calc(1.5em + 0.75rem + 2px);
+}
+
+textarea.form-control-sm {
+  min-height: calc(1.5em + 0.5rem + 2px);
+}
+
+textarea.form-control-lg {
+  min-height: calc(1.5em + 1rem + 2px);
+}
+
+.form-control-color {
+  width: 3rem;
+  height: calc(1.5em + 0.75rem + 2px);
+  padding: 0.375rem;
+}
+
+.form-control-color:not(:disabled):not([readonly]) {
+  cursor: pointer;
+}
+
+.form-control-color::-moz-color-swatch {
+  border: 0 !important;
+  border-radius: 0.375rem;
+}
+
+.form-control-color::-webkit-color-swatch {
+  border-radius: 0.375rem;
+}
+
+.form-control-color.form-control-sm {
+  height: calc(1.5em + 0.5rem + 2px);
+}
+
+.form-control-color.form-control-lg {
+  height: calc(1.5em + 1rem + 2px);
+}
+
+.form-select {
+  display: block;
+  width: 100%;
+  padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+  -moz-padding-start: calc(0.75rem - 3px);
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #212529;
+  background-color: #fff;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right 0.75rem center;
+  background-size: 16px 12px;
+  border: 1px solid #ced4da;
+  border-radius: 0.375rem;
+  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+  appearance: none;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-select {
+    transition: none;
+  }
+}
+
+.form-select:focus {
+  border-color: #86b7fe;
+  outline: 0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+
+.form-select[multiple], .form-select[size]:not([size="1"]) {
+  padding-right: 0.75rem;
+  background-image: none;
+}
+
+.form-select:disabled {
+  background-color: #e9ecef;
+}
+
+.form-select:-moz-focusring {
+  color: transparent;
+  text-shadow: 0 0 0 #212529;
+}
+
+.form-select-sm {
+  padding-top: 0.25rem;
+  padding-bottom: 0.25rem;
+  padding-left: 0.5rem;
+  font-size: 0.875rem;
+  border-radius: 0.25rem;
+}
+
+.form-select-lg {
+  padding-top: 0.5rem;
+  padding-bottom: 0.5rem;
+  padding-left: 1rem;
+  font-size: 1.25rem;
+  border-radius: 0.5rem;
+}
+
+.form-check {
+  display: block;
+  min-height: 1.5rem;
+  padding-left: 1.5em;
+  margin-bottom: 0.125rem;
+}
+
+.form-check .form-check-input {
+  float: left;
+  margin-left: -1.5em;
+}
+
+.form-check-reverse {
+  padding-right: 1.5em;
+  padding-left: 0;
+  text-align: right;
+}
+
+.form-check-reverse .form-check-input {
+  float: right;
+  margin-right: -1.5em;
+  margin-left: 0;
+}
+
+.form-check-input {
+  width: 1em;
+  height: 1em;
+  margin-top: 0.25em;
+  vertical-align: top;
+  background-color: #fff;
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: contain;
+  border: 1px solid rgba(0, 0, 0, 0.25);
+  appearance: none;
+  print-color-adjust: exact;
+}
+
+.form-check-input[type="checkbox"] {
+  border-radius: 0.25em;
+}
+
+.form-check-input[type="radio"] {
+  border-radius: 50%;
+}
+
+.form-check-input:active {
+  filter: brightness(90%);
+}
+
+.form-check-input:focus {
+  border-color: #86b7fe;
+  outline: 0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+
+.form-check-input:checked {
+  background-color: #0d6efd;
+  border-color: #0d6efd;
+}
+
+.form-check-input:checked[type="checkbox"] {
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
+}
+
+.form-check-input:checked[type="radio"] {
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
+}
+
+.form-check-input[type="checkbox"]:indeterminate {
+  background-color: #0d6efd;
+  border-color: #0d6efd;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
+}
+
+.form-check-input:disabled {
+  pointer-events: none;
+  filter: none;
+  opacity: 0.5;
+}
+
+.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+  cursor: default;
+  opacity: 0.5;
+}
+
+.form-switch {
+  padding-left: 2.5em;
+}
+
+.form-switch .form-check-input {
+  width: 2em;
+  margin-left: -2.5em;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
+  background-position: left center;
+  border-radius: 2em;
+  transition: background-position 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-switch .form-check-input {
+    transition: none;
+  }
+}
+
+.form-switch .form-check-input:focus {
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e");
+}
+
+.form-switch .form-check-input:checked {
+  background-position: right center;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
+}
+
+.form-switch.form-check-reverse {
+  padding-right: 2.5em;
+  padding-left: 0;
+}
+
+.form-switch.form-check-reverse .form-check-input {
+  margin-right: -2.5em;
+  margin-left: 0;
+}
+
+.form-check-inline {
+  display: inline-block;
+  margin-right: 1rem;
+}
+
+.btn-check {
+  position: absolute;
+  clip: rect(0, 0, 0, 0);
+  pointer-events: none;
+}
+
+.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+  pointer-events: none;
+  filter: none;
+  opacity: 0.65;
+}
+
+.form-range {
+  width: 100%;
+  height: 1.5rem;
+  padding: 0;
+  background-color: transparent;
+  appearance: none;
+}
+
+.form-range:focus {
+  outline: 0;
+}
+
+.form-range:focus::-webkit-slider-thumb {
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+
+.form-range:focus::-moz-range-thumb {
+  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+}
+
+.form-range::-moz-focus-outer {
+  border: 0;
+}
+
+.form-range::-webkit-slider-thumb {
+  width: 1rem;
+  height: 1rem;
+  margin-top: -0.25rem;
+  background-color: #0d6efd;
+  border: 0;
+  border-radius: 1rem;
+  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+  appearance: none;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-range::-webkit-slider-thumb {
+    transition: none;
+  }
+}
+
+.form-range::-webkit-slider-thumb:active {
+  background-color: #b6d4fe;
+}
+
+.form-range::-webkit-slider-runnable-track {
+  width: 100%;
+  height: 0.5rem;
+  color: transparent;
+  cursor: pointer;
+  background-color: #dee2e6;
+  border-color: transparent;
+  border-radius: 1rem;
+}
+
+.form-range::-moz-range-thumb {
+  width: 1rem;
+  height: 1rem;
+  background-color: #0d6efd;
+  border: 0;
+  border-radius: 1rem;
+  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+  appearance: none;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-range::-moz-range-thumb {
+    transition: none;
+  }
+}
+
+.form-range::-moz-range-thumb:active {
+  background-color: #b6d4fe;
+}
+
+.form-range::-moz-range-track {
+  width: 100%;
+  height: 0.5rem;
+  color: transparent;
+  cursor: pointer;
+  background-color: #dee2e6;
+  border-color: transparent;
+  border-radius: 1rem;
+}
+
+.form-range:disabled {
+  pointer-events: none;
+}
+
+.form-range:disabled::-webkit-slider-thumb {
+  background-color: #adb5bd;
+}
+
+.form-range:disabled::-moz-range-thumb {
+  background-color: #adb5bd;
+}
+
+.form-floating {
+  position: relative;
+}
+
+.form-floating > .form-control,
+.form-floating > .form-control-plaintext,
+.form-floating > .form-select {
+  height: calc(3.5rem + 2px);
+  line-height: 1.25;
+}
+
+.form-floating > label {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  padding: 1rem 0.75rem;
+  overflow: hidden;
+  text-align: start;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  pointer-events: none;
+  border: 1px solid transparent;
+  transform-origin: 0 0;
+  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .form-floating > label {
+    transition: none;
+  }
+}
+
+.form-floating > .form-control,
+.form-floating > .form-control-plaintext {
+  padding: 1rem 0.75rem;
+}
+
+.form-floating > .form-control::placeholder,
+.form-floating > .form-control-plaintext::placeholder {
+  color: transparent;
+}
+
+.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
+.form-floating > .form-control-plaintext:focus,
+.form-floating > .form-control-plaintext:not(:placeholder-shown) {
+  padding-top: 1.625rem;
+  padding-bottom: 0.625rem;
+}
+
+.form-floating > .form-control:-webkit-autofill,
+.form-floating > .form-control-plaintext:-webkit-autofill {
+  padding-top: 1.625rem;
+  padding-bottom: 0.625rem;
+}
+
+.form-floating > .form-select {
+  padding-top: 1.625rem;
+  padding-bottom: 0.625rem;
+}
+
+.form-floating > .form-control:focus ~ label,
+.form-floating > .form-control:not(:placeholder-shown) ~ label,
+.form-floating > .form-control-plaintext ~ label,
+.form-floating > .form-select ~ label {
+  opacity: 0.65;
+  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+
+.form-floating > .form-control:-webkit-autofill ~ label {
+  opacity: 0.65;
+  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+
+.form-floating > .form-control-plaintext ~ label {
+  border-width: 1px 0;
+}
+
+.input-group {
+  position: relative;
+  display: flex;
+  flex-wrap: wrap;
+  align-items: stretch;
+  width: 100%;
+}
+
+.input-group > .form-control,
+.input-group > .form-select,
+.input-group > .form-floating {
+  position: relative;
+  flex: 1 1 auto;
+  width: 1%;
+  min-width: 0;
+}
+
+.input-group > .form-control:focus,
+.input-group > .form-select:focus,
+.input-group > .form-floating:focus-within {
+  z-index: 5;
+}
+
+.input-group .btn {
+  position: relative;
+  z-index: 2;
+}
+
+.input-group .btn:focus {
+  z-index: 5;
+}
+
+.input-group-text {
+  display: flex;
+  align-items: center;
+  padding: 0.375rem 0.75rem;
+  font-size: 1rem;
+  font-weight: 400;
+  line-height: 1.5;
+  color: #212529;
+  text-align: center;
+  white-space: nowrap;
+  background-color: #e9ecef;
+  border: 1px solid #ced4da;
+  border-radius: 0.375rem;
+}
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+  padding: 0.5rem 1rem;
+  font-size: 1.25rem;
+  border-radius: 0.5rem;
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+  padding: 0.25rem 0.5rem;
+  font-size: 0.875rem;
+  border-radius: 0.25rem;
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+  padding-right: 3rem;
+}
+
+.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3),
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,
+.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
+.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4),
+.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control,
+.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+  margin-left: -1px;
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.input-group > .form-floating:not(:first-child) > .form-control,
+.input-group > .form-floating:not(:first-child) > .form-select {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.valid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #198754;
+}
+
+.valid-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: .1rem;
+  font-size: 0.875rem;
+  color: #fff;
+  background-color: rgba(25, 135, 84, 0.9);
+  border-radius: 0.375rem;
+}
+
+.was-validated :valid ~ .valid-feedback,
+.was-validated :valid ~ .valid-tooltip,
+.is-valid ~ .valid-feedback,
+.is-valid ~ .valid-tooltip {
+  display: block;
+}
+
+.was-validated .form-control:valid, .form-control.is-valid {
+  border-color: #198754;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+
+.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+  border-color: #198754;
+  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+
+.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+
+.was-validated .form-select:valid, .form-select.is-valid {
+  border-color: #198754;
+}
+
+.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+
+.was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+  border-color: #198754;
+  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+
+.was-validated .form-control-color:valid, .form-control-color.is-valid {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+  border-color: #198754;
+}
+
+.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+  background-color: #198754;
+}
+
+.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+  box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+  color: #198754;
+}
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+  margin-left: .5em;
+}
+
+.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .was-validated
+.input-group > .form-select:not(:focus):valid,
+.input-group > .form-select:not(:focus).is-valid, .was-validated
+.input-group > .form-floating:not(:focus-within):valid,
+.input-group > .form-floating:not(:focus-within).is-valid {
+  z-index: 3;
+}
+
+.invalid-feedback {
+  display: none;
+  width: 100%;
+  margin-top: 0.25rem;
+  font-size: 0.875em;
+  color: #dc3545;
+}
+
+.invalid-tooltip {
+  position: absolute;
+  top: 100%;
+  z-index: 5;
+  display: none;
+  max-width: 100%;
+  padding: 0.25rem 0.5rem;
+  margin-top: .1rem;
+  font-size: 0.875rem;
+  color: #fff;
+  background-color: rgba(220, 53, 69, 0.9);
+  border-radius: 0.375rem;
+}
+
+.was-validated :invalid ~ .invalid-feedback,
+.was-validated :invalid ~ .invalid-tooltip,
+.is-invalid ~ .invalid-feedback,
+.is-invalid ~ .invalid-tooltip {
+  display: block;
+}
+
+.was-validated .form-control:invalid, .form-control.is-invalid {
+  border-color: #dc3545;
+  padding-right: calc(1.5em + 0.75rem);
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+  background-repeat: no-repeat;
+  background-position: right calc(0.375em + 0.1875rem) center;
+  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+
+.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+  border-color: #dc3545;
+  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+  padding-right: calc(1.5em + 0.75rem);
+  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+
+.was-validated .form-select:invalid, .form-select.is-invalid {
+  border-color: #dc3545;
+}
+
+.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
+  padding-right: 4.125rem;
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+  background-position: right 0.75rem center, center right 2.25rem;
+  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+
+.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+  border-color: #dc3545;
+  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+  width: calc(3rem + calc(1.5em + 0.75rem));
+}
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+  border-color: #dc3545;
+}
+
+.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+  background-color: #dc3545;
+}
+
+.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+  box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+  color: #dc3545;
+}
+
+.form-check-inline .form-check-input ~ .invalid-feedback {
+  margin-left: .5em;
+}
+
+.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .was-validated
+.input-group > .form-select:not(:focus):invalid,
+.input-group > .form-select:not(:focus).is-invalid, .was-validated
+.input-group > .form-floating:not(:focus-within):invalid,
+.input-group > .form-floating:not(:focus-within).is-invalid {
+  z-index: 4;
+}
+
+.btn {
+  --bs-btn-padding-x: 0.75rem;
+  --bs-btn-padding-y: 0.375rem;
+  --bs-btn-font-family: ;
+  --bs-btn-font-size: 1rem;
+  --bs-btn-font-weight: 400;
+  --bs-btn-line-height: 1.5;
+  --bs-btn-color: #212529;
+  --bs-btn-bg: transparent;
+  --bs-btn-border-width: 1px;
+  --bs-btn-border-color: transparent;
+  --bs-btn-border-radius: 0.375rem;
+  --bs-btn-hover-border-color: transparent;
+  --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+  --bs-btn-disabled-opacity: 0.65;
+  --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
+  display: inline-block;
+  padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+  font-family: var(--bs-btn-font-family);
+  font-size: var(--bs-btn-font-size);
+  font-weight: var(--bs-btn-font-weight);
+  line-height: var(--bs-btn-line-height);
+  color: var(--bs-btn-color);
+  text-align: center;
+  text-decoration: none;
+  vertical-align: middle;
+  cursor: pointer;
+  user-select: none;
+  border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+  border-radius: var(--bs-btn-border-radius);
+  background-color: var(--bs-btn-bg);
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .btn {
+    transition: none;
+  }
+}
+
+.btn:hover {
+  color: var(--bs-btn-hover-color);
+  background-color: var(--bs-btn-hover-bg);
+  border-color: var(--bs-btn-hover-border-color);
+}
+
+.btn-check + .btn:hover {
+  color: var(--bs-btn-color);
+  background-color: var(--bs-btn-bg);
+  border-color: var(--bs-btn-border-color);
+}
+
+.btn:focus-visible {
+  color: var(--bs-btn-hover-color);
+  background-color: var(--bs-btn-hover-bg);
+  border-color: var(--bs-btn-hover-border-color);
+  outline: 0;
+  box-shadow: var(--bs-btn-focus-box-shadow);
+}
+
+.btn-check:focus-visible + .btn {
+  border-color: var(--bs-btn-hover-border-color);
+  outline: 0;
+  box-shadow: var(--bs-btn-focus-box-shadow);
+}
+
+.btn-check:checked + .btn,
+:not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+  color: var(--bs-btn-active-color);
+  background-color: var(--bs-btn-active-bg);
+  border-color: var(--bs-btn-active-border-color);
+}
+
+.btn-check:checked + .btn:focus-visible,
+:not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
+  box-shadow: var(--bs-btn-focus-box-shadow);
+}
+
+.btn:disabled, .btn.disabled,
+fieldset:disabled .btn {
+  color: var(--bs-btn-disabled-color);
+  pointer-events: none;
+  background-color: var(--bs-btn-disabled-bg);
+  border-color: var(--bs-btn-disabled-border-color);
+  opacity: var(--bs-btn-disabled-opacity);
+}
+
+.btn-primary {
+  --bs-btn-color: #fff;
+  --bs-btn-bg: #0d6efd;
+  --bs-btn-border-color: #0d6efd;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #0b5ed7;
+  --bs-btn-hover-border-color: #0a58ca;
+  --bs-btn-focus-shadow-rgb: 49, 132, 253;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #0a58ca;
+  --bs-btn-active-border-color: #0a53be;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #fff;
+  --bs-btn-disabled-bg: #0d6efd;
+  --bs-btn-disabled-border-color: #0d6efd;
+}
+
+.btn-secondary {
+  --bs-btn-color: #fff;
+  --bs-btn-bg: #6c757d;
+  --bs-btn-border-color: #6c757d;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #5c636a;
+  --bs-btn-hover-border-color: #565e64;
+  --bs-btn-focus-shadow-rgb: 130, 138, 145;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #565e64;
+  --bs-btn-active-border-color: #51585e;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #fff;
+  --bs-btn-disabled-bg: #6c757d;
+  --bs-btn-disabled-border-color: #6c757d;
+}
+
+.btn-success {
+  --bs-btn-color: #fff;
+  --bs-btn-bg: #198754;
+  --bs-btn-border-color: #198754;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #157347;
+  --bs-btn-hover-border-color: #146c43;
+  --bs-btn-focus-shadow-rgb: 60, 153, 110;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #146c43;
+  --bs-btn-active-border-color: #13653f;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #fff;
+  --bs-btn-disabled-bg: #198754;
+  --bs-btn-disabled-border-color: #198754;
+}
+
+.btn-info {
+  --bs-btn-color: #000;
+  --bs-btn-bg: #0dcaf0;
+  --bs-btn-border-color: #0dcaf0;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #31d2f2;
+  --bs-btn-hover-border-color: #25cff2;
+  --bs-btn-focus-shadow-rgb: 11, 172, 204;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #3dd5f3;
+  --bs-btn-active-border-color: #25cff2;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #000;
+  --bs-btn-disabled-bg: #0dcaf0;
+  --bs-btn-disabled-border-color: #0dcaf0;
+}
+
+.btn-warning {
+  --bs-btn-color: #000;
+  --bs-btn-bg: #ffc107;
+  --bs-btn-border-color: #ffc107;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #ffca2c;
+  --bs-btn-hover-border-color: #ffc720;
+  --bs-btn-focus-shadow-rgb: 217, 164, 6;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #ffcd39;
+  --bs-btn-active-border-color: #ffc720;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #000;
+  --bs-btn-disabled-bg: #ffc107;
+  --bs-btn-disabled-border-color: #ffc107;
+}
+
+.btn-danger {
+  --bs-btn-color: #fff;
+  --bs-btn-bg: #dc3545;
+  --bs-btn-border-color: #dc3545;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #bb2d3b;
+  --bs-btn-hover-border-color: #b02a37;
+  --bs-btn-focus-shadow-rgb: 225, 83, 97;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #b02a37;
+  --bs-btn-active-border-color: #a52834;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #fff;
+  --bs-btn-disabled-bg: #dc3545;
+  --bs-btn-disabled-border-color: #dc3545;
+}
+
+.btn-light {
+  --bs-btn-color: #000;
+  --bs-btn-bg: #f8f9fa;
+  --bs-btn-border-color: #f8f9fa;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #d3d4d5;
+  --bs-btn-hover-border-color: #c6c7c8;
+  --bs-btn-focus-shadow-rgb: 211, 212, 213;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #c6c7c8;
+  --bs-btn-active-border-color: #babbbc;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #000;
+  --bs-btn-disabled-bg: #f8f9fa;
+  --bs-btn-disabled-border-color: #f8f9fa;
+}
+
+.btn-dark {
+  --bs-btn-color: #fff;
+  --bs-btn-bg: #212529;
+  --bs-btn-border-color: #212529;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #424649;
+  --bs-btn-hover-border-color: #373b3e;
+  --bs-btn-focus-shadow-rgb: 66, 70, 73;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #4d5154;
+  --bs-btn-active-border-color: #373b3e;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #fff;
+  --bs-btn-disabled-bg: #212529;
+  --bs-btn-disabled-border-color: #212529;
+}
+
+.btn-outline-primary {
+  --bs-btn-color: #0d6efd;
+  --bs-btn-border-color: #0d6efd;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #0d6efd;
+  --bs-btn-hover-border-color: #0d6efd;
+  --bs-btn-focus-shadow-rgb: 13, 110, 253;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #0d6efd;
+  --bs-btn-active-border-color: #0d6efd;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #0d6efd;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #0d6efd;
+  --bs-gradient: none;
+}
+
+.btn-outline-secondary {
+  --bs-btn-color: #6c757d;
+  --bs-btn-border-color: #6c757d;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #6c757d;
+  --bs-btn-hover-border-color: #6c757d;
+  --bs-btn-focus-shadow-rgb: 108, 117, 125;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #6c757d;
+  --bs-btn-active-border-color: #6c757d;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #6c757d;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #6c757d;
+  --bs-gradient: none;
+}
+
+.btn-outline-success {
+  --bs-btn-color: #198754;
+  --bs-btn-border-color: #198754;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #198754;
+  --bs-btn-hover-border-color: #198754;
+  --bs-btn-focus-shadow-rgb: 25, 135, 84;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #198754;
+  --bs-btn-active-border-color: #198754;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #198754;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #198754;
+  --bs-gradient: none;
+}
+
+.btn-outline-info {
+  --bs-btn-color: #0dcaf0;
+  --bs-btn-border-color: #0dcaf0;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #0dcaf0;
+  --bs-btn-hover-border-color: #0dcaf0;
+  --bs-btn-focus-shadow-rgb: 13, 202, 240;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #0dcaf0;
+  --bs-btn-active-border-color: #0dcaf0;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #0dcaf0;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #0dcaf0;
+  --bs-gradient: none;
+}
+
+.btn-outline-warning {
+  --bs-btn-color: #ffc107;
+  --bs-btn-border-color: #ffc107;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #ffc107;
+  --bs-btn-hover-border-color: #ffc107;
+  --bs-btn-focus-shadow-rgb: 255, 193, 7;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #ffc107;
+  --bs-btn-active-border-color: #ffc107;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #ffc107;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #ffc107;
+  --bs-gradient: none;
+}
+
+.btn-outline-danger {
+  --bs-btn-color: #dc3545;
+  --bs-btn-border-color: #dc3545;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #dc3545;
+  --bs-btn-hover-border-color: #dc3545;
+  --bs-btn-focus-shadow-rgb: 220, 53, 69;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #dc3545;
+  --bs-btn-active-border-color: #dc3545;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #dc3545;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #dc3545;
+  --bs-gradient: none;
+}
+
+.btn-outline-light {
+  --bs-btn-color: #f8f9fa;
+  --bs-btn-border-color: #f8f9fa;
+  --bs-btn-hover-color: #000;
+  --bs-btn-hover-bg: #f8f9fa;
+  --bs-btn-hover-border-color: #f8f9fa;
+  --bs-btn-focus-shadow-rgb: 248, 249, 250;
+  --bs-btn-active-color: #000;
+  --bs-btn-active-bg: #f8f9fa;
+  --bs-btn-active-border-color: #f8f9fa;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #f8f9fa;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #f8f9fa;
+  --bs-gradient: none;
+}
+
+.btn-outline-dark {
+  --bs-btn-color: #212529;
+  --bs-btn-border-color: #212529;
+  --bs-btn-hover-color: #fff;
+  --bs-btn-hover-bg: #212529;
+  --bs-btn-hover-border-color: #212529;
+  --bs-btn-focus-shadow-rgb: 33, 37, 41;
+  --bs-btn-active-color: #fff;
+  --bs-btn-active-bg: #212529;
+  --bs-btn-active-border-color: #212529;
+  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  --bs-btn-disabled-color: #212529;
+  --bs-btn-disabled-bg: transparent;
+  --bs-btn-disabled-border-color: #212529;
+  --bs-gradient: none;
+}
+
+.btn-link {
+  --bs-btn-font-weight: 400;
+  --bs-btn-color: var(--bs-link-color);
+  --bs-btn-bg: transparent;
+  --bs-btn-border-color: transparent;
+  --bs-btn-hover-color: var(--bs-link-hover-color);
+  --bs-btn-hover-border-color: transparent;
+  --bs-btn-active-color: var(--bs-link-hover-color);
+  --bs-btn-active-border-color: transparent;
+  --bs-btn-disabled-color: #6c757d;
+  --bs-btn-disabled-border-color: transparent;
+  --bs-btn-box-shadow: none;
+  --bs-btn-focus-shadow-rgb: 49, 132, 253;
+  text-decoration: underline;
+}
+
+.btn-link:focus-visible {
+  color: var(--bs-btn-color);
+}
+
+.btn-link:hover {
+  color: var(--bs-btn-hover-color);
+}
+
+.btn-lg, .btn-group-lg > .btn {
+  --bs-btn-padding-y: 0.5rem;
+  --bs-btn-padding-x: 1rem;
+  --bs-btn-font-size: 1.25rem;
+  --bs-btn-border-radius: 0.5rem;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+  --bs-btn-padding-y: 0.25rem;
+  --bs-btn-padding-x: 0.5rem;
+  --bs-btn-font-size: 0.875rem;
+  --bs-btn-border-radius: 0.25rem;
+}
+
+.fade {
+  transition: opacity 0.15s linear;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .fade {
+    transition: none;
+  }
+}
+
+.fade:not(.show) {
+  opacity: 0;
+}
+
+.collapse:not(.show) {
+  display: none;
+}
+
+.collapsing {
+  height: 0;
+  overflow: hidden;
+  transition: height 0.35s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .collapsing {
+    transition: none;
+  }
+}
+
+.collapsing.collapse-horizontal {
+  width: 0;
+  height: auto;
+  transition: width 0.35s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .collapsing.collapse-horizontal {
+    transition: none;
+  }
+}
+
+.dropup,
+.dropend,
+.dropdown,
+.dropstart,
+.dropup-center,
+.dropdown-center {
+  position: relative;
+}
+
+.dropdown-toggle {
+  white-space: nowrap;
+}
+
+.dropdown-toggle::after {
+  display: inline-block;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0;
+  border-left: 0.3em solid transparent;
+}
+
+.dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropdown-menu {
+  --bs-dropdown-zindex: 1000;
+  --bs-dropdown-min-width: 10rem;
+  --bs-dropdown-padding-x: 0;
+  --bs-dropdown-padding-y: 0.5rem;
+  --bs-dropdown-spacer: 0.125rem;
+  --bs-dropdown-font-size: 1rem;
+  --bs-dropdown-color: #212529;
+  --bs-dropdown-bg: #fff;
+  --bs-dropdown-border-color: var(--bs-border-color-translucent);
+  --bs-dropdown-border-radius: 0.375rem;
+  --bs-dropdown-border-width: 1px;
+  --bs-dropdown-inner-border-radius: calc(0.375rem - 1px);
+  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+  --bs-dropdown-divider-margin-y: 0.5rem;
+  --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+  --bs-dropdown-link-color: #212529;
+  --bs-dropdown-link-hover-color: #1e2125;
+  --bs-dropdown-link-hover-bg: #e9ecef;
+  --bs-dropdown-link-active-color: #fff;
+  --bs-dropdown-link-active-bg: #0d6efd;
+  --bs-dropdown-link-disabled-color: #adb5bd;
+  --bs-dropdown-item-padding-x: 1rem;
+  --bs-dropdown-item-padding-y: 0.25rem;
+  --bs-dropdown-header-color: #6c757d;
+  --bs-dropdown-header-padding-x: 1rem;
+  --bs-dropdown-header-padding-y: 0.5rem;
+  position: absolute;
+  z-index: var(--bs-dropdown-zindex);
+  display: none;
+  min-width: var(--bs-dropdown-min-width);
+  padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+  margin: 0;
+  font-size: var(--bs-dropdown-font-size);
+  color: var(--bs-dropdown-color);
+  text-align: left;
+  list-style: none;
+  background-color: var(--bs-dropdown-bg);
+  background-clip: padding-box;
+  border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+  border-radius: var(--bs-dropdown-border-radius);
+}
+
+.dropdown-menu[data-bs-popper] {
+  top: 100%;
+  left: 0;
+  margin-top: var(--bs-dropdown-spacer);
+}
+
+.dropdown-menu-start {
+  --bs-position: start;
+}
+
+.dropdown-menu-start[data-bs-popper] {
+  right: auto;
+  left: 0;
+}
+
+.dropdown-menu-end {
+  --bs-position: end;
+}
+
+.dropdown-menu-end[data-bs-popper] {
+  right: 0;
+  left: auto;
+}
+
+@media (min-width: 576px) {
+  .dropdown-menu-sm-start {
+    --bs-position: start;
+  }
+  .dropdown-menu-sm-start[data-bs-popper] {
+    right: auto;
+    left: 0;
+  }
+  .dropdown-menu-sm-end {
+    --bs-position: end;
+  }
+  .dropdown-menu-sm-end[data-bs-popper] {
+    right: 0;
+    left: auto;
+  }
+}
+
+@media (min-width: 768px) {
+  .dropdown-menu-md-start {
+    --bs-position: start;
+  }
+  .dropdown-menu-md-start[data-bs-popper] {
+    right: auto;
+    left: 0;
+  }
+  .dropdown-menu-md-end {
+    --bs-position: end;
+  }
+  .dropdown-menu-md-end[data-bs-popper] {
+    right: 0;
+    left: auto;
+  }
+}
+
+@media (min-width: 992px) {
+  .dropdown-menu-lg-start {
+    --bs-position: start;
+  }
+  .dropdown-menu-lg-start[data-bs-popper] {
+    right: auto;
+    left: 0;
+  }
+  .dropdown-menu-lg-end {
+    --bs-position: end;
+  }
+  .dropdown-menu-lg-end[data-bs-popper] {
+    right: 0;
+    left: auto;
+  }
+}
+
+@media (min-width: 1200px) {
+  .dropdown-menu-xl-start {
+    --bs-position: start;
+  }
+  .dropdown-menu-xl-start[data-bs-popper] {
+    right: auto;
+    left: 0;
+  }
+  .dropdown-menu-xl-end {
+    --bs-position: end;
+  }
+  .dropdown-menu-xl-end[data-bs-popper] {
+    right: 0;
+    left: auto;
+  }
+}
+
+@media (min-width: 1400px) {
+  .dropdown-menu-xxl-start {
+    --bs-position: start;
+  }
+  .dropdown-menu-xxl-start[data-bs-popper] {
+    right: auto;
+    left: 0;
+  }
+  .dropdown-menu-xxl-end {
+    --bs-position: end;
+  }
+  .dropdown-menu-xxl-end[data-bs-popper] {
+    right: 0;
+    left: auto;
+  }
+}
+
+.dropup .dropdown-menu[data-bs-popper] {
+  top: auto;
+  bottom: 100%;
+  margin-top: 0;
+  margin-bottom: var(--bs-dropdown-spacer);
+}
+
+.dropup .dropdown-toggle::after {
+  display: inline-block;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0;
+  border-right: 0.3em solid transparent;
+  border-bottom: 0.3em solid;
+  border-left: 0.3em solid transparent;
+}
+
+.dropup .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropend .dropdown-menu[data-bs-popper] {
+  top: 0;
+  right: auto;
+  left: 100%;
+  margin-top: 0;
+  margin-left: var(--bs-dropdown-spacer);
+}
+
+.dropend .dropdown-toggle::after {
+  display: inline-block;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0;
+  border-bottom: 0.3em solid transparent;
+  border-left: 0.3em solid;
+}
+
+.dropend .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropend .dropdown-toggle::after {
+  vertical-align: 0;
+}
+
+.dropstart .dropdown-menu[data-bs-popper] {
+  top: 0;
+  right: 100%;
+  left: auto;
+  margin-top: 0;
+  margin-right: var(--bs-dropdown-spacer);
+}
+
+.dropstart .dropdown-toggle::after {
+  display: inline-block;
+  margin-left: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+}
+
+.dropstart .dropdown-toggle::after {
+  display: none;
+}
+
+.dropstart .dropdown-toggle::before {
+  display: inline-block;
+  margin-right: 0.255em;
+  vertical-align: 0.255em;
+  content: "";
+  border-top: 0.3em solid transparent;
+  border-right: 0.3em solid;
+  border-bottom: 0.3em solid transparent;
+}
+
+.dropstart .dropdown-toggle:empty::after {
+  margin-left: 0;
+}
+
+.dropstart .dropdown-toggle::before {
+  vertical-align: 0;
+}
+
+.dropdown-divider {
+  height: 0;
+  margin: var(--bs-dropdown-divider-margin-y) 0;
+  overflow: hidden;
+  border-top: 1px solid var(--bs-dropdown-divider-bg);
+  opacity: 1;
+}
+
+.dropdown-item {
+  display: block;
+  width: 100%;
+  padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+  clear: both;
+  font-weight: 400;
+  color: var(--bs-dropdown-link-color);
+  text-align: inherit;
+  text-decoration: none;
+  white-space: nowrap;
+  background-color: transparent;
+  border: 0;
+}
+
+.dropdown-item:hover, .dropdown-item:focus {
+  color: var(--bs-dropdown-link-hover-color);
+  background-color: var(--bs-dropdown-link-hover-bg);
+}
+
+.dropdown-item.active, .dropdown-item:active {
+  color: var(--bs-dropdown-link-active-color);
+  text-decoration: none;
+  background-color: var(--bs-dropdown-link-active-bg);
+}
+
+.dropdown-item.disabled, .dropdown-item:disabled {
+  color: var(--bs-dropdown-link-disabled-color);
+  pointer-events: none;
+  background-color: transparent;
+}
+
+.dropdown-menu.show {
+  display: block;
+}
+
+.dropdown-header {
+  display: block;
+  padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
+  margin-bottom: 0;
+  font-size: 0.875rem;
+  color: var(--bs-dropdown-header-color);
+  white-space: nowrap;
+}
+
+.dropdown-item-text {
+  display: block;
+  padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+  color: var(--bs-dropdown-link-color);
+}
+
+.dropdown-menu-dark {
+  --bs-dropdown-color: #dee2e6;
+  --bs-dropdown-bg: #343a40;
+  --bs-dropdown-border-color: var(--bs-border-color-translucent);
+  --bs-dropdown-box-shadow: ;
+  --bs-dropdown-link-color: #dee2e6;
+  --bs-dropdown-link-hover-color: #fff;
+  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
+  --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+  --bs-dropdown-link-active-color: #fff;
+  --bs-dropdown-link-active-bg: #0d6efd;
+  --bs-dropdown-link-disabled-color: #adb5bd;
+  --bs-dropdown-header-color: #adb5bd;
+}
+
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-flex;
+  vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  position: relative;
+  flex: 1 1 auto;
+}
+
+.btn-group > .btn-check:checked + .btn,
+.btn-group > .btn-check:focus + .btn,
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn-check:checked + .btn,
+.btn-group-vertical > .btn-check:focus + .btn,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+  z-index: 1;
+}
+
+.btn-toolbar {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+}
+
+.btn-toolbar .input-group {
+  width: auto;
+}
+
+.btn-group {
+  border-radius: 0.375rem;
+}
+
+.btn-group > :not(.btn-check:first-child) + .btn,
+.btn-group > .btn-group:not(:first-child) {
+  margin-left: -1px;
+}
+
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn.dropdown-toggle-split:first-child,
+.btn-group > .btn-group:not(:last-child) > .btn {
+  border-top-right-radius: 0;
+  border-bottom-right-radius: 0;
+}
+
+.btn-group > .btn:nth-child(n + 3),
+.btn-group > :not(.btn-check) + .btn,
+.btn-group > .btn-group:not(:first-child) > .btn {
+  border-top-left-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.dropdown-toggle-split {
+  padding-right: 0.5625rem;
+  padding-left: 0.5625rem;
+}
+
+.dropdown-toggle-split::after,
+.dropup .dropdown-toggle-split::after,
+.dropend .dropdown-toggle-split::after {
+  margin-left: 0;
+}
+
+.dropstart .dropdown-toggle-split::before {
+  margin-right: 0;
+}
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+  padding-right: 0.375rem;
+  padding-left: 0.375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+  padding-right: 0.75rem;
+  padding-left: 0.75rem;
+}
+
+.btn-group-vertical {
+  flex-direction: column;
+  align-items: flex-start;
+  justify-content: center;
+}
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group {
+  width: 100%;
+}
+
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) {
+  margin-top: -1px;
+}
+
+.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group-vertical > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn ~ .btn,
+.btn-group-vertical > .btn-group:not(:first-child) > .btn {
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.nav {
+  --bs-nav-link-padding-x: 1rem;
+  --bs-nav-link-padding-y: 0.5rem;
+  --bs-nav-link-font-weight: ;
+  --bs-nav-link-color: var(--bs-link-color);
+  --bs-nav-link-hover-color: var(--bs-link-hover-color);
+  --bs-nav-link-disabled-color: #6c757d;
+  display: flex;
+  flex-wrap: wrap;
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none;
+}
+
+.nav-link {
+  display: block;
+  padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+  font-size: var(--bs-nav-link-font-size);
+  font-weight: var(--bs-nav-link-font-weight);
+  color: var(--bs-nav-link-color);
+  text-decoration: none;
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .nav-link {
+    transition: none;
+  }
+}
+
+.nav-link:hover, .nav-link:focus {
+  color: var(--bs-nav-link-hover-color);
+}
+
+.nav-link.disabled {
+  color: var(--bs-nav-link-disabled-color);
+  pointer-events: none;
+  cursor: default;
+}
+
+.nav-tabs {
+  --bs-nav-tabs-border-width: 1px;
+  --bs-nav-tabs-border-color: #dee2e6;
+  --bs-nav-tabs-border-radius: 0.375rem;
+  --bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;
+  --bs-nav-tabs-link-active-color: #495057;
+  --bs-nav-tabs-link-active-bg: #fff;
+  --bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;
+  border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
+}
+
+.nav-tabs .nav-link {
+  margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+  background: none;
+  border: var(--bs-nav-tabs-border-width) solid transparent;
+  border-top-left-radius: var(--bs-nav-tabs-border-radius);
+  border-top-right-radius: var(--bs-nav-tabs-border-radius);
+}
+
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+  isolation: isolate;
+  border-color: var(--bs-nav-tabs-link-hover-border-color);
+}
+
+.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled {
+  color: var(--bs-nav-link-disabled-color);
+  background-color: transparent;
+  border-color: transparent;
+}
+
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+  color: var(--bs-nav-tabs-link-active-color);
+  background-color: var(--bs-nav-tabs-link-active-bg);
+  border-color: var(--bs-nav-tabs-link-active-border-color);
+}
+
+.nav-tabs .dropdown-menu {
+  margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+  border-top-left-radius: 0;
+  border-top-right-radius: 0;
+}
+
+.nav-pills {
+  --bs-nav-pills-border-radius: 0.375rem;
+  --bs-nav-pills-link-active-color: #fff;
+  --bs-nav-pills-link-active-bg: #0d6efd;
+}
+
+.nav-pills .nav-link {
+  background: none;
+  border: 0;
+  border-radius: var(--bs-nav-pills-border-radius);
+}
+
+.nav-pills .nav-link:disabled {
+  color: var(--bs-nav-link-disabled-color);
+  background-color: transparent;
+  border-color: transparent;
+}
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+  color: var(--bs-nav-pills-link-active-color);
+  background-color: var(--bs-nav-pills-link-active-bg);
+}
+
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+  flex: 1 1 auto;
+  text-align: center;
+}
+
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+  flex-basis: 0;
+  flex-grow: 1;
+  text-align: center;
+}
+
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+  width: 100%;
+}
+
+.tab-content > .tab-pane {
+  display: none;
+}
+
+.tab-content > .active {
+  display: block;
+}
+
+.navbar {
+  --bs-navbar-padding-x: 0;
+  --bs-navbar-padding-y: 0.5rem;
+  --bs-navbar-color: rgba(0, 0, 0, 0.55);
+  --bs-navbar-hover-color: rgba(0, 0, 0, 0.7);
+  --bs-navbar-disabled-color: rgba(0, 0, 0, 0.3);
+  --bs-navbar-active-color: rgba(0, 0, 0, 0.9);
+  --bs-navbar-brand-padding-y: 0.3125rem;
+  --bs-navbar-brand-margin-end: 1rem;
+  --bs-navbar-brand-font-size: 1.25rem;
+  --bs-navbar-brand-color: rgba(0, 0, 0, 0.9);
+  --bs-navbar-brand-hover-color: rgba(0, 0, 0, 0.9);
+  --bs-navbar-nav-link-padding-x: 0.5rem;
+  --bs-navbar-toggler-padding-y: 0.25rem;
+  --bs-navbar-toggler-padding-x: 0.75rem;
+  --bs-navbar-toggler-font-size: 1.25rem;
+  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+  --bs-navbar-toggler-border-color: rgba(0, 0, 0, 0.1);
+  --bs-navbar-toggler-border-radius: 0.375rem;
+  --bs-navbar-toggler-focus-width: 0.25rem;
+  --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
+  position: relative;
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: space-between;
+  padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);
+}
+
+.navbar > .container,
+.navbar > .container-fluid, .navbar > .container-sm, .navbar > .container-md, .navbar > .container-lg, .navbar > .container-xl, .navbar > .container-xxl {
+  display: flex;
+  flex-wrap: inherit;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.navbar-brand {
+  padding-top: var(--bs-navbar-brand-padding-y);
+  padding-bottom: var(--bs-navbar-brand-padding-y);
+  margin-right: var(--bs-navbar-brand-margin-end);
+  font-size: var(--bs-navbar-brand-font-size);
+  color: var(--bs-navbar-brand-color);
+  text-decoration: none;
+  white-space: nowrap;
+}
+
+.navbar-brand:hover, .navbar-brand:focus {
+  color: var(--bs-navbar-brand-hover-color);
+}
+
+.navbar-nav {
+  --bs-nav-link-padding-x: 0;
+  --bs-nav-link-padding-y: 0.5rem;
+  --bs-nav-link-font-weight: ;
+  --bs-nav-link-color: var(--bs-navbar-color);
+  --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+  --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+  display: flex;
+  flex-direction: column;
+  padding-left: 0;
+  margin-bottom: 0;
+  list-style: none;
+}
+
+.navbar-nav .show > .nav-link,
+.navbar-nav .nav-link.active {
+  color: var(--bs-navbar-active-color);
+}
+
+.navbar-nav .dropdown-menu {
+  position: static;
+}
+
+.navbar-text {
+  padding-top: 0.5rem;
+  padding-bottom: 0.5rem;
+  color: var(--bs-navbar-color);
+}
+
+.navbar-text a,
+.navbar-text a:hover,
+.navbar-text a:focus {
+  color: var(--bs-navbar-active-color);
+}
+
+.navbar-collapse {
+  flex-basis: 100%;
+  flex-grow: 1;
+  align-items: center;
+}
+
+.navbar-toggler {
+  padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+  font-size: var(--bs-navbar-toggler-font-size);
+  line-height: 1;
+  color: var(--bs-navbar-color);
+  background-color: transparent;
+  border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+  border-radius: var(--bs-navbar-toggler-border-radius);
+  transition: var(--bs-navbar-toggler-transition);
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .navbar-toggler {
+    transition: none;
+  }
+}
+
+.navbar-toggler:hover {
+  text-decoration: none;
+}
+
+.navbar-toggler:focus {
+  text-decoration: none;
+  outline: 0;
+  box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);
+}
+
+.navbar-toggler-icon {
+  display: inline-block;
+  width: 1.5em;
+  height: 1.5em;
+  vertical-align: middle;
+  background-image: var(--bs-navbar-toggler-icon-bg);
+  background-repeat: no-repeat;
+  background-position: center;
+  background-size: 100%;
+}
+
+.navbar-nav-scroll {
+  max-height: var(--bs-scroll-height, 75vh);
+  overflow-y: auto;
+}
+
+@media (min-width: 576px) {
+  .navbar-expand-sm {
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+  }
+  .navbar-expand-sm .navbar-nav {
+    flex-direction: row;
+  }
+  .navbar-expand-sm .navbar-nav .dropdown-menu {
+    position: absolute;
+  }
+  .navbar-expand-sm .navbar-nav .nav-link {
+    padding-right: var(--bs-navbar-nav-link-padding-x);
+    padding-left: var(--bs-navbar-nav-link-padding-x);
+  }
+  .navbar-expand-sm .navbar-nav-scroll {
+    overflow: visible;
+  }
+  .navbar-expand-sm .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+  }
+  .navbar-expand-sm .navbar-toggler {
+    display: none;
+  }
+  .navbar-expand-sm .offcanvas {
+    position: static;
+    z-index: auto;
+    flex-grow: 1;
+    width: auto !important;
+    height: auto !important;
+    visibility: visible !important;
+    background-color: transparent !important;
+    border: 0 !important;
+    transform: none !important;
+    transition: none;
+  }
+  .navbar-expand-sm .offcanvas .offcanvas-header {
+    display: none;
+  }
+  .navbar-expand-sm .offcanvas .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+  }
+}
+
+@media (min-width: 768px) {
+  .navbar-expand-md {
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+  }
+  .navbar-expand-md .navbar-nav {
+    flex-direction: row;
+  }
+  .navbar-expand-md .navbar-nav .dropdown-menu {
+    position: absolute;
+  }
+  .navbar-expand-md .navbar-nav .nav-link {
+    padding-right: var(--bs-navbar-nav-link-padding-x);
+    padding-left: var(--bs-navbar-nav-link-padding-x);
+  }
+  .navbar-expand-md .navbar-nav-scroll {
+    overflow: visible;
+  }
+  .navbar-expand-md .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+  }
+  .navbar-expand-md .navbar-toggler {
+    display: none;
+  }
+  .navbar-expand-md .offcanvas {
+    position: static;
+    z-index: auto;
+    flex-grow: 1;
+    width: auto !important;
+    height: auto !important;
+    visibility: visible !important;
+    background-color: transparent !important;
+    border: 0 !important;
+    transform: none !important;
+    transition: none;
+  }
+  .navbar-expand-md .offcanvas .offcanvas-header {
+    display: none;
+  }
+  .navbar-expand-md .offcanvas .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+  }
+}
+
+@media (min-width: 992px) {
+  .navbar-expand-lg {
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+  }
+  .navbar-expand-lg .navbar-nav {
+    flex-direction: row;
+  }
+  .navbar-expand-lg .navbar-nav .dropdown-menu {
+    position: absolute;
+  }
+  .navbar-expand-lg .navbar-nav .nav-link {
+    padding-right: var(--bs-navbar-nav-link-padding-x);
+    padding-left: var(--bs-navbar-nav-link-padding-x);
+  }
+  .navbar-expand-lg .navbar-nav-scroll {
+    overflow: visible;
+  }
+  .navbar-expand-lg .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+  }
+  .navbar-expand-lg .navbar-toggler {
+    display: none;
+  }
+  .navbar-expand-lg .offcanvas {
+    position: static;
+    z-index: auto;
+    flex-grow: 1;
+    width: auto !important;
+    height: auto !important;
+    visibility: visible !important;
+    background-color: transparent !important;
+    border: 0 !important;
+    transform: none !important;
+    transition: none;
+  }
+  .navbar-expand-lg .offcanvas .offcanvas-header {
+    display: none;
+  }
+  .navbar-expand-lg .offcanvas .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+  }
+}
+
+@media (min-width: 1200px) {
+  .navbar-expand-xl {
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+  }
+  .navbar-expand-xl .navbar-nav {
+    flex-direction: row;
+  }
+  .navbar-expand-xl .navbar-nav .dropdown-menu {
+    position: absolute;
+  }
+  .navbar-expand-xl .navbar-nav .nav-link {
+    padding-right: var(--bs-navbar-nav-link-padding-x);
+    padding-left: var(--bs-navbar-nav-link-padding-x);
+  }
+  .navbar-expand-xl .navbar-nav-scroll {
+    overflow: visible;
+  }
+  .navbar-expand-xl .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+  }
+  .navbar-expand-xl .navbar-toggler {
+    display: none;
+  }
+  .navbar-expand-xl .offcanvas {
+    position: static;
+    z-index: auto;
+    flex-grow: 1;
+    width: auto !important;
+    height: auto !important;
+    visibility: visible !important;
+    background-color: transparent !important;
+    border: 0 !important;
+    transform: none !important;
+    transition: none;
+  }
+  .navbar-expand-xl .offcanvas .offcanvas-header {
+    display: none;
+  }
+  .navbar-expand-xl .offcanvas .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+  }
+}
+
+@media (min-width: 1400px) {
+  .navbar-expand-xxl {
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+  }
+  .navbar-expand-xxl .navbar-nav {
+    flex-direction: row;
+  }
+  .navbar-expand-xxl .navbar-nav .dropdown-menu {
+    position: absolute;
+  }
+  .navbar-expand-xxl .navbar-nav .nav-link {
+    padding-right: var(--bs-navbar-nav-link-padding-x);
+    padding-left: var(--bs-navbar-nav-link-padding-x);
+  }
+  .navbar-expand-xxl .navbar-nav-scroll {
+    overflow: visible;
+  }
+  .navbar-expand-xxl .navbar-collapse {
+    display: flex !important;
+    flex-basis: auto;
+  }
+  .navbar-expand-xxl .navbar-toggler {
+    display: none;
+  }
+  .navbar-expand-xxl .offcanvas {
+    position: static;
+    z-index: auto;
+    flex-grow: 1;
+    width: auto !important;
+    height: auto !important;
+    visibility: visible !important;
+    background-color: transparent !important;
+    border: 0 !important;
+    transform: none !important;
+    transition: none;
+  }
+  .navbar-expand-xxl .offcanvas .offcanvas-header {
+    display: none;
+  }
+  .navbar-expand-xxl .offcanvas .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+  }
+}
+
+.navbar-expand {
+  flex-wrap: nowrap;
+  justify-content: flex-start;
+}
+
+.navbar-expand .navbar-nav {
+  flex-direction: row;
+}
+
+.navbar-expand .navbar-nav .dropdown-menu {
+  position: absolute;
+}
+
+.navbar-expand .navbar-nav .nav-link {
+  padding-right: var(--bs-navbar-nav-link-padding-x);
+  padding-left: var(--bs-navbar-nav-link-padding-x);
+}
+
+.navbar-expand .navbar-nav-scroll {
+  overflow: visible;
+}
+
+.navbar-expand .navbar-collapse {
+  display: flex !important;
+  flex-basis: auto;
+}
+
+.navbar-expand .navbar-toggler {
+  display: none;
+}
+
+.navbar-expand .offcanvas {
+  position: static;
+  z-index: auto;
+  flex-grow: 1;
+  width: auto !important;
+  height: auto !important;
+  visibility: visible !important;
+  background-color: transparent !important;
+  border: 0 !important;
+  transform: none !important;
+  transition: none;
+}
+
+.navbar-expand .offcanvas .offcanvas-header {
+  display: none;
+}
+
+.navbar-expand .offcanvas .offcanvas-body {
+  display: flex;
+  flex-grow: 0;
+  padding: 0;
+  overflow-y: visible;
+}
+
+.navbar-dark {
+  --bs-navbar-color: rgba(255, 255, 255, 0.55);
+  --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+  --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+  --bs-navbar-active-color: #fff;
+  --bs-navbar-brand-color: #fff;
+  --bs-navbar-brand-hover-color: #fff;
+  --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+
+.card {
+  --bs-card-spacer-y: 1rem;
+  --bs-card-spacer-x: 1rem;
+  --bs-card-title-spacer-y: 0.5rem;
+  --bs-card-border-width: 1px;
+  --bs-card-border-color: var(--bs-border-color-translucent);
+  --bs-card-border-radius: 0.375rem;
+  --bs-card-box-shadow: ;
+  --bs-card-inner-border-radius: calc(0.375rem - 1px);
+  --bs-card-cap-padding-y: 0.5rem;
+  --bs-card-cap-padding-x: 1rem;
+  --bs-card-cap-bg: rgba(0, 0, 0, 0.03);
+  --bs-card-cap-color: ;
+  --bs-card-height: ;
+  --bs-card-color: ;
+  --bs-card-bg: #fff;
+  --bs-card-img-overlay-padding: 1rem;
+  --bs-card-group-margin: 0.75rem;
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  min-width: 0;
+  height: var(--bs-card-height);
+  word-wrap: break-word;
+  background-color: var(--bs-card-bg);
+  background-clip: border-box;
+  border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+  border-radius: var(--bs-card-border-radius);
+}
+
+.card > hr {
+  margin-right: 0;
+  margin-left: 0;
+}
+
+.card > .list-group {
+  border-top: inherit;
+  border-bottom: inherit;
+}
+
+.card > .list-group:first-child {
+  border-top-width: 0;
+  border-top-left-radius: var(--bs-card-inner-border-radius);
+  border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+
+.card > .list-group:last-child {
+  border-bottom-width: 0;
+  border-bottom-right-radius: var(--bs-card-inner-border-radius);
+  border-bottom-left-radius: var(--bs-card-inner-border-radius);
+}
+
+.card > .card-header + .list-group,
+.card > .list-group + .card-footer {
+  border-top: 0;
+}
+
+.card-body {
+  flex: 1 1 auto;
+  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
+  color: var(--bs-card-color);
+}
+
+.card-title {
+  margin-bottom: var(--bs-card-title-spacer-y);
+}
+
+.card-subtitle {
+  margin-top: calc(-.5 * var(--bs-card-title-spacer-y));
+  margin-bottom: 0;
+}
+
+.card-text:last-child {
+  margin-bottom: 0;
+}
+
+.card-link + .card-link {
+  margin-left: var(--bs-card-spacer-x);
+}
+
+.card-header {
+  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+  margin-bottom: 0;
+  color: var(--bs-card-cap-color);
+  background-color: var(--bs-card-cap-bg);
+  border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+
+.card-header:first-child {
+  border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
+}
+
+.card-footer {
+  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+  color: var(--bs-card-cap-color);
+  background-color: var(--bs-card-cap-bg);
+  border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+
+.card-footer:last-child {
+  border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
+}
+
+.card-header-tabs {
+  margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
+  margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+  margin-left: calc(-.5 * var(--bs-card-cap-padding-x));
+  border-bottom: 0;
+}
+
+.card-header-tabs .nav-link.active {
+  background-color: var(--bs-card-bg);
+  border-bottom-color: var(--bs-card-bg);
+}
+
+.card-header-pills {
+  margin-right: calc(-.5 * var(--bs-card-cap-padding-x));
+  margin-left: calc(-.5 * var(--bs-card-cap-padding-x));
+}
+
+.card-img-overlay {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: var(--bs-card-img-overlay-padding);
+  border-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+  width: 100%;
+}
+
+.card-img,
+.card-img-top {
+  border-top-left-radius: var(--bs-card-inner-border-radius);
+  border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-bottom {
+  border-bottom-right-radius: var(--bs-card-inner-border-radius);
+  border-bottom-left-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-group > .card {
+  margin-bottom: var(--bs-card-group-margin);
+}
+
+@media (min-width: 576px) {
+  .card-group {
+    display: flex;
+    flex-flow: row wrap;
+  }
+  .card-group > .card {
+    flex: 1 0 0%;
+    margin-bottom: 0;
+  }
+  .card-group > .card + .card {
+    margin-left: 0;
+    border-left: 0;
+  }
+  .card-group > .card:not(:last-child) {
+    border-top-right-radius: 0;
+    border-bottom-right-radius: 0;
+  }
+  .card-group > .card:not(:last-child) .card-img-top,
+  .card-group > .card:not(:last-child) .card-header {
+    border-top-right-radius: 0;
+  }
+  .card-group > .card:not(:last-child) .card-img-bottom,
+  .card-group > .card:not(:last-child) .card-footer {
+    border-bottom-right-radius: 0;
+  }
+  .card-group > .card:not(:first-child) {
+    border-top-left-radius: 0;
+    border-bottom-left-radius: 0;
+  }
+  .card-group > .card:not(:first-child) .card-img-top,
+  .card-group > .card:not(:first-child) .card-header {
+    border-top-left-radius: 0;
+  }
+  .card-group > .card:not(:first-child) .card-img-bottom,
+  .card-group > .card:not(:first-child) .card-footer {
+    border-bottom-left-radius: 0;
+  }
+}
+
+.accordion {
+  --bs-accordion-color: #212529;
+  --bs-accordion-bg: #fff;
+  --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
+  --bs-accordion-border-color: var(--bs-border-color);
+  --bs-accordion-border-width: 1px;
+  --bs-accordion-border-radius: 0.375rem;
+  --bs-accordion-inner-border-radius: calc(0.375rem - 1px);
+  --bs-accordion-btn-padding-x: 1.25rem;
+  --bs-accordion-btn-padding-y: 1rem;
+  --bs-accordion-btn-color: #212529;
+  --bs-accordion-btn-bg: var(--bs-accordion-bg);
+  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+  --bs-accordion-btn-icon-width: 1.25rem;
+  --bs-accordion-btn-icon-transform: rotate(-180deg);
+  --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+  --bs-accordion-btn-focus-border-color: #86b7fe;
+  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+  --bs-accordion-body-padding-x: 1.25rem;
+  --bs-accordion-body-padding-y: 1rem;
+  --bs-accordion-active-color: #0c63e4;
+  --bs-accordion-active-bg: #e7f1ff;
+}
+
+.accordion-button {
+  position: relative;
+  display: flex;
+  align-items: center;
+  width: 100%;
+  padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+  font-size: 1rem;
+  color: var(--bs-accordion-btn-color);
+  text-align: left;
+  background-color: var(--bs-accordion-btn-bg);
+  border: 0;
+  border-radius: 0;
+  overflow-anchor: none;
+  transition: var(--bs-accordion-transition);
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .accordion-button {
+    transition: none;
+  }
+}
+
+.accordion-button:not(.collapsed) {
+  color: var(--bs-accordion-active-color);
+  background-color: var(--bs-accordion-active-bg);
+  box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
+}
+
+.accordion-button:not(.collapsed)::after {
+  background-image: var(--bs-accordion-btn-active-icon);
+  transform: var(--bs-accordion-btn-icon-transform);
+}
+
+.accordion-button::after {
+  flex-shrink: 0;
+  width: var(--bs-accordion-btn-icon-width);
+  height: var(--bs-accordion-btn-icon-width);
+  margin-left: auto;
+  content: "";
+  background-image: var(--bs-accordion-btn-icon);
+  background-repeat: no-repeat;
+  background-size: var(--bs-accordion-btn-icon-width);
+  transition: var(--bs-accordion-btn-icon-transition);
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .accordion-button::after {
+    transition: none;
+  }
+}
+
+.accordion-button:hover {
+  z-index: 2;
+}
+
+.accordion-button:focus {
+  z-index: 3;
+  border-color: var(--bs-accordion-btn-focus-border-color);
+  outline: 0;
+  box-shadow: var(--bs-accordion-btn-focus-box-shadow);
+}
+
+.accordion-header {
+  margin-bottom: 0;
+}
+
+.accordion-item {
+  color: var(--bs-accordion-color);
+  background-color: var(--bs-accordion-bg);
+  border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
+}
+
+.accordion-item:first-of-type {
+  border-top-left-radius: var(--bs-accordion-border-radius);
+  border-top-right-radius: var(--bs-accordion-border-radius);
+}
+
+.accordion-item:first-of-type .accordion-button {
+  border-top-left-radius: var(--bs-accordion-inner-border-radius);
+  border-top-right-radius: var(--bs-accordion-inner-border-radius);
+}
+
+.accordion-item:not(:first-of-type) {
+  border-top: 0;
+}
+
+.accordion-item:last-of-type {
+  border-bottom-right-radius: var(--bs-accordion-border-radius);
+  border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+
+.accordion-item:last-of-type .accordion-button.collapsed {
+  border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+  border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
+}
+
+.accordion-item:last-of-type .accordion-collapse {
+  border-bottom-right-radius: var(--bs-accordion-border-radius);
+  border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+
+.accordion-body {
+  padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
+}
+
+.accordion-flush .accordion-collapse {
+  border-width: 0;
+}
+
+.accordion-flush .accordion-item {
+  border-right: 0;
+  border-left: 0;
+  border-radius: 0;
+}
+
+.accordion-flush .accordion-item:first-child {
+  border-top: 0;
+}
+
+.accordion-flush .accordion-item:last-child {
+  border-bottom: 0;
+}
+
+.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
+  border-radius: 0;
+}
+
+.breadcrumb {
+  --bs-breadcrumb-padding-x: 0;
+  --bs-breadcrumb-padding-y: 0;
+  --bs-breadcrumb-margin-bottom: 1rem;
+  --bs-breadcrumb-bg: ;
+  --bs-breadcrumb-border-radius: ;
+  --bs-breadcrumb-divider-color: #6c757d;
+  --bs-breadcrumb-item-padding-x: 0.5rem;
+  --bs-breadcrumb-item-active-color: #6c757d;
+  display: flex;
+  flex-wrap: wrap;
+  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+  margin-bottom: var(--bs-breadcrumb-margin-bottom);
+  font-size: var(--bs-breadcrumb-font-size);
+  list-style: none;
+  background-color: var(--bs-breadcrumb-bg);
+  border-radius: var(--bs-breadcrumb-border-radius);
+}
+
+.breadcrumb-item + .breadcrumb-item {
+  padding-left: var(--bs-breadcrumb-item-padding-x);
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+  float: left;
+  padding-right: var(--bs-breadcrumb-item-padding-x);
+  color: var(--bs-breadcrumb-divider-color);
+  content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+}
+
+.breadcrumb-item.active {
+  color: var(--bs-breadcrumb-item-active-color);
+}
+
+.pagination {
+  --bs-pagination-padding-x: 0.75rem;
+  --bs-pagination-padding-y: 0.375rem;
+  --bs-pagination-font-size: 1rem;
+  --bs-pagination-color: var(--bs-link-color);
+  --bs-pagination-bg: #fff;
+  --bs-pagination-border-width: 1px;
+  --bs-pagination-border-color: #dee2e6;
+  --bs-pagination-border-radius: 0.375rem;
+  --bs-pagination-hover-color: var(--bs-link-hover-color);
+  --bs-pagination-hover-bg: #e9ecef;
+  --bs-pagination-hover-border-color: #dee2e6;
+  --bs-pagination-focus-color: var(--bs-link-hover-color);
+  --bs-pagination-focus-bg: #e9ecef;
+  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+  --bs-pagination-active-color: #fff;
+  --bs-pagination-active-bg: #0d6efd;
+  --bs-pagination-active-border-color: #0d6efd;
+  --bs-pagination-disabled-color: #6c757d;
+  --bs-pagination-disabled-bg: #fff;
+  --bs-pagination-disabled-border-color: #dee2e6;
+  display: flex;
+  padding-left: 0;
+  list-style: none;
+}
+
+.page-link {
+  position: relative;
+  display: block;
+  padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+  font-size: var(--bs-pagination-font-size);
+  color: var(--bs-pagination-color);
+  text-decoration: none;
+  background-color: var(--bs-pagination-bg);
+  border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .page-link {
+    transition: none;
+  }
+}
+
+.page-link:hover {
+  z-index: 2;
+  color: var(--bs-pagination-hover-color);
+  background-color: var(--bs-pagination-hover-bg);
+  border-color: var(--bs-pagination-hover-border-color);
+}
+
+.page-link:focus {
+  z-index: 3;
+  color: var(--bs-pagination-focus-color);
+  background-color: var(--bs-pagination-focus-bg);
+  outline: 0;
+  box-shadow: var(--bs-pagination-focus-box-shadow);
+}
+
+.page-link.active,
+.active > .page-link {
+  z-index: 3;
+  color: var(--bs-pagination-active-color);
+  background-color: var(--bs-pagination-active-bg);
+  border-color: var(--bs-pagination-active-border-color);
+}
+
+.page-link.disabled,
+.disabled > .page-link {
+  color: var(--bs-pagination-disabled-color);
+  pointer-events: none;
+  background-color: var(--bs-pagination-disabled-bg);
+  border-color: var(--bs-pagination-disabled-border-color);
+}
+
+.page-item:not(:first-child) .page-link {
+  margin-left: -1px;
+}
+
+.page-item:first-child .page-link {
+  border-top-left-radius: var(--bs-pagination-border-radius);
+  border-bottom-left-radius: var(--bs-pagination-border-radius);
+}
+
+.page-item:last-child .page-link {
+  border-top-right-radius: var(--bs-pagination-border-radius);
+  border-bottom-right-radius: var(--bs-pagination-border-radius);
+}
+
+.pagination-lg {
+  --bs-pagination-padding-x: 1.5rem;
+  --bs-pagination-padding-y: 0.75rem;
+  --bs-pagination-font-size: 1.25rem;
+  --bs-pagination-border-radius: 0.5rem;
+}
+
+.pagination-sm {
+  --bs-pagination-padding-x: 0.5rem;
+  --bs-pagination-padding-y: 0.25rem;
+  --bs-pagination-font-size: 0.875rem;
+  --bs-pagination-border-radius: 0.25rem;
+}
+
+.badge {
+  --bs-badge-padding-x: 0.65em;
+  --bs-badge-padding-y: 0.35em;
+  --bs-badge-font-size: 0.75em;
+  --bs-badge-font-weight: 700;
+  --bs-badge-color: #fff;
+  --bs-badge-border-radius: 0.375rem;
+  display: inline-block;
+  padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+  font-size: var(--bs-badge-font-size);
+  font-weight: var(--bs-badge-font-weight);
+  line-height: 1;
+  color: var(--bs-badge-color);
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: var(--bs-badge-border-radius);
+}
+
+.badge:empty {
+  display: none;
+}
+
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
+
+.alert {
+  --bs-alert-bg: transparent;
+  --bs-alert-padding-x: 1rem;
+  --bs-alert-padding-y: 1rem;
+  --bs-alert-margin-bottom: 1rem;
+  --bs-alert-color: inherit;
+  --bs-alert-border-color: transparent;
+  --bs-alert-border: 1px solid var(--bs-alert-border-color);
+  --bs-alert-border-radius: 0.375rem;
+  position: relative;
+  padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+  margin-bottom: var(--bs-alert-margin-bottom);
+  color: var(--bs-alert-color);
+  background-color: var(--bs-alert-bg);
+  border: var(--bs-alert-border);
+  border-radius: var(--bs-alert-border-radius);
+}
+
+.alert-heading {
+  color: inherit;
+}
+
+.alert-link {
+  font-weight: 700;
+}
+
+.alert-dismissible {
+  padding-right: 3rem;
+}
+
+.alert-dismissible .btn-close {
+  position: absolute;
+  top: 0;
+  right: 0;
+  z-index: 2;
+  padding: 1.25rem 1rem;
+}
+
+.alert-primary {
+  --bs-alert-color: #084298;
+  --bs-alert-bg: #cfe2ff;
+  --bs-alert-border-color: #b6d4fe;
+}
+
+.alert-primary .alert-link {
+  color: #06357a;
+}
+
+.alert-secondary {
+  --bs-alert-color: #41464b;
+  --bs-alert-bg: #e2e3e5;
+  --bs-alert-border-color: #d3d6d8;
+}
+
+.alert-secondary .alert-link {
+  color: #34383c;
+}
+
+.alert-success {
+  --bs-alert-color: #0f5132;
+  --bs-alert-bg: #d1e7dd;
+  --bs-alert-border-color: #badbcc;
+}
+
+.alert-success .alert-link {
+  color: #0c4128;
+}
+
+.alert-info {
+  --bs-alert-color: #055160;
+  --bs-alert-bg: #cff4fc;
+  --bs-alert-border-color: #b6effb;
+}
+
+.alert-info .alert-link {
+  color: #04414d;
+}
+
+.alert-warning {
+  --bs-alert-color: #664d03;
+  --bs-alert-bg: #fff3cd;
+  --bs-alert-border-color: #ffecb5;
+}
+
+.alert-warning .alert-link {
+  color: #523e02;
+}
+
+.alert-danger {
+  --bs-alert-color: #842029;
+  --bs-alert-bg: #f8d7da;
+  --bs-alert-border-color: #f5c2c7;
+}
+
+.alert-danger .alert-link {
+  color: #6a1a21;
+}
+
+.alert-light {
+  --bs-alert-color: #636464;
+  --bs-alert-bg: #fefefe;
+  --bs-alert-border-color: #fdfdfe;
+}
+
+.alert-light .alert-link {
+  color: #4f5050;
+}
+
+.alert-dark {
+  --bs-alert-color: #141619;
+  --bs-alert-bg: #d3d3d4;
+  --bs-alert-border-color: #bcbebf;
+}
+
+.alert-dark .alert-link {
+  color: #101214;
+}
+
+@keyframes progress-bar-stripes {
+  0% {
+    background-position-x: 1rem;
+  }
+}
+
+.progress {
+  --bs-progress-height: 1rem;
+  --bs-progress-font-size: 0.75rem;
+  --bs-progress-bg: #e9ecef;
+  --bs-progress-border-radius: 0.375rem;
+  --bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+  --bs-progress-bar-color: #fff;
+  --bs-progress-bar-bg: #0d6efd;
+  --bs-progress-bar-transition: width 0.6s ease;
+  display: flex;
+  height: var(--bs-progress-height);
+  overflow: hidden;
+  font-size: var(--bs-progress-font-size);
+  background-color: var(--bs-progress-bg);
+  border-radius: var(--bs-progress-border-radius);
+}
+
+.progress-bar {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  overflow: hidden;
+  color: var(--bs-progress-bar-color);
+  text-align: center;
+  white-space: nowrap;
+  background-color: var(--bs-progress-bar-bg);
+  transition: var(--bs-progress-bar-transition);
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .progress-bar {
+    transition: none;
+  }
+}
+
+.progress-bar-striped {
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-size: var(--bs-progress-height) var(--bs-progress-height);
+}
+
+.progress-bar-animated {
+  animation: 1s linear infinite progress-bar-stripes;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .progress-bar-animated {
+    animation: none;
+  }
+}
+
+.list-group {
+  --bs-list-group-color: #212529;
+  --bs-list-group-bg: #fff;
+  --bs-list-group-border-color: rgba(0, 0, 0, 0.125);
+  --bs-list-group-border-width: 1px;
+  --bs-list-group-border-radius: 0.375rem;
+  --bs-list-group-item-padding-x: 1rem;
+  --bs-list-group-item-padding-y: 0.5rem;
+  --bs-list-group-action-color: #495057;
+  --bs-list-group-action-hover-color: #495057;
+  --bs-list-group-action-hover-bg: #f8f9fa;
+  --bs-list-group-action-active-color: #212529;
+  --bs-list-group-action-active-bg: #e9ecef;
+  --bs-list-group-disabled-color: #6c757d;
+  --bs-list-group-disabled-bg: #fff;
+  --bs-list-group-active-color: #fff;
+  --bs-list-group-active-bg: #0d6efd;
+  --bs-list-group-active-border-color: #0d6efd;
+  display: flex;
+  flex-direction: column;
+  padding-left: 0;
+  margin-bottom: 0;
+  border-radius: var(--bs-list-group-border-radius);
+}
+
+.list-group-numbered {
+  list-style-type: none;
+  counter-reset: section;
+}
+
+.list-group-numbered > .list-group-item::before {
+  content: counters(section, ".") ". ";
+  counter-increment: section;
+}
+
+.list-group-item-action {
+  width: 100%;
+  color: var(--bs-list-group-action-color);
+  text-align: inherit;
+}
+
+.list-group-item-action:hover, .list-group-item-action:focus {
+  z-index: 1;
+  color: var(--bs-list-group-action-hover-color);
+  text-decoration: none;
+  background-color: var(--bs-list-group-action-hover-bg);
+}
+
+.list-group-item-action:active {
+  color: var(--bs-list-group-action-active-color);
+  background-color: var(--bs-list-group-action-active-bg);
+}
+
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+  color: var(--bs-list-group-color);
+  text-decoration: none;
+  background-color: var(--bs-list-group-bg);
+  border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);
+}
+
+.list-group-item:first-child {
+  border-top-left-radius: inherit;
+  border-top-right-radius: inherit;
+}
+
+.list-group-item:last-child {
+  border-bottom-right-radius: inherit;
+  border-bottom-left-radius: inherit;
+}
+
+.list-group-item.disabled, .list-group-item:disabled {
+  color: var(--bs-list-group-disabled-color);
+  pointer-events: none;
+  background-color: var(--bs-list-group-disabled-bg);
+}
+
+.list-group-item.active {
+  z-index: 2;
+  color: var(--bs-list-group-active-color);
+  background-color: var(--bs-list-group-active-bg);
+  border-color: var(--bs-list-group-active-border-color);
+}
+
+.list-group-item + .list-group-item {
+  border-top-width: 0;
+}
+
+.list-group-item + .list-group-item.active {
+  margin-top: calc(-1 * var(--bs-list-group-border-width));
+  border-top-width: var(--bs-list-group-border-width);
+}
+
+.list-group-horizontal {
+  flex-direction: row;
+}
+
+.list-group-horizontal > .list-group-item:first-child:not(:last-child) {
+  border-bottom-left-radius: var(--bs-list-group-border-radius);
+  border-top-right-radius: 0;
+}
+
+.list-group-horizontal > .list-group-item:last-child:not(:first-child) {
+  border-top-right-radius: var(--bs-list-group-border-radius);
+  border-bottom-left-radius: 0;
+}
+
+.list-group-horizontal > .list-group-item.active {
+  margin-top: 0;
+}
+
+.list-group-horizontal > .list-group-item + .list-group-item {
+  border-top-width: var(--bs-list-group-border-width);
+  border-left-width: 0;
+}
+
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+  margin-left: calc(-1 * var(--bs-list-group-border-width));
+  border-left-width: var(--bs-list-group-border-width);
+}
+
+@media (min-width: 576px) {
+  .list-group-horizontal-sm {
+    flex-direction: row;
+  }
+  .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
+    border-bottom-left-radius: var(--bs-list-group-border-radius);
+    border-top-right-radius: 0;
+  }
+  .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
+    border-top-right-radius: var(--bs-list-group-border-radius);
+    border-bottom-left-radius: 0;
+  }
+  .list-group-horizontal-sm > .list-group-item.active {
+    margin-top: 0;
+  }
+  .list-group-horizontal-sm > .list-group-item + .list-group-item {
+    border-top-width: var(--bs-list-group-border-width);
+    border-left-width: 0;
+  }
+  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+    margin-left: calc(-1 * var(--bs-list-group-border-width));
+    border-left-width: var(--bs-list-group-border-width);
+  }
+}
+
+@media (min-width: 768px) {
+  .list-group-horizontal-md {
+    flex-direction: row;
+  }
+  .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
+    border-bottom-left-radius: var(--bs-list-group-border-radius);
+    border-top-right-radius: 0;
+  }
+  .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
+    border-top-right-radius: var(--bs-list-group-border-radius);
+    border-bottom-left-radius: 0;
+  }
+  .list-group-horizontal-md > .list-group-item.active {
+    margin-top: 0;
+  }
+  .list-group-horizontal-md > .list-group-item + .list-group-item {
+    border-top-width: var(--bs-list-group-border-width);
+    border-left-width: 0;
+  }
+  .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+    margin-left: calc(-1 * var(--bs-list-group-border-width));
+    border-left-width: var(--bs-list-group-border-width);
+  }
+}
+
+@media (min-width: 992px) {
+  .list-group-horizontal-lg {
+    flex-direction: row;
+  }
+  .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
+    border-bottom-left-radius: var(--bs-list-group-border-radius);
+    border-top-right-radius: 0;
+  }
+  .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
+    border-top-right-radius: var(--bs-list-group-border-radius);
+    border-bottom-left-radius: 0;
+  }
+  .list-group-horizontal-lg > .list-group-item.active {
+    margin-top: 0;
+  }
+  .list-group-horizontal-lg > .list-group-item + .list-group-item {
+    border-top-width: var(--bs-list-group-border-width);
+    border-left-width: 0;
+  }
+  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+    margin-left: calc(-1 * var(--bs-list-group-border-width));
+    border-left-width: var(--bs-list-group-border-width);
+  }
+}
+
+@media (min-width: 1200px) {
+  .list-group-horizontal-xl {
+    flex-direction: row;
+  }
+  .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
+    border-bottom-left-radius: var(--bs-list-group-border-radius);
+    border-top-right-radius: 0;
+  }
+  .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
+    border-top-right-radius: var(--bs-list-group-border-radius);
+    border-bottom-left-radius: 0;
+  }
+  .list-group-horizontal-xl > .list-group-item.active {
+    margin-top: 0;
+  }
+  .list-group-horizontal-xl > .list-group-item + .list-group-item {
+    border-top-width: var(--bs-list-group-border-width);
+    border-left-width: 0;
+  }
+  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+    margin-left: calc(-1 * var(--bs-list-group-border-width));
+    border-left-width: var(--bs-list-group-border-width);
+  }
+}
+
+@media (min-width: 1400px) {
+  .list-group-horizontal-xxl {
+    flex-direction: row;
+  }
+  .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
+    border-bottom-left-radius: var(--bs-list-group-border-radius);
+    border-top-right-radius: 0;
+  }
+  .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
+    border-top-right-radius: var(--bs-list-group-border-radius);
+    border-bottom-left-radius: 0;
+  }
+  .list-group-horizontal-xxl > .list-group-item.active {
+    margin-top: 0;
+  }
+  .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+    border-top-width: var(--bs-list-group-border-width);
+    border-left-width: 0;
+  }
+  .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+    margin-left: calc(-1 * var(--bs-list-group-border-width));
+    border-left-width: var(--bs-list-group-border-width);
+  }
+}
+
+.list-group-flush {
+  border-radius: 0;
+}
+
+.list-group-flush > .list-group-item {
+  border-width: 0 0 var(--bs-list-group-border-width);
+}
+
+.list-group-flush > .list-group-item:last-child {
+  border-bottom-width: 0;
+}
+
+.list-group-item-primary {
+  color: #084298;
+  background-color: #cfe2ff;
+}
+
+.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+  color: #084298;
+  background-color: #bacbe6;
+}
+
+.list-group-item-primary.list-group-item-action.active {
+  color: #fff;
+  background-color: #084298;
+  border-color: #084298;
+}
+
+.list-group-item-secondary {
+  color: #41464b;
+  background-color: #e2e3e5;
+}
+
+.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+  color: #41464b;
+  background-color: #cbccce;
+}
+
+.list-group-item-secondary.list-group-item-action.active {
+  color: #fff;
+  background-color: #41464b;
+  border-color: #41464b;
+}
+
+.list-group-item-success {
+  color: #0f5132;
+  background-color: #d1e7dd;
+}
+
+.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+  color: #0f5132;
+  background-color: #bcd0c7;
+}
+
+.list-group-item-success.list-group-item-action.active {
+  color: #fff;
+  background-color: #0f5132;
+  border-color: #0f5132;
+}
+
+.list-group-item-info {
+  color: #055160;
+  background-color: #cff4fc;
+}
+
+.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+  color: #055160;
+  background-color: #badce3;
+}
+
+.list-group-item-info.list-group-item-action.active {
+  color: #fff;
+  background-color: #055160;
+  border-color: #055160;
+}
+
+.list-group-item-warning {
+  color: #664d03;
+  background-color: #fff3cd;
+}
+
+.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+  color: #664d03;
+  background-color: #e6dbb9;
+}
+
+.list-group-item-warning.list-group-item-action.active {
+  color: #fff;
+  background-color: #664d03;
+  border-color: #664d03;
+}
+
+.list-group-item-danger {
+  color: #842029;
+  background-color: #f8d7da;
+}
+
+.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+  color: #842029;
+  background-color: #dfc2c4;
+}
+
+.list-group-item-danger.list-group-item-action.active {
+  color: #fff;
+  background-color: #842029;
+  border-color: #842029;
+}
+
+.list-group-item-light {
+  color: #636464;
+  background-color: #fefefe;
+}
+
+.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+  color: #636464;
+  background-color: #e5e5e5;
+}
+
+.list-group-item-light.list-group-item-action.active {
+  color: #fff;
+  background-color: #636464;
+  border-color: #636464;
+}
+
+.list-group-item-dark {
+  color: #141619;
+  background-color: #d3d3d4;
+}
+
+.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+  color: #141619;
+  background-color: #bebebf;
+}
+
+.list-group-item-dark.list-group-item-action.active {
+  color: #fff;
+  background-color: #141619;
+  border-color: #141619;
+}
+
+.btn-close {
+  box-sizing: content-box;
+  width: 1em;
+  height: 1em;
+  padding: 0.25em 0.25em;
+  color: #000;
+  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
+  border: 0;
+  border-radius: 0.375rem;
+  opacity: 0.5;
+}
+
+.btn-close:hover {
+  color: #000;
+  text-decoration: none;
+  opacity: 0.75;
+}
+
+.btn-close:focus {
+  outline: 0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
+  opacity: 1;
+}
+
+.btn-close:disabled, .btn-close.disabled {
+  pointer-events: none;
+  user-select: none;
+  opacity: 0.25;
+}
+
+.btn-close-white {
+  filter: invert(1) grayscale(100%) brightness(200%);
+}
+
+.toast {
+  --bs-toast-zindex: 1090;
+  --bs-toast-padding-x: 0.75rem;
+  --bs-toast-padding-y: 0.5rem;
+  --bs-toast-spacing: 1.5rem;
+  --bs-toast-max-width: 350px;
+  --bs-toast-font-size: 0.875rem;
+  --bs-toast-color: ;
+  --bs-toast-bg: rgba(255, 255, 255, 0.85);
+  --bs-toast-border-width: 1px;
+  --bs-toast-border-color: var(--bs-border-color-translucent);
+  --bs-toast-border-radius: 0.375rem;
+  --bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+  --bs-toast-header-color: #6c757d;
+  --bs-toast-header-bg: rgba(255, 255, 255, 0.85);
+  --bs-toast-header-border-color: rgba(0, 0, 0, 0.05);
+  width: var(--bs-toast-max-width);
+  max-width: 100%;
+  font-size: var(--bs-toast-font-size);
+  color: var(--bs-toast-color);
+  pointer-events: auto;
+  background-color: var(--bs-toast-bg);
+  background-clip: padding-box;
+  border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+  box-shadow: var(--bs-toast-box-shadow);
+  border-radius: var(--bs-toast-border-radius);
+}
+
+.toast.showing {
+  opacity: 0;
+}
+
+.toast:not(.show) {
+  display: none;
+}
+
+.toast-container {
+  --bs-toast-zindex: 1090;
+  position: absolute;
+  z-index: var(--bs-toast-zindex);
+  width: max-content;
+  max-width: 100%;
+  pointer-events: none;
+}
+
+.toast-container > :not(:last-child) {
+  margin-bottom: var(--bs-toast-spacing);
+}
+
+.toast-header {
+  display: flex;
+  align-items: center;
+  padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+  color: var(--bs-toast-header-color);
+  background-color: var(--bs-toast-header-bg);
+  background-clip: padding-box;
+  border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+  border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+  border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+}
+
+.toast-header .btn-close {
+  margin-right: calc(-.5 * var(--bs-toast-padding-x));
+  margin-left: var(--bs-toast-padding-x);
+}
+
+.toast-body {
+  padding: var(--bs-toast-padding-x);
+  word-wrap: break-word;
+}
+
+.modal {
+  --bs-modal-zindex: 1055;
+  --bs-modal-width: 500px;
+  --bs-modal-padding: 1rem;
+  --bs-modal-margin: 0.5rem;
+  --bs-modal-color: ;
+  --bs-modal-bg: #fff;
+  --bs-modal-border-color: var(--bs-border-color-translucent);
+  --bs-modal-border-width: 1px;
+  --bs-modal-border-radius: 0.5rem;
+  --bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+  --bs-modal-inner-border-radius: calc(0.5rem - 1px);
+  --bs-modal-header-padding-x: 1rem;
+  --bs-modal-header-padding-y: 1rem;
+  --bs-modal-header-padding: 1rem 1rem;
+  --bs-modal-header-border-color: var(--bs-border-color);
+  --bs-modal-header-border-width: 1px;
+  --bs-modal-title-line-height: 1.5;
+  --bs-modal-footer-gap: 0.5rem;
+  --bs-modal-footer-bg: ;
+  --bs-modal-footer-border-color: var(--bs-border-color);
+  --bs-modal-footer-border-width: 1px;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: var(--bs-modal-zindex);
+  display: none;
+  width: 100%;
+  height: 100%;
+  overflow-x: hidden;
+  overflow-y: auto;
+  outline: 0;
+}
+
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: var(--bs-modal-margin);
+  pointer-events: none;
+}
+
+.modal.fade .modal-dialog {
+  transition: transform 0.3s ease-out;
+  transform: translate(0, -50px);
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .modal.fade .modal-dialog {
+    transition: none;
+  }
+}
+
+.modal.show .modal-dialog {
+  transform: none;
+}
+
+.modal.modal-static .modal-dialog {
+  transform: scale(1.02);
+}
+
+.modal-dialog-scrollable {
+  height: calc(100% - var(--bs-modal-margin) * 2);
+}
+
+.modal-dialog-scrollable .modal-content {
+  max-height: 100%;
+  overflow: hidden;
+}
+
+.modal-dialog-scrollable .modal-body {
+  overflow-y: auto;
+}
+
+.modal-dialog-centered {
+  display: flex;
+  align-items: center;
+  min-height: calc(100% - var(--bs-modal-margin) * 2);
+}
+
+.modal-content {
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  color: var(--bs-modal-color);
+  pointer-events: auto;
+  background-color: var(--bs-modal-bg);
+  background-clip: padding-box;
+  border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+  border-radius: var(--bs-modal-border-radius);
+  outline: 0;
+}
+
+.modal-backdrop {
+  --bs-backdrop-zindex: 1050;
+  --bs-backdrop-bg: #000;
+  --bs-backdrop-opacity: 0.5;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: var(--bs-backdrop-zindex);
+  width: 100vw;
+  height: 100vh;
+  background-color: var(--bs-backdrop-bg);
+}
+
+.modal-backdrop.fade {
+  opacity: 0;
+}
+
+.modal-backdrop.show {
+  opacity: var(--bs-backdrop-opacity);
+}
+
+.modal-header {
+  display: flex;
+  flex-shrink: 0;
+  align-items: center;
+  justify-content: space-between;
+  padding: var(--bs-modal-header-padding);
+  border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+  border-top-left-radius: var(--bs-modal-inner-border-radius);
+  border-top-right-radius: var(--bs-modal-inner-border-radius);
+}
+
+.modal-header .btn-close {
+  padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);
+  margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto;
+}
+
+.modal-title {
+  margin-bottom: 0;
+  line-height: var(--bs-modal-title-line-height);
+}
+
+.modal-body {
+  position: relative;
+  flex: 1 1 auto;
+  padding: var(--bs-modal-padding);
+}
+
+.modal-footer {
+  display: flex;
+  flex-shrink: 0;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: flex-end;
+  padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);
+  background-color: var(--bs-modal-footer-bg);
+  border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+  border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+  border-bottom-left-radius: var(--bs-modal-inner-border-radius);
+}
+
+.modal-footer > * {
+  margin: calc(var(--bs-modal-footer-gap) * .5);
+}
+
+@media (min-width: 576px) {
+  .modal {
+    --bs-modal-margin: 1.75rem;
+    --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+  }
+  .modal-dialog {
+    max-width: var(--bs-modal-width);
+    margin-right: auto;
+    margin-left: auto;
+  }
+  .modal-sm {
+    --bs-modal-width: 300px;
+  }
+}
+
+@media (min-width: 992px) {
+  .modal-lg,
+  .modal-xl {
+    --bs-modal-width: 800px;
+  }
+}
+
+@media (min-width: 1200px) {
+  .modal-xl {
+    --bs-modal-width: 1140px;
+  }
+}
+
+.modal-fullscreen {
+  width: 100vw;
+  max-width: none;
+  height: 100%;
+  margin: 0;
+}
+
+.modal-fullscreen .modal-content {
+  height: 100%;
+  border: 0;
+  border-radius: 0;
+}
+
+.modal-fullscreen .modal-header,
+.modal-fullscreen .modal-footer {
+  border-radius: 0;
+}
+
+.modal-fullscreen .modal-body {
+  overflow-y: auto;
+}
+
+@media (max-width: 575.98px) {
+  .modal-fullscreen-sm-down {
+    width: 100vw;
+    max-width: none;
+    height: 100%;
+    margin: 0;
+  }
+  .modal-fullscreen-sm-down .modal-content {
+    height: 100%;
+    border: 0;
+    border-radius: 0;
+  }
+  .modal-fullscreen-sm-down .modal-header,
+  .modal-fullscreen-sm-down .modal-footer {
+    border-radius: 0;
+  }
+  .modal-fullscreen-sm-down .modal-body {
+    overflow-y: auto;
+  }
+}
+
+@media (max-width: 767.98px) {
+  .modal-fullscreen-md-down {
+    width: 100vw;
+    max-width: none;
+    height: 100%;
+    margin: 0;
+  }
+  .modal-fullscreen-md-down .modal-content {
+    height: 100%;
+    border: 0;
+    border-radius: 0;
+  }
+  .modal-fullscreen-md-down .modal-header,
+  .modal-fullscreen-md-down .modal-footer {
+    border-radius: 0;
+  }
+  .modal-fullscreen-md-down .modal-body {
+    overflow-y: auto;
+  }
+}
+
+@media (max-width: 991.98px) {
+  .modal-fullscreen-lg-down {
+    width: 100vw;
+    max-width: none;
+    height: 100%;
+    margin: 0;
+  }
+  .modal-fullscreen-lg-down .modal-content {
+    height: 100%;
+    border: 0;
+    border-radius: 0;
+  }
+  .modal-fullscreen-lg-down .modal-header,
+  .modal-fullscreen-lg-down .modal-footer {
+    border-radius: 0;
+  }
+  .modal-fullscreen-lg-down .modal-body {
+    overflow-y: auto;
+  }
+}
+
+@media (max-width: 1199.98px) {
+  .modal-fullscreen-xl-down {
+    width: 100vw;
+    max-width: none;
+    height: 100%;
+    margin: 0;
+  }
+  .modal-fullscreen-xl-down .modal-content {
+    height: 100%;
+    border: 0;
+    border-radius: 0;
+  }
+  .modal-fullscreen-xl-down .modal-header,
+  .modal-fullscreen-xl-down .modal-footer {
+    border-radius: 0;
+  }
+  .modal-fullscreen-xl-down .modal-body {
+    overflow-y: auto;
+  }
+}
+
+@media (max-width: 1399.98px) {
+  .modal-fullscreen-xxl-down {
+    width: 100vw;
+    max-width: none;
+    height: 100%;
+    margin: 0;
+  }
+  .modal-fullscreen-xxl-down .modal-content {
+    height: 100%;
+    border: 0;
+    border-radius: 0;
+  }
+  .modal-fullscreen-xxl-down .modal-header,
+  .modal-fullscreen-xxl-down .modal-footer {
+    border-radius: 0;
+  }
+  .modal-fullscreen-xxl-down .modal-body {
+    overflow-y: auto;
+  }
+}
+
+.tooltip {
+  --bs-tooltip-zindex: 1080;
+  --bs-tooltip-max-width: 200px;
+  --bs-tooltip-padding-x: 0.5rem;
+  --bs-tooltip-padding-y: 0.25rem;
+  --bs-tooltip-margin: ;
+  --bs-tooltip-font-size: 0.875rem;
+  --bs-tooltip-color: #fff;
+  --bs-tooltip-bg: #000;
+  --bs-tooltip-border-radius: 0.375rem;
+  --bs-tooltip-opacity: 0.9;
+  --bs-tooltip-arrow-width: 0.8rem;
+  --bs-tooltip-arrow-height: 0.4rem;
+  z-index: var(--bs-tooltip-zindex);
+  display: block;
+  padding: var(--bs-tooltip-arrow-height);
+  margin: var(--bs-tooltip-margin);
+  font-family: var(--bs-font-sans-serif);
+  font-style: normal;
+  font-weight: 400;
+  line-height: 1.5;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  white-space: normal;
+  word-spacing: normal;
+  line-break: auto;
+  font-size: var(--bs-tooltip-font-size);
+  word-wrap: break-word;
+  opacity: 0;
+}
+
+.tooltip.show {
+  opacity: var(--bs-tooltip-opacity);
+}
+
+.tooltip .tooltip-arrow {
+  display: block;
+  width: var(--bs-tooltip-arrow-width);
+  height: var(--bs-tooltip-arrow-height);
+}
+
+.tooltip .tooltip-arrow::before {
+  position: absolute;
+  content: "";
+  border-color: transparent;
+  border-style: solid;
+}
+
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow {
+  bottom: 0;
+}
+
+.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
+  top: -1px;
+  border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
+  border-top-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow {
+  left: 0;
+  width: var(--bs-tooltip-arrow-height);
+  height: var(--bs-tooltip-arrow-width);
+}
+
+.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
+  right: -1px;
+  border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;
+  border-right-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow {
+  top: 0;
+}
+
+.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
+  bottom: -1px;
+  border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
+  border-bottom-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow {
+  right: 0;
+  width: var(--bs-tooltip-arrow-height);
+  height: var(--bs-tooltip-arrow-width);
+}
+
+.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
+  left: -1px;
+  border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);
+  border-left-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.tooltip-inner {
+  max-width: var(--bs-tooltip-max-width);
+  padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+  color: var(--bs-tooltip-color);
+  text-align: center;
+  background-color: var(--bs-tooltip-bg);
+  border-radius: var(--bs-tooltip-border-radius);
+}
+
+.popover {
+  --bs-popover-zindex: 1070;
+  --bs-popover-max-width: 276px;
+  --bs-popover-font-size: 0.875rem;
+  --bs-popover-bg: #fff;
+  --bs-popover-border-width: 1px;
+  --bs-popover-border-color: var(--bs-border-color-translucent);
+  --bs-popover-border-radius: 0.5rem;
+  --bs-popover-inner-border-radius: calc(0.5rem - 1px);
+  --bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+  --bs-popover-header-padding-x: 1rem;
+  --bs-popover-header-padding-y: 0.5rem;
+  --bs-popover-header-font-size: 1rem;
+  --bs-popover-header-color: ;
+  --bs-popover-header-bg: #f0f0f0;
+  --bs-popover-body-padding-x: 1rem;
+  --bs-popover-body-padding-y: 1rem;
+  --bs-popover-body-color: #212529;
+  --bs-popover-arrow-width: 1rem;
+  --bs-popover-arrow-height: 0.5rem;
+  --bs-popover-arrow-border: var(--bs-popover-border-color);
+  z-index: var(--bs-popover-zindex);
+  display: block;
+  max-width: var(--bs-popover-max-width);
+  font-family: var(--bs-font-sans-serif);
+  font-style: normal;
+  font-weight: 400;
+  line-height: 1.5;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  letter-spacing: normal;
+  word-break: normal;
+  white-space: normal;
+  word-spacing: normal;
+  line-break: auto;
+  font-size: var(--bs-popover-font-size);
+  word-wrap: break-word;
+  background-color: var(--bs-popover-bg);
+  background-clip: padding-box;
+  border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+  border-radius: var(--bs-popover-border-radius);
+}
+
+.popover .popover-arrow {
+  display: block;
+  width: var(--bs-popover-arrow-width);
+  height: var(--bs-popover-arrow-height);
+}
+
+.popover .popover-arrow::before, .popover .popover-arrow::after {
+  position: absolute;
+  display: block;
+  content: "";
+  border-color: transparent;
+  border-style: solid;
+  border-width: 0;
+}
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow {
+  bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+}
+
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
+  border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0;
+}
+
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
+  bottom: 0;
+  border-top-color: var(--bs-popover-arrow-border);
+}
+
+.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
+  bottom: var(--bs-popover-border-width);
+  border-top-color: var(--bs-popover-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow {
+  left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+  width: var(--bs-popover-arrow-height);
+  height: var(--bs-popover-arrow-width);
+}
+
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
+  border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0;
+}
+
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
+  left: 0;
+  border-right-color: var(--bs-popover-arrow-border);
+}
+
+.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
+  left: var(--bs-popover-border-width);
+  border-right-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow {
+  top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+}
+
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
+  border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height);
+}
+
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
+  top: 0;
+  border-bottom-color: var(--bs-popover-arrow-border);
+}
+
+.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
+  top: var(--bs-popover-border-width);
+  border-bottom-color: var(--bs-popover-bg);
+}
+
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before {
+  position: absolute;
+  top: 0;
+  left: 50%;
+  display: block;
+  width: var(--bs-popover-arrow-width);
+  margin-left: calc(-.5 * var(--bs-popover-arrow-width));
+  content: "";
+  border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow {
+  right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+  width: var(--bs-popover-arrow-height);
+  height: var(--bs-popover-arrow-width);
+}
+
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
+  border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height);
+}
+
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
+  right: 0;
+  border-left-color: var(--bs-popover-arrow-border);
+}
+
+.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
+  right: var(--bs-popover-border-width);
+  border-left-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.popover-header {
+  padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
+  margin-bottom: 0;
+  font-size: var(--bs-popover-header-font-size);
+  color: var(--bs-popover-header-color);
+  background-color: var(--bs-popover-header-bg);
+  border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+  border-top-left-radius: var(--bs-popover-inner-border-radius);
+  border-top-right-radius: var(--bs-popover-inner-border-radius);
+}
+
+.popover-header:empty {
+  display: none;
+}
+
+.popover-body {
+  padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+  color: var(--bs-popover-body-color);
+}
+
+.carousel {
+  position: relative;
+}
+
+.carousel.pointer-event {
+  touch-action: pan-y;
+}
+
+.carousel-inner {
+  position: relative;
+  width: 100%;
+  overflow: hidden;
+}
+
+.carousel-inner::after {
+  display: block;
+  clear: both;
+  content: "";
+}
+
+.carousel-item {
+  position: relative;
+  display: none;
+  float: left;
+  width: 100%;
+  margin-right: -100%;
+  backface-visibility: hidden;
+  transition: transform 0.6s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .carousel-item {
+    transition: none;
+  }
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+  display: block;
+}
+
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
+  transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
+  transform: translateX(-100%);
+}
+
+.carousel-fade .carousel-item {
+  opacity: 0;
+  transition-property: opacity;
+  transform: none;
+}
+
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-start,
+.carousel-fade .carousel-item-prev.carousel-item-end {
+  z-index: 1;
+  opacity: 1;
+}
+
+.carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
+  z-index: 0;
+  opacity: 0;
+  transition: opacity 0s 0.6s;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .carousel-fade .active.carousel-item-start,
+  .carousel-fade .active.carousel-item-end {
+    transition: none;
+  }
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  z-index: 1;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 15%;
+  padding: 0;
+  color: #fff;
+  text-align: center;
+  background: none;
+  border: 0;
+  opacity: 0.5;
+  transition: opacity 0.15s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .carousel-control-prev,
+  .carousel-control-next {
+    transition: none;
+  }
+}
+
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+  color: #fff;
+  text-decoration: none;
+  outline: 0;
+  opacity: 0.9;
+}
+
+.carousel-control-prev {
+  left: 0;
+}
+
+.carousel-control-next {
+  right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+  display: inline-block;
+  width: 2rem;
+  height: 2rem;
+  background-repeat: no-repeat;
+  background-position: 50%;
+  background-size: 100% 100%;
+}
+
+/* rtl:options: {
+  "autoRename": true,
+  "stringMap":[ {
+    "name"    : "prev-next",
+    "search"  : "prev",
+    "replace" : "next"
+  } ]
+} */
+.carousel-control-prev-icon {
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
+}
+
+.carousel-control-next-icon {
+  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+
+.carousel-indicators {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 2;
+  display: flex;
+  justify-content: center;
+  padding: 0;
+  margin-right: 15%;
+  margin-bottom: 1rem;
+  margin-left: 15%;
+  list-style: none;
+}
+
+.carousel-indicators [data-bs-target] {
+  box-sizing: content-box;
+  flex: 0 1 auto;
+  width: 30px;
+  height: 3px;
+  padding: 0;
+  margin-right: 3px;
+  margin-left: 3px;
+  text-indent: -999px;
+  cursor: pointer;
+  background-color: #fff;
+  background-clip: padding-box;
+  border: 0;
+  border-top: 10px solid transparent;
+  border-bottom: 10px solid transparent;
+  opacity: 0.5;
+  transition: opacity 0.6s ease;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .carousel-indicators [data-bs-target] {
+    transition: none;
+  }
+}
+
+.carousel-indicators .active {
+  opacity: 1;
+}
+
+.carousel-caption {
+  position: absolute;
+  right: 15%;
+  bottom: 1.25rem;
+  left: 15%;
+  padding-top: 1.25rem;
+  padding-bottom: 1.25rem;
+  color: #fff;
+  text-align: center;
+}
+
+.carousel-dark .carousel-control-prev-icon,
+.carousel-dark .carousel-control-next-icon {
+  filter: invert(1) grayscale(100);
+}
+
+.carousel-dark .carousel-indicators [data-bs-target] {
+  background-color: #000;
+}
+
+.carousel-dark .carousel-caption {
+  color: #000;
+}
+
+.spinner-grow,
+.spinner-border {
+  display: inline-block;
+  width: var(--bs-spinner-width);
+  height: var(--bs-spinner-height);
+  vertical-align: var(--bs-spinner-vertical-align);
+  border-radius: 50%;
+  animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
+}
+
+@keyframes spinner-border {
+  to {
+    transform: rotate(360deg) /* rtl:ignore */;
+  }
+}
+
+.spinner-border {
+  --bs-spinner-width: 2rem;
+  --bs-spinner-height: 2rem;
+  --bs-spinner-vertical-align: -0.125em;
+  --bs-spinner-border-width: 0.25em;
+  --bs-spinner-animation-speed: 0.75s;
+  --bs-spinner-animation-name: spinner-border;
+  border: var(--bs-spinner-border-width) solid currentcolor;
+  border-right-color: transparent;
+}
+
+.spinner-border-sm {
+  --bs-spinner-width: 1rem;
+  --bs-spinner-height: 1rem;
+  --bs-spinner-border-width: 0.2em;
+}
+
+@keyframes spinner-grow {
+  0% {
+    transform: scale(0);
+  }
+  50% {
+    opacity: 1;
+    transform: none;
+  }
+}
+
+.spinner-grow {
+  --bs-spinner-width: 2rem;
+  --bs-spinner-height: 2rem;
+  --bs-spinner-vertical-align: -0.125em;
+  --bs-spinner-animation-speed: 0.75s;
+  --bs-spinner-animation-name: spinner-grow;
+  background-color: currentcolor;
+  opacity: 0;
+}
+
+.spinner-grow-sm {
+  --bs-spinner-width: 1rem;
+  --bs-spinner-height: 1rem;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .spinner-border,
+  .spinner-grow {
+    --bs-spinner-animation-speed: 1.5s;
+  }
+}
+
+.offcanvas-sm, .offcanvas-md, .offcanvas-lg, .offcanvas-xl, .offcanvas-xxl, .offcanvas {
+  --bs-offcanvas-zindex: 1045;
+  --bs-offcanvas-width: 400px;
+  --bs-offcanvas-height: 30vh;
+  --bs-offcanvas-padding-x: 1rem;
+  --bs-offcanvas-padding-y: 1rem;
+  --bs-offcanvas-color: ;
+  --bs-offcanvas-bg: #fff;
+  --bs-offcanvas-border-width: 1px;
+  --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+  --bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
+}
+
+@media (max-width: 575.98px) {
+  .offcanvas-sm {
+    position: fixed;
+    bottom: 0;
+    z-index: var(--bs-offcanvas-zindex);
+    display: flex;
+    flex-direction: column;
+    max-width: 100%;
+    color: var(--bs-offcanvas-color);
+    visibility: hidden;
+    background-color: var(--bs-offcanvas-bg);
+    background-clip: padding-box;
+    outline: 0;
+    transition: transform 0.3s ease-in-out;
+  }
+}
+
+@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {
+  .offcanvas-sm {
+    transition: none;
+  }
+}
+
+@media (max-width: 575.98px) {
+  .offcanvas-sm.offcanvas-start {
+    top: 0;
+    left: 0;
+    width: var(--bs-offcanvas-width);
+    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(-100%);
+  }
+  .offcanvas-sm.offcanvas-end {
+    top: 0;
+    right: 0;
+    width: var(--bs-offcanvas-width);
+    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(100%);
+  }
+  .offcanvas-sm.offcanvas-top {
+    top: 0;
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(-100%);
+  }
+  .offcanvas-sm.offcanvas-bottom {
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(100%);
+  }
+  .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+    transform: none;
+  }
+  .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+    visibility: visible;
+  }
+}
+
+@media (min-width: 576px) {
+  .offcanvas-sm {
+    --bs-offcanvas-height: auto;
+    --bs-offcanvas-border-width: 0;
+    background-color: transparent !important;
+  }
+  .offcanvas-sm .offcanvas-header {
+    display: none;
+  }
+  .offcanvas-sm .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+    background-color: transparent !important;
+  }
+}
+
+@media (max-width: 767.98px) {
+  .offcanvas-md {
+    position: fixed;
+    bottom: 0;
+    z-index: var(--bs-offcanvas-zindex);
+    display: flex;
+    flex-direction: column;
+    max-width: 100%;
+    color: var(--bs-offcanvas-color);
+    visibility: hidden;
+    background-color: var(--bs-offcanvas-bg);
+    background-clip: padding-box;
+    outline: 0;
+    transition: transform 0.3s ease-in-out;
+  }
+}
+
+@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {
+  .offcanvas-md {
+    transition: none;
+  }
+}
+
+@media (max-width: 767.98px) {
+  .offcanvas-md.offcanvas-start {
+    top: 0;
+    left: 0;
+    width: var(--bs-offcanvas-width);
+    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(-100%);
+  }
+  .offcanvas-md.offcanvas-end {
+    top: 0;
+    right: 0;
+    width: var(--bs-offcanvas-width);
+    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(100%);
+  }
+  .offcanvas-md.offcanvas-top {
+    top: 0;
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(-100%);
+  }
+  .offcanvas-md.offcanvas-bottom {
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(100%);
+  }
+  .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+    transform: none;
+  }
+  .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+    visibility: visible;
+  }
+}
+
+@media (min-width: 768px) {
+  .offcanvas-md {
+    --bs-offcanvas-height: auto;
+    --bs-offcanvas-border-width: 0;
+    background-color: transparent !important;
+  }
+  .offcanvas-md .offcanvas-header {
+    display: none;
+  }
+  .offcanvas-md .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+    background-color: transparent !important;
+  }
+}
+
+@media (max-width: 991.98px) {
+  .offcanvas-lg {
+    position: fixed;
+    bottom: 0;
+    z-index: var(--bs-offcanvas-zindex);
+    display: flex;
+    flex-direction: column;
+    max-width: 100%;
+    color: var(--bs-offcanvas-color);
+    visibility: hidden;
+    background-color: var(--bs-offcanvas-bg);
+    background-clip: padding-box;
+    outline: 0;
+    transition: transform 0.3s ease-in-out;
+  }
+}
+
+@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
+  .offcanvas-lg {
+    transition: none;
+  }
+}
+
+@media (max-width: 991.98px) {
+  .offcanvas-lg.offcanvas-start {
+    top: 0;
+    left: 0;
+    width: var(--bs-offcanvas-width);
+    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(-100%);
+  }
+  .offcanvas-lg.offcanvas-end {
+    top: 0;
+    right: 0;
+    width: var(--bs-offcanvas-width);
+    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(100%);
+  }
+  .offcanvas-lg.offcanvas-top {
+    top: 0;
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(-100%);
+  }
+  .offcanvas-lg.offcanvas-bottom {
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(100%);
+  }
+  .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+    transform: none;
+  }
+  .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+    visibility: visible;
+  }
+}
+
+@media (min-width: 992px) {
+  .offcanvas-lg {
+    --bs-offcanvas-height: auto;
+    --bs-offcanvas-border-width: 0;
+    background-color: transparent !important;
+  }
+  .offcanvas-lg .offcanvas-header {
+    display: none;
+  }
+  .offcanvas-lg .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+    background-color: transparent !important;
+  }
+}
+
+@media (max-width: 1199.98px) {
+  .offcanvas-xl {
+    position: fixed;
+    bottom: 0;
+    z-index: var(--bs-offcanvas-zindex);
+    display: flex;
+    flex-direction: column;
+    max-width: 100%;
+    color: var(--bs-offcanvas-color);
+    visibility: hidden;
+    background-color: var(--bs-offcanvas-bg);
+    background-clip: padding-box;
+    outline: 0;
+    transition: transform 0.3s ease-in-out;
+  }
+}
+
+@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {
+  .offcanvas-xl {
+    transition: none;
+  }
+}
+
+@media (max-width: 1199.98px) {
+  .offcanvas-xl.offcanvas-start {
+    top: 0;
+    left: 0;
+    width: var(--bs-offcanvas-width);
+    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(-100%);
+  }
+  .offcanvas-xl.offcanvas-end {
+    top: 0;
+    right: 0;
+    width: var(--bs-offcanvas-width);
+    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(100%);
+  }
+  .offcanvas-xl.offcanvas-top {
+    top: 0;
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(-100%);
+  }
+  .offcanvas-xl.offcanvas-bottom {
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(100%);
+  }
+  .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+    transform: none;
+  }
+  .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+    visibility: visible;
+  }
+}
+
+@media (min-width: 1200px) {
+  .offcanvas-xl {
+    --bs-offcanvas-height: auto;
+    --bs-offcanvas-border-width: 0;
+    background-color: transparent !important;
+  }
+  .offcanvas-xl .offcanvas-header {
+    display: none;
+  }
+  .offcanvas-xl .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+    background-color: transparent !important;
+  }
+}
+
+@media (max-width: 1399.98px) {
+  .offcanvas-xxl {
+    position: fixed;
+    bottom: 0;
+    z-index: var(--bs-offcanvas-zindex);
+    display: flex;
+    flex-direction: column;
+    max-width: 100%;
+    color: var(--bs-offcanvas-color);
+    visibility: hidden;
+    background-color: var(--bs-offcanvas-bg);
+    background-clip: padding-box;
+    outline: 0;
+    transition: transform 0.3s ease-in-out;
+  }
+}
+
+@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {
+  .offcanvas-xxl {
+    transition: none;
+  }
+}
+
+@media (max-width: 1399.98px) {
+  .offcanvas-xxl.offcanvas-start {
+    top: 0;
+    left: 0;
+    width: var(--bs-offcanvas-width);
+    border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(-100%);
+  }
+  .offcanvas-xxl.offcanvas-end {
+    top: 0;
+    right: 0;
+    width: var(--bs-offcanvas-width);
+    border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateX(100%);
+  }
+  .offcanvas-xxl.offcanvas-top {
+    top: 0;
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(-100%);
+  }
+  .offcanvas-xxl.offcanvas-bottom {
+    right: 0;
+    left: 0;
+    height: var(--bs-offcanvas-height);
+    max-height: 100%;
+    border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+    transform: translateY(100%);
+  }
+  .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+    transform: none;
+  }
+  .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+    visibility: visible;
+  }
+}
+
+@media (min-width: 1400px) {
+  .offcanvas-xxl {
+    --bs-offcanvas-height: auto;
+    --bs-offcanvas-border-width: 0;
+    background-color: transparent !important;
+  }
+  .offcanvas-xxl .offcanvas-header {
+    display: none;
+  }
+  .offcanvas-xxl .offcanvas-body {
+    display: flex;
+    flex-grow: 0;
+    padding: 0;
+    overflow-y: visible;
+    background-color: transparent !important;
+  }
+}
+
+.offcanvas {
+  position: fixed;
+  bottom: 0;
+  z-index: var(--bs-offcanvas-zindex);
+  display: flex;
+  flex-direction: column;
+  max-width: 100%;
+  color: var(--bs-offcanvas-color);
+  visibility: hidden;
+  background-color: var(--bs-offcanvas-bg);
+  background-clip: padding-box;
+  outline: 0;
+  transition: transform 0.3s ease-in-out;
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .offcanvas {
+    transition: none;
+  }
+}
+
+.offcanvas.offcanvas-start {
+  top: 0;
+  left: 0;
+  width: var(--bs-offcanvas-width);
+  border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+  transform: translateX(-100%);
+}
+
+.offcanvas.offcanvas-end {
+  top: 0;
+  right: 0;
+  width: var(--bs-offcanvas-width);
+  border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+  transform: translateX(100%);
+}
+
+.offcanvas.offcanvas-top {
+  top: 0;
+  right: 0;
+  left: 0;
+  height: var(--bs-offcanvas-height);
+  max-height: 100%;
+  border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+  transform: translateY(-100%);
+}
+
+.offcanvas.offcanvas-bottom {
+  right: 0;
+  left: 0;
+  height: var(--bs-offcanvas-height);
+  max-height: 100%;
+  border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+  transform: translateY(100%);
+}
+
+.offcanvas.showing, .offcanvas.show:not(.hiding) {
+  transform: none;
+}
+
+.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {
+  visibility: visible;
+}
+
+.offcanvas-backdrop {
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: 1040;
+  width: 100vw;
+  height: 100vh;
+  background-color: #000;
+}
+
+.offcanvas-backdrop.fade {
+  opacity: 0;
+}
+
+.offcanvas-backdrop.show {
+  opacity: 0.5;
+}
+
+.offcanvas-header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+}
+
+.offcanvas-header .btn-close {
+  padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);
+  margin-top: calc(-.5 * var(--bs-offcanvas-padding-y));
+  margin-right: calc(-.5 * var(--bs-offcanvas-padding-x));
+  margin-bottom: calc(-.5 * var(--bs-offcanvas-padding-y));
+}
+
+.offcanvas-title {
+  margin-bottom: 0;
+  line-height: 1.5;
+}
+
+.offcanvas-body {
+  flex-grow: 1;
+  padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+  overflow-y: auto;
+}
+
+.placeholder {
+  display: inline-block;
+  min-height: 1em;
+  vertical-align: middle;
+  cursor: wait;
+  background-color: currentcolor;
+  opacity: 0.5;
+}
+
+.placeholder.btn::before {
+  display: inline-block;
+  content: "";
+}
+
+.placeholder-xs {
+  min-height: .6em;
+}
+
+.placeholder-sm {
+  min-height: .8em;
+}
+
+.placeholder-lg {
+  min-height: 1.2em;
+}
+
+.placeholder-glow .placeholder {
+  animation: placeholder-glow 2s ease-in-out infinite;
+}
+
+@keyframes placeholder-glow {
+  50% {
+    opacity: 0.2;
+  }
+}
+
+.placeholder-wave {
+  mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
+  mask-size: 200% 100%;
+  animation: placeholder-wave 2s linear infinite;
+}
+
+@keyframes placeholder-wave {
+  100% {
+    mask-position: -200% 0%;
+  }
+}
+
+.clearfix::after {
+  display: block;
+  clear: both;
+  content: "";
+}
+
+.text-bg-primary {
+  color: #fff !important;
+  background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-secondary {
+  color: #fff !important;
+  background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-success {
+  color: #fff !important;
+  background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-info {
+  color: #000 !important;
+  background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-warning {
+  color: #000 !important;
+  background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-danger {
+  color: #fff !important;
+  background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-light {
+  color: #000 !important;
+  background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-dark {
+  color: #fff !important;
+  background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important;
+}
+
+.link-primary {
+  color: #0d6efd !important;
+}
+
+.link-primary:hover, .link-primary:focus {
+  color: #0a58ca !important;
+}
+
+.link-secondary {
+  color: #6c757d !important;
+}
+
+.link-secondary:hover, .link-secondary:focus {
+  color: #565e64 !important;
+}
+
+.link-success {
+  color: #198754 !important;
+}
+
+.link-success:hover, .link-success:focus {
+  color: #146c43 !important;
+}
+
+.link-info {
+  color: #0dcaf0 !important;
+}
+
+.link-info:hover, .link-info:focus {
+  color: #3dd5f3 !important;
+}
+
+.link-warning {
+  color: #ffc107 !important;
+}
+
+.link-warning:hover, .link-warning:focus {
+  color: #ffcd39 !important;
+}
+
+.link-danger {
+  color: #dc3545 !important;
+}
+
+.link-danger:hover, .link-danger:focus {
+  color: #b02a37 !important;
+}
+
+.link-light {
+  color: #f8f9fa !important;
+}
+
+.link-light:hover, .link-light:focus {
+  color: #f9fafb !important;
+}
+
+.link-dark {
+  color: #212529 !important;
+}
+
+.link-dark:hover, .link-dark:focus {
+  color: #1a1e21 !important;
+}
+
+.ratio {
+  position: relative;
+  width: 100%;
+}
+
+.ratio::before {
+  display: block;
+  padding-top: var(--bs-aspect-ratio);
+  content: "";
+}
+
+.ratio > * {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+
+.ratio-1x1 {
+  --bs-aspect-ratio: 100%;
+}
+
+.ratio-4x3 {
+  --bs-aspect-ratio: calc(3 / 4 * 100%);
+}
+
+.ratio-16x9 {
+  --bs-aspect-ratio: calc(9 / 16 * 100%);
+}
+
+.ratio-21x9 {
+  --bs-aspect-ratio: calc(9 / 21 * 100%);
+}
+
+.fixed-top {
+  position: fixed;
+  top: 0;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+}
+
+.fixed-bottom {
+  position: fixed;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1030;
+}
+
+.sticky-top {
+  position: sticky;
+  top: 0;
+  z-index: 1020;
+}
+
+.sticky-bottom {
+  position: sticky;
+  bottom: 0;
+  z-index: 1020;
+}
+
+@media (min-width: 576px) {
+  .sticky-sm-top {
+    position: sticky;
+    top: 0;
+    z-index: 1020;
+  }
+  .sticky-sm-bottom {
+    position: sticky;
+    bottom: 0;
+    z-index: 1020;
+  }
+}
+
+@media (min-width: 768px) {
+  .sticky-md-top {
+    position: sticky;
+    top: 0;
+    z-index: 1020;
+  }
+  .sticky-md-bottom {
+    position: sticky;
+    bottom: 0;
+    z-index: 1020;
+  }
+}
+
+@media (min-width: 992px) {
+  .sticky-lg-top {
+    position: sticky;
+    top: 0;
+    z-index: 1020;
+  }
+  .sticky-lg-bottom {
+    position: sticky;
+    bottom: 0;
+    z-index: 1020;
+  }
+}
+
+@media (min-width: 1200px) {
+  .sticky-xl-top {
+    position: sticky;
+    top: 0;
+    z-index: 1020;
+  }
+  .sticky-xl-bottom {
+    position: sticky;
+    bottom: 0;
+    z-index: 1020;
+  }
+}
+
+@media (min-width: 1400px) {
+  .sticky-xxl-top {
+    position: sticky;
+    top: 0;
+    z-index: 1020;
+  }
+  .sticky-xxl-bottom {
+    position: sticky;
+    bottom: 0;
+    z-index: 1020;
+  }
+}
+
+.hstack {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  align-self: stretch;
+}
+
+.vstack {
+  display: flex;
+  flex: 1 1 auto;
+  flex-direction: column;
+  align-self: stretch;
+}
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+  position: absolute !important;
+  width: 1px !important;
+  height: 1px !important;
+  padding: 0 !important;
+  margin: -1px !important;
+  overflow: hidden !important;
+  clip: rect(0, 0, 0, 0) !important;
+  white-space: nowrap !important;
+  border: 0 !important;
+}
+
+.stretched-link::after {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1;
+  content: "";
+}
+
+.text-truncate {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.vr {
+  display: inline-block;
+  align-self: stretch;
+  width: 1px;
+  min-height: 1em;
+  background-color: currentcolor;
+  opacity: 0.25;
+}
+
+.align-baseline {
+  vertical-align: baseline !important;
+}
+
+.align-top {
+  vertical-align: top !important;
+}
+
+.align-middle {
+  vertical-align: middle !important;
+}
+
+.align-bottom {
+  vertical-align: bottom !important;
+}
+
+.align-text-bottom {
+  vertical-align: text-bottom !important;
+}
+
+.align-text-top {
+  vertical-align: text-top !important;
+}
+
+.float-start {
+  float: left !important;
+}
+
+.float-end {
+  float: right !important;
+}
+
+.float-none {
+  float: none !important;
+}
+
+.opacity-0 {
+  opacity: 0 !important;
+}
+
+.opacity-25 {
+  opacity: 0.25 !important;
+}
+
+.opacity-50 {
+  opacity: 0.5 !important;
+}
+
+.opacity-75 {
+  opacity: 0.75 !important;
+}
+
+.opacity-100 {
+  opacity: 1 !important;
+}
+
+.overflow-auto {
+  overflow: auto !important;
+}
+
+.overflow-hidden {
+  overflow: hidden !important;
+}
+
+.overflow-visible {
+  overflow: visible !important;
+}
+
+.overflow-scroll {
+  overflow: scroll !important;
+}
+
+.d-inline {
+  display: inline !important;
+}
+
+.d-inline-block {
+  display: inline-block !important;
+}
+
+.d-block {
+  display: block !important;
+}
+
+.d-grid {
+  display: grid !important;
+}
+
+.d-table {
+  display: table !important;
+}
+
+.d-table-row {
+  display: table-row !important;
+}
+
+.d-table-cell {
+  display: table-cell !important;
+}
+
+.d-flex {
+  display: flex !important;
+}
+
+.d-inline-flex {
+  display: inline-flex !important;
+}
+
+.d-none {
+  display: none !important;
+}
+
+.shadow {
+  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+}
+
+.shadow-sm {
+  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+}
+
+.shadow-lg {
+  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
+}
+
+.shadow-none {
+  box-shadow: none !important;
+}
+
+.position-static {
+  position: static !important;
+}
+
+.position-relative {
+  position: relative !important;
+}
+
+.position-absolute {
+  position: absolute !important;
+}
+
+.position-fixed {
+  position: fixed !important;
+}
+
+.position-sticky {
+  position: sticky !important;
+}
+
+.top-0 {
+  top: 0 !important;
+}
+
+.top-50 {
+  top: 50% !important;
+}
+
+.top-100 {
+  top: 100% !important;
+}
+
+.bottom-0 {
+  bottom: 0 !important;
+}
+
+.bottom-50 {
+  bottom: 50% !important;
+}
+
+.bottom-100 {
+  bottom: 100% !important;
+}
+
+.start-0 {
+  left: 0 !important;
+}
+
+.start-50 {
+  left: 50% !important;
+}
+
+.start-100 {
+  left: 100% !important;
+}
+
+.end-0 {
+  right: 0 !important;
+}
+
+.end-50 {
+  right: 50% !important;
+}
+
+.end-100 {
+  right: 100% !important;
+}
+
+.translate-middle {
+  transform: translate(-50%, -50%) !important;
+}
+
+.translate-middle-x {
+  transform: translateX(-50%) !important;
+}
+
+.translate-middle-y {
+  transform: translateY(-50%) !important;
+}
+
+.border {
+  border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-0 {
+  border: 0 !important;
+}
+
+.border-top {
+  border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-top-0 {
+  border-top: 0 !important;
+}
+
+.border-end {
+  border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-end-0 {
+  border-right: 0 !important;
+}
+
+.border-bottom {
+  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-bottom-0 {
+  border-bottom: 0 !important;
+}
+
+.border-start {
+  border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-start-0 {
+  border-left: 0 !important;
+}
+
+.border-primary {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-secondary {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-success {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-info {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-warning {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-danger {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-light {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-dark {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-white {
+  --bs-border-opacity: 1;
+  border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-1 {
+  --bs-border-width: 1px;
+}
+
+.border-2 {
+  --bs-border-width: 2px;
+}
+
+.border-3 {
+  --bs-border-width: 3px;
+}
+
+.border-4 {
+  --bs-border-width: 4px;
+}
+
+.border-5 {
+  --bs-border-width: 5px;
+}
+
+.border-opacity-10 {
+  --bs-border-opacity: 0.1;
+}
+
+.border-opacity-25 {
+  --bs-border-opacity: 0.25;
+}
+
+.border-opacity-50 {
+  --bs-border-opacity: 0.5;
+}
+
+.border-opacity-75 {
+  --bs-border-opacity: 0.75;
+}
+
+.border-opacity-100 {
+  --bs-border-opacity: 1;
+}
+
+.w-25 {
+  width: 25% !important;
+}
+
+.w-50 {
+  width: 50% !important;
+}
+
+.w-75 {
+  width: 75% !important;
+}
+
+.w-100 {
+  width: 100% !important;
+}
+
+.w-auto {
+  width: auto !important;
+}
+
+.mw-100 {
+  max-width: 100% !important;
+}
+
+.vw-100 {
+  width: 100vw !important;
+}
+
+.min-vw-100 {
+  min-width: 100vw !important;
+}
+
+.h-25 {
+  height: 25% !important;
+}
+
+.h-50 {
+  height: 50% !important;
+}
+
+.h-75 {
+  height: 75% !important;
+}
+
+.h-100 {
+  height: 100% !important;
+}
+
+.h-auto {
+  height: auto !important;
+}
+
+.mh-100 {
+  max-height: 100% !important;
+}
+
+.vh-100 {
+  height: 100vh !important;
+}
+
+.min-vh-100 {
+  min-height: 100vh !important;
+}
+
+.flex-fill {
+  flex: 1 1 auto !important;
+}
+
+.flex-row {
+  flex-direction: row !important;
+}
+
+.flex-column {
+  flex-direction: column !important;
+}
+
+.flex-row-reverse {
+  flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+  flex-direction: column-reverse !important;
+}
+
+.flex-grow-0 {
+  flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+  flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+  flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+  flex-shrink: 1 !important;
+}
+
+.flex-wrap {
+  flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+  flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+  flex-wrap: wrap-reverse !important;
+}
+
+.justify-content-start {
+  justify-content: flex-start !important;
+}
+
+.justify-content-end {
+  justify-content: flex-end !important;
+}
+
+.justify-content-center {
+  justify-content: center !important;
+}
+
+.justify-content-between {
+  justify-content: space-between !important;
+}
+
+.justify-content-around {
+  justify-content: space-around !important;
+}
+
+.justify-content-evenly {
+  justify-content: space-evenly !important;
+}
+
+.align-items-start {
+  align-items: flex-start !important;
+}
+
+.align-items-end {
+  align-items: flex-end !important;
+}
+
+.align-items-center {
+  align-items: center !important;
+}
+
+.align-items-baseline {
+  align-items: baseline !important;
+}
+
+.align-items-stretch {
+  align-items: stretch !important;
+}
+
+.align-content-start {
+  align-content: flex-start !important;
+}
+
+.align-content-end {
+  align-content: flex-end !important;
+}
+
+.align-content-center {
+  align-content: center !important;
+}
+
+.align-content-between {
+  align-content: space-between !important;
+}
+
+.align-content-around {
+  align-content: space-around !important;
+}
+
+.align-content-stretch {
+  align-content: stretch !important;
+}
+
+.align-self-auto {
+  align-self: auto !important;
+}
+
+.align-self-start {
+  align-self: flex-start !important;
+}
+
+.align-self-end {
+  align-self: flex-end !important;
+}
+
+.align-self-center {
+  align-self: center !important;
+}
+
+.align-self-baseline {
+  align-self: baseline !important;
+}
+
+.align-self-stretch {
+  align-self: stretch !important;
+}
+
+.order-first {
+  order: -1 !important;
+}
+
+.order-0 {
+  order: 0 !important;
+}
+
+.order-1 {
+  order: 1 !important;
+}
+
+.order-2 {
+  order: 2 !important;
+}
+
+.order-3 {
+  order: 3 !important;
+}
+
+.order-4 {
+  order: 4 !important;
+}
+
+.order-5 {
+  order: 5 !important;
+}
+
+.order-last {
+  order: 6 !important;
+}
+
+.m-0 {
+  margin: 0 !important;
+}
+
+.m-1 {
+  margin: 0.25rem !important;
+}
+
+.m-2 {
+  margin: 0.5rem !important;
+}
+
+.m-3 {
+  margin: 1rem !important;
+}
+
+.m-4 {
+  margin: 1.5rem !important;
+}
+
+.m-5 {
+  margin: 3rem !important;
+}
+
+.m-auto {
+  margin: auto !important;
+}
+
+.mx-0 {
+  margin-right: 0 !important;
+  margin-left: 0 !important;
+}
+
+.mx-1 {
+  margin-right: 0.25rem !important;
+  margin-left: 0.25rem !important;
+}
+
+.mx-2 {
+  margin-right: 0.5rem !important;
+  margin-left: 0.5rem !important;
+}
+
+.mx-3 {
+  margin-right: 1rem !important;
+  margin-left: 1rem !important;
+}
+
+.mx-4 {
+  margin-right: 1.5rem !important;
+  margin-left: 1.5rem !important;
+}
+
+.mx-5 {
+  margin-right: 3rem !important;
+  margin-left: 3rem !important;
+}
+
+.mx-auto {
+  margin-right: auto !important;
+  margin-left: auto !important;
+}
+
+.my-0 {
+  margin-top: 0 !important;
+  margin-bottom: 0 !important;
+}
+
+.my-1 {
+  margin-top: 0.25rem !important;
+  margin-bottom: 0.25rem !important;
+}
+
+.my-2 {
+  margin-top: 0.5rem !important;
+  margin-bottom: 0.5rem !important;
+}
+
+.my-3 {
+  margin-top: 1rem !important;
+  margin-bottom: 1rem !important;
+}
+
+.my-4 {
+  margin-top: 1.5rem !important;
+  margin-bottom: 1.5rem !important;
+}
+
+.my-5 {
+  margin-top: 3rem !important;
+  margin-bottom: 3rem !important;
+}
+
+.my-auto {
+  margin-top: auto !important;
+  margin-bottom: auto !important;
+}
+
+.mt-0 {
+  margin-top: 0 !important;
+}
+
+.mt-1 {
+  margin-top: 0.25rem !important;
+}
+
+.mt-2 {
+  margin-top: 0.5rem !important;
+}
+
+.mt-3 {
+  margin-top: 1rem !important;
+}
+
+.mt-4 {
+  margin-top: 1.5rem !important;
+}
+
+.mt-5 {
+  margin-top: 3rem !important;
+}
+
+.mt-auto {
+  margin-top: auto !important;
+}
+
+.me-0 {
+  margin-right: 0 !important;
+}
+
+.me-1 {
+  margin-right: 0.25rem !important;
+}
+
+.me-2 {
+  margin-right: 0.5rem !important;
+}
+
+.me-3 {
+  margin-right: 1rem !important;
+}
+
+.me-4 {
+  margin-right: 1.5rem !important;
+}
+
+.me-5 {
+  margin-right: 3rem !important;
+}
+
+.me-auto {
+  margin-right: auto !important;
+}
+
+.mb-0 {
+  margin-bottom: 0 !important;
+}
+
+.mb-1 {
+  margin-bottom: 0.25rem !important;
+}
+
+.mb-2 {
+  margin-bottom: 0.5rem !important;
+}
+
+.mb-3 {
+  margin-bottom: 1rem !important;
+}
+
+.mb-4 {
+  margin-bottom: 1.5rem !important;
+}
+
+.mb-5 {
+  margin-bottom: 3rem !important;
+}
+
+.mb-auto {
+  margin-bottom: auto !important;
+}
+
+.ms-0 {
+  margin-left: 0 !important;
+}
+
+.ms-1 {
+  margin-left: 0.25rem !important;
+}
+
+.ms-2 {
+  margin-left: 0.5rem !important;
+}
+
+.ms-3 {
+  margin-left: 1rem !important;
+}
+
+.ms-4 {
+  margin-left: 1.5rem !important;
+}
+
+.ms-5 {
+  margin-left: 3rem !important;
+}
+
+.ms-auto {
+  margin-left: auto !important;
+}
+
+.p-0 {
+  padding: 0 !important;
+}
+
+.p-1 {
+  padding: 0.25rem !important;
+}
+
+.p-2 {
+  padding: 0.5rem !important;
+}
+
+.p-3 {
+  padding: 1rem !important;
+}
+
+.p-4 {
+  padding: 1.5rem !important;
+}
+
+.p-5 {
+  padding: 3rem !important;
+}
+
+.px-0 {
+  padding-right: 0 !important;
+  padding-left: 0 !important;
+}
+
+.px-1 {
+  padding-right: 0.25rem !important;
+  padding-left: 0.25rem !important;
+}
+
+.px-2 {
+  padding-right: 0.5rem !important;
+  padding-left: 0.5rem !important;
+}
+
+.px-3 {
+  padding-right: 1rem !important;
+  padding-left: 1rem !important;
+}
+
+.px-4 {
+  padding-right: 1.5rem !important;
+  padding-left: 1.5rem !important;
+}
+
+.px-5 {
+  padding-right: 3rem !important;
+  padding-left: 3rem !important;
+}
+
+.py-0 {
+  padding-top: 0 !important;
+  padding-bottom: 0 !important;
+}
+
+.py-1 {
+  padding-top: 0.25rem !important;
+  padding-bottom: 0.25rem !important;
+}
+
+.py-2 {
+  padding-top: 0.5rem !important;
+  padding-bottom: 0.5rem !important;
+}
+
+.py-3 {
+  padding-top: 1rem !important;
+  padding-bottom: 1rem !important;
+}
+
+.py-4 {
+  padding-top: 1.5rem !important;
+  padding-bottom: 1.5rem !important;
+}
+
+.py-5 {
+  padding-top: 3rem !important;
+  padding-bottom: 3rem !important;
+}
+
+.pt-0 {
+  padding-top: 0 !important;
+}
+
+.pt-1 {
+  padding-top: 0.25rem !important;
+}
+
+.pt-2 {
+  padding-top: 0.5rem !important;
+}
+
+.pt-3 {
+  padding-top: 1rem !important;
+}
+
+.pt-4 {
+  padding-top: 1.5rem !important;
+}
+
+.pt-5 {
+  padding-top: 3rem !important;
+}
+
+.pe-0 {
+  padding-right: 0 !important;
+}
+
+.pe-1 {
+  padding-right: 0.25rem !important;
+}
+
+.pe-2 {
+  padding-right: 0.5rem !important;
+}
+
+.pe-3 {
+  padding-right: 1rem !important;
+}
+
+.pe-4 {
+  padding-right: 1.5rem !important;
+}
+
+.pe-5 {
+  padding-right: 3rem !important;
+}
+
+.pb-0 {
+  padding-bottom: 0 !important;
+}
+
+.pb-1 {
+  padding-bottom: 0.25rem !important;
+}
+
+.pb-2 {
+  padding-bottom: 0.5rem !important;
+}
+
+.pb-3 {
+  padding-bottom: 1rem !important;
+}
+
+.pb-4 {
+  padding-bottom: 1.5rem !important;
+}
+
+.pb-5 {
+  padding-bottom: 3rem !important;
+}
+
+.ps-0 {
+  padding-left: 0 !important;
+}
+
+.ps-1 {
+  padding-left: 0.25rem !important;
+}
+
+.ps-2 {
+  padding-left: 0.5rem !important;
+}
+
+.ps-3 {
+  padding-left: 1rem !important;
+}
+
+.ps-4 {
+  padding-left: 1.5rem !important;
+}
+
+.ps-5 {
+  padding-left: 3rem !important;
+}
+
+.gap-0 {
+  gap: 0 !important;
+}
+
+.gap-1 {
+  gap: 0.25rem !important;
+}
+
+.gap-2 {
+  gap: 0.5rem !important;
+}
+
+.gap-3 {
+  gap: 1rem !important;
+}
+
+.gap-4 {
+  gap: 1.5rem !important;
+}
+
+.gap-5 {
+  gap: 3rem !important;
+}
+
+.font-monospace {
+  font-family: var(--bs-font-monospace) !important;
+}
+
+.fs-1 {
+  font-size: calc(1.375rem + 1.5vw) !important;
+}
+
+.fs-2 {
+  font-size: calc(1.325rem + 0.9vw) !important;
+}
+
+.fs-3 {
+  font-size: calc(1.3rem + 0.6vw) !important;
+}
+
+.fs-4 {
+  font-size: calc(1.275rem + 0.3vw) !important;
+}
+
+.fs-5 {
+  font-size: 1.25rem !important;
+}
+
+.fs-6 {
+  font-size: 1rem !important;
+}
+
+.fst-italic {
+  font-style: italic !important;
+}
+
+.fst-normal {
+  font-style: normal !important;
+}
+
+.fw-light {
+  font-weight: 300 !important;
+}
+
+.fw-lighter {
+  font-weight: lighter !important;
+}
+
+.fw-normal {
+  font-weight: 400 !important;
+}
+
+.fw-bold {
+  font-weight: 700 !important;
+}
+
+.fw-semibold {
+  font-weight: 600 !important;
+}
+
+.fw-bolder {
+  font-weight: bolder !important;
+}
+
+.lh-1 {
+  line-height: 1 !important;
+}
+
+.lh-sm {
+  line-height: 1.25 !important;
+}
+
+.lh-base {
+  line-height: 1.5 !important;
+}
+
+.lh-lg {
+  line-height: 2 !important;
+}
+
+.text-start {
+  text-align: left !important;
+}
+
+.text-end {
+  text-align: right !important;
+}
+
+.text-center {
+  text-align: center !important;
+}
+
+.text-decoration-none {
+  text-decoration: none !important;
+}
+
+.text-decoration-underline {
+  text-decoration: underline !important;
+}
+
+.text-decoration-line-through {
+  text-decoration: line-through !important;
+}
+
+.text-lowercase {
+  text-transform: lowercase !important;
+}
+
+.text-uppercase {
+  text-transform: uppercase !important;
+}
+
+.text-capitalize {
+  text-transform: capitalize !important;
+}
+
+.text-wrap {
+  white-space: normal !important;
+}
+
+.text-nowrap {
+  white-space: nowrap !important;
+}
+
+/* rtl:begin:remove */
+.text-break {
+  word-wrap: break-word !important;
+  word-break: break-word !important;
+}
+
+/* rtl:end:remove */
+.text-primary {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-secondary {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-success {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-info {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-warning {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-danger {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-light {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-dark {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-black {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-white {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-body {
+  --bs-text-opacity: 1;
+  color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-muted {
+  --bs-text-opacity: 1;
+  color: #6c757d !important;
+}
+
+.text-black-50 {
+  --bs-text-opacity: 1;
+  color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+  --bs-text-opacity: 1;
+  color: rgba(255, 255, 255, 0.5) !important;
+}
+
+.text-reset {
+  --bs-text-opacity: 1;
+  color: inherit !important;
+}
+
+.text-opacity-25 {
+  --bs-text-opacity: 0.25;
+}
+
+.text-opacity-50 {
+  --bs-text-opacity: 0.5;
+}
+
+.text-opacity-75 {
+  --bs-text-opacity: 0.75;
+}
+
+.text-opacity-100 {
+  --bs-text-opacity: 1;
+}
+
+.bg-primary {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-secondary {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-success {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-info {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-warning {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-danger {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-light {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-dark {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-black {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-white {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body {
+  --bs-bg-opacity: 1;
+  background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-transparent {
+  --bs-bg-opacity: 1;
+  background-color: transparent !important;
+}
+
+.bg-opacity-10 {
+  --bs-bg-opacity: 0.1;
+}
+
+.bg-opacity-25 {
+  --bs-bg-opacity: 0.25;
+}
+
+.bg-opacity-50 {
+  --bs-bg-opacity: 0.5;
+}
+
+.bg-opacity-75 {
+  --bs-bg-opacity: 0.75;
+}
+
+.bg-opacity-100 {
+  --bs-bg-opacity: 1;
+}
+
+.bg-gradient {
+  background-image: var(--bs-gradient) !important;
+}
+
+.user-select-all {
+  user-select: all !important;
+}
+
+.user-select-auto {
+  user-select: auto !important;
+}
+
+.user-select-none {
+  user-select: none !important;
+}
+
+.pe-none {
+  pointer-events: none !important;
+}
+
+.pe-auto {
+  pointer-events: auto !important;
+}
+
+.rounded {
+  border-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-0 {
+  border-radius: 0 !important;
+}
+
+.rounded-1 {
+  border-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-2 {
+  border-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-3 {
+  border-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-4 {
+  border-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-5 {
+  border-radius: var(--bs-border-radius-2xl) !important;
+}
+
+.rounded-circle {
+  border-radius: 50% !important;
+}
+
+.rounded-pill {
+  border-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-top {
+  border-top-left-radius: var(--bs-border-radius) !important;
+  border-top-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-end {
+  border-top-right-radius: var(--bs-border-radius) !important;
+  border-bottom-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-bottom {
+  border-bottom-right-radius: var(--bs-border-radius) !important;
+  border-bottom-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-start {
+  border-bottom-left-radius: var(--bs-border-radius) !important;
+  border-top-left-radius: var(--bs-border-radius) !important;
+}
+
+.visible {
+  visibility: visible !important;
+}
+
+.invisible {
+  visibility: hidden !important;
+}
+
+@media (min-width: 576px) {
+  .float-sm-start {
+    float: left !important;
+  }
+  .float-sm-end {
+    float: right !important;
+  }
+  .float-sm-none {
+    float: none !important;
+  }
+  .d-sm-inline {
+    display: inline !important;
+  }
+  .d-sm-inline-block {
+    display: inline-block !important;
+  }
+  .d-sm-block {
+    display: block !important;
+  }
+  .d-sm-grid {
+    display: grid !important;
+  }
+  .d-sm-table {
+    display: table !important;
+  }
+  .d-sm-table-row {
+    display: table-row !important;
+  }
+  .d-sm-table-cell {
+    display: table-cell !important;
+  }
+  .d-sm-flex {
+    display: flex !important;
+  }
+  .d-sm-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-sm-none {
+    display: none !important;
+  }
+  .flex-sm-fill {
+    flex: 1 1 auto !important;
+  }
+  .flex-sm-row {
+    flex-direction: row !important;
+  }
+  .flex-sm-column {
+    flex-direction: column !important;
+  }
+  .flex-sm-row-reverse {
+    flex-direction: row-reverse !important;
+  }
+  .flex-sm-column-reverse {
+    flex-direction: column-reverse !important;
+  }
+  .flex-sm-grow-0 {
+    flex-grow: 0 !important;
+  }
+  .flex-sm-grow-1 {
+    flex-grow: 1 !important;
+  }
+  .flex-sm-shrink-0 {
+    flex-shrink: 0 !important;
+  }
+  .flex-sm-shrink-1 {
+    flex-shrink: 1 !important;
+  }
+  .flex-sm-wrap {
+    flex-wrap: wrap !important;
+  }
+  .flex-sm-nowrap {
+    flex-wrap: nowrap !important;
+  }
+  .flex-sm-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+  }
+  .justify-content-sm-start {
+    justify-content: flex-start !important;
+  }
+  .justify-content-sm-end {
+    justify-content: flex-end !important;
+  }
+  .justify-content-sm-center {
+    justify-content: center !important;
+  }
+  .justify-content-sm-between {
+    justify-content: space-between !important;
+  }
+  .justify-content-sm-around {
+    justify-content: space-around !important;
+  }
+  .justify-content-sm-evenly {
+    justify-content: space-evenly !important;
+  }
+  .align-items-sm-start {
+    align-items: flex-start !important;
+  }
+  .align-items-sm-end {
+    align-items: flex-end !important;
+  }
+  .align-items-sm-center {
+    align-items: center !important;
+  }
+  .align-items-sm-baseline {
+    align-items: baseline !important;
+  }
+  .align-items-sm-stretch {
+    align-items: stretch !important;
+  }
+  .align-content-sm-start {
+    align-content: flex-start !important;
+  }
+  .align-content-sm-end {
+    align-content: flex-end !important;
+  }
+  .align-content-sm-center {
+    align-content: center !important;
+  }
+  .align-content-sm-between {
+    align-content: space-between !important;
+  }
+  .align-content-sm-around {
+    align-content: space-around !important;
+  }
+  .align-content-sm-stretch {
+    align-content: stretch !important;
+  }
+  .align-self-sm-auto {
+    align-self: auto !important;
+  }
+  .align-self-sm-start {
+    align-self: flex-start !important;
+  }
+  .align-self-sm-end {
+    align-self: flex-end !important;
+  }
+  .align-self-sm-center {
+    align-self: center !important;
+  }
+  .align-self-sm-baseline {
+    align-self: baseline !important;
+  }
+  .align-self-sm-stretch {
+    align-self: stretch !important;
+  }
+  .order-sm-first {
+    order: -1 !important;
+  }
+  .order-sm-0 {
+    order: 0 !important;
+  }
+  .order-sm-1 {
+    order: 1 !important;
+  }
+  .order-sm-2 {
+    order: 2 !important;
+  }
+  .order-sm-3 {
+    order: 3 !important;
+  }
+  .order-sm-4 {
+    order: 4 !important;
+  }
+  .order-sm-5 {
+    order: 5 !important;
+  }
+  .order-sm-last {
+    order: 6 !important;
+  }
+  .m-sm-0 {
+    margin: 0 !important;
+  }
+  .m-sm-1 {
+    margin: 0.25rem !important;
+  }
+  .m-sm-2 {
+    margin: 0.5rem !important;
+  }
+  .m-sm-3 {
+    margin: 1rem !important;
+  }
+  .m-sm-4 {
+    margin: 1.5rem !important;
+  }
+  .m-sm-5 {
+    margin: 3rem !important;
+  }
+  .m-sm-auto {
+    margin: auto !important;
+  }
+  .mx-sm-0 {
+    margin-right: 0 !important;
+    margin-left: 0 !important;
+  }
+  .mx-sm-1 {
+    margin-right: 0.25rem !important;
+    margin-left: 0.25rem !important;
+  }
+  .mx-sm-2 {
+    margin-right: 0.5rem !important;
+    margin-left: 0.5rem !important;
+  }
+  .mx-sm-3 {
+    margin-right: 1rem !important;
+    margin-left: 1rem !important;
+  }
+  .mx-sm-4 {
+    margin-right: 1.5rem !important;
+    margin-left: 1.5rem !important;
+  }
+  .mx-sm-5 {
+    margin-right: 3rem !important;
+    margin-left: 3rem !important;
+  }
+  .mx-sm-auto {
+    margin-right: auto !important;
+    margin-left: auto !important;
+  }
+  .my-sm-0 {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+  }
+  .my-sm-1 {
+    margin-top: 0.25rem !important;
+    margin-bottom: 0.25rem !important;
+  }
+  .my-sm-2 {
+    margin-top: 0.5rem !important;
+    margin-bottom: 0.5rem !important;
+  }
+  .my-sm-3 {
+    margin-top: 1rem !important;
+    margin-bottom: 1rem !important;
+  }
+  .my-sm-4 {
+    margin-top: 1.5rem !important;
+    margin-bottom: 1.5rem !important;
+  }
+  .my-sm-5 {
+    margin-top: 3rem !important;
+    margin-bottom: 3rem !important;
+  }
+  .my-sm-auto {
+    margin-top: auto !important;
+    margin-bottom: auto !important;
+  }
+  .mt-sm-0 {
+    margin-top: 0 !important;
+  }
+  .mt-sm-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mt-sm-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mt-sm-3 {
+    margin-top: 1rem !important;
+  }
+  .mt-sm-4 {
+    margin-top: 1.5rem !important;
+  }
+  .mt-sm-5 {
+    margin-top: 3rem !important;
+  }
+  .mt-sm-auto {
+    margin-top: auto !important;
+  }
+  .me-sm-0 {
+    margin-right: 0 !important;
+  }
+  .me-sm-1 {
+    margin-right: 0.25rem !important;
+  }
+  .me-sm-2 {
+    margin-right: 0.5rem !important;
+  }
+  .me-sm-3 {
+    margin-right: 1rem !important;
+  }
+  .me-sm-4 {
+    margin-right: 1.5rem !important;
+  }
+  .me-sm-5 {
+    margin-right: 3rem !important;
+  }
+  .me-sm-auto {
+    margin-right: auto !important;
+  }
+  .mb-sm-0 {
+    margin-bottom: 0 !important;
+  }
+  .mb-sm-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .mb-sm-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .mb-sm-3 {
+    margin-bottom: 1rem !important;
+  }
+  .mb-sm-4 {
+    margin-bottom: 1.5rem !important;
+  }
+  .mb-sm-5 {
+    margin-bottom: 3rem !important;
+  }
+  .mb-sm-auto {
+    margin-bottom: auto !important;
+  }
+  .ms-sm-0 {
+    margin-left: 0 !important;
+  }
+  .ms-sm-1 {
+    margin-left: 0.25rem !important;
+  }
+  .ms-sm-2 {
+    margin-left: 0.5rem !important;
+  }
+  .ms-sm-3 {
+    margin-left: 1rem !important;
+  }
+  .ms-sm-4 {
+    margin-left: 1.5rem !important;
+  }
+  .ms-sm-5 {
+    margin-left: 3rem !important;
+  }
+  .ms-sm-auto {
+    margin-left: auto !important;
+  }
+  .p-sm-0 {
+    padding: 0 !important;
+  }
+  .p-sm-1 {
+    padding: 0.25rem !important;
+  }
+  .p-sm-2 {
+    padding: 0.5rem !important;
+  }
+  .p-sm-3 {
+    padding: 1rem !important;
+  }
+  .p-sm-4 {
+    padding: 1.5rem !important;
+  }
+  .p-sm-5 {
+    padding: 3rem !important;
+  }
+  .px-sm-0 {
+    padding-right: 0 !important;
+    padding-left: 0 !important;
+  }
+  .px-sm-1 {
+    padding-right: 0.25rem !important;
+    padding-left: 0.25rem !important;
+  }
+  .px-sm-2 {
+    padding-right: 0.5rem !important;
+    padding-left: 0.5rem !important;
+  }
+  .px-sm-3 {
+    padding-right: 1rem !important;
+    padding-left: 1rem !important;
+  }
+  .px-sm-4 {
+    padding-right: 1.5rem !important;
+    padding-left: 1.5rem !important;
+  }
+  .px-sm-5 {
+    padding-right: 3rem !important;
+    padding-left: 3rem !important;
+  }
+  .py-sm-0 {
+    padding-top: 0 !important;
+    padding-bottom: 0 !important;
+  }
+  .py-sm-1 {
+    padding-top: 0.25rem !important;
+    padding-bottom: 0.25rem !important;
+  }
+  .py-sm-2 {
+    padding-top: 0.5rem !important;
+    padding-bottom: 0.5rem !important;
+  }
+  .py-sm-3 {
+    padding-top: 1rem !important;
+    padding-bottom: 1rem !important;
+  }
+  .py-sm-4 {
+    padding-top: 1.5rem !important;
+    padding-bottom: 1.5rem !important;
+  }
+  .py-sm-5 {
+    padding-top: 3rem !important;
+    padding-bottom: 3rem !important;
+  }
+  .pt-sm-0 {
+    padding-top: 0 !important;
+  }
+  .pt-sm-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pt-sm-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pt-sm-3 {
+    padding-top: 1rem !important;
+  }
+  .pt-sm-4 {
+    padding-top: 1.5rem !important;
+  }
+  .pt-sm-5 {
+    padding-top: 3rem !important;
+  }
+  .pe-sm-0 {
+    padding-right: 0 !important;
+  }
+  .pe-sm-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pe-sm-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pe-sm-3 {
+    padding-right: 1rem !important;
+  }
+  .pe-sm-4 {
+    padding-right: 1.5rem !important;
+  }
+  .pe-sm-5 {
+    padding-right: 3rem !important;
+  }
+  .pb-sm-0 {
+    padding-bottom: 0 !important;
+  }
+  .pb-sm-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pb-sm-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pb-sm-3 {
+    padding-bottom: 1rem !important;
+  }
+  .pb-sm-4 {
+    padding-bottom: 1.5rem !important;
+  }
+  .pb-sm-5 {
+    padding-bottom: 3rem !important;
+  }
+  .ps-sm-0 {
+    padding-left: 0 !important;
+  }
+  .ps-sm-1 {
+    padding-left: 0.25rem !important;
+  }
+  .ps-sm-2 {
+    padding-left: 0.5rem !important;
+  }
+  .ps-sm-3 {
+    padding-left: 1rem !important;
+  }
+  .ps-sm-4 {
+    padding-left: 1.5rem !important;
+  }
+  .ps-sm-5 {
+    padding-left: 3rem !important;
+  }
+  .gap-sm-0 {
+    gap: 0 !important;
+  }
+  .gap-sm-1 {
+    gap: 0.25rem !important;
+  }
+  .gap-sm-2 {
+    gap: 0.5rem !important;
+  }
+  .gap-sm-3 {
+    gap: 1rem !important;
+  }
+  .gap-sm-4 {
+    gap: 1.5rem !important;
+  }
+  .gap-sm-5 {
+    gap: 3rem !important;
+  }
+  .text-sm-start {
+    text-align: left !important;
+  }
+  .text-sm-end {
+    text-align: right !important;
+  }
+  .text-sm-center {
+    text-align: center !important;
+  }
+}
+
+@media (min-width: 768px) {
+  .float-md-start {
+    float: left !important;
+  }
+  .float-md-end {
+    float: right !important;
+  }
+  .float-md-none {
+    float: none !important;
+  }
+  .d-md-inline {
+    display: inline !important;
+  }
+  .d-md-inline-block {
+    display: inline-block !important;
+  }
+  .d-md-block {
+    display: block !important;
+  }
+  .d-md-grid {
+    display: grid !important;
+  }
+  .d-md-table {
+    display: table !important;
+  }
+  .d-md-table-row {
+    display: table-row !important;
+  }
+  .d-md-table-cell {
+    display: table-cell !important;
+  }
+  .d-md-flex {
+    display: flex !important;
+  }
+  .d-md-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-md-none {
+    display: none !important;
+  }
+  .flex-md-fill {
+    flex: 1 1 auto !important;
+  }
+  .flex-md-row {
+    flex-direction: row !important;
+  }
+  .flex-md-column {
+    flex-direction: column !important;
+  }
+  .flex-md-row-reverse {
+    flex-direction: row-reverse !important;
+  }
+  .flex-md-column-reverse {
+    flex-direction: column-reverse !important;
+  }
+  .flex-md-grow-0 {
+    flex-grow: 0 !important;
+  }
+  .flex-md-grow-1 {
+    flex-grow: 1 !important;
+  }
+  .flex-md-shrink-0 {
+    flex-shrink: 0 !important;
+  }
+  .flex-md-shrink-1 {
+    flex-shrink: 1 !important;
+  }
+  .flex-md-wrap {
+    flex-wrap: wrap !important;
+  }
+  .flex-md-nowrap {
+    flex-wrap: nowrap !important;
+  }
+  .flex-md-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+  }
+  .justify-content-md-start {
+    justify-content: flex-start !important;
+  }
+  .justify-content-md-end {
+    justify-content: flex-end !important;
+  }
+  .justify-content-md-center {
+    justify-content: center !important;
+  }
+  .justify-content-md-between {
+    justify-content: space-between !important;
+  }
+  .justify-content-md-around {
+    justify-content: space-around !important;
+  }
+  .justify-content-md-evenly {
+    justify-content: space-evenly !important;
+  }
+  .align-items-md-start {
+    align-items: flex-start !important;
+  }
+  .align-items-md-end {
+    align-items: flex-end !important;
+  }
+  .align-items-md-center {
+    align-items: center !important;
+  }
+  .align-items-md-baseline {
+    align-items: baseline !important;
+  }
+  .align-items-md-stretch {
+    align-items: stretch !important;
+  }
+  .align-content-md-start {
+    align-content: flex-start !important;
+  }
+  .align-content-md-end {
+    align-content: flex-end !important;
+  }
+  .align-content-md-center {
+    align-content: center !important;
+  }
+  .align-content-md-between {
+    align-content: space-between !important;
+  }
+  .align-content-md-around {
+    align-content: space-around !important;
+  }
+  .align-content-md-stretch {
+    align-content: stretch !important;
+  }
+  .align-self-md-auto {
+    align-self: auto !important;
+  }
+  .align-self-md-start {
+    align-self: flex-start !important;
+  }
+  .align-self-md-end {
+    align-self: flex-end !important;
+  }
+  .align-self-md-center {
+    align-self: center !important;
+  }
+  .align-self-md-baseline {
+    align-self: baseline !important;
+  }
+  .align-self-md-stretch {
+    align-self: stretch !important;
+  }
+  .order-md-first {
+    order: -1 !important;
+  }
+  .order-md-0 {
+    order: 0 !important;
+  }
+  .order-md-1 {
+    order: 1 !important;
+  }
+  .order-md-2 {
+    order: 2 !important;
+  }
+  .order-md-3 {
+    order: 3 !important;
+  }
+  .order-md-4 {
+    order: 4 !important;
+  }
+  .order-md-5 {
+    order: 5 !important;
+  }
+  .order-md-last {
+    order: 6 !important;
+  }
+  .m-md-0 {
+    margin: 0 !important;
+  }
+  .m-md-1 {
+    margin: 0.25rem !important;
+  }
+  .m-md-2 {
+    margin: 0.5rem !important;
+  }
+  .m-md-3 {
+    margin: 1rem !important;
+  }
+  .m-md-4 {
+    margin: 1.5rem !important;
+  }
+  .m-md-5 {
+    margin: 3rem !important;
+  }
+  .m-md-auto {
+    margin: auto !important;
+  }
+  .mx-md-0 {
+    margin-right: 0 !important;
+    margin-left: 0 !important;
+  }
+  .mx-md-1 {
+    margin-right: 0.25rem !important;
+    margin-left: 0.25rem !important;
+  }
+  .mx-md-2 {
+    margin-right: 0.5rem !important;
+    margin-left: 0.5rem !important;
+  }
+  .mx-md-3 {
+    margin-right: 1rem !important;
+    margin-left: 1rem !important;
+  }
+  .mx-md-4 {
+    margin-right: 1.5rem !important;
+    margin-left: 1.5rem !important;
+  }
+  .mx-md-5 {
+    margin-right: 3rem !important;
+    margin-left: 3rem !important;
+  }
+  .mx-md-auto {
+    margin-right: auto !important;
+    margin-left: auto !important;
+  }
+  .my-md-0 {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+  }
+  .my-md-1 {
+    margin-top: 0.25rem !important;
+    margin-bottom: 0.25rem !important;
+  }
+  .my-md-2 {
+    margin-top: 0.5rem !important;
+    margin-bottom: 0.5rem !important;
+  }
+  .my-md-3 {
+    margin-top: 1rem !important;
+    margin-bottom: 1rem !important;
+  }
+  .my-md-4 {
+    margin-top: 1.5rem !important;
+    margin-bottom: 1.5rem !important;
+  }
+  .my-md-5 {
+    margin-top: 3rem !important;
+    margin-bottom: 3rem !important;
+  }
+  .my-md-auto {
+    margin-top: auto !important;
+    margin-bottom: auto !important;
+  }
+  .mt-md-0 {
+    margin-top: 0 !important;
+  }
+  .mt-md-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mt-md-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mt-md-3 {
+    margin-top: 1rem !important;
+  }
+  .mt-md-4 {
+    margin-top: 1.5rem !important;
+  }
+  .mt-md-5 {
+    margin-top: 3rem !important;
+  }
+  .mt-md-auto {
+    margin-top: auto !important;
+  }
+  .me-md-0 {
+    margin-right: 0 !important;
+  }
+  .me-md-1 {
+    margin-right: 0.25rem !important;
+  }
+  .me-md-2 {
+    margin-right: 0.5rem !important;
+  }
+  .me-md-3 {
+    margin-right: 1rem !important;
+  }
+  .me-md-4 {
+    margin-right: 1.5rem !important;
+  }
+  .me-md-5 {
+    margin-right: 3rem !important;
+  }
+  .me-md-auto {
+    margin-right: auto !important;
+  }
+  .mb-md-0 {
+    margin-bottom: 0 !important;
+  }
+  .mb-md-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .mb-md-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .mb-md-3 {
+    margin-bottom: 1rem !important;
+  }
+  .mb-md-4 {
+    margin-bottom: 1.5rem !important;
+  }
+  .mb-md-5 {
+    margin-bottom: 3rem !important;
+  }
+  .mb-md-auto {
+    margin-bottom: auto !important;
+  }
+  .ms-md-0 {
+    margin-left: 0 !important;
+  }
+  .ms-md-1 {
+    margin-left: 0.25rem !important;
+  }
+  .ms-md-2 {
+    margin-left: 0.5rem !important;
+  }
+  .ms-md-3 {
+    margin-left: 1rem !important;
+  }
+  .ms-md-4 {
+    margin-left: 1.5rem !important;
+  }
+  .ms-md-5 {
+    margin-left: 3rem !important;
+  }
+  .ms-md-auto {
+    margin-left: auto !important;
+  }
+  .p-md-0 {
+    padding: 0 !important;
+  }
+  .p-md-1 {
+    padding: 0.25rem !important;
+  }
+  .p-md-2 {
+    padding: 0.5rem !important;
+  }
+  .p-md-3 {
+    padding: 1rem !important;
+  }
+  .p-md-4 {
+    padding: 1.5rem !important;
+  }
+  .p-md-5 {
+    padding: 3rem !important;
+  }
+  .px-md-0 {
+    padding-right: 0 !important;
+    padding-left: 0 !important;
+  }
+  .px-md-1 {
+    padding-right: 0.25rem !important;
+    padding-left: 0.25rem !important;
+  }
+  .px-md-2 {
+    padding-right: 0.5rem !important;
+    padding-left: 0.5rem !important;
+  }
+  .px-md-3 {
+    padding-right: 1rem !important;
+    padding-left: 1rem !important;
+  }
+  .px-md-4 {
+    padding-right: 1.5rem !important;
+    padding-left: 1.5rem !important;
+  }
+  .px-md-5 {
+    padding-right: 3rem !important;
+    padding-left: 3rem !important;
+  }
+  .py-md-0 {
+    padding-top: 0 !important;
+    padding-bottom: 0 !important;
+  }
+  .py-md-1 {
+    padding-top: 0.25rem !important;
+    padding-bottom: 0.25rem !important;
+  }
+  .py-md-2 {
+    padding-top: 0.5rem !important;
+    padding-bottom: 0.5rem !important;
+  }
+  .py-md-3 {
+    padding-top: 1rem !important;
+    padding-bottom: 1rem !important;
+  }
+  .py-md-4 {
+    padding-top: 1.5rem !important;
+    padding-bottom: 1.5rem !important;
+  }
+  .py-md-5 {
+    padding-top: 3rem !important;
+    padding-bottom: 3rem !important;
+  }
+  .pt-md-0 {
+    padding-top: 0 !important;
+  }
+  .pt-md-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pt-md-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pt-md-3 {
+    padding-top: 1rem !important;
+  }
+  .pt-md-4 {
+    padding-top: 1.5rem !important;
+  }
+  .pt-md-5 {
+    padding-top: 3rem !important;
+  }
+  .pe-md-0 {
+    padding-right: 0 !important;
+  }
+  .pe-md-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pe-md-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pe-md-3 {
+    padding-right: 1rem !important;
+  }
+  .pe-md-4 {
+    padding-right: 1.5rem !important;
+  }
+  .pe-md-5 {
+    padding-right: 3rem !important;
+  }
+  .pb-md-0 {
+    padding-bottom: 0 !important;
+  }
+  .pb-md-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pb-md-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pb-md-3 {
+    padding-bottom: 1rem !important;
+  }
+  .pb-md-4 {
+    padding-bottom: 1.5rem !important;
+  }
+  .pb-md-5 {
+    padding-bottom: 3rem !important;
+  }
+  .ps-md-0 {
+    padding-left: 0 !important;
+  }
+  .ps-md-1 {
+    padding-left: 0.25rem !important;
+  }
+  .ps-md-2 {
+    padding-left: 0.5rem !important;
+  }
+  .ps-md-3 {
+    padding-left: 1rem !important;
+  }
+  .ps-md-4 {
+    padding-left: 1.5rem !important;
+  }
+  .ps-md-5 {
+    padding-left: 3rem !important;
+  }
+  .gap-md-0 {
+    gap: 0 !important;
+  }
+  .gap-md-1 {
+    gap: 0.25rem !important;
+  }
+  .gap-md-2 {
+    gap: 0.5rem !important;
+  }
+  .gap-md-3 {
+    gap: 1rem !important;
+  }
+  .gap-md-4 {
+    gap: 1.5rem !important;
+  }
+  .gap-md-5 {
+    gap: 3rem !important;
+  }
+  .text-md-start {
+    text-align: left !important;
+  }
+  .text-md-end {
+    text-align: right !important;
+  }
+  .text-md-center {
+    text-align: center !important;
+  }
+}
+
+@media (min-width: 992px) {
+  .float-lg-start {
+    float: left !important;
+  }
+  .float-lg-end {
+    float: right !important;
+  }
+  .float-lg-none {
+    float: none !important;
+  }
+  .d-lg-inline {
+    display: inline !important;
+  }
+  .d-lg-inline-block {
+    display: inline-block !important;
+  }
+  .d-lg-block {
+    display: block !important;
+  }
+  .d-lg-grid {
+    display: grid !important;
+  }
+  .d-lg-table {
+    display: table !important;
+  }
+  .d-lg-table-row {
+    display: table-row !important;
+  }
+  .d-lg-table-cell {
+    display: table-cell !important;
+  }
+  .d-lg-flex {
+    display: flex !important;
+  }
+  .d-lg-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-lg-none {
+    display: none !important;
+  }
+  .flex-lg-fill {
+    flex: 1 1 auto !important;
+  }
+  .flex-lg-row {
+    flex-direction: row !important;
+  }
+  .flex-lg-column {
+    flex-direction: column !important;
+  }
+  .flex-lg-row-reverse {
+    flex-direction: row-reverse !important;
+  }
+  .flex-lg-column-reverse {
+    flex-direction: column-reverse !important;
+  }
+  .flex-lg-grow-0 {
+    flex-grow: 0 !important;
+  }
+  .flex-lg-grow-1 {
+    flex-grow: 1 !important;
+  }
+  .flex-lg-shrink-0 {
+    flex-shrink: 0 !important;
+  }
+  .flex-lg-shrink-1 {
+    flex-shrink: 1 !important;
+  }
+  .flex-lg-wrap {
+    flex-wrap: wrap !important;
+  }
+  .flex-lg-nowrap {
+    flex-wrap: nowrap !important;
+  }
+  .flex-lg-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+  }
+  .justify-content-lg-start {
+    justify-content: flex-start !important;
+  }
+  .justify-content-lg-end {
+    justify-content: flex-end !important;
+  }
+  .justify-content-lg-center {
+    justify-content: center !important;
+  }
+  .justify-content-lg-between {
+    justify-content: space-between !important;
+  }
+  .justify-content-lg-around {
+    justify-content: space-around !important;
+  }
+  .justify-content-lg-evenly {
+    justify-content: space-evenly !important;
+  }
+  .align-items-lg-start {
+    align-items: flex-start !important;
+  }
+  .align-items-lg-end {
+    align-items: flex-end !important;
+  }
+  .align-items-lg-center {
+    align-items: center !important;
+  }
+  .align-items-lg-baseline {
+    align-items: baseline !important;
+  }
+  .align-items-lg-stretch {
+    align-items: stretch !important;
+  }
+  .align-content-lg-start {
+    align-content: flex-start !important;
+  }
+  .align-content-lg-end {
+    align-content: flex-end !important;
+  }
+  .align-content-lg-center {
+    align-content: center !important;
+  }
+  .align-content-lg-between {
+    align-content: space-between !important;
+  }
+  .align-content-lg-around {
+    align-content: space-around !important;
+  }
+  .align-content-lg-stretch {
+    align-content: stretch !important;
+  }
+  .align-self-lg-auto {
+    align-self: auto !important;
+  }
+  .align-self-lg-start {
+    align-self: flex-start !important;
+  }
+  .align-self-lg-end {
+    align-self: flex-end !important;
+  }
+  .align-self-lg-center {
+    align-self: center !important;
+  }
+  .align-self-lg-baseline {
+    align-self: baseline !important;
+  }
+  .align-self-lg-stretch {
+    align-self: stretch !important;
+  }
+  .order-lg-first {
+    order: -1 !important;
+  }
+  .order-lg-0 {
+    order: 0 !important;
+  }
+  .order-lg-1 {
+    order: 1 !important;
+  }
+  .order-lg-2 {
+    order: 2 !important;
+  }
+  .order-lg-3 {
+    order: 3 !important;
+  }
+  .order-lg-4 {
+    order: 4 !important;
+  }
+  .order-lg-5 {
+    order: 5 !important;
+  }
+  .order-lg-last {
+    order: 6 !important;
+  }
+  .m-lg-0 {
+    margin: 0 !important;
+  }
+  .m-lg-1 {
+    margin: 0.25rem !important;
+  }
+  .m-lg-2 {
+    margin: 0.5rem !important;
+  }
+  .m-lg-3 {
+    margin: 1rem !important;
+  }
+  .m-lg-4 {
+    margin: 1.5rem !important;
+  }
+  .m-lg-5 {
+    margin: 3rem !important;
+  }
+  .m-lg-auto {
+    margin: auto !important;
+  }
+  .mx-lg-0 {
+    margin-right: 0 !important;
+    margin-left: 0 !important;
+  }
+  .mx-lg-1 {
+    margin-right: 0.25rem !important;
+    margin-left: 0.25rem !important;
+  }
+  .mx-lg-2 {
+    margin-right: 0.5rem !important;
+    margin-left: 0.5rem !important;
+  }
+  .mx-lg-3 {
+    margin-right: 1rem !important;
+    margin-left: 1rem !important;
+  }
+  .mx-lg-4 {
+    margin-right: 1.5rem !important;
+    margin-left: 1.5rem !important;
+  }
+  .mx-lg-5 {
+    margin-right: 3rem !important;
+    margin-left: 3rem !important;
+  }
+  .mx-lg-auto {
+    margin-right: auto !important;
+    margin-left: auto !important;
+  }
+  .my-lg-0 {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+  }
+  .my-lg-1 {
+    margin-top: 0.25rem !important;
+    margin-bottom: 0.25rem !important;
+  }
+  .my-lg-2 {
+    margin-top: 0.5rem !important;
+    margin-bottom: 0.5rem !important;
+  }
+  .my-lg-3 {
+    margin-top: 1rem !important;
+    margin-bottom: 1rem !important;
+  }
+  .my-lg-4 {
+    margin-top: 1.5rem !important;
+    margin-bottom: 1.5rem !important;
+  }
+  .my-lg-5 {
+    margin-top: 3rem !important;
+    margin-bottom: 3rem !important;
+  }
+  .my-lg-auto {
+    margin-top: auto !important;
+    margin-bottom: auto !important;
+  }
+  .mt-lg-0 {
+    margin-top: 0 !important;
+  }
+  .mt-lg-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mt-lg-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mt-lg-3 {
+    margin-top: 1rem !important;
+  }
+  .mt-lg-4 {
+    margin-top: 1.5rem !important;
+  }
+  .mt-lg-5 {
+    margin-top: 3rem !important;
+  }
+  .mt-lg-auto {
+    margin-top: auto !important;
+  }
+  .me-lg-0 {
+    margin-right: 0 !important;
+  }
+  .me-lg-1 {
+    margin-right: 0.25rem !important;
+  }
+  .me-lg-2 {
+    margin-right: 0.5rem !important;
+  }
+  .me-lg-3 {
+    margin-right: 1rem !important;
+  }
+  .me-lg-4 {
+    margin-right: 1.5rem !important;
+  }
+  .me-lg-5 {
+    margin-right: 3rem !important;
+  }
+  .me-lg-auto {
+    margin-right: auto !important;
+  }
+  .mb-lg-0 {
+    margin-bottom: 0 !important;
+  }
+  .mb-lg-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .mb-lg-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .mb-lg-3 {
+    margin-bottom: 1rem !important;
+  }
+  .mb-lg-4 {
+    margin-bottom: 1.5rem !important;
+  }
+  .mb-lg-5 {
+    margin-bottom: 3rem !important;
+  }
+  .mb-lg-auto {
+    margin-bottom: auto !important;
+  }
+  .ms-lg-0 {
+    margin-left: 0 !important;
+  }
+  .ms-lg-1 {
+    margin-left: 0.25rem !important;
+  }
+  .ms-lg-2 {
+    margin-left: 0.5rem !important;
+  }
+  .ms-lg-3 {
+    margin-left: 1rem !important;
+  }
+  .ms-lg-4 {
+    margin-left: 1.5rem !important;
+  }
+  .ms-lg-5 {
+    margin-left: 3rem !important;
+  }
+  .ms-lg-auto {
+    margin-left: auto !important;
+  }
+  .p-lg-0 {
+    padding: 0 !important;
+  }
+  .p-lg-1 {
+    padding: 0.25rem !important;
+  }
+  .p-lg-2 {
+    padding: 0.5rem !important;
+  }
+  .p-lg-3 {
+    padding: 1rem !important;
+  }
+  .p-lg-4 {
+    padding: 1.5rem !important;
+  }
+  .p-lg-5 {
+    padding: 3rem !important;
+  }
+  .px-lg-0 {
+    padding-right: 0 !important;
+    padding-left: 0 !important;
+  }
+  .px-lg-1 {
+    padding-right: 0.25rem !important;
+    padding-left: 0.25rem !important;
+  }
+  .px-lg-2 {
+    padding-right: 0.5rem !important;
+    padding-left: 0.5rem !important;
+  }
+  .px-lg-3 {
+    padding-right: 1rem !important;
+    padding-left: 1rem !important;
+  }
+  .px-lg-4 {
+    padding-right: 1.5rem !important;
+    padding-left: 1.5rem !important;
+  }
+  .px-lg-5 {
+    padding-right: 3rem !important;
+    padding-left: 3rem !important;
+  }
+  .py-lg-0 {
+    padding-top: 0 !important;
+    padding-bottom: 0 !important;
+  }
+  .py-lg-1 {
+    padding-top: 0.25rem !important;
+    padding-bottom: 0.25rem !important;
+  }
+  .py-lg-2 {
+    padding-top: 0.5rem !important;
+    padding-bottom: 0.5rem !important;
+  }
+  .py-lg-3 {
+    padding-top: 1rem !important;
+    padding-bottom: 1rem !important;
+  }
+  .py-lg-4 {
+    padding-top: 1.5rem !important;
+    padding-bottom: 1.5rem !important;
+  }
+  .py-lg-5 {
+    padding-top: 3rem !important;
+    padding-bottom: 3rem !important;
+  }
+  .pt-lg-0 {
+    padding-top: 0 !important;
+  }
+  .pt-lg-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pt-lg-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pt-lg-3 {
+    padding-top: 1rem !important;
+  }
+  .pt-lg-4 {
+    padding-top: 1.5rem !important;
+  }
+  .pt-lg-5 {
+    padding-top: 3rem !important;
+  }
+  .pe-lg-0 {
+    padding-right: 0 !important;
+  }
+  .pe-lg-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pe-lg-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pe-lg-3 {
+    padding-right: 1rem !important;
+  }
+  .pe-lg-4 {
+    padding-right: 1.5rem !important;
+  }
+  .pe-lg-5 {
+    padding-right: 3rem !important;
+  }
+  .pb-lg-0 {
+    padding-bottom: 0 !important;
+  }
+  .pb-lg-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pb-lg-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pb-lg-3 {
+    padding-bottom: 1rem !important;
+  }
+  .pb-lg-4 {
+    padding-bottom: 1.5rem !important;
+  }
+  .pb-lg-5 {
+    padding-bottom: 3rem !important;
+  }
+  .ps-lg-0 {
+    padding-left: 0 !important;
+  }
+  .ps-lg-1 {
+    padding-left: 0.25rem !important;
+  }
+  .ps-lg-2 {
+    padding-left: 0.5rem !important;
+  }
+  .ps-lg-3 {
+    padding-left: 1rem !important;
+  }
+  .ps-lg-4 {
+    padding-left: 1.5rem !important;
+  }
+  .ps-lg-5 {
+    padding-left: 3rem !important;
+  }
+  .gap-lg-0 {
+    gap: 0 !important;
+  }
+  .gap-lg-1 {
+    gap: 0.25rem !important;
+  }
+  .gap-lg-2 {
+    gap: 0.5rem !important;
+  }
+  .gap-lg-3 {
+    gap: 1rem !important;
+  }
+  .gap-lg-4 {
+    gap: 1.5rem !important;
+  }
+  .gap-lg-5 {
+    gap: 3rem !important;
+  }
+  .text-lg-start {
+    text-align: left !important;
+  }
+  .text-lg-end {
+    text-align: right !important;
+  }
+  .text-lg-center {
+    text-align: center !important;
+  }
+}
+
+@media (min-width: 1200px) {
+  .float-xl-start {
+    float: left !important;
+  }
+  .float-xl-end {
+    float: right !important;
+  }
+  .float-xl-none {
+    float: none !important;
+  }
+  .d-xl-inline {
+    display: inline !important;
+  }
+  .d-xl-inline-block {
+    display: inline-block !important;
+  }
+  .d-xl-block {
+    display: block !important;
+  }
+  .d-xl-grid {
+    display: grid !important;
+  }
+  .d-xl-table {
+    display: table !important;
+  }
+  .d-xl-table-row {
+    display: table-row !important;
+  }
+  .d-xl-table-cell {
+    display: table-cell !important;
+  }
+  .d-xl-flex {
+    display: flex !important;
+  }
+  .d-xl-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-xl-none {
+    display: none !important;
+  }
+  .flex-xl-fill {
+    flex: 1 1 auto !important;
+  }
+  .flex-xl-row {
+    flex-direction: row !important;
+  }
+  .flex-xl-column {
+    flex-direction: column !important;
+  }
+  .flex-xl-row-reverse {
+    flex-direction: row-reverse !important;
+  }
+  .flex-xl-column-reverse {
+    flex-direction: column-reverse !important;
+  }
+  .flex-xl-grow-0 {
+    flex-grow: 0 !important;
+  }
+  .flex-xl-grow-1 {
+    flex-grow: 1 !important;
+  }
+  .flex-xl-shrink-0 {
+    flex-shrink: 0 !important;
+  }
+  .flex-xl-shrink-1 {
+    flex-shrink: 1 !important;
+  }
+  .flex-xl-wrap {
+    flex-wrap: wrap !important;
+  }
+  .flex-xl-nowrap {
+    flex-wrap: nowrap !important;
+  }
+  .flex-xl-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+  }
+  .justify-content-xl-start {
+    justify-content: flex-start !important;
+  }
+  .justify-content-xl-end {
+    justify-content: flex-end !important;
+  }
+  .justify-content-xl-center {
+    justify-content: center !important;
+  }
+  .justify-content-xl-between {
+    justify-content: space-between !important;
+  }
+  .justify-content-xl-around {
+    justify-content: space-around !important;
+  }
+  .justify-content-xl-evenly {
+    justify-content: space-evenly !important;
+  }
+  .align-items-xl-start {
+    align-items: flex-start !important;
+  }
+  .align-items-xl-end {
+    align-items: flex-end !important;
+  }
+  .align-items-xl-center {
+    align-items: center !important;
+  }
+  .align-items-xl-baseline {
+    align-items: baseline !important;
+  }
+  .align-items-xl-stretch {
+    align-items: stretch !important;
+  }
+  .align-content-xl-start {
+    align-content: flex-start !important;
+  }
+  .align-content-xl-end {
+    align-content: flex-end !important;
+  }
+  .align-content-xl-center {
+    align-content: center !important;
+  }
+  .align-content-xl-between {
+    align-content: space-between !important;
+  }
+  .align-content-xl-around {
+    align-content: space-around !important;
+  }
+  .align-content-xl-stretch {
+    align-content: stretch !important;
+  }
+  .align-self-xl-auto {
+    align-self: auto !important;
+  }
+  .align-self-xl-start {
+    align-self: flex-start !important;
+  }
+  .align-self-xl-end {
+    align-self: flex-end !important;
+  }
+  .align-self-xl-center {
+    align-self: center !important;
+  }
+  .align-self-xl-baseline {
+    align-self: baseline !important;
+  }
+  .align-self-xl-stretch {
+    align-self: stretch !important;
+  }
+  .order-xl-first {
+    order: -1 !important;
+  }
+  .order-xl-0 {
+    order: 0 !important;
+  }
+  .order-xl-1 {
+    order: 1 !important;
+  }
+  .order-xl-2 {
+    order: 2 !important;
+  }
+  .order-xl-3 {
+    order: 3 !important;
+  }
+  .order-xl-4 {
+    order: 4 !important;
+  }
+  .order-xl-5 {
+    order: 5 !important;
+  }
+  .order-xl-last {
+    order: 6 !important;
+  }
+  .m-xl-0 {
+    margin: 0 !important;
+  }
+  .m-xl-1 {
+    margin: 0.25rem !important;
+  }
+  .m-xl-2 {
+    margin: 0.5rem !important;
+  }
+  .m-xl-3 {
+    margin: 1rem !important;
+  }
+  .m-xl-4 {
+    margin: 1.5rem !important;
+  }
+  .m-xl-5 {
+    margin: 3rem !important;
+  }
+  .m-xl-auto {
+    margin: auto !important;
+  }
+  .mx-xl-0 {
+    margin-right: 0 !important;
+    margin-left: 0 !important;
+  }
+  .mx-xl-1 {
+    margin-right: 0.25rem !important;
+    margin-left: 0.25rem !important;
+  }
+  .mx-xl-2 {
+    margin-right: 0.5rem !important;
+    margin-left: 0.5rem !important;
+  }
+  .mx-xl-3 {
+    margin-right: 1rem !important;
+    margin-left: 1rem !important;
+  }
+  .mx-xl-4 {
+    margin-right: 1.5rem !important;
+    margin-left: 1.5rem !important;
+  }
+  .mx-xl-5 {
+    margin-right: 3rem !important;
+    margin-left: 3rem !important;
+  }
+  .mx-xl-auto {
+    margin-right: auto !important;
+    margin-left: auto !important;
+  }
+  .my-xl-0 {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+  }
+  .my-xl-1 {
+    margin-top: 0.25rem !important;
+    margin-bottom: 0.25rem !important;
+  }
+  .my-xl-2 {
+    margin-top: 0.5rem !important;
+    margin-bottom: 0.5rem !important;
+  }
+  .my-xl-3 {
+    margin-top: 1rem !important;
+    margin-bottom: 1rem !important;
+  }
+  .my-xl-4 {
+    margin-top: 1.5rem !important;
+    margin-bottom: 1.5rem !important;
+  }
+  .my-xl-5 {
+    margin-top: 3rem !important;
+    margin-bottom: 3rem !important;
+  }
+  .my-xl-auto {
+    margin-top: auto !important;
+    margin-bottom: auto !important;
+  }
+  .mt-xl-0 {
+    margin-top: 0 !important;
+  }
+  .mt-xl-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mt-xl-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mt-xl-3 {
+    margin-top: 1rem !important;
+  }
+  .mt-xl-4 {
+    margin-top: 1.5rem !important;
+  }
+  .mt-xl-5 {
+    margin-top: 3rem !important;
+  }
+  .mt-xl-auto {
+    margin-top: auto !important;
+  }
+  .me-xl-0 {
+    margin-right: 0 !important;
+  }
+  .me-xl-1 {
+    margin-right: 0.25rem !important;
+  }
+  .me-xl-2 {
+    margin-right: 0.5rem !important;
+  }
+  .me-xl-3 {
+    margin-right: 1rem !important;
+  }
+  .me-xl-4 {
+    margin-right: 1.5rem !important;
+  }
+  .me-xl-5 {
+    margin-right: 3rem !important;
+  }
+  .me-xl-auto {
+    margin-right: auto !important;
+  }
+  .mb-xl-0 {
+    margin-bottom: 0 !important;
+  }
+  .mb-xl-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .mb-xl-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .mb-xl-3 {
+    margin-bottom: 1rem !important;
+  }
+  .mb-xl-4 {
+    margin-bottom: 1.5rem !important;
+  }
+  .mb-xl-5 {
+    margin-bottom: 3rem !important;
+  }
+  .mb-xl-auto {
+    margin-bottom: auto !important;
+  }
+  .ms-xl-0 {
+    margin-left: 0 !important;
+  }
+  .ms-xl-1 {
+    margin-left: 0.25rem !important;
+  }
+  .ms-xl-2 {
+    margin-left: 0.5rem !important;
+  }
+  .ms-xl-3 {
+    margin-left: 1rem !important;
+  }
+  .ms-xl-4 {
+    margin-left: 1.5rem !important;
+  }
+  .ms-xl-5 {
+    margin-left: 3rem !important;
+  }
+  .ms-xl-auto {
+    margin-left: auto !important;
+  }
+  .p-xl-0 {
+    padding: 0 !important;
+  }
+  .p-xl-1 {
+    padding: 0.25rem !important;
+  }
+  .p-xl-2 {
+    padding: 0.5rem !important;
+  }
+  .p-xl-3 {
+    padding: 1rem !important;
+  }
+  .p-xl-4 {
+    padding: 1.5rem !important;
+  }
+  .p-xl-5 {
+    padding: 3rem !important;
+  }
+  .px-xl-0 {
+    padding-right: 0 !important;
+    padding-left: 0 !important;
+  }
+  .px-xl-1 {
+    padding-right: 0.25rem !important;
+    padding-left: 0.25rem !important;
+  }
+  .px-xl-2 {
+    padding-right: 0.5rem !important;
+    padding-left: 0.5rem !important;
+  }
+  .px-xl-3 {
+    padding-right: 1rem !important;
+    padding-left: 1rem !important;
+  }
+  .px-xl-4 {
+    padding-right: 1.5rem !important;
+    padding-left: 1.5rem !important;
+  }
+  .px-xl-5 {
+    padding-right: 3rem !important;
+    padding-left: 3rem !important;
+  }
+  .py-xl-0 {
+    padding-top: 0 !important;
+    padding-bottom: 0 !important;
+  }
+  .py-xl-1 {
+    padding-top: 0.25rem !important;
+    padding-bottom: 0.25rem !important;
+  }
+  .py-xl-2 {
+    padding-top: 0.5rem !important;
+    padding-bottom: 0.5rem !important;
+  }
+  .py-xl-3 {
+    padding-top: 1rem !important;
+    padding-bottom: 1rem !important;
+  }
+  .py-xl-4 {
+    padding-top: 1.5rem !important;
+    padding-bottom: 1.5rem !important;
+  }
+  .py-xl-5 {
+    padding-top: 3rem !important;
+    padding-bottom: 3rem !important;
+  }
+  .pt-xl-0 {
+    padding-top: 0 !important;
+  }
+  .pt-xl-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pt-xl-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pt-xl-3 {
+    padding-top: 1rem !important;
+  }
+  .pt-xl-4 {
+    padding-top: 1.5rem !important;
+  }
+  .pt-xl-5 {
+    padding-top: 3rem !important;
+  }
+  .pe-xl-0 {
+    padding-right: 0 !important;
+  }
+  .pe-xl-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pe-xl-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pe-xl-3 {
+    padding-right: 1rem !important;
+  }
+  .pe-xl-4 {
+    padding-right: 1.5rem !important;
+  }
+  .pe-xl-5 {
+    padding-right: 3rem !important;
+  }
+  .pb-xl-0 {
+    padding-bottom: 0 !important;
+  }
+  .pb-xl-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pb-xl-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pb-xl-3 {
+    padding-bottom: 1rem !important;
+  }
+  .pb-xl-4 {
+    padding-bottom: 1.5rem !important;
+  }
+  .pb-xl-5 {
+    padding-bottom: 3rem !important;
+  }
+  .ps-xl-0 {
+    padding-left: 0 !important;
+  }
+  .ps-xl-1 {
+    padding-left: 0.25rem !important;
+  }
+  .ps-xl-2 {
+    padding-left: 0.5rem !important;
+  }
+  .ps-xl-3 {
+    padding-left: 1rem !important;
+  }
+  .ps-xl-4 {
+    padding-left: 1.5rem !important;
+  }
+  .ps-xl-5 {
+    padding-left: 3rem !important;
+  }
+  .gap-xl-0 {
+    gap: 0 !important;
+  }
+  .gap-xl-1 {
+    gap: 0.25rem !important;
+  }
+  .gap-xl-2 {
+    gap: 0.5rem !important;
+  }
+  .gap-xl-3 {
+    gap: 1rem !important;
+  }
+  .gap-xl-4 {
+    gap: 1.5rem !important;
+  }
+  .gap-xl-5 {
+    gap: 3rem !important;
+  }
+  .text-xl-start {
+    text-align: left !important;
+  }
+  .text-xl-end {
+    text-align: right !important;
+  }
+  .text-xl-center {
+    text-align: center !important;
+  }
+}
+
+@media (min-width: 1400px) {
+  .float-xxl-start {
+    float: left !important;
+  }
+  .float-xxl-end {
+    float: right !important;
+  }
+  .float-xxl-none {
+    float: none !important;
+  }
+  .d-xxl-inline {
+    display: inline !important;
+  }
+  .d-xxl-inline-block {
+    display: inline-block !important;
+  }
+  .d-xxl-block {
+    display: block !important;
+  }
+  .d-xxl-grid {
+    display: grid !important;
+  }
+  .d-xxl-table {
+    display: table !important;
+  }
+  .d-xxl-table-row {
+    display: table-row !important;
+  }
+  .d-xxl-table-cell {
+    display: table-cell !important;
+  }
+  .d-xxl-flex {
+    display: flex !important;
+  }
+  .d-xxl-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-xxl-none {
+    display: none !important;
+  }
+  .flex-xxl-fill {
+    flex: 1 1 auto !important;
+  }
+  .flex-xxl-row {
+    flex-direction: row !important;
+  }
+  .flex-xxl-column {
+    flex-direction: column !important;
+  }
+  .flex-xxl-row-reverse {
+    flex-direction: row-reverse !important;
+  }
+  .flex-xxl-column-reverse {
+    flex-direction: column-reverse !important;
+  }
+  .flex-xxl-grow-0 {
+    flex-grow: 0 !important;
+  }
+  .flex-xxl-grow-1 {
+    flex-grow: 1 !important;
+  }
+  .flex-xxl-shrink-0 {
+    flex-shrink: 0 !important;
+  }
+  .flex-xxl-shrink-1 {
+    flex-shrink: 1 !important;
+  }
+  .flex-xxl-wrap {
+    flex-wrap: wrap !important;
+  }
+  .flex-xxl-nowrap {
+    flex-wrap: nowrap !important;
+  }
+  .flex-xxl-wrap-reverse {
+    flex-wrap: wrap-reverse !important;
+  }
+  .justify-content-xxl-start {
+    justify-content: flex-start !important;
+  }
+  .justify-content-xxl-end {
+    justify-content: flex-end !important;
+  }
+  .justify-content-xxl-center {
+    justify-content: center !important;
+  }
+  .justify-content-xxl-between {
+    justify-content: space-between !important;
+  }
+  .justify-content-xxl-around {
+    justify-content: space-around !important;
+  }
+  .justify-content-xxl-evenly {
+    justify-content: space-evenly !important;
+  }
+  .align-items-xxl-start {
+    align-items: flex-start !important;
+  }
+  .align-items-xxl-end {
+    align-items: flex-end !important;
+  }
+  .align-items-xxl-center {
+    align-items: center !important;
+  }
+  .align-items-xxl-baseline {
+    align-items: baseline !important;
+  }
+  .align-items-xxl-stretch {
+    align-items: stretch !important;
+  }
+  .align-content-xxl-start {
+    align-content: flex-start !important;
+  }
+  .align-content-xxl-end {
+    align-content: flex-end !important;
+  }
+  .align-content-xxl-center {
+    align-content: center !important;
+  }
+  .align-content-xxl-between {
+    align-content: space-between !important;
+  }
+  .align-content-xxl-around {
+    align-content: space-around !important;
+  }
+  .align-content-xxl-stretch {
+    align-content: stretch !important;
+  }
+  .align-self-xxl-auto {
+    align-self: auto !important;
+  }
+  .align-self-xxl-start {
+    align-self: flex-start !important;
+  }
+  .align-self-xxl-end {
+    align-self: flex-end !important;
+  }
+  .align-self-xxl-center {
+    align-self: center !important;
+  }
+  .align-self-xxl-baseline {
+    align-self: baseline !important;
+  }
+  .align-self-xxl-stretch {
+    align-self: stretch !important;
+  }
+  .order-xxl-first {
+    order: -1 !important;
+  }
+  .order-xxl-0 {
+    order: 0 !important;
+  }
+  .order-xxl-1 {
+    order: 1 !important;
+  }
+  .order-xxl-2 {
+    order: 2 !important;
+  }
+  .order-xxl-3 {
+    order: 3 !important;
+  }
+  .order-xxl-4 {
+    order: 4 !important;
+  }
+  .order-xxl-5 {
+    order: 5 !important;
+  }
+  .order-xxl-last {
+    order: 6 !important;
+  }
+  .m-xxl-0 {
+    margin: 0 !important;
+  }
+  .m-xxl-1 {
+    margin: 0.25rem !important;
+  }
+  .m-xxl-2 {
+    margin: 0.5rem !important;
+  }
+  .m-xxl-3 {
+    margin: 1rem !important;
+  }
+  .m-xxl-4 {
+    margin: 1.5rem !important;
+  }
+  .m-xxl-5 {
+    margin: 3rem !important;
+  }
+  .m-xxl-auto {
+    margin: auto !important;
+  }
+  .mx-xxl-0 {
+    margin-right: 0 !important;
+    margin-left: 0 !important;
+  }
+  .mx-xxl-1 {
+    margin-right: 0.25rem !important;
+    margin-left: 0.25rem !important;
+  }
+  .mx-xxl-2 {
+    margin-right: 0.5rem !important;
+    margin-left: 0.5rem !important;
+  }
+  .mx-xxl-3 {
+    margin-right: 1rem !important;
+    margin-left: 1rem !important;
+  }
+  .mx-xxl-4 {
+    margin-right: 1.5rem !important;
+    margin-left: 1.5rem !important;
+  }
+  .mx-xxl-5 {
+    margin-right: 3rem !important;
+    margin-left: 3rem !important;
+  }
+  .mx-xxl-auto {
+    margin-right: auto !important;
+    margin-left: auto !important;
+  }
+  .my-xxl-0 {
+    margin-top: 0 !important;
+    margin-bottom: 0 !important;
+  }
+  .my-xxl-1 {
+    margin-top: 0.25rem !important;
+    margin-bottom: 0.25rem !important;
+  }
+  .my-xxl-2 {
+    margin-top: 0.5rem !important;
+    margin-bottom: 0.5rem !important;
+  }
+  .my-xxl-3 {
+    margin-top: 1rem !important;
+    margin-bottom: 1rem !important;
+  }
+  .my-xxl-4 {
+    margin-top: 1.5rem !important;
+    margin-bottom: 1.5rem !important;
+  }
+  .my-xxl-5 {
+    margin-top: 3rem !important;
+    margin-bottom: 3rem !important;
+  }
+  .my-xxl-auto {
+    margin-top: auto !important;
+    margin-bottom: auto !important;
+  }
+  .mt-xxl-0 {
+    margin-top: 0 !important;
+  }
+  .mt-xxl-1 {
+    margin-top: 0.25rem !important;
+  }
+  .mt-xxl-2 {
+    margin-top: 0.5rem !important;
+  }
+  .mt-xxl-3 {
+    margin-top: 1rem !important;
+  }
+  .mt-xxl-4 {
+    margin-top: 1.5rem !important;
+  }
+  .mt-xxl-5 {
+    margin-top: 3rem !important;
+  }
+  .mt-xxl-auto {
+    margin-top: auto !important;
+  }
+  .me-xxl-0 {
+    margin-right: 0 !important;
+  }
+  .me-xxl-1 {
+    margin-right: 0.25rem !important;
+  }
+  .me-xxl-2 {
+    margin-right: 0.5rem !important;
+  }
+  .me-xxl-3 {
+    margin-right: 1rem !important;
+  }
+  .me-xxl-4 {
+    margin-right: 1.5rem !important;
+  }
+  .me-xxl-5 {
+    margin-right: 3rem !important;
+  }
+  .me-xxl-auto {
+    margin-right: auto !important;
+  }
+  .mb-xxl-0 {
+    margin-bottom: 0 !important;
+  }
+  .mb-xxl-1 {
+    margin-bottom: 0.25rem !important;
+  }
+  .mb-xxl-2 {
+    margin-bottom: 0.5rem !important;
+  }
+  .mb-xxl-3 {
+    margin-bottom: 1rem !important;
+  }
+  .mb-xxl-4 {
+    margin-bottom: 1.5rem !important;
+  }
+  .mb-xxl-5 {
+    margin-bottom: 3rem !important;
+  }
+  .mb-xxl-auto {
+    margin-bottom: auto !important;
+  }
+  .ms-xxl-0 {
+    margin-left: 0 !important;
+  }
+  .ms-xxl-1 {
+    margin-left: 0.25rem !important;
+  }
+  .ms-xxl-2 {
+    margin-left: 0.5rem !important;
+  }
+  .ms-xxl-3 {
+    margin-left: 1rem !important;
+  }
+  .ms-xxl-4 {
+    margin-left: 1.5rem !important;
+  }
+  .ms-xxl-5 {
+    margin-left: 3rem !important;
+  }
+  .ms-xxl-auto {
+    margin-left: auto !important;
+  }
+  .p-xxl-0 {
+    padding: 0 !important;
+  }
+  .p-xxl-1 {
+    padding: 0.25rem !important;
+  }
+  .p-xxl-2 {
+    padding: 0.5rem !important;
+  }
+  .p-xxl-3 {
+    padding: 1rem !important;
+  }
+  .p-xxl-4 {
+    padding: 1.5rem !important;
+  }
+  .p-xxl-5 {
+    padding: 3rem !important;
+  }
+  .px-xxl-0 {
+    padding-right: 0 !important;
+    padding-left: 0 !important;
+  }
+  .px-xxl-1 {
+    padding-right: 0.25rem !important;
+    padding-left: 0.25rem !important;
+  }
+  .px-xxl-2 {
+    padding-right: 0.5rem !important;
+    padding-left: 0.5rem !important;
+  }
+  .px-xxl-3 {
+    padding-right: 1rem !important;
+    padding-left: 1rem !important;
+  }
+  .px-xxl-4 {
+    padding-right: 1.5rem !important;
+    padding-left: 1.5rem !important;
+  }
+  .px-xxl-5 {
+    padding-right: 3rem !important;
+    padding-left: 3rem !important;
+  }
+  .py-xxl-0 {
+    padding-top: 0 !important;
+    padding-bottom: 0 !important;
+  }
+  .py-xxl-1 {
+    padding-top: 0.25rem !important;
+    padding-bottom: 0.25rem !important;
+  }
+  .py-xxl-2 {
+    padding-top: 0.5rem !important;
+    padding-bottom: 0.5rem !important;
+  }
+  .py-xxl-3 {
+    padding-top: 1rem !important;
+    padding-bottom: 1rem !important;
+  }
+  .py-xxl-4 {
+    padding-top: 1.5rem !important;
+    padding-bottom: 1.5rem !important;
+  }
+  .py-xxl-5 {
+    padding-top: 3rem !important;
+    padding-bottom: 3rem !important;
+  }
+  .pt-xxl-0 {
+    padding-top: 0 !important;
+  }
+  .pt-xxl-1 {
+    padding-top: 0.25rem !important;
+  }
+  .pt-xxl-2 {
+    padding-top: 0.5rem !important;
+  }
+  .pt-xxl-3 {
+    padding-top: 1rem !important;
+  }
+  .pt-xxl-4 {
+    padding-top: 1.5rem !important;
+  }
+  .pt-xxl-5 {
+    padding-top: 3rem !important;
+  }
+  .pe-xxl-0 {
+    padding-right: 0 !important;
+  }
+  .pe-xxl-1 {
+    padding-right: 0.25rem !important;
+  }
+  .pe-xxl-2 {
+    padding-right: 0.5rem !important;
+  }
+  .pe-xxl-3 {
+    padding-right: 1rem !important;
+  }
+  .pe-xxl-4 {
+    padding-right: 1.5rem !important;
+  }
+  .pe-xxl-5 {
+    padding-right: 3rem !important;
+  }
+  .pb-xxl-0 {
+    padding-bottom: 0 !important;
+  }
+  .pb-xxl-1 {
+    padding-bottom: 0.25rem !important;
+  }
+  .pb-xxl-2 {
+    padding-bottom: 0.5rem !important;
+  }
+  .pb-xxl-3 {
+    padding-bottom: 1rem !important;
+  }
+  .pb-xxl-4 {
+    padding-bottom: 1.5rem !important;
+  }
+  .pb-xxl-5 {
+    padding-bottom: 3rem !important;
+  }
+  .ps-xxl-0 {
+    padding-left: 0 !important;
+  }
+  .ps-xxl-1 {
+    padding-left: 0.25rem !important;
+  }
+  .ps-xxl-2 {
+    padding-left: 0.5rem !important;
+  }
+  .ps-xxl-3 {
+    padding-left: 1rem !important;
+  }
+  .ps-xxl-4 {
+    padding-left: 1.5rem !important;
+  }
+  .ps-xxl-5 {
+    padding-left: 3rem !important;
+  }
+  .gap-xxl-0 {
+    gap: 0 !important;
+  }
+  .gap-xxl-1 {
+    gap: 0.25rem !important;
+  }
+  .gap-xxl-2 {
+    gap: 0.5rem !important;
+  }
+  .gap-xxl-3 {
+    gap: 1rem !important;
+  }
+  .gap-xxl-4 {
+    gap: 1.5rem !important;
+  }
+  .gap-xxl-5 {
+    gap: 3rem !important;
+  }
+  .text-xxl-start {
+    text-align: left !important;
+  }
+  .text-xxl-end {
+    text-align: right !important;
+  }
+  .text-xxl-center {
+    text-align: center !important;
+  }
+}
+
+@media (min-width: 1200px) {
+  .fs-1 {
+    font-size: 2.5rem !important;
+  }
+  .fs-2 {
+    font-size: 2rem !important;
+  }
+  .fs-3 {
+    font-size: 1.75rem !important;
+  }
+  .fs-4 {
+    font-size: 1.5rem !important;
+  }
+}
+
+@media print {
+  .d-print-inline {
+    display: inline !important;
+  }
+  .d-print-inline-block {
+    display: inline-block !important;
+  }
+  .d-print-block {
+    display: block !important;
+  }
+  .d-print-grid {
+    display: grid !important;
+  }
+  .d-print-table {
+    display: table !important;
+  }
+  .d-print-table-row {
+    display: table-row !important;
+  }
+  .d-print-table-cell {
+    display: table-cell !important;
+  }
+  .d-print-flex {
+    display: flex !important;
+  }
+  .d-print-inline-flex {
+    display: inline-flex !important;
+  }
+  .d-print-none {
+    display: none !important;
+  }
+}
+
+:root {
+  --primary: #165B26;
+}
+
+body {
+  font-family: 'Roboto', sans-serif;
+}
+
+a {
+  color: var(--primary);
+  text-decoration: none;
+}
+
+.navbar .logo {
+  font-family: 'Jacques Francois Shadow', cursive;
+  font-size: 2rem;
+}
+
+/*# sourceMappingURL=styles.css.map */
\ No newline at end of file
diff --git a/styles/dist/styles.css.map b/styles/dist/styles.css.map
new file mode 100644
index 0000000..46ef0f5
--- /dev/null
+++ b/styles/dist/styles.css.map
@@ -0,0 +1,182 @@
+{
+	"version": 3,
+	"file": "styles.css",
+	"sources": [
+		"../scss/app.scss",
+		"../bootstrap/bootstrap.scss",
+		"../bootstrap/mixins/_banner.scss",
+		"../bootstrap/_functions.scss",
+		"../bootstrap/_variables.scss",
+		"../bootstrap/_maps.scss",
+		"../bootstrap/_mixins.scss",
+		"../bootstrap/vendor/_rfs.scss",
+		"../bootstrap/mixins/_deprecate.scss",
+		"../bootstrap/mixins/_breakpoints.scss",
+		"../bootstrap/mixins/_color-scheme.scss",
+		"../bootstrap/mixins/_image.scss",
+		"../bootstrap/mixins/_resize.scss",
+		"../bootstrap/mixins/_visually-hidden.scss",
+		"../bootstrap/mixins/_reset-text.scss",
+		"../bootstrap/mixins/_text-truncate.scss",
+		"../bootstrap/mixins/_utilities.scss",
+		"../bootstrap/mixins/_alert.scss",
+		"../bootstrap/mixins/_backdrop.scss",
+		"../bootstrap/mixins/_buttons.scss",
+		"../bootstrap/mixins/_caret.scss",
+		"../bootstrap/mixins/_pagination.scss",
+		"../bootstrap/mixins/_lists.scss",
+		"../bootstrap/mixins/_list-group.scss",
+		"../bootstrap/mixins/_forms.scss",
+		"../bootstrap/mixins/_table-variants.scss",
+		"../bootstrap/mixins/_border-radius.scss",
+		"../bootstrap/mixins/_box-shadow.scss",
+		"../bootstrap/mixins/_gradients.scss",
+		"../bootstrap/mixins/_transition.scss",
+		"../bootstrap/mixins/_clearfix.scss",
+		"../bootstrap/mixins/_container.scss",
+		"../bootstrap/mixins/_grid.scss",
+		"../bootstrap/_utilities.scss",
+		"../bootstrap/_root.scss",
+		"../bootstrap/_reboot.scss",
+		"../bootstrap/_type.scss",
+		"../bootstrap/_images.scss",
+		"../bootstrap/_containers.scss",
+		"../bootstrap/_grid.scss",
+		"../bootstrap/_tables.scss",
+		"../bootstrap/_forms.scss",
+		"../bootstrap/forms/_labels.scss",
+		"../bootstrap/forms/_form-text.scss",
+		"../bootstrap/forms/_form-control.scss",
+		"../bootstrap/forms/_form-select.scss",
+		"../bootstrap/forms/_form-check.scss",
+		"../bootstrap/forms/_form-range.scss",
+		"../bootstrap/forms/_floating-labels.scss",
+		"../bootstrap/forms/_input-group.scss",
+		"../bootstrap/forms/_validation.scss",
+		"../bootstrap/_buttons.scss",
+		"../bootstrap/_transitions.scss",
+		"../bootstrap/_dropdown.scss",
+		"../bootstrap/_button-group.scss",
+		"../bootstrap/_nav.scss",
+		"../bootstrap/_navbar.scss",
+		"../bootstrap/_card.scss",
+		"../bootstrap/_accordion.scss",
+		"../bootstrap/_breadcrumb.scss",
+		"../bootstrap/_pagination.scss",
+		"../bootstrap/_badge.scss",
+		"../bootstrap/_alert.scss",
+		"../bootstrap/_progress.scss",
+		"../bootstrap/_list-group.scss",
+		"../bootstrap/_close.scss",
+		"../bootstrap/_toasts.scss",
+		"../bootstrap/_modal.scss",
+		"../bootstrap/_tooltip.scss",
+		"../bootstrap/_popover.scss",
+		"../bootstrap/_carousel.scss",
+		"../bootstrap/_spinners.scss",
+		"../bootstrap/_offcanvas.scss",
+		"../bootstrap/_placeholders.scss",
+		"../bootstrap/_helpers.scss",
+		"../bootstrap/helpers/_clearfix.scss",
+		"../bootstrap/helpers/_color-bg.scss",
+		"../bootstrap/helpers/_colored-links.scss",
+		"../bootstrap/helpers/_ratio.scss",
+		"../bootstrap/helpers/_position.scss",
+		"../bootstrap/helpers/_stacks.scss",
+		"../bootstrap/helpers/_visually-hidden.scss",
+		"../bootstrap/helpers/_stretched-link.scss",
+		"../bootstrap/helpers/_text-truncation.scss",
+		"../bootstrap/helpers/_vr.scss",
+		"../bootstrap/utilities/_api.scss"
+	],
+	"sourcesContent": [
+		"@import url('https://fonts.googleapis.com/css2?family=Jacques+Francois+Shadow&family=Roboto:wght@500&display=swap');\r\n@import \"../bootstrap/bootstrap\";\r\n\r\n:root{\r\n  --primary: #165B26;\r\n}\r\n\r\nbody {\r\n  font-family: 'Roboto', sans-serif;\r\n}\r\n\r\na {\r\n  color: var(--primary);\r\n  text-decoration: none;\r\n}\r\n\r\n.navbar .logo {\r\n  font-family: 'Jacques Francois Shadow', cursive;\r\n  font-size: 2rem;\r\n}",
+		"@import \"mixins/banner\";\n@include bsBanner(\"\");\n\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"maps\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",
+		"@mixin bsBanner($file) {\n  /*!\n   * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)\n   * Copyright 2011-2022 The Bootstrap Authors\n   * Copyright 2011-2022 Twitter, Inc.\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n   */\n}\n\n",
+		"// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n  $prev-key: null;\n  $prev-num: null;\n  @each $key, $num in $map {\n    @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n      // Do nothing\n    } @else if not comparable($prev-num, $num) {\n      @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    } @else if $prev-num >= $num {\n      @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n    }\n    $prev-key: $key;\n    $prev-num: $num;\n  }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n  @if length($map) > 0 {\n    $values: map-values($map);\n    $first-value: nth($values, 1);\n    @if $first-value != 0 {\n      @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n    }\n  }\n}\n\n// Colors\n@function to-rgb($value) {\n  @return red($value), green($value), blue($value);\n}\n\n// stylelint-disable scss/dollar-variable-pattern\n@function rgba-css-var($identifier, $target) {\n  @if $identifier == \"body\" and $target == \"bg\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-bg-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @if $identifier == \"body\" and $target == \"text\" {\n    @return rgba(var(--#{$prefix}#{$identifier}-color-rgb), var(--#{$prefix}#{$target}-opacity));\n  } @else {\n    @return rgba(var(--#{$prefix}#{$identifier}-rgb), var(--#{$prefix}#{$target}-opacity));\n  }\n}\n\n@function map-loop($map, $func, $args...) {\n  $_map: ();\n\n  @each $key, $value in $map {\n    // allow to pass the $key and $value of the map as an function argument\n    $_args: ();\n    @each $arg in $args {\n      $_args: append($_args, if($arg == \"$key\", $key, if($arg == \"$value\", $value, $arg)));\n    }\n\n    $_map: map-merge($_map, ($key: call(get-function($func), $_args...)));\n  }\n\n  @return $_map;\n}\n// stylelint-enable scss/dollar-variable-pattern\n\n@function varify($list) {\n  $result: null;\n  @each $entry in $list {\n    $result: append($result, var(--#{$prefix}#{$entry}), space);\n  }\n  @return $result;\n}\n\n// Internal Bootstrap function to turn maps into its negative variant.\n// It prefixes the keys with `n` and makes the value negative.\n@function negativify-map($map) {\n  $result: ();\n  @each $key, $value in $map {\n    @if $key != 0 {\n      $result: map-merge($result, (\"n\" + $key: (-$value)));\n    }\n  }\n  @return $result;\n}\n\n// Get multiple keys from a sass map\n@function map-get-multiple($map, $values) {\n  $result: ();\n  @each $key, $value in $map {\n    @if (index($values, $key) != null) {\n      $result: map-merge($result, ($key: $value));\n    }\n  }\n  @return $result;\n}\n\n// Merge multiple maps\n@function map-merge-multiple($maps...) {\n  $merged-maps: ();\n\n  @each $map in $maps {\n    $merged-maps: map-merge($merged-maps, $map);\n  }\n  @return $merged-maps;\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Kitty Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n  $index: str-index($string, $search);\n\n  @if $index {\n    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n  }\n\n  @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n//\n// Requires the use of quotes around data URIs.\n\n@function escape-svg($string) {\n  @if str-index($string, \"data:image/svg+xml\") {\n    @each $char, $encoded in $escaped-characters {\n      // Do not escape the url brackets\n      @if str-index($string, \"url(\") == 1 {\n        $string: url(\"#{str-replace(str-slice($string, 6, -3), $char, $encoded)}\");\n      } @else {\n        $string: str-replace($string, $char, $encoded);\n      }\n    }\n  }\n\n  @return $string;\n}\n\n// Color contrast\n// See https://github.com/twbs/bootstrap/pull/30168\n\n// A list of pre-calculated numbers of pow(divide((divide($value, 255) + .055), 1.055), 2.4). (from 0 to 255)\n// stylelint-disable-next-line scss/dollar-variable-default, scss/dollar-variable-pattern\n$_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;\n\n@function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {\n  $foregrounds: $color-contrast-light, $color-contrast-dark, $white, $black;\n  $max-ratio: 0;\n  $max-ratio-color: null;\n\n  @each $color in $foregrounds {\n    $contrast-ratio: contrast-ratio($background, $color);\n    @if $contrast-ratio > $min-contrast-ratio {\n      @return $color;\n    } @else if $contrast-ratio > $max-ratio {\n      $max-ratio: $contrast-ratio;\n      $max-ratio-color: $color;\n    }\n  }\n\n  @warn \"Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...\";\n\n  @return $max-ratio-color;\n}\n\n@function contrast-ratio($background, $foreground: $color-contrast-light) {\n  $l1: luminance($background);\n  $l2: luminance(opaque($background, $foreground));\n\n  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));\n}\n\n// Return WCAG2.1 relative luminance\n// See https://www.w3.org/TR/WCAG/#dfn-relative-luminance\n// See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio\n@function luminance($color) {\n  $rgb: (\n    \"r\": red($color),\n    \"g\": green($color),\n    \"b\": blue($color)\n  );\n\n  @each $name, $value in $rgb {\n    $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1));\n    $rgb: map-merge($rgb, ($name: $value));\n  }\n\n  @return (map-get($rgb, \"r\") * .2126) + (map-get($rgb, \"g\") * .7152) + (map-get($rgb, \"b\") * .0722);\n}\n\n// Return opaque color\n// opaque(#fff, rgba(0, 0, 0, .5)) => #808080\n@function opaque($background, $foreground) {\n  @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);\n}\n\n// scss-docs-start color-functions\n// Tint a color: mix a color with white\n@function tint-color($color, $weight) {\n  @return mix(white, $color, $weight);\n}\n\n// Shade a color: mix a color with black\n@function shade-color($color, $weight) {\n  @return mix(black, $color, $weight);\n}\n\n// Shade the color if the weight is positive, else tint it\n@function shift-color($color, $weight) {\n  @return if($weight > 0, shade-color($color, $weight), tint-color($color, -$weight));\n}\n// scss-docs-end color-functions\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n  @if $value1 == null {\n    @return $value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 + $value2;\n  }\n\n  @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n  @if $value1 == null and $value2 == null {\n    @return null;\n  }\n\n  @if $value1 == null {\n    @return -$value2;\n  }\n\n  @if $value2 == null {\n    @return $value1;\n  }\n\n  @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n    @return $value1 - $value2;\n  }\n\n  @if type-of($value2) != number {\n    $value2: unquote(\"(\") + $value2 + unquote(\")\");\n  }\n\n  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n",
+		"// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white:    #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black:    #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n  \"100\": $gray-100,\n  \"200\": $gray-200,\n  \"300\": $gray-300,\n  \"400\": $gray-400,\n  \"500\": $gray-500,\n  \"600\": $gray-600,\n  \"700\": $gray-700,\n  \"800\": $gray-800,\n  \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue:    #0d6efd !default;\n$indigo:  #6610f2 !default;\n$purple:  #6f42c1 !default;\n$pink:    #d63384 !default;\n$red:     #dc3545 !default;\n$orange:  #fd7e14 !default;\n$yellow:  #ffc107 !default;\n$green:   #198754 !default;\n$teal:    #20c997 !default;\n$cyan:    #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n  \"blue\":       $blue,\n  \"indigo\":     $indigo,\n  \"purple\":     $purple,\n  \"pink\":       $pink,\n  \"red\":        $red,\n  \"orange\":     $orange,\n  \"yellow\":     $yellow,\n  \"green\":      $green,\n  \"teal\":       $teal,\n  \"cyan\":       $cyan,\n  \"black\":      $black,\n  \"white\":      $white,\n  \"gray\":       $gray-600,\n  \"gray-dark\":  $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio:   4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark:      $black !default;\n$color-contrast-light:     $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n  \"blue-100\": $blue-100,\n  \"blue-200\": $blue-200,\n  \"blue-300\": $blue-300,\n  \"blue-400\": $blue-400,\n  \"blue-500\": $blue-500,\n  \"blue-600\": $blue-600,\n  \"blue-700\": $blue-700,\n  \"blue-800\": $blue-800,\n  \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n  \"indigo-100\": $indigo-100,\n  \"indigo-200\": $indigo-200,\n  \"indigo-300\": $indigo-300,\n  \"indigo-400\": $indigo-400,\n  \"indigo-500\": $indigo-500,\n  \"indigo-600\": $indigo-600,\n  \"indigo-700\": $indigo-700,\n  \"indigo-800\": $indigo-800,\n  \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n  \"purple-100\": $purple-100,\n  \"purple-200\": $purple-200,\n  \"purple-300\": $purple-300,\n  \"purple-400\": $purple-400,\n  \"purple-500\": $purple-500,\n  \"purple-600\": $purple-600,\n  \"purple-700\": $purple-700,\n  \"purple-800\": $purple-800,\n  \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n  \"pink-100\": $pink-100,\n  \"pink-200\": $pink-200,\n  \"pink-300\": $pink-300,\n  \"pink-400\": $pink-400,\n  \"pink-500\": $pink-500,\n  \"pink-600\": $pink-600,\n  \"pink-700\": $pink-700,\n  \"pink-800\": $pink-800,\n  \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n  \"red-100\": $red-100,\n  \"red-200\": $red-200,\n  \"red-300\": $red-300,\n  \"red-400\": $red-400,\n  \"red-500\": $red-500,\n  \"red-600\": $red-600,\n  \"red-700\": $red-700,\n  \"red-800\": $red-800,\n  \"red-900\": $red-900\n) !default;\n\n$oranges: (\n  \"orange-100\": $orange-100,\n  \"orange-200\": $orange-200,\n  \"orange-300\": $orange-300,\n  \"orange-400\": $orange-400,\n  \"orange-500\": $orange-500,\n  \"orange-600\": $orange-600,\n  \"orange-700\": $orange-700,\n  \"orange-800\": $orange-800,\n  \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n  \"yellow-100\": $yellow-100,\n  \"yellow-200\": $yellow-200,\n  \"yellow-300\": $yellow-300,\n  \"yellow-400\": $yellow-400,\n  \"yellow-500\": $yellow-500,\n  \"yellow-600\": $yellow-600,\n  \"yellow-700\": $yellow-700,\n  \"yellow-800\": $yellow-800,\n  \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n  \"green-100\": $green-100,\n  \"green-200\": $green-200,\n  \"green-300\": $green-300,\n  \"green-400\": $green-400,\n  \"green-500\": $green-500,\n  \"green-600\": $green-600,\n  \"green-700\": $green-700,\n  \"green-800\": $green-800,\n  \"green-900\": $green-900\n) !default;\n\n$teals: (\n  \"teal-100\": $teal-100,\n  \"teal-200\": $teal-200,\n  \"teal-300\": $teal-300,\n  \"teal-400\": $teal-400,\n  \"teal-500\": $teal-500,\n  \"teal-600\": $teal-600,\n  \"teal-700\": $teal-700,\n  \"teal-800\": $teal-800,\n  \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n  \"cyan-100\": $cyan-100,\n  \"cyan-200\": $cyan-200,\n  \"cyan-300\": $cyan-300,\n  \"cyan-400\": $cyan-400,\n  \"cyan-500\": $cyan-500,\n  \"cyan-600\": $cyan-600,\n  \"cyan-700\": $cyan-700,\n  \"cyan-800\": $cyan-800,\n  \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary:       $blue !default;\n$secondary:     $gray-600 !default;\n$success:       $green !default;\n$info:          $cyan !default;\n$warning:       $yellow !default;\n$danger:        $red !default;\n$light:         $gray-100 !default;\n$dark:          $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n  \"primary\":    $primary,\n  \"secondary\":  $secondary,\n  \"success\":    $success,\n  \"info\":       $info,\n  \"warning\":    $warning,\n  \"danger\":     $danger,\n  \"light\":      $light,\n  \"dark\":       $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n  (\"<\", \"%3c\"),\n  (\">\", \"%3e\"),\n  (\"#\", \"%23\"),\n  (\"(\", \"%28\"),\n  (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret:                true !default;\n$enable-rounded:              true !default;\n$enable-shadows:              false !default;\n$enable-gradients:            false !default;\n$enable-transitions:          true !default;\n$enable-reduced-motion:       true !default;\n$enable-smooth-scroll:        true !default;\n$enable-grid-classes:         true !default;\n$enable-container-classes:    true !default;\n$enable-cssgrid:              false !default;\n$enable-button-pointers:      true !default;\n$enable-rfs:                  true !default;\n$enable-validation-icons:     true !default;\n$enable-negative-margins:     false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities:  true !default;\n\n// Prefix for :root CSS variables\n\n$variable-prefix:             bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix:                      $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n  0: 0,\n  1: $spacer * .25,\n  2: $spacer * .5,\n  3: $spacer,\n  4: $spacer * 1.5,\n  5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n  0: 0,\n  50: 50%,\n  100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg:                   $white !default;\n$body-color:                $gray-900 !default;\n$body-text-align:           null !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color:                              $primary !default;\n$link-decoration:                         underline !default;\n$link-shade-percentage:                   20% !default;\n$link-hover-color:                        shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration:                   null !default;\n\n$stretched-link-pseudo-element:           after !default;\n$stretched-link-z-index:                  1 !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom:   1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n  xs: 0,\n  sm: 576px,\n  md: 768px,\n  lg: 992px,\n  xl: 1200px,\n  xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n  sm: 540px,\n  md: 720px,\n  lg: 960px,\n  xl: 1140px,\n  xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns:                12 !default;\n$grid-gutter-width:           1.5rem !default;\n$grid-row-columns:            6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width:                1px !default;\n$border-widths: (\n  1: 1px,\n  2: 2px,\n  3: 3px,\n  4: 4px,\n  5: 5px\n) !default;\n\n$border-style:                solid !default;\n$border-color:                $gray-300 !default;\n$border-color-translucent:    rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius:               .375rem !default;\n$border-radius-sm:            .25rem !default;\n$border-radius-lg:            .5rem !default;\n$border-radius-xl:            1rem !default;\n$border-radius-2xl:           2rem !default;\n$border-radius-pill:          50rem !default;\n// scss-docs-end border-radius-variables\n\n// scss-docs-start box-shadow-variables\n$box-shadow:                  0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm:               0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg:               0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset:            inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color:      $white !default;\n$component-active-bg:         $primary !default;\n\n// scss-docs-start caret-variables\n$caret-width:                 .3em !default;\n$caret-vertical-align:        $caret-width * .85 !default;\n$caret-spacing:               $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base:             all .2s ease-in-out !default;\n$transition-fade:             opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse:         height .35s ease !default;\n$transition-collapse-width:   width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n  \"1x1\": 100%,\n  \"4x3\": calc(3 / 4 * 100%),\n  \"16x9\": calc(9 / 16 * 100%),\n  \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif:      system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace:       SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base:            var(--#{$prefix}font-sans-serif) !default;\n$font-family-code:            var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root:              null !default;\n$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm:                $font-size-base * .875 !default;\n$font-size-lg:                $font-size-base * 1.25 !default;\n\n$font-weight-lighter:         lighter !default;\n$font-weight-light:           300 !default;\n$font-weight-normal:          400 !default;\n$font-weight-semibold:        600 !default;\n$font-weight-bold:            700 !default;\n$font-weight-bolder:          bolder !default;\n\n$font-weight-base:            $font-weight-normal !default;\n\n$line-height-base:            1.5 !default;\n$line-height-sm:              1.25 !default;\n$line-height-lg:              2 !default;\n\n$h1-font-size:                $font-size-base * 2.5 !default;\n$h2-font-size:                $font-size-base * 2 !default;\n$h3-font-size:                $font-size-base * 1.75 !default;\n$h4-font-size:                $font-size-base * 1.5 !default;\n$h5-font-size:                $font-size-base * 1.25 !default;\n$h6-font-size:                $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n  1: $h1-font-size,\n  2: $h2-font-size,\n  3: $h3-font-size,\n  4: $h4-font-size,\n  5: $h5-font-size,\n  6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom:      $spacer * .5 !default;\n$headings-font-family:        null !default;\n$headings-font-style:         null !default;\n$headings-font-weight:        500 !default;\n$headings-line-height:        1.2 !default;\n$headings-color:              null !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n  1: 5rem,\n  2: 4.5rem,\n  3: 4rem,\n  4: 3.5rem,\n  5: 3rem,\n  6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style:  null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size:              $font-size-base * 1.25 !default;\n$lead-font-weight:            300 !default;\n\n$small-font-size:             .875em !default;\n\n$sub-sup-font-size:           .75em !default;\n\n$text-muted:                  $gray-600 !default;\n\n$initialism-font-size:        $small-font-size !default;\n\n$blockquote-margin-y:         $spacer !default;\n$blockquote-font-size:        $font-size-base * 1.25 !default;\n$blockquote-footer-color:     $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y:                 $spacer !default;\n$hr-color:                    inherit !default;\n\n// fusv-disable\n$hr-bg-color:                 null !default; // Deprecated in v5.2.0\n$hr-height:                   null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color:             null !default; // Allows for inherited colors\n$hr-border-width:             $border-width !default;\n$hr-opacity:                  .25 !default;\n\n$legend-margin-bottom:        .5rem !default;\n$legend-font-size:            1.5rem !default;\n$legend-font-weight:          null !default;\n\n$dt-font-weight:              $font-weight-bold !default;\n\n$list-inline-padding:         .5rem !default;\n\n$mark-padding:                .1875em !default;\n$mark-bg:                     $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y:        .5rem !default;\n$table-cell-padding-x:        .5rem !default;\n$table-cell-padding-y-sm:     .25rem !default;\n$table-cell-padding-x-sm:     .25rem !default;\n\n$table-cell-vertical-align:   top !default;\n\n$table-color:                 var(--#{$prefix}body-color) !default;\n$table-bg:                    transparent !default;\n$table-accent-bg:             transparent !default;\n\n$table-th-font-weight:        null !default;\n\n$table-striped-color:         $table-color !default;\n$table-striped-bg-factor:     .05 !default;\n$table-striped-bg:            rgba($black, $table-striped-bg-factor) !default;\n\n$table-active-color:          $table-color !default;\n$table-active-bg-factor:      .1 !default;\n$table-active-bg:             rgba($black, $table-active-bg-factor) !default;\n\n$table-hover-color:           $table-color !default;\n$table-hover-bg-factor:       .075 !default;\n$table-hover-bg:              rgba($black, $table-hover-bg-factor) !default;\n\n$table-border-factor:         .1 !default;\n$table-border-width:          $border-width !default;\n$table-border-color:          var(--#{$prefix}border-color) !default;\n\n$table-striped-order:         odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color:         $text-muted !default;\n\n$table-bg-scale:              -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n  \"primary\":    shift-color($primary, $table-bg-scale),\n  \"secondary\":  shift-color($secondary, $table-bg-scale),\n  \"success\":    shift-color($success, $table-bg-scale),\n  \"info\":       shift-color($info, $table-bg-scale),\n  \"warning\":    shift-color($warning, $table-bg-scale),\n  \"danger\":     shift-color($danger, $table-bg-scale),\n  \"light\":      $light,\n  \"dark\":       $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y:         .375rem !default;\n$input-btn-padding-x:         .75rem !default;\n$input-btn-font-family:       null !default;\n$input-btn-font-size:         $font-size-base !default;\n$input-btn-line-height:       $line-height-base !default;\n\n$input-btn-focus-width:         .25rem !default;\n$input-btn-focus-color-opacity: .25 !default;\n$input-btn-focus-color:         rgba($component-active-bg, $input-btn-focus-color-opacity) !default;\n$input-btn-focus-blur:          0 !default;\n$input-btn-focus-box-shadow:    0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm:      .25rem !default;\n$input-btn-padding-x-sm:      .5rem !default;\n$input-btn-font-size-sm:      $font-size-sm !default;\n\n$input-btn-padding-y-lg:      .5rem !default;\n$input-btn-padding-x-lg:      1rem !default;\n$input-btn-font-size-lg:      $font-size-lg !default;\n\n$input-btn-border-width:      $border-width !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-padding-y:               $input-btn-padding-y !default;\n$btn-padding-x:               $input-btn-padding-x !default;\n$btn-font-family:             $input-btn-font-family !default;\n$btn-font-size:               $input-btn-font-size !default;\n$btn-line-height:             $input-btn-line-height !default;\n$btn-white-space:             null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm:            $input-btn-padding-y-sm !default;\n$btn-padding-x-sm:            $input-btn-padding-x-sm !default;\n$btn-font-size-sm:            $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg:            $input-btn-padding-y-lg !default;\n$btn-padding-x-lg:            $input-btn-padding-x-lg !default;\n$btn-font-size-lg:            $input-btn-font-size-lg !default;\n\n$btn-border-width:            $input-btn-border-width !default;\n\n$btn-font-weight:             $font-weight-normal !default;\n$btn-box-shadow:              inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width:             $input-btn-focus-width !default;\n$btn-focus-box-shadow:        $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity:        .65 !default;\n$btn-active-box-shadow:       inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color:              var(--#{$prefix}link-color) !default;\n$btn-link-hover-color:        var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color:     $gray-600 !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius:           $border-radius !default;\n$btn-border-radius-sm:        $border-radius-sm !default;\n$btn-border-radius-lg:        $border-radius-lg !default;\n\n$btn-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount:       15% !default;\n$btn-hover-bg-tint-amount:        15% !default;\n$btn-hover-border-shade-amount:   20% !default;\n$btn-hover-border-tint-amount:    10% !default;\n$btn-active-bg-shade-amount:      20% !default;\n$btn-active-bg-tint-amount:       20% !default;\n$btn-active-border-shade-amount:  25% !default;\n$btn-active-border-tint-amount:   10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top:                  .25rem !default;\n$form-text-font-size:                   $small-font-size !default;\n$form-text-font-style:                  null !default;\n$form-text-font-weight:                 null !default;\n$form-text-color:                       $text-muted !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom:              .5rem !default;\n$form-label-font-size:                  null !default;\n$form-label-font-style:                 null !default;\n$form-label-font-weight:                null !default;\n$form-label-color:                      null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y:                       $input-btn-padding-y !default;\n$input-padding-x:                       $input-btn-padding-x !default;\n$input-font-family:                     $input-btn-font-family !default;\n$input-font-size:                       $input-btn-font-size !default;\n$input-font-weight:                     $font-weight-base !default;\n$input-line-height:                     $input-btn-line-height !default;\n\n$input-padding-y-sm:                    $input-btn-padding-y-sm !default;\n$input-padding-x-sm:                    $input-btn-padding-x-sm !default;\n$input-font-size-sm:                    $input-btn-font-size-sm !default;\n\n$input-padding-y-lg:                    $input-btn-padding-y-lg !default;\n$input-padding-x-lg:                    $input-btn-padding-x-lg !default;\n$input-font-size-lg:                    $input-btn-font-size-lg !default;\n\n$input-bg:                              $body-bg !default;\n$input-disabled-color:                  null !default;\n$input-disabled-bg:                     $gray-200 !default;\n$input-disabled-border-color:           null !default;\n\n$input-color:                           $body-color !default;\n$input-border-color:                    $gray-400 !default;\n$input-border-width:                    $input-btn-border-width !default;\n$input-box-shadow:                      $box-shadow-inset !default;\n\n$input-border-radius:                   $border-radius !default;\n$input-border-radius-sm:                $border-radius-sm !default;\n$input-border-radius-lg:                $border-radius-lg !default;\n\n$input-focus-bg:                        $input-bg !default;\n$input-focus-border-color:              tint-color($component-active-bg, 50%) !default;\n$input-focus-color:                     $input-color !default;\n$input-focus-width:                     $input-btn-focus-width !default;\n$input-focus-box-shadow:                $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color:               $gray-600 !default;\n$input-plaintext-color:                 $body-color !default;\n\n$input-height-border:                   $input-border-width * 2 !default;\n\n$input-height-inner:                    add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half:               add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter:            add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height:                          add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm:                       add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg:                       add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition:                      border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width:                      3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width:                  1em !default;\n$form-check-min-height:                   $font-size-base * $line-height-base !default;\n$form-check-padding-start:                $form-check-input-width + .5em !default;\n$form-check-margin-bottom:                .125rem !default;\n$form-check-label-color:                  null !default;\n$form-check-label-cursor:                 null !default;\n$form-check-transition:                   null !default;\n\n$form-check-input-active-filter:          brightness(90%) !default;\n\n$form-check-input-bg:                     $input-bg !default;\n$form-check-input-border:                 1px solid rgba($black, .25) !default;\n$form-check-input-border-radius:          .25em !default;\n$form-check-radio-border-radius:          50% !default;\n$form-check-input-focus-border:           $input-focus-border-color !default;\n$form-check-input-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n\n$form-check-input-checked-color:          $component-active-color !default;\n$form-check-input-checked-bg-color:       $component-active-bg !default;\n$form-check-input-checked-border-color:   $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/></svg>\") !default;\n$form-check-radio-checked-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$form-check-input-checked-color}'/></svg>\") !default;\n\n$form-check-input-indeterminate-color:          $component-active-color !default;\n$form-check-input-indeterminate-bg-color:       $component-active-bg !default;\n$form-check-input-indeterminate-border-color:   $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>\") !default;\n\n$form-check-input-disabled-opacity:        .5 !default;\n$form-check-label-disabled-opacity:        $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity:    $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end:    1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color:               rgba($black, .25) !default;\n$form-switch-width:               2em !default;\n$form-switch-padding-start:       $form-switch-width + .5em !default;\n$form-switch-bg-image:            url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color}'/></svg>\") !default;\n$form-switch-border-radius:       $form-switch-width !default;\n$form-switch-transition:          background-position .15s ease-in-out !default;\n\n$form-switch-focus-color:         $input-focus-border-color !default;\n$form-switch-focus-bg-image:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-focus-color}'/></svg>\") !default;\n\n$form-switch-checked-color:       $component-active-color !default;\n$form-switch-checked-bg-image:    url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-checked-color}'/></svg>\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y:           $input-padding-y !default;\n$input-group-addon-padding-x:           $input-padding-x !default;\n$input-group-addon-font-weight:         $input-font-weight !default;\n$input-group-addon-color:               $input-color !default;\n$input-group-addon-bg:                  $gray-200 !default;\n$input-group-addon-border-color:        $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y:             $input-padding-y !default;\n$form-select-padding-x:             $input-padding-x !default;\n$form-select-font-family:           $input-font-family !default;\n$form-select-font-size:             $input-font-size !default;\n$form-select-indicator-padding:     $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight:           $input-font-weight !default;\n$form-select-line-height:           $input-line-height !default;\n$form-select-color:                 $input-color !default;\n$form-select-bg:                    $input-bg !default;\n$form-select-disabled-color:        null !default;\n$form-select-disabled-bg:           $gray-200 !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position:           right $form-select-padding-x center !default;\n$form-select-bg-size:               16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color:       $gray-800 !default;\n$form-select-indicator:             url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position:    center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size:        $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width:        $input-border-width !default;\n$form-select-border-color:        $input-border-color !default;\n$form-select-border-radius:       $input-border-radius !default;\n$form-select-box-shadow:          $box-shadow-inset !default;\n\n$form-select-focus-border-color:  $input-focus-border-color !default;\n$form-select-focus-width:         $input-focus-width !default;\n$form-select-focus-box-shadow:    0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm:        $input-padding-y-sm !default;\n$form-select-padding-x-sm:        $input-padding-x-sm !default;\n$form-select-font-size-sm:        $input-font-size-sm !default;\n$form-select-border-radius-sm:    $input-border-radius-sm !default;\n\n$form-select-padding-y-lg:        $input-padding-y-lg !default;\n$form-select-padding-x-lg:        $input-padding-x-lg !default;\n$form-select-font-size-lg:        $input-font-size-lg !default;\n$form-select-border-radius-lg:    $input-border-radius-lg !default;\n\n$form-select-transition:          $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width:          100% !default;\n$form-range-track-height:         .5rem !default;\n$form-range-track-cursor:         pointer !default;\n$form-range-track-bg:             $gray-300 !default;\n$form-range-track-border-radius:  1rem !default;\n$form-range-track-box-shadow:     $box-shadow-inset !default;\n\n$form-range-thumb-width:                   1rem !default;\n$form-range-thumb-height:                  $form-range-thumb-width !default;\n$form-range-thumb-bg:                      $component-active-bg !default;\n$form-range-thumb-border:                  0 !default;\n$form-range-thumb-border-radius:           1rem !default;\n$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width:  $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg:             $gray-500 !default;\n$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color:          $input-color !default;\n$form-file-button-bg:             $input-group-addon-bg !default;\n$form-file-button-hover-bg:       shade-color($form-file-button-bg, 5%) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height:            add(3.5rem, $input-height-border) !default;\n$form-floating-line-height:       1.25 !default;\n$form-floating-padding-x:         $input-padding-x !default;\n$form-floating-padding-y:         1rem !default;\n$form-floating-input-padding-t:   1.625rem !default;\n$form-floating-input-padding-b:   .625rem !default;\n$form-floating-label-opacity:     .65 !default;\n$form-floating-label-transform:   scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-transition:        opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top:          $form-text-margin-top !default;\n$form-feedback-font-size:           $form-text-font-size !default;\n$form-feedback-font-style:          $form-text-font-style !default;\n$form-feedback-valid-color:         $success !default;\n$form-feedback-invalid-color:       $danger !default;\n\n$form-feedback-icon-valid-color:    $form-feedback-valid-color !default;\n$form-feedback-icon-valid:          url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>\") !default;\n$form-feedback-icon-invalid-color:  $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid:        url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n  \"valid\": (\n    \"color\": $form-feedback-valid-color,\n    \"icon\": $form-feedback-icon-valid\n  ),\n  \"invalid\": (\n    \"color\": $form-feedback-invalid-color,\n    \"icon\": $form-feedback-icon-invalid\n  )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown:                   1000 !default;\n$zindex-sticky:                     1020 !default;\n$zindex-fixed:                      1030 !default;\n$zindex-offcanvas-backdrop:         1040 !default;\n$zindex-offcanvas:                  1045 !default;\n$zindex-modal-backdrop:             1050 !default;\n$zindex-modal:                      1055 !default;\n$zindex-popover:                    1070 !default;\n$zindex-tooltip:                    1080 !default;\n$zindex-toast:                      1090 !default;\n// scss-docs-end zindex-stack\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y:                .5rem !default;\n$nav-link-padding-x:                1rem !default;\n$nav-link-font-size:                null !default;\n$nav-link-font-weight:              null !default;\n$nav-link-color:                    var(--#{$prefix}link-color) !default;\n$nav-link-hover-color:              var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition:               color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color:           $gray-600 !default;\n\n$nav-tabs-border-color:             $gray-300 !default;\n$nav-tabs-border-width:             $border-width !default;\n$nav-tabs-border-radius:            $border-radius !default;\n$nav-tabs-link-hover-border-color:  $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color:        $gray-700 !default;\n$nav-tabs-link-active-bg:           $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius:           $border-radius !default;\n$nav-pills-link-active-color:       $component-active-color !default;\n$nav-pills-link-active-bg:          $component-active-bg !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y:                  $spacer * .5 !default;\n$navbar-padding-x:                  null !default;\n\n$navbar-nav-link-padding-x:         .5rem !default;\n\n$navbar-brand-font-size:            $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height:                   $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end:           1rem !default;\n\n$navbar-toggler-padding-y:          .25rem !default;\n$navbar-toggler-padding-x:          .75rem !default;\n$navbar-toggler-font-size:          $font-size-lg !default;\n$navbar-toggler-border-radius:      $btn-border-radius !default;\n$navbar-toggler-focus-width:        $btn-focus-width !default;\n$navbar-toggler-transition:         box-shadow .15s ease-in-out !default;\n\n$navbar-light-color:                rgba($black, .55) !default;\n$navbar-light-hover-color:          rgba($black, .7) !default;\n$navbar-light-active-color:         rgba($black, .9) !default;\n$navbar-light-disabled-color:       rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n$navbar-light-brand-color:          $navbar-light-active-color !default;\n$navbar-light-brand-hover-color:    $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color:                 rgba($white, .55) !default;\n$navbar-dark-hover-color:           rgba($white, .75) !default;\n$navbar-dark-active-color:          $white !default;\n$navbar-dark-disabled-color:        rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg:       url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>\") !default;\n$navbar-dark-toggler-border-color:  rgba($white, .1) !default;\n$navbar-dark-brand-color:           $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color:     $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width:                10rem !default;\n$dropdown-padding-x:                0 !default;\n$dropdown-padding-y:                .5rem !default;\n$dropdown-spacer:                   .125rem !default;\n$dropdown-font-size:                $font-size-base !default;\n$dropdown-color:                    $body-color !default;\n$dropdown-bg:                       $white !default;\n$dropdown-border-color:             var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius:            $border-radius !default;\n$dropdown-border-width:             $border-width !default;\n$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg:               $dropdown-border-color !default;\n$dropdown-divider-margin-y:         $spacer * .5 !default;\n$dropdown-box-shadow:               $box-shadow !default;\n\n$dropdown-link-color:               $gray-900 !default;\n$dropdown-link-hover-color:         shade-color($dropdown-link-color, 10%) !default;\n$dropdown-link-hover-bg:            $gray-200 !default;\n\n$dropdown-link-active-color:        $component-active-color !default;\n$dropdown-link-active-bg:           $component-active-bg !default;\n\n$dropdown-link-disabled-color:      $gray-500 !default;\n\n$dropdown-item-padding-y:           $spacer * .25 !default;\n$dropdown-item-padding-x:           $spacer !default;\n\n$dropdown-header-color:             $gray-600 !default;\n$dropdown-header-padding-x:         $dropdown-item-padding-x !default;\n$dropdown-header-padding-y:         $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding:           $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color:               $gray-300 !default;\n$dropdown-dark-bg:                  $gray-800 !default;\n$dropdown-dark-border-color:        $dropdown-border-color !default;\n$dropdown-dark-divider-bg:          $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow:          null !default;\n$dropdown-dark-link-color:          $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color:    $white !default;\n$dropdown-dark-link-hover-bg:       rgba($white, .15) !default;\n$dropdown-dark-link-active-color:   $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg:      $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color:        $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y:              .375rem !default;\n$pagination-padding-x:              .75rem !default;\n$pagination-padding-y-sm:           .25rem !default;\n$pagination-padding-x-sm:           .5rem !default;\n$pagination-padding-y-lg:           .75rem !default;\n$pagination-padding-x-lg:           1.5rem !default;\n\n$pagination-font-size:              $font-size-base !default;\n\n$pagination-color:                  var(--#{$prefix}link-color) !default;\n$pagination-bg:                     $white !default;\n$pagination-border-radius:          $border-radius !default;\n$pagination-border-width:           $border-width !default;\n$pagination-margin-start:           ($pagination-border-width * -1) !default;\n$pagination-border-color:           $gray-300 !default;\n\n$pagination-focus-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg:               $gray-200 !default;\n$pagination-focus-box-shadow:       $input-btn-focus-box-shadow !default;\n$pagination-focus-outline:          0 !default;\n\n$pagination-hover-color:            var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg:               $gray-200 !default;\n$pagination-hover-border-color:     $gray-300 !default;\n\n$pagination-active-color:           $component-active-color !default;\n$pagination-active-bg:              $component-active-bg !default;\n$pagination-active-border-color:    $pagination-active-bg !default;\n\n$pagination-disabled-color:         $gray-600 !default;\n$pagination-disabled-bg:            $white !default;\n$pagination-disabled-border-color:  $gray-300 !default;\n\n$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm:       $border-radius-sm !default;\n$pagination-border-radius-lg:       $border-radius-lg !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max:           .5 !default;\n$placeholder-opacity-min:           .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y:                     $spacer !default;\n$card-spacer-x:                     $spacer !default;\n$card-title-spacer-y:               $spacer * .5 !default;\n$card-border-width:                 $border-width !default;\n$card-border-color:                 var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius:                $border-radius !default;\n$card-box-shadow:                   null !default;\n$card-inner-border-radius:          subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y:                $card-spacer-y * .5 !default;\n$card-cap-padding-x:                $card-spacer-x !default;\n$card-cap-bg:                       rgba($black, .03) !default;\n$card-cap-color:                    null !default;\n$card-height:                       null !default;\n$card-color:                        null !default;\n$card-bg:                           $white !default;\n$card-img-overlay-padding:          $spacer !default;\n$card-group-margin:                 $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y:                     1rem !default;\n$accordion-padding-x:                     1.25rem !default;\n$accordion-color:                         $body-color !default; // Sass variable because of $accordion-button-icon\n$accordion-bg:                            $body-bg !default;\n$accordion-border-width:                  $border-width !default;\n$accordion-border-color:                  var(--#{$prefix}border-color) !default;\n$accordion-border-radius:                 $border-radius !default;\n$accordion-inner-border-radius:           subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y:                $accordion-padding-y !default;\n$accordion-body-padding-x:                $accordion-padding-x !default;\n\n$accordion-button-padding-y:              $accordion-padding-y !default;\n$accordion-button-padding-x:              $accordion-padding-x !default;\n$accordion-button-color:                  $accordion-color !default;\n$accordion-button-bg:                     var(--#{$prefix}accordion-bg) !default;\n$accordion-transition:                    $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg:              tint-color($component-active-bg, 90%) !default;\n$accordion-button-active-color:           shade-color($primary, 10%) !default;\n\n$accordion-button-focus-border-color:     $input-focus-border-color !default;\n$accordion-button-focus-box-shadow:       $btn-focus-box-shadow !default;\n\n$accordion-icon-width:                    1.25rem !default;\n$accordion-icon-color:                    $accordion-button-color !default;\n$accordion-icon-active-color:             $accordion-button-active-color !default;\n$accordion-icon-transition:               transform .2s ease-in-out !default;\n$accordion-icon-transform:                rotate(-180deg) !default;\n\n$accordion-button-icon:         url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n$accordion-button-active-icon:  url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size:                 $font-size-sm !default;\n$tooltip-max-width:                 200px !default;\n$tooltip-color:                     $white !default;\n$tooltip-bg:                        $black !default;\n$tooltip-border-radius:             $border-radius !default;\n$tooltip-opacity:                   .9 !default;\n$tooltip-padding-y:                 $spacer * .25 !default;\n$tooltip-padding-x:                 $spacer * .5 !default;\n$tooltip-margin:                    null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width:               .8rem !default;\n$tooltip-arrow-height:              .4rem !default;\n// fusv-disable\n$tooltip-arrow-color:               null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y:     $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x:     $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size:     $tooltip-font-size !default;\n$form-feedback-tooltip-line-height:   null !default;\n$form-feedback-tooltip-opacity:       $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size:                 $font-size-sm !default;\n$popover-bg:                        $white !default;\n$popover-max-width:                 276px !default;\n$popover-border-width:              $border-width !default;\n$popover-border-color:              var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius:             $border-radius-lg !default;\n$popover-inner-border-radius:       subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow:                $box-shadow !default;\n\n$popover-header-font-size:          $font-size-base !default;\n$popover-header-bg:                 shade-color($popover-bg, 6%) !default;\n$popover-header-color:              $headings-color !default;\n$popover-header-padding-y:          .5rem !default;\n$popover-header-padding-x:          $spacer !default;\n\n$popover-body-color:                $body-color !default;\n$popover-body-padding-y:            $spacer !default;\n$popover-body-padding-x:            $spacer !default;\n\n$popover-arrow-width:               1rem !default;\n$popover-arrow-height:              .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color:               $popover-bg !default;\n$popover-arrow-outer-color:         var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width:                   350px !default;\n$toast-padding-x:                   .75rem !default;\n$toast-padding-y:                   .5rem !default;\n$toast-font-size:                   .875rem !default;\n$toast-color:                       null !default;\n$toast-background-color:            rgba($white, .85) !default;\n$toast-border-width:                $border-width !default;\n$toast-border-color:                var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius:               $border-radius !default;\n$toast-box-shadow:                  $box-shadow !default;\n$toast-spacing:                     $container-padding-x !default;\n\n$toast-header-color:                $gray-600 !default;\n$toast-header-background-color:     rgba($white, .85) !default;\n$toast-header-border-color:         rgba($black, .05) !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size:                   .75em !default;\n$badge-font-weight:                 $font-weight-bold !default;\n$badge-color:                       $white !default;\n$badge-padding-y:                   .35em !default;\n$badge-padding-x:                   .65em !default;\n$badge-border-radius:               $border-radius !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding:               $spacer !default;\n\n$modal-footer-margin-between:       .5rem !default;\n\n$modal-dialog-margin:               .5rem !default;\n$modal-dialog-margin-y-sm-up:       1.75rem !default;\n\n$modal-title-line-height:           $line-height-base !default;\n\n$modal-content-color:               null !default;\n$modal-content-bg:                  $white !default;\n$modal-content-border-color:        var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width:        $border-width !default;\n$modal-content-border-radius:       $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs:       $box-shadow-sm !default;\n$modal-content-box-shadow-sm-up:    $box-shadow !default;\n\n$modal-backdrop-bg:                 $black !default;\n$modal-backdrop-opacity:            .5 !default;\n\n$modal-header-border-color:         var(--#{$prefix}border-color) !default;\n$modal-header-border-width:         $modal-content-border-width !default;\n$modal-header-padding-y:            $modal-inner-padding !default;\n$modal-header-padding-x:            $modal-inner-padding !default;\n$modal-header-padding:              $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg:                   null !default;\n$modal-footer-border-color:         $modal-header-border-color !default;\n$modal-footer-border-width:         $modal-header-border-width !default;\n\n$modal-sm:                          300px !default;\n$modal-md:                          500px !default;\n$modal-lg:                          800px !default;\n$modal-xl:                          1140px !default;\n\n$modal-fade-transform:              translate(0, -50px) !default;\n$modal-show-transform:              none !default;\n$modal-transition:                  transform .3s ease-out !default;\n$modal-scale-transform:             scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y:               $spacer !default;\n$alert-padding-x:               $spacer !default;\n$alert-margin-bottom:           1rem !default;\n$alert-border-radius:           $border-radius !default;\n$alert-link-font-weight:        $font-weight-bold !default;\n$alert-border-width:            $border-width !default;\n$alert-bg-scale:                -80% !default;\n$alert-border-scale:            -70% !default;\n$alert-color-scale:             40% !default;\n$alert-dismissible-padding-r:   $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height:                   1rem !default;\n$progress-font-size:                $font-size-base * .75 !default;\n$progress-bg:                       $gray-200 !default;\n$progress-border-radius:            $border-radius !default;\n$progress-box-shadow:               $box-shadow-inset !default;\n$progress-bar-color:                $white !default;\n$progress-bar-bg:                   $primary !default;\n$progress-bar-animation-timing:     1s linear infinite !default;\n$progress-bar-transition:           width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color:                  $gray-900 !default;\n$list-group-bg:                     $white !default;\n$list-group-border-color:           rgba($black, .125) !default;\n$list-group-border-width:           $border-width !default;\n$list-group-border-radius:          $border-radius !default;\n\n$list-group-item-padding-y:         $spacer * .5 !default;\n$list-group-item-padding-x:         $spacer !default;\n$list-group-item-bg-scale:          -80% !default;\n$list-group-item-color-scale:       40% !default;\n\n$list-group-hover-bg:               $gray-100 !default;\n$list-group-active-color:           $component-active-color !default;\n$list-group-active-bg:              $component-active-bg !default;\n$list-group-active-border-color:    $list-group-active-bg !default;\n\n$list-group-disabled-color:         $gray-600 !default;\n$list-group-disabled-bg:            $list-group-bg !default;\n\n$list-group-action-color:           $gray-700 !default;\n$list-group-action-hover-color:     $list-group-action-color !default;\n\n$list-group-action-active-color:    $body-color !default;\n$list-group-action-active-bg:       $gray-200 !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding:                 .25rem !default;\n$thumbnail-bg:                      $body-bg !default;\n$thumbnail-border-width:            $border-width !default;\n$thumbnail-border-color:            var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius:           $border-radius !default;\n$thumbnail-box-shadow:              $box-shadow-sm !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size:          $small-font-size !default;\n$figure-caption-color:              $gray-600 !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size:              null !default;\n$breadcrumb-padding-y:              0 !default;\n$breadcrumb-padding-x:              0 !default;\n$breadcrumb-item-padding-x:         .5rem !default;\n$breadcrumb-margin-bottom:          1rem !default;\n$breadcrumb-bg:                     null !default;\n$breadcrumb-divider-color:          $gray-600 !default;\n$breadcrumb-active-color:           $gray-600 !default;\n$breadcrumb-divider:                quote(\"/\") !default;\n$breadcrumb-divider-flipped:        $breadcrumb-divider !default;\n$breadcrumb-border-radius:          null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color:             $white !default;\n$carousel-control-width:             15% !default;\n$carousel-control-opacity:           .5 !default;\n$carousel-control-hover-opacity:     .9 !default;\n$carousel-control-transition:        opacity .15s ease !default;\n\n$carousel-indicator-width:           30px !default;\n$carousel-indicator-height:          3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer:          3px !default;\n$carousel-indicator-opacity:         .5 !default;\n$carousel-indicator-active-bg:       $white !default;\n$carousel-indicator-active-opacity:  1 !default;\n$carousel-indicator-transition:      opacity .6s ease !default;\n\n$carousel-caption-width:             70% !default;\n$carousel-caption-color:             $white !default;\n$carousel-caption-padding-y:         1.25rem !default;\n$carousel-caption-spacer:            1.25rem !default;\n\n$carousel-control-icon-width:        2rem !default;\n\n$carousel-control-prev-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>\") !default;\n$carousel-control-next-icon-bg:      url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>\") !default;\n\n$carousel-transition-duration:       .6s !default;\n$carousel-transition:                transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg:  $black !default;\n$carousel-dark-caption-color:        $black !default;\n$carousel-dark-control-icon-filter:  invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width:           2rem !default;\n$spinner-height:          $spinner-width !default;\n$spinner-vertical-align:  -.125em !default;\n$spinner-border-width:    .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm:        1rem !default;\n$spinner-height-sm:       $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width:            1em !default;\n$btn-close-height:           $btn-close-width !default;\n$btn-close-padding-x:        .25em !default;\n$btn-close-padding-y:        $btn-close-padding-x !default;\n$btn-close-color:            $black !default;\n$btn-close-bg:               url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>\") !default;\n$btn-close-focus-shadow:     $input-btn-focus-box-shadow !default;\n$btn-close-opacity:          .5 !default;\n$btn-close-hover-opacity:    .75 !default;\n$btn-close-focus-opacity:    1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter:     invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y:               $modal-inner-padding !default;\n$offcanvas-padding-x:               $modal-inner-padding !default;\n$offcanvas-horizontal-width:        400px !default;\n$offcanvas-vertical-height:         30vh !default;\n$offcanvas-transition-duration:     .3s !default;\n$offcanvas-border-color:            $modal-content-border-color !default;\n$offcanvas-border-width:            $modal-content-border-width !default;\n$offcanvas-title-line-height:       $modal-title-line-height !default;\n$offcanvas-bg-color:                $modal-content-bg !default;\n$offcanvas-color:                   $modal-content-color !default;\n$offcanvas-box-shadow:              $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg:             $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity:        $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size:                    $small-font-size !default;\n$code-color:                        $pink !default;\n\n$kbd-padding-y:                     .1875rem !default;\n$kbd-padding-x:                     .375rem !default;\n$kbd-font-size:                     $code-font-size !default;\n$kbd-color:                         var(--#{$prefix}body-bg) !default;\n$kbd-bg:                            var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight:            null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color:                         null !default;\n",
+		"// Re-assigned maps\n//\n// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.\n\n// scss-docs-start theme-colors-rgb\n$theme-colors-rgb: map-loop($theme-colors, to-rgb, \"$value\") !default;\n// scss-docs-end theme-colors-rgb\n\n// Utilities maps\n//\n// Extends the default `$theme-colors` maps to help create our utilities.\n\n// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.\n// scss-docs-start utilities-colors\n$utilities-colors: $theme-colors-rgb !default;\n// scss-docs-end utilities-colors\n\n// scss-docs-start utilities-text-colors\n$utilities-text: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-color)\n  )\n) !default;\n$utilities-text-colors: map-loop($utilities-text, rgba-css-var, \"$key\", \"text\") !default;\n// scss-docs-end utilities-text-colors\n\n// scss-docs-start utilities-bg-colors\n$utilities-bg: map-merge(\n  $utilities-colors,\n  (\n    \"black\": to-rgb($black),\n    \"white\": to-rgb($white),\n    \"body\": to-rgb($body-bg)\n  )\n) !default;\n$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, \"$key\", \"bg\") !default;\n// scss-docs-end utilities-bg-colors\n\n// scss-docs-start utilities-border-colors\n$utilities-border: map-merge(\n  $utilities-colors,\n  (\n    \"white\": to-rgb($white)\n  )\n) !default;\n$utilities-border-colors: map-loop($utilities-border, rgba-css-var, \"$key\", \"border\") !default;\n// scss-docs-end utilities-border-colors\n\n$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;\n\n$gutters: $spacers !default;\n",
+		"// Toggles\n//\n// Used in conjunction with global variables to enable certain theme features.\n\n// Vendor\n@import \"vendor/rfs\";\n\n// Deprecate\n@import \"mixins/deprecate\";\n\n// Helpers\n@import \"mixins/breakpoints\";\n@import \"mixins/color-scheme\";\n@import \"mixins/image\";\n@import \"mixins/resize\";\n@import \"mixins/visually-hidden\";\n@import \"mixins/reset-text\";\n@import \"mixins/text-truncate\";\n\n// Utilities\n@import \"mixins/utilities\";\n\n// Components\n@import \"mixins/alert\";\n@import \"mixins/backdrop\";\n@import \"mixins/buttons\";\n@import \"mixins/caret\";\n@import \"mixins/pagination\";\n@import \"mixins/lists\";\n@import \"mixins/list-group\";\n@import \"mixins/forms\";\n@import \"mixins/table-variants\";\n\n// Skins\n@import \"mixins/border-radius\";\n@import \"mixins/box-shadow\";\n@import \"mixins/gradients\";\n@import \"mixins/transition\";\n\n// Layout\n@import \"mixins/clearfix\";\n@import \"mixins/container\";\n@import \"mixins/grid\";\n",
+		"// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n  @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n  @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n  @error \"`#{$rfs-factor}` is not a valid  $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n  $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n  $dividend: abs($dividend);\n  $divisor: abs($divisor);\n  @if $dividend == 0 {\n    @return 0;\n  }\n  @if $divisor == 0 {\n    @error \"Cannot divide by 0\";\n  }\n  $remainder: $dividend;\n  $result: 0;\n  $factor: 10;\n  @while ($remainder > 0 and $precision >= 0) {\n    $quotient: 0;\n    @while ($remainder >= $divisor) {\n      $remainder: $remainder - $divisor;\n      $quotient: $quotient + 1;\n    }\n    $result: $result * 10 + $quotient;\n    $factor: $factor * .1;\n    $remainder: $remainder * 10;\n    $precision: $precision - 1;\n    @if ($precision < 0 and $remainder >= $divisor * 5) {\n      $result: $result + 1;\n    }\n  }\n  $result: $result * $factor * $sign;\n  $dividend-unit: unit($dividend);\n  $divisor-unit: unit($divisor);\n  $unit-map: (\n    \"px\": 1px,\n    \"rem\": 1rem,\n    \"em\": 1em,\n    \"%\": 1%\n  );\n  @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n    $result: $result * map-get($unit-map, $dividend-unit);\n  }\n  @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n  $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n  $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n  $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n  $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n  @if $rfs-two-dimensional {\n    @if $rfs-mode == max-media-query {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n    @else {\n      @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n        @content;\n      }\n    }\n  }\n  @else {\n    @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n      @content;\n    }\n  }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n  @if $rfs-class == disable and $rfs-mode == max-media-query {\n    // Adding an extra class increases specificity, which prevents the media query to override the property\n    &,\n    .disable-rfs &,\n    &.disable-rfs {\n      @content;\n    }\n  }\n  @else if $rfs-class == enable and $rfs-mode == min-media-query {\n    .enable-rfs &,\n    &.enable-rfs {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n  @if $rfs-class == enable {\n    @if $rfs-mode == min-media-query {\n      @content;\n    }\n\n    @include _rfs-media-query {\n      .enable-rfs &,\n      &.enable-rfs {\n        @content;\n      }\n    }\n  }\n  @else {\n    @if $rfs-class == disable and $rfs-mode == min-media-query {\n      .disable-rfs &,\n      &.disable-rfs {\n        @content;\n      }\n    }\n    @include _rfs-media-query {\n      @content;\n    }\n  }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      @if $unit == px {\n        // Convert to rem if needed\n        $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n      }\n      @else if $unit == rem {\n        // Convert to px if needed\n        $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n      }\n      @else {\n        // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n        $val: $val + ' ' + $value;\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n  // Convert to list\n  $values: if(type-of($values) != list, ($values,), $values);\n\n  $val: '';\n\n  // Loop over each value and calculate value\n  @each $value in $values {\n    @if $value == 0 {\n      $val: $val + ' 0';\n    }\n\n    @else {\n      // Cache $value unit\n      $unit: if(type-of($value) == \"number\", unit($value), false);\n\n      // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n      @if not $unit or $unit != px and $unit != rem {\n        $val: $val + ' ' + $value;\n      }\n\n      @else {\n        // Remove unit from $value for calculations\n        $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n        // Only add the media query if the value is greater than the minimum value\n        @if abs($value) <= $rfs-base-value or not $enable-rfs {\n          $val: $val + ' ' +  if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n        }\n        @else {\n          // Calculate the minimum value\n          $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n          // Calculate difference between $value and the minimum value\n          $value-diff: abs($value) - $value-min;\n\n          // Base value formatting\n          $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n          // Use negative value if needed\n          $min-width: if($value < 0, -$min-width, $min-width);\n\n          // Use `vmin` if two-dimensional is enabled\n          $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n          // Calculate the variable width between 0 and $rfs-breakpoint\n          $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n          // Return the calculated value\n          $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\n        }\n      }\n    }\n  }\n\n  // Remove first space\n  @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n  @if $values != null {\n    $val: rfs-value($values);\n    $fluidVal: rfs-fluid-value($values);\n\n    // Do not print the media query if responsive & non-responsive values are the same\n    @if $val == $fluidVal {\n      #{$property}: $val;\n    }\n    @else {\n      @include _rfs-rule {\n        #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);\n\n        // Include safari iframe resize fix if needed\n        min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n      }\n\n      @include _rfs-media-query-rule {\n        #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);\n      }\n    }\n  }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n  @include rfs($value);\n}\n\n@mixin padding($value) {\n  @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n  @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n  @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n  @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n  @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n  @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n  @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n  @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n  @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n  @include rfs($value, margin-left);\n}\n",
+		"// Deprecate mixin\n//\n// This mixin can be used to deprecate mixins or functions.\n// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to\n// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)\n@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {\n  @if ($enable-deprecation-messages != false and $ignore-warning != true) {\n    @warn \"#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.\";\n  }\n}\n",
+		"// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @if not $n {\n    @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n  }\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n//    >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $max: map-get($breakpoints, $name);\n  @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper, $breakpoints) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min:  breakpoint-min($name, $breakpoints);\n  $next: breakpoint-next($name, $breakpoints);\n  $max:  breakpoint-max($next, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name, $breakpoints) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($next, $breakpoints) {\n      @content;\n    }\n  }\n}\n",
+		"// scss-docs-start mixin-color-scheme\n@mixin color-scheme($name) {\n  @media (prefers-color-scheme: #{$name}) {\n    @content;\n  }\n}\n// scss-docs-end mixin-color-scheme\n",
+		"// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n  // Part 1: Set a maximum relative to the parent\n  max-width: 100%;\n  // Part 2: Override the height to auto, otherwise images will be stretched\n  // when setting a width and height attribute on the img element.\n  height: auto;\n}\n",
+		"// Resize anything\n\n@mixin resizable($direction) {\n  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`\n  resize: $direction; // Options: horizontal, vertical, both\n}\n",
+		"// stylelint-disable declaration-no-important\n\n// Hide content visually while keeping it accessible to assistive technologies\n//\n// See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/\n// See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin visually-hidden() {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  margin: -1px !important; // Fix for https://github.com/twbs/bootstrap/issues/25686\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important;\n}\n\n// Use to only display content when it's focused, or one of its child elements is focused\n// (i.e. when focus is within the element/container that the class was applied to)\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n\n@mixin visually-hidden-focusable() {\n  &:not(:focus):not(:focus-within) {\n    @include visually-hidden();\n  }\n}\n",
+		"@mixin reset-text {\n  font-family: $font-family-base;\n  // We deliberately do NOT reset font-size or overflow-wrap / word-wrap.\n  font-style: normal;\n  font-weight: $font-weight-normal;\n  line-height: $line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  white-space: normal;\n  word-spacing: normal;\n  line-break: auto;\n}\n",
+		"// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n",
+		"// Utility generator\n// Used to generate utilities & print utilities\n@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {\n  $values: map-get($utility, values);\n\n  // If the values are a list or string, convert it into a map\n  @if type-of($values) == \"string\" or type-of(nth($values, 1)) != \"list\" {\n    $values: zip($values, $values);\n  }\n\n  @each $key, $value in $values {\n    $properties: map-get($utility, property);\n\n    // Multiple properties are possible, for example with vertical or horizontal margins or paddings\n    @if type-of($properties) == \"string\" {\n      $properties: append((), $properties);\n    }\n\n    // Use custom class if present\n    $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));\n    $property-class: if($property-class == null, \"\", $property-class);\n\n    // Use custom CSS variable name if present, otherwise default to `class`\n    $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));\n\n    // State params to generate pseudo-classes\n    $state: if(map-has-key($utility, state), map-get($utility, state), ());\n\n    $infix: if($property-class == \"\" and str-slice($infix, 1, 1) == \"-\", str-slice($infix, 2), $infix);\n\n    // Don't prefix if value key is null (e.g. with shadow class)\n    $property-class-modifier: if($key, if($property-class == \"\" and $infix == \"\", \"\", \"-\") + $key, \"\");\n\n    @if map-get($utility, rfs) {\n      // Inside the media query\n      @if $is-rfs-media-query {\n        $val: rfs-value($value);\n\n        // Do not render anything if fluid and non fluid values are the same\n        $value: if($val == rfs-fluid-value($value), null, $val);\n      }\n      @else {\n        $value: rfs-fluid-value($value);\n      }\n    }\n\n    $is-css-var: map-get($utility, css-var);\n    $is-local-vars: map-get($utility, local-vars);\n    $is-rtl: map-get($utility, rtl);\n\n    @if $value != null {\n      @if $is-rtl == false {\n        /* rtl:begin:remove */\n      }\n\n      @if $is-css-var {\n        .#{$property-class + $infix + $property-class-modifier} {\n          --#{$prefix}#{$css-variable-name}: #{$value};\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            --#{$prefix}#{$css-variable-name}: #{$value};\n          }\n        }\n      } @else {\n        .#{$property-class + $infix + $property-class-modifier} {\n          @each $property in $properties {\n            @if $is-local-vars {\n              @each $local-var, $variable in $is-local-vars {\n                --#{$prefix}#{$local-var}: #{$variable};\n              }\n            }\n            #{$property}: $value if($enable-important-utilities, !important, null);\n          }\n        }\n\n        @each $pseudo in $state {\n          .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {\n            @each $property in $properties {\n              @if $is-local-vars {\n                @each $local-var, $variable in $is-local-vars {\n                  --#{$prefix}#{$local-var}: #{$variable};\n                }\n              }\n              #{$property}: $value if($enable-important-utilities, !important, null);\n            }\n          }\n        }\n      }\n\n      @if $is-rtl == false {\n        /* rtl:end:remove */\n      }\n    }\n  }\n}\n",
+		"// scss-docs-start alert-variant-mixin\n@mixin alert-variant($background, $border, $color) {\n  --#{$prefix}alert-color: #{$color};\n  --#{$prefix}alert-bg: #{$background};\n  --#{$prefix}alert-border-color: #{$border};\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n\n  .alert-link {\n    color: shade-color($color, 20%);\n  }\n}\n// scss-docs-end alert-variant-mixin\n",
+		"// Shared between modals and offcanvases\n@mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: $zindex;\n  width: 100vw;\n  height: 100vh;\n  background-color: $backdrop-bg;\n\n  // Fade for backdrop\n  &.fade { opacity: 0; }\n  &.show { opacity: $backdrop-opacity; }\n}\n",
+		"// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n// scss-docs-start btn-variant-mixin\n@mixin button-variant(\n  $background,\n  $border,\n  $color: color-contrast($background),\n  $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),\n  $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),\n  $hover-color: color-contrast($hover-background),\n  $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),\n  $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),\n  $active-color: color-contrast($active-background),\n  $disabled-background: $background,\n  $disabled-border: $border,\n  $disabled-color: color-contrast($disabled-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-bg: #{$background};\n  --#{$prefix}btn-border-color: #{$border};\n  --#{$prefix}btn-hover-color: #{$hover-color};\n  --#{$prefix}btn-hover-bg: #{$hover-background};\n  --#{$prefix}btn-hover-border-color: #{$hover-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$disabled-color};\n  --#{$prefix}btn-disabled-bg: #{$disabled-background};\n  --#{$prefix}btn-disabled-border-color: #{$disabled-border};\n}\n// scss-docs-end btn-variant-mixin\n\n// scss-docs-start btn-outline-variant-mixin\n@mixin button-outline-variant(\n  $color,\n  $color-hover: color-contrast($color),\n  $active-background: $color,\n  $active-border: $color,\n  $active-color: color-contrast($active-background)\n) {\n  --#{$prefix}btn-color: #{$color};\n  --#{$prefix}btn-border-color: #{$color};\n  --#{$prefix}btn-hover-color: #{$color-hover};\n  --#{$prefix}btn-hover-bg: #{$active-background};\n  --#{$prefix}btn-hover-border-color: #{$active-border};\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};\n  --#{$prefix}btn-active-color: #{$active-color};\n  --#{$prefix}btn-active-bg: #{$active-background};\n  --#{$prefix}btn-active-border-color: #{$active-border};\n  --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};\n  --#{$prefix}btn-disabled-color: #{$color};\n  --#{$prefix}btn-disabled-bg: transparent;\n  --#{$prefix}btn-disabled-border-color: #{$color};\n  --#{$prefix}gradient: none;\n}\n// scss-docs-end btn-outline-variant-mixin\n\n// scss-docs-start btn-size-mixin\n@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}btn-padding-y: #{$padding-y};\n  --#{$prefix}btn-padding-x: #{$padding-x};\n  @include rfs($font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-border-radius: #{$border-radius};\n}\n// scss-docs-end btn-size-mixin\n",
+		"// scss-docs-start caret-mixins\n@mixin caret-down {\n  border-top: $caret-width solid;\n  border-right: $caret-width solid transparent;\n  border-bottom: 0;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n  border-top: 0;\n  border-right: $caret-width solid transparent;\n  border-bottom: $caret-width solid;\n  border-left: $caret-width solid transparent;\n}\n\n@mixin caret-end {\n  border-top: $caret-width solid transparent;\n  border-right: 0;\n  border-bottom: $caret-width solid transparent;\n  border-left: $caret-width solid;\n}\n\n@mixin caret-start {\n  border-top: $caret-width solid transparent;\n  border-right: $caret-width solid;\n  border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n  @if $enable-caret {\n    &::after {\n      display: inline-block;\n      margin-left: $caret-spacing;\n      vertical-align: $caret-vertical-align;\n      content: \"\";\n      @if $direction == down {\n        @include caret-down();\n      } @else if $direction == up {\n        @include caret-up();\n      } @else if $direction == end {\n        @include caret-end();\n      }\n    }\n\n    @if $direction == start {\n      &::after {\n        display: none;\n      }\n\n      &::before {\n        display: inline-block;\n        margin-right: $caret-spacing;\n        vertical-align: $caret-vertical-align;\n        content: \"\";\n        @include caret-start();\n      }\n    }\n\n    &:empty::after {\n      margin-left: 0;\n    }\n  }\n}\n// scss-docs-end caret-mixins\n",
+		"// Pagination\n\n// scss-docs-start pagination-mixin\n@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {\n  --#{$prefix}pagination-padding-x: #{$padding-x};\n  --#{$prefix}pagination-padding-y: #{$padding-y};\n  @include rfs($font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-border-radius: #{$border-radius};\n}\n// scss-docs-end pagination-mixin\n",
+		"// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n",
+		"// List Groups\n\n// scss-docs-start list-group-mixin\n@mixin list-group-item-variant($state, $background, $color) {\n  .list-group-item-#{$state} {\n    color: $color;\n    background-color: $background;\n\n    &.list-group-item-action {\n      &:hover,\n      &:focus {\n        color: $color;\n        background-color: shade-color($background, 10%);\n      }\n\n      &.active {\n        color: $white;\n        background-color: $color;\n        border-color: $color;\n      }\n    }\n  }\n}\n// scss-docs-end list-group-mixin\n",
+		"// This mixin uses an `if()` technique to be compatible with Dart Sass\n// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details\n\n// scss-docs-start form-validation-mixins\n@mixin form-validation-state-selector($state) {\n  @if ($state == \"valid\" or $state == \"invalid\") {\n    .was-validated #{if(&, \"&\", \"\")}:#{$state},\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  } @else {\n    #{if(&, \"&\", \"\")}.is-#{$state} {\n      @content;\n    }\n  }\n}\n\n@mixin form-validation-state(\n  $state,\n  $color,\n  $icon,\n  $tooltip-color: color-contrast($color),\n  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),\n  $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)\n) {\n  .#{$state}-feedback {\n    display: none;\n    width: 100%;\n    margin-top: $form-feedback-margin-top;\n    @include font-size($form-feedback-font-size);\n    font-style: $form-feedback-font-style;\n    color: $color;\n  }\n\n  .#{$state}-tooltip {\n    position: absolute;\n    top: 100%;\n    z-index: 5;\n    display: none;\n    max-width: 100%; // Contain to parent when possible\n    padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;\n    margin-top: .1rem;\n    @include font-size($form-feedback-tooltip-font-size);\n    line-height: $form-feedback-tooltip-line-height;\n    color: $tooltip-color;\n    background-color: $tooltip-bg-color;\n    @include border-radius($form-feedback-tooltip-border-radius);\n  }\n\n  @include form-validation-state-selector($state) {\n    ~ .#{$state}-feedback,\n    ~ .#{$state}-tooltip {\n      display: block;\n    }\n  }\n\n  .form-control {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-image: escape-svg($icon);\n        background-repeat: no-repeat;\n        background-position: right $input-height-inner-quarter center;\n        background-size: $input-height-inner-half $input-height-inner-half;\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  // stylelint-disable-next-line selector-no-qualifying-type\n  textarea.form-control {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        padding-right: $input-height-inner;\n        background-position: top $input-height-inner-quarter right $input-height-inner-quarter;\n      }\n    }\n  }\n\n  .form-select {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      @if $enable-validation-icons {\n        &:not([multiple]):not([size]),\n        &:not([multiple])[size=\"1\"] {\n          padding-right: $form-select-feedback-icon-padding-end;\n          background-image: escape-svg($form-select-indicator), escape-svg($icon);\n          background-position: $form-select-bg-position, $form-select-feedback-icon-position;\n          background-size: $form-select-bg-size, $form-select-feedback-icon-size;\n        }\n      }\n\n      &:focus {\n        border-color: $color;\n        box-shadow: $focus-box-shadow;\n      }\n    }\n  }\n\n  .form-control-color {\n    @include form-validation-state-selector($state) {\n      @if $enable-validation-icons {\n        width: add($form-color-width, $input-height-inner);\n      }\n    }\n  }\n\n  .form-check-input {\n    @include form-validation-state-selector($state) {\n      border-color: $color;\n\n      &:checked {\n        background-color: $color;\n      }\n\n      &:focus {\n        box-shadow: $focus-box-shadow;\n      }\n\n      ~ .form-check-label {\n        color: $color;\n      }\n    }\n  }\n  .form-check-inline .form-check-input {\n    ~ .#{$state}-feedback {\n      margin-left: .5em;\n    }\n  }\n\n  .input-group {\n    > .form-control:not(:focus),\n    > .form-select:not(:focus),\n    > .form-floating:not(:focus-within) {\n      @include form-validation-state-selector($state) {\n        @if $state == \"valid\" {\n          z-index: 3;\n        } @else if $state == \"invalid\" {\n          z-index: 4;\n        }\n      }\n    }\n  }\n}\n// scss-docs-end form-validation-mixins\n",
+		"// scss-docs-start table-variant\n@mixin table-variant($state, $background) {\n  .table-#{$state} {\n    $color: color-contrast(opaque($body-bg, $background));\n    $hover-bg: mix($color, $background, percentage($table-hover-bg-factor));\n    $striped-bg: mix($color, $background, percentage($table-striped-bg-factor));\n    $active-bg: mix($color, $background, percentage($table-active-bg-factor));\n    $table-border-color: mix($color, $background, percentage($table-border-factor));\n\n    --#{$prefix}table-color: #{$color};\n    --#{$prefix}table-bg: #{$background};\n    --#{$prefix}table-border-color: #{$table-border-color};\n    --#{$prefix}table-striped-bg: #{$striped-bg};\n    --#{$prefix}table-striped-color: #{color-contrast($striped-bg)};\n    --#{$prefix}table-active-bg: #{$active-bg};\n    --#{$prefix}table-active-color: #{color-contrast($active-bg)};\n    --#{$prefix}table-hover-bg: #{$hover-bg};\n    --#{$prefix}table-hover-color: #{color-contrast($hover-bg)};\n\n    color: var(--#{$prefix}table-color);\n    border-color: var(--#{$prefix}table-border-color);\n  }\n}\n// scss-docs-end table-variant\n",
+		"// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n  $return: ();\n  @each $value in $radius {\n    @if type-of($value) == number {\n      $return: append($return, max($value, 0));\n    } @else {\n      $return: append($return, $value);\n    }\n  }\n  @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n  @if $enable-rounded {\n    border-radius: valid-radius($radius);\n  }\n  @else if $fallback-border-radius != false {\n    border-radius: $fallback-border-radius;\n  }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-left-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-top-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-right-radius: valid-radius($radius);\n  }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n  @if $enable-rounded {\n    border-bottom-left-radius: valid-radius($radius);\n  }\n}\n// scss-docs-end border-radius-mixins\n",
+		"@mixin box-shadow($shadow...) {\n  @if $enable-shadows {\n    $result: ();\n\n    @each $value in $shadow {\n      @if $value != null {\n        $result: append($result, $value, \"comma\");\n      }\n      @if $value == none and length($shadow) > 1 {\n        @warn \"The keyword 'none' must be used as a single argument.\";\n      }\n    }\n\n    @if (length($result) > 0) {\n      box-shadow: $result;\n    }\n  }\n}\n",
+		"// Gradients\n\n// scss-docs-start gradient-bg-mixin\n@mixin gradient-bg($color: null) {\n  background-color: $color;\n\n  @if $enable-gradients {\n    background-image: var(--#{$prefix}gradient);\n  }\n}\n// scss-docs-end gradient-bg-mixin\n\n// scss-docs-start gradient-mixins\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: null, $end-percent: null) {\n  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n  background-image: linear-gradient($deg, $start-color, $end-color);\n}\n\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n}\n\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n  background-image: radial-gradient(circle, $inner-color, $outer-color);\n}\n\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n// scss-docs-end gradient-mixins\n",
+		"// stylelint-disable property-disallowed-list\n@mixin transition($transition...) {\n  @if length($transition) == 0 {\n    $transition: $transition-base;\n  }\n\n  @if length($transition) > 1 {\n    @each $value in $transition {\n      @if $value == null or $value == none {\n        @warn \"The keyword 'none' or 'null' must be used as a single argument.\";\n      }\n    }\n  }\n\n  @if $enable-transitions {\n    @if nth($transition, 1) != null {\n      transition: $transition;\n    }\n\n    @if $enable-reduced-motion and nth($transition, 1) != null and nth($transition, 1) != none {\n      @media (prefers-reduced-motion: reduce) {\n        transition: none;\n      }\n    }\n  }\n}\n",
+		"// scss-docs-start clearfix\n@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n// scss-docs-end clearfix\n",
+		"// Container mixins\n\n@mixin make-container($gutter: $container-padding-x) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  width: 100%;\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-right: auto;\n  margin-left: auto;\n}\n",
+		"// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-row($gutter: $grid-gutter-width) {\n  --#{$prefix}gutter-x: #{$gutter};\n  --#{$prefix}gutter-y: 0;\n  display: flex;\n  flex-wrap: wrap;\n  // TODO: Revisit calc order after https://github.com/react-bootstrap/react-bootstrap/issues/6039 is fixed\n  margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list\n  margin-right: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list\n}\n\n@mixin make-col-ready() {\n  // Add box sizing if only the grid is loaded\n  box-sizing: if(variable-exists(include-column-box-sizing) and $include-column-box-sizing, border-box, null);\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we set the width\n  // later on to override this initial width.\n  flex-shrink: 0;\n  width: 100%;\n  max-width: 100%; // Prevent `.col-auto`, `.col` (& responsive variants) from breaking out the grid\n  padding-right: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  padding-left: calc(var(--#{$prefix}gutter-x) * .5); // stylelint-disable-line function-disallowed-list\n  margin-top: var(--#{$prefix}gutter-y);\n}\n\n@mixin make-col($size: false, $columns: $grid-columns) {\n  @if $size {\n    flex: 0 0 auto;\n    width: percentage(divide($size, $columns));\n\n  } @else {\n    flex: 1 1 0;\n    max-width: 100%;\n  }\n}\n\n@mixin make-col-auto() {\n  flex: 0 0 auto;\n  width: auto;\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: divide($size, $columns);\n  margin-left: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// number of columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n  > * {\n    flex: 0 0 auto;\n    width: divide(100%, $count);\n  }\n}\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n      .col#{$infix} {\n        flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      }\n\n      .row-cols#{$infix}-auto > * {\n        @include make-col-auto();\n      }\n\n      @if $grid-row-columns > 0 {\n        @for $i from 1 through $grid-row-columns {\n          .row-cols#{$infix}-#{$i} {\n            @include row-cols($i);\n          }\n        }\n      }\n\n      .col#{$infix}-auto {\n        @include make-col-auto();\n      }\n\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .col#{$infix}-#{$i} {\n            @include make-col($i, $columns);\n          }\n        }\n\n        // `$columns - 1` because offsetting by the width of an entire row isn't possible\n        @for $i from 0 through ($columns - 1) {\n          @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n            .offset#{$infix}-#{$i} {\n              @include make-col-offset($i, $columns);\n            }\n          }\n        }\n      }\n\n      // Gutters\n      //\n      // Make use of `.g-*`, `.gx-*` or `.gy-*` utilities to change spacing between the columns.\n      @each $key, $value in $gutters {\n        .g#{$infix}-#{$key},\n        .gx#{$infix}-#{$key} {\n          --#{$prefix}gutter-x: #{$value};\n        }\n\n        .g#{$infix}-#{$key},\n        .gy#{$infix}-#{$key} {\n          --#{$prefix}gutter-y: #{$value};\n        }\n      }\n    }\n  }\n}\n\n@mixin make-cssgrid($columns: $grid-columns, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint in map-keys($breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      @if $columns > 0 {\n        @for $i from 1 through $columns {\n          .g-col#{$infix}-#{$i} {\n            grid-column: auto / span $i;\n          }\n        }\n\n        // Start with `1` because `0` is and invalid value.\n        // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.\n        @for $i from 1 through ($columns - 1) {\n          .g-start#{$infix}-#{$i} {\n            grid-column-start: $i;\n          }\n        }\n      }\n    }\n  }\n}\n",
+		"// Utilities\n\n$utilities: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$utilities: map-merge(\n  (\n    // scss-docs-start utils-vertical-align\n    \"align\": (\n      property: vertical-align,\n      class: align,\n      values: baseline top middle bottom text-bottom text-top\n    ),\n    // scss-docs-end utils-vertical-align\n    // scss-docs-start utils-float\n    \"float\": (\n      responsive: true,\n      property: float,\n      values: (\n        start: left,\n        end: right,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-float\n    // Opacity utilities\n    // scss-docs-start utils-opacity\n    \"opacity\": (\n      property: opacity,\n      values: (\n        0: 0,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1,\n      )\n    ),\n    // scss-docs-end utils-opacity\n    // scss-docs-start utils-overflow\n    \"overflow\": (\n      property: overflow,\n      values: auto hidden visible scroll,\n    ),\n    // scss-docs-end utils-overflow\n    // scss-docs-start utils-display\n    \"display\": (\n      responsive: true,\n      print: true,\n      property: display,\n      class: d,\n      values: inline inline-block block grid table table-row table-cell flex inline-flex none\n    ),\n    // scss-docs-end utils-display\n    // scss-docs-start utils-shadow\n    \"shadow\": (\n      property: box-shadow,\n      class: shadow,\n      values: (\n        null: $box-shadow,\n        sm: $box-shadow-sm,\n        lg: $box-shadow-lg,\n        none: none,\n      )\n    ),\n    // scss-docs-end utils-shadow\n    // scss-docs-start utils-position\n    \"position\": (\n      property: position,\n      values: static relative absolute fixed sticky\n    ),\n    \"top\": (\n      property: top,\n      values: $position-values\n    ),\n    \"bottom\": (\n      property: bottom,\n      values: $position-values\n    ),\n    \"start\": (\n      property: left,\n      class: start,\n      values: $position-values\n    ),\n    \"end\": (\n      property: right,\n      class: end,\n      values: $position-values\n    ),\n    \"translate-middle\": (\n      property: transform,\n      class: translate-middle,\n      values: (\n        null: translate(-50%, -50%),\n        x: translateX(-50%),\n        y: translateY(-50%),\n      )\n    ),\n    // scss-docs-end utils-position\n    // scss-docs-start utils-borders\n    \"border\": (\n      property: border,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-top\": (\n      property: border-top,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-end\": (\n      property: border-right,\n      class: border-end,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-bottom\": (\n      property: border-bottom,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-start\": (\n      property: border-left,\n      class: border-start,\n      values: (\n        null: var(--#{$prefix}border-width) var(--#{$prefix}border-style) var(--#{$prefix}border-color),\n        0: 0,\n      )\n    ),\n    \"border-color\": (\n      property: border-color,\n      class: border,\n      local-vars: (\n        \"border-opacity\": 1\n      ),\n      values: $utilities-border-colors\n    ),\n    \"border-width\": (\n      css-var: true,\n      css-variable-name: border-width,\n      class: border,\n      values: $border-widths\n    ),\n    \"border-opacity\": (\n      css-var: true,\n      class: border-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-borders\n    // Sizing utilities\n    // scss-docs-start utils-sizing\n    \"width\": (\n      property: width,\n      class: w,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-width\": (\n      property: max-width,\n      class: mw,\n      values: (100: 100%)\n    ),\n    \"viewport-width\": (\n      property: width,\n      class: vw,\n      values: (100: 100vw)\n    ),\n    \"min-viewport-width\": (\n      property: min-width,\n      class: min-vw,\n      values: (100: 100vw)\n    ),\n    \"height\": (\n      property: height,\n      class: h,\n      values: (\n        25: 25%,\n        50: 50%,\n        75: 75%,\n        100: 100%,\n        auto: auto\n      )\n    ),\n    \"max-height\": (\n      property: max-height,\n      class: mh,\n      values: (100: 100%)\n    ),\n    \"viewport-height\": (\n      property: height,\n      class: vh,\n      values: (100: 100vh)\n    ),\n    \"min-viewport-height\": (\n      property: min-height,\n      class: min-vh,\n      values: (100: 100vh)\n    ),\n    // scss-docs-end utils-sizing\n    // Flex utilities\n    // scss-docs-start utils-flex\n    \"flex\": (\n      responsive: true,\n      property: flex,\n      values: (fill: 1 1 auto)\n    ),\n    \"flex-direction\": (\n      responsive: true,\n      property: flex-direction,\n      class: flex,\n      values: row column row-reverse column-reverse\n    ),\n    \"flex-grow\": (\n      responsive: true,\n      property: flex-grow,\n      class: flex,\n      values: (\n        grow-0: 0,\n        grow-1: 1,\n      )\n    ),\n    \"flex-shrink\": (\n      responsive: true,\n      property: flex-shrink,\n      class: flex,\n      values: (\n        shrink-0: 0,\n        shrink-1: 1,\n      )\n    ),\n    \"flex-wrap\": (\n      responsive: true,\n      property: flex-wrap,\n      class: flex,\n      values: wrap nowrap wrap-reverse\n    ),\n    \"justify-content\": (\n      responsive: true,\n      property: justify-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        evenly: space-evenly,\n      )\n    ),\n    \"align-items\": (\n      responsive: true,\n      property: align-items,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"align-content\": (\n      responsive: true,\n      property: align-content,\n      values: (\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        between: space-between,\n        around: space-around,\n        stretch: stretch,\n      )\n    ),\n    \"align-self\": (\n      responsive: true,\n      property: align-self,\n      values: (\n        auto: auto,\n        start: flex-start,\n        end: flex-end,\n        center: center,\n        baseline: baseline,\n        stretch: stretch,\n      )\n    ),\n    \"order\": (\n      responsive: true,\n      property: order,\n      values: (\n        first: -1,\n        0: 0,\n        1: 1,\n        2: 2,\n        3: 3,\n        4: 4,\n        5: 5,\n        last: 6,\n      ),\n    ),\n    // scss-docs-end utils-flex\n    // Margin utilities\n    // scss-docs-start utils-spacing\n    \"margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    \"margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: map-merge($spacers, (auto: auto))\n    ),\n    // Negative margin utilities\n    \"negative-margin\": (\n      responsive: true,\n      property: margin,\n      class: m,\n      values: $negative-spacers\n    ),\n    \"negative-margin-x\": (\n      responsive: true,\n      property: margin-right margin-left,\n      class: mx,\n      values: $negative-spacers\n    ),\n    \"negative-margin-y\": (\n      responsive: true,\n      property: margin-top margin-bottom,\n      class: my,\n      values: $negative-spacers\n    ),\n    \"negative-margin-top\": (\n      responsive: true,\n      property: margin-top,\n      class: mt,\n      values: $negative-spacers\n    ),\n    \"negative-margin-end\": (\n      responsive: true,\n      property: margin-right,\n      class: me,\n      values: $negative-spacers\n    ),\n    \"negative-margin-bottom\": (\n      responsive: true,\n      property: margin-bottom,\n      class: mb,\n      values: $negative-spacers\n    ),\n    \"negative-margin-start\": (\n      responsive: true,\n      property: margin-left,\n      class: ms,\n      values: $negative-spacers\n    ),\n    // Padding utilities\n    \"padding\": (\n      responsive: true,\n      property: padding,\n      class: p,\n      values: $spacers\n    ),\n    \"padding-x\": (\n      responsive: true,\n      property: padding-right padding-left,\n      class: px,\n      values: $spacers\n    ),\n    \"padding-y\": (\n      responsive: true,\n      property: padding-top padding-bottom,\n      class: py,\n      values: $spacers\n    ),\n    \"padding-top\": (\n      responsive: true,\n      property: padding-top,\n      class: pt,\n      values: $spacers\n    ),\n    \"padding-end\": (\n      responsive: true,\n      property: padding-right,\n      class: pe,\n      values: $spacers\n    ),\n    \"padding-bottom\": (\n      responsive: true,\n      property: padding-bottom,\n      class: pb,\n      values: $spacers\n    ),\n    \"padding-start\": (\n      responsive: true,\n      property: padding-left,\n      class: ps,\n      values: $spacers\n    ),\n    // Gap utility\n    \"gap\": (\n      responsive: true,\n      property: gap,\n      class: gap,\n      values: $spacers\n    ),\n    // scss-docs-end utils-spacing\n    // Text\n    // scss-docs-start utils-text\n    \"font-family\": (\n      property: font-family,\n      class: font,\n      values: (monospace: var(--#{$prefix}font-monospace))\n    ),\n    \"font-size\": (\n      rfs: true,\n      property: font-size,\n      class: fs,\n      values: $font-sizes\n    ),\n    \"font-style\": (\n      property: font-style,\n      class: fst,\n      values: italic normal\n    ),\n    \"font-weight\": (\n      property: font-weight,\n      class: fw,\n      values: (\n        light: $font-weight-light,\n        lighter: $font-weight-lighter,\n        normal: $font-weight-normal,\n        bold: $font-weight-bold,\n        semibold: $font-weight-semibold,\n        bolder: $font-weight-bolder\n      )\n    ),\n    \"line-height\": (\n      property: line-height,\n      class: lh,\n      values: (\n        1: 1,\n        sm: $line-height-sm,\n        base: $line-height-base,\n        lg: $line-height-lg,\n      )\n    ),\n    \"text-align\": (\n      responsive: true,\n      property: text-align,\n      class: text,\n      values: (\n        start: left,\n        end: right,\n        center: center,\n      )\n    ),\n    \"text-decoration\": (\n      property: text-decoration,\n      values: none underline line-through\n    ),\n    \"text-transform\": (\n      property: text-transform,\n      class: text,\n      values: lowercase uppercase capitalize\n    ),\n    \"white-space\": (\n      property: white-space,\n      class: text,\n      values: (\n        wrap: normal,\n        nowrap: nowrap,\n      )\n    ),\n    \"word-wrap\": (\n      property: word-wrap word-break,\n      class: text,\n      values: (break: break-word),\n      rtl: false\n    ),\n    // scss-docs-end utils-text\n    // scss-docs-start utils-color\n    \"color\": (\n      property: color,\n      class: text,\n      local-vars: (\n        \"text-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-text-colors,\n        (\n          \"muted\": $text-muted,\n          \"black-50\": rgba($black, .5), // deprecated\n          \"white-50\": rgba($white, .5), // deprecated\n          \"reset\": inherit,\n        )\n      )\n    ),\n    \"text-opacity\": (\n      css-var: true,\n      class: text-opacity,\n      values: (\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-color\n    // scss-docs-start utils-bg-color\n    \"background-color\": (\n      property: background-color,\n      class: bg,\n      local-vars: (\n        \"bg-opacity\": 1\n      ),\n      values: map-merge(\n        $utilities-bg-colors,\n        (\n          \"transparent\": transparent\n        )\n      )\n    ),\n    \"bg-opacity\": (\n      css-var: true,\n      class: bg-opacity,\n      values: (\n        10: .1,\n        25: .25,\n        50: .5,\n        75: .75,\n        100: 1\n      )\n    ),\n    // scss-docs-end utils-bg-color\n    \"gradient\": (\n      property: background-image,\n      class: bg,\n      values: (gradient: var(--#{$prefix}gradient))\n    ),\n    // scss-docs-start utils-interaction\n    \"user-select\": (\n      property: user-select,\n      values: all auto none\n    ),\n    \"pointer-events\": (\n      property: pointer-events,\n      class: pe,\n      values: none auto,\n    ),\n    // scss-docs-end utils-interaction\n    // scss-docs-start utils-border-radius\n    \"rounded\": (\n      property: border-radius,\n      class: rounded,\n      values: (\n        null: var(--#{$prefix}border-radius),\n        0: 0,\n        1: var(--#{$prefix}border-radius-sm),\n        2: var(--#{$prefix}border-radius),\n        3: var(--#{$prefix}border-radius-lg),\n        4: var(--#{$prefix}border-radius-xl),\n        5: var(--#{$prefix}border-radius-2xl),\n        circle: 50%,\n        pill: var(--#{$prefix}border-radius-pill)\n      )\n    ),\n    \"rounded-top\": (\n      property: border-top-left-radius border-top-right-radius,\n      class: rounded-top,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-end\": (\n      property: border-top-right-radius border-bottom-right-radius,\n      class: rounded-end,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-bottom\": (\n      property: border-bottom-right-radius border-bottom-left-radius,\n      class: rounded-bottom,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    \"rounded-start\": (\n      property: border-bottom-left-radius border-top-left-radius,\n      class: rounded-start,\n      values: (null: var(--#{$prefix}border-radius))\n    ),\n    // scss-docs-end utils-border-radius\n    // scss-docs-start utils-visibility\n    \"visibility\": (\n      property: visibility,\n      class: null,\n      values: (\n        visible: visible,\n        invisible: hidden,\n      )\n    )\n    // scss-docs-end utils-visibility\n  ),\n  $utilities\n);\n",
+		":root {\n  // Note: Custom variable values only support SassScript inside `#{}`.\n\n  // Colors\n  //\n  // Generate palettes for full colors, grays, and theme colors.\n\n  @each $color, $value in $colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $grays {\n    --#{$prefix}gray-#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors {\n    --#{$prefix}#{$color}: #{$value};\n  }\n\n  @each $color, $value in $theme-colors-rgb {\n    --#{$prefix}#{$color}-rgb: #{$value};\n  }\n\n  --#{$prefix}white-rgb: #{to-rgb($white)};\n  --#{$prefix}black-rgb: #{to-rgb($black)};\n  --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n  --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n  // Fonts\n\n  // Note: Use `inspect` for lists so that quoted items keep the quotes.\n  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n  --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n  --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n  --#{$prefix}gradient: #{$gradient};\n\n  // Root and body\n  // scss-docs-start root-body-variables\n  @if $font-size-root != null {\n    --#{$prefix}root-font-size: #{$font-size-root};\n  }\n  --#{$prefix}body-font-family: #{$font-family-base};\n  @include rfs($font-size-base, --#{$prefix}body-font-size);\n  --#{$prefix}body-font-weight: #{$font-weight-base};\n  --#{$prefix}body-line-height: #{$line-height-base};\n  --#{$prefix}body-color: #{$body-color};\n  @if $body-text-align != null {\n    --#{$prefix}body-text-align: #{$body-text-align};\n  }\n  --#{$prefix}body-bg: #{$body-bg};\n  // scss-docs-end root-body-variables\n\n  // scss-docs-start root-border-var\n  --#{$prefix}border-width: #{$border-width};\n  --#{$prefix}border-style: #{$border-style};\n  --#{$prefix}border-color: #{$border-color};\n  --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n  --#{$prefix}border-radius: #{$border-radius};\n  --#{$prefix}border-radius-sm: #{$border-radius-sm};\n  --#{$prefix}border-radius-lg: #{$border-radius-lg};\n  --#{$prefix}border-radius-xl: #{$border-radius-xl};\n  --#{$prefix}border-radius-2xl: #{$border-radius-2xl};\n  --#{$prefix}border-radius-pill: #{$border-radius-pill};\n  // scss-docs-end root-border-var\n\n  --#{$prefix}link-color: #{$link-color};\n  --#{$prefix}link-hover-color: #{$link-hover-color};\n\n  --#{$prefix}code-color: #{$code-color};\n\n  --#{$prefix}highlight-bg: #{$mark-bg};\n}\n",
+		"// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n  @if $font-size-root != null {\n    @include font-size(var(--#{$prefix}root-font-size));\n  }\n\n  @if $enable-smooth-scroll {\n    @media (prefers-reduced-motion: no-preference) {\n      scroll-behavior: smooth;\n    }\n  }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n  margin: 0; // 1\n  font-family: var(--#{$prefix}body-font-family);\n  @include font-size(var(--#{$prefix}body-font-size));\n  font-weight: var(--#{$prefix}body-font-weight);\n  line-height: var(--#{$prefix}body-line-height);\n  color: var(--#{$prefix}body-color);\n  text-align: var(--#{$prefix}body-text-align);\n  background-color: var(--#{$prefix}body-bg); // 2\n  -webkit-text-size-adjust: 100%; // 3\n  -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n  margin: $hr-margin-y 0;\n  color: $hr-color; // 1\n  border: 0;\n  border-top: $hr-border-width solid $hr-border-color;\n  opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n//    By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n//    margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n  margin-top: 0; // 1\n  margin-bottom: $headings-margin-bottom;\n  font-family: $headings-font-family;\n  font-style: $headings-font-style;\n  font-weight: $headings-font-weight;\n  line-height: $headings-line-height;\n  color: $headings-color;\n}\n\nh1 {\n  @extend %heading;\n  @include font-size($h1-font-size);\n}\n\nh2 {\n  @extend %heading;\n  @include font-size($h2-font-size);\n}\n\nh3 {\n  @extend %heading;\n  @include font-size($h3-font-size);\n}\n\nh4 {\n  @extend %heading;\n  @include font-size($h4-font-size);\n}\n\nh5 {\n  @extend %heading;\n  @include font-size($h5-font-size);\n}\n\nh6 {\n  @extend %heading;\n  @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n  margin-top: 0;\n  margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n  text-decoration: underline dotted; // 1\n  cursor: help; // 2\n  text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n  padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n  font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n  @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n  padding: $mark-padding;\n  background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n  position: relative;\n  @include font-size($sub-sup-font-size);\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n  color: var(--#{$prefix}link-color);\n  text-decoration: $link-decoration;\n\n  &:hover {\n    color: var(--#{$prefix}link-hover-color);\n    text-decoration: $link-hover-decoration;\n  }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n  &,\n  &:hover {\n    color: inherit;\n    text-decoration: none;\n  }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: $font-family-code;\n  @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n  display: block;\n  margin-top: 0; // 1\n  margin-bottom: 1rem; // 2\n  overflow: auto; // 3\n  @include font-size($code-font-size);\n  color: $pre-color;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    @include font-size(inherit);\n    color: inherit;\n    word-break: normal;\n  }\n}\n\ncode {\n  @include font-size($code-font-size);\n  color: var(--#{$prefix}code-color);\n  word-wrap: break-word;\n\n  // Streamline the style when inside anchors to avoid broken underline and more\n  a > & {\n    color: inherit;\n  }\n}\n\nkbd {\n  padding: $kbd-padding-y $kbd-padding-x;\n  @include font-size($kbd-font-size);\n  color: $kbd-color;\n  background-color: $kbd-bg;\n  @include border-radius($border-radius-sm);\n\n  kbd {\n    padding: 0;\n    @include font-size(1em);\n    font-weight: $nested-kbd-font-weight;\n  }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n  margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n  vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n  caption-side: bottom;\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: $table-cell-padding-y;\n  padding-bottom: $table-cell-padding-y;\n  color: $table-caption-color;\n  text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `<td>` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n  font-weight: $table-th-font-weight; // 1\n  text-align: inherit; // 2\n  text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n  border-color: inherit;\n  border-style: solid;\n  border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n  display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n  outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0; // 1\n  font-family: inherit;\n  @include font-size(inherit);\n  line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n  text-transform: none;\n}\n// Set the cursor for non-`<button>` buttons\n//\n// Details at https://github.com/twbs/bootstrap/pull/30562\n[role=\"button\"] {\n  cursor: pointer;\n}\n\nselect {\n  // Remove the inheritance of word-wrap in Safari.\n  // See https://github.com/twbs/bootstrap/issues/24990\n  word-wrap: normal;\n\n  // Undo the opacity change from Chrome\n  &:disabled {\n    opacity: 1;\n  }\n}\n\n// Remove the dropdown arrow only from text type inputs built with datalists in Chrome.\n// See https://stackoverflow.com/a/54997118\n\n[list]:not([type=\"date\"]):not([type=\"datetime-local\"]):not([type=\"month\"]):not([type=\"week\"]):not([type=\"time\"])::-webkit-calendar-picker-indicator {\n  display: none !important;\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n//    controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\n// 3. Opinionated: add \"hand\" cursor to non-disabled button elements.\n\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n\n  @if $enable-button-pointers {\n    &:not(:disabled) {\n      cursor: pointer; // 3\n    }\n  }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\n\n::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\n// 1. Textareas should really only resize vertically so they don't break their (horizontal) containers.\n\ntextarea {\n  resize: vertical; // 1\n}\n\n// 1. Browsers set a default `min-width: min-content;` on fieldsets,\n//    unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n//    So we reset that to ensure fieldsets behave more like a standard block element.\n//    See https://github.com/twbs/bootstrap/issues/12359\n//    and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n// 2. Reset the default outline behavior of fieldsets so they don't affect page layout.\n\nfieldset {\n  min-width: 0; // 1\n  padding: 0; // 2\n  margin: 0; // 2\n  border: 0; // 2\n}\n\n// 1. By using `float: left`, the legend will behave like a block element.\n//    This way the border of a fieldset wraps around the legend if present.\n// 2. Fix wrapping bug.\n//    See https://github.com/twbs/bootstrap/issues/29712\n\nlegend {\n  float: left; // 1\n  width: 100%;\n  padding: 0;\n  margin-bottom: $legend-margin-bottom;\n  @include font-size($legend-font-size);\n  font-weight: $legend-font-weight;\n  line-height: inherit;\n\n  + * {\n    clear: left; // 2\n  }\n}\n\n// Fix height of inputs with a type of datetime-local, date, month, week, or time\n// See https://github.com/twbs/bootstrap/issues/18842\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n  padding: 0;\n}\n\n::-webkit-inner-spin-button {\n  height: auto;\n}\n\n// 1. Correct the outline style in Safari.\n// 2. This overrides the extra rounded corners on search inputs in iOS so that our\n//    `.form-control` class can properly style them. Note that this cannot simply\n//    be added to `.form-control` as it's not specific enough. For details, see\n//    https://github.com/twbs/bootstrap/issues/11586.\n\n[type=\"search\"] {\n  outline-offset: -2px; // 1\n  -webkit-appearance: textfield; // 2\n}\n\n// 1. A few input types should stay LTR\n// See https://rtlstyling.com/posts/rtl-styling#form-inputs\n// 2. RTL only output\n// See https://rtlcss.com/learn/usage-guide/control-directives/#raw\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n  direction: ltr;\n}\n*/\n\n// Remove the inner padding in Chrome and Safari on macOS.\n\n::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n// Remove padding around color pickers in webkit browsers\n\n::-webkit-color-swatch-wrapper {\n  padding: 0;\n}\n\n\n// 1. Inherit font family and line height for file input buttons\n// 2. Correct the inability to style clickable types in iOS and Safari.\n\n::file-selector-button {\n  font: inherit; // 1\n  -webkit-appearance: button; // 2\n}\n\n// Correct element displays\n\noutput {\n  display: inline-block;\n}\n\n// Remove border from iframe\n\niframe {\n  border: 0;\n}\n\n// Summary\n//\n// 1. Add the correct display in all browsers\n\nsummary {\n  display: list-item; // 1\n  cursor: pointer;\n}\n\n\n// Progress\n//\n// Add the correct vertical alignment in Chrome, Firefox, and Opera.\n\nprogress {\n  vertical-align: baseline;\n}\n\n\n// Hidden attribute\n//\n// Always hide an element with the `hidden` HTML attribute.\n\n[hidden] {\n  display: none !important;\n}\n",
+		"//\n// Headings\n//\n.h1 {\n  @extend h1;\n}\n\n.h2 {\n  @extend h2;\n}\n\n.h3 {\n  @extend h3;\n}\n\n.h4 {\n  @extend h4;\n}\n\n.h5 {\n  @extend h5;\n}\n\n.h6 {\n  @extend h6;\n}\n\n\n.lead {\n  @include font-size($lead-font-size);\n  font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n  .display-#{$display} {\n    @include font-size($font-size);\n    font-family: $display-font-family;\n    font-style: $display-font-style;\n    font-weight: $display-font-weight;\n    line-height: $display-line-height;\n  }\n}\n\n//\n// Emphasis\n//\n.small {\n  @extend small;\n}\n\n.mark {\n  @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n  @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  @include list-unstyled();\n}\n.list-inline-item {\n  display: inline-block;\n\n  &:not(:last-child) {\n    margin-right: $list-inline-padding;\n  }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n  @include font-size($initialism-font-size);\n  text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-font-size);\n\n  > :last-child {\n    margin-bottom: 0;\n  }\n}\n\n.blockquote-footer {\n  margin-top: -$blockquote-margin-y;\n  margin-bottom: $blockquote-margin-y;\n  @include font-size($blockquote-footer-font-size);\n  color: $blockquote-footer-color;\n\n  &::before {\n    content: \"\\2014\\00A0\"; // em dash, nbsp\n  }\n}\n",
+		"// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n  @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n  padding: $thumbnail-padding;\n  background-color: $thumbnail-bg;\n  border: $thumbnail-border-width solid $thumbnail-border-color;\n  @include border-radius($thumbnail-border-radius);\n  @include box-shadow($thumbnail-box-shadow);\n\n  // Keep them at most 100% wide\n  @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n  // Ensures the caption's text aligns with the image.\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: $spacer * .5;\n  line-height: 1;\n}\n\n.figure-caption {\n  @include font-size($figure-caption-font-size);\n  color: $figure-caption-color;\n}\n",
+		"// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-container-classes {\n  // Single container class with breakpoint max-widths\n  .container,\n  // 100% wide container at all breakpoints\n  .container-fluid {\n    @include make-container();\n  }\n\n  // Responsive containers that are 100% wide until a breakpoint\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    .container-#{$breakpoint} {\n      @extend .container-fluid;\n    }\n\n    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n      %responsive-container-#{$breakpoint} {\n        max-width: $container-max-width;\n      }\n\n      // Extend each breakpoint which is smaller or equal to the current breakpoint\n      $extend-breakpoint: true;\n\n      @each $name, $width in $grid-breakpoints {\n        @if ($extend-breakpoint) {\n          .container#{breakpoint-infix($name, $grid-breakpoints)} {\n            @extend %responsive-container-#{$breakpoint};\n          }\n\n          // Once the current breakpoint is reached, stop extending\n          @if ($breakpoint == $name) {\n            $extend-breakpoint: false;\n          }\n        }\n      }\n    }\n  }\n}\n",
+		"// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n  .row {\n    @include make-row();\n\n    > * {\n      @include make-col-ready();\n    }\n  }\n}\n\n@if $enable-cssgrid {\n  .grid {\n    display: grid;\n    grid-template-rows: repeat(var(--#{$prefix}rows, 1), 1fr);\n    grid-template-columns: repeat(var(--#{$prefix}columns, #{$grid-columns}), 1fr);\n    gap: var(--#{$prefix}gap, #{$grid-gutter-width});\n\n    @include make-cssgrid();\n  }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n  @include make-grid-columns();\n}\n",
+		"//\n// Basic Bootstrap table\n//\n\n.table {\n  --#{$prefix}table-color: #{$table-color};\n  --#{$prefix}table-bg: #{$table-bg};\n  --#{$prefix}table-border-color: #{$table-border-color};\n  --#{$prefix}table-accent-bg: #{$table-accent-bg};\n  --#{$prefix}table-striped-color: #{$table-striped-color};\n  --#{$prefix}table-striped-bg: #{$table-striped-bg};\n  --#{$prefix}table-active-color: #{$table-active-color};\n  --#{$prefix}table-active-bg: #{$table-active-bg};\n  --#{$prefix}table-hover-color: #{$table-hover-color};\n  --#{$prefix}table-hover-bg: #{$table-hover-bg};\n\n  width: 100%;\n  margin-bottom: $spacer;\n  color: var(--#{$prefix}table-color);\n  vertical-align: $table-cell-vertical-align;\n  border-color: var(--#{$prefix}table-border-color);\n\n  // Target th & td\n  // We need the child combinator to prevent styles leaking to nested tables which doesn't have a `.table` class.\n  // We use the universal selectors here to simplify the selector (else we would need 6 different selectors).\n  // Another advantage is that this generates less code and makes the selector less specific making it easier to override.\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y $table-cell-padding-x;\n    background-color: var(--#{$prefix}table-bg);\n    border-bottom-width: $table-border-width;\n    box-shadow: inset 0 0 0 9999px var(--#{$prefix}table-accent-bg);\n  }\n\n  > tbody {\n    vertical-align: inherit;\n  }\n\n  > thead {\n    vertical-align: bottom;\n  }\n}\n\n.table-group-divider {\n  border-top: ($table-border-width * 2) solid $table-group-separator-color;\n}\n\n//\n// Change placement of captions with a class\n//\n\n.caption-top {\n  caption-side: top;\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    padding: $table-cell-padding-y-sm $table-cell-padding-x-sm;\n  }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n//\n// When borders are added on all sides of the cells, the corners can render odd when\n// these borders do not have the same color or if they are semi-transparent.\n// Therefor we add top and border bottoms to the `tr`s and left and right borders\n// to the `td`s or `th`s\n\n.table-bordered {\n  > :not(caption) > * {\n    border-width: $table-border-width 0;\n\n    // stylelint-disable-next-line selector-max-universal\n    > * {\n      border-width: 0 $table-border-width;\n    }\n  }\n}\n\n.table-borderless {\n  // stylelint-disable-next-line selector-max-universal\n  > :not(caption) > * > * {\n    border-bottom-width: 0;\n  }\n\n  > :not(:first-child) {\n    border-top-width: 0;\n  }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n// For rows\n.table-striped {\n  > tbody > tr:nth-of-type(#{$table-striped-order}) > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// For columns\n.table-striped-columns {\n  > :not(caption) > tr > :nth-child(#{$table-striped-columns-order}) {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-striped-bg);\n    color: var(--#{$prefix}table-striped-color);\n  }\n}\n\n// Active table\n//\n// The `.table-active` class can be added to highlight rows or cells\n\n.table-active {\n  --#{$prefix}table-accent-bg: var(--#{$prefix}table-active-bg);\n  color: var(--#{$prefix}table-active-color);\n}\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover > * {\n    --#{$prefix}table-accent-bg: var(--#{$prefix}table-hover-bg);\n    color: var(--#{$prefix}table-hover-color);\n  }\n}\n\n\n// Table variants\n//\n// Table variants set the table cell backgrounds, border colors\n// and the colors of the striped, hovered & active tables\n\n@each $color, $value in $table-variants {\n  @include table-variant($color, $value);\n}\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n  @include media-breakpoint-down($breakpoint) {\n    .table-responsive#{$infix} {\n      overflow-x: auto;\n      -webkit-overflow-scrolling: touch;\n    }\n  }\n}\n",
+		"@import \"forms/labels\";\n@import \"forms/form-text\";\n@import \"forms/form-control\";\n@import \"forms/form-select\";\n@import \"forms/form-check\";\n@import \"forms/form-range\";\n@import \"forms/floating-labels\";\n@import \"forms/input-group\";\n@import \"forms/validation\";\n",
+		"//\n// Labels\n//\n\n.form-label {\n  margin-bottom: $form-label-margin-bottom;\n  @include font-size($form-label-font-size);\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  color: $form-label-color;\n}\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n  padding-top: add($input-padding-y, $input-border-width);\n  padding-bottom: add($input-padding-y, $input-border-width);\n  margin-bottom: 0; // Override the `<legend>` default\n  @include font-size(inherit); // Override the `<legend>` default\n  font-style: $form-label-font-style;\n  font-weight: $form-label-font-weight;\n  line-height: $input-line-height;\n  color: $form-label-color;\n}\n\n.col-form-label-lg {\n  padding-top: add($input-padding-y-lg, $input-border-width);\n  padding-bottom: add($input-padding-y-lg, $input-border-width);\n  @include font-size($input-font-size-lg);\n}\n\n.col-form-label-sm {\n  padding-top: add($input-padding-y-sm, $input-border-width);\n  padding-bottom: add($input-padding-y-sm, $input-border-width);\n  @include font-size($input-font-size-sm);\n}\n",
+		"//\n// Form text\n//\n\n.form-text {\n  margin-top: $form-text-margin-top;\n  @include font-size($form-text-font-size);\n  font-style: $form-text-font-style;\n  font-weight: $form-text-font-weight;\n  color: $form-text-color;\n}\n",
+		"//\n// General form controls (plus a few specific high-level interventions)\n//\n\n.form-control {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y $input-padding-x;\n  font-family: $input-font-family;\n  @include font-size($input-font-size);\n  font-weight: $input-font-weight;\n  line-height: $input-line-height;\n  color: $input-color;\n  background-color: $input-bg;\n  background-clip: padding-box;\n  border: $input-border-width solid $input-border-color;\n  appearance: none; // Fix appearance for date inputs in Safari\n\n  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n  @include border-radius($input-border-radius, 0);\n\n  @include box-shadow($input-box-shadow);\n  @include transition($input-transition);\n\n  &[type=\"file\"] {\n    overflow: hidden; // prevent pseudo element button overlap\n\n    &:not(:disabled):not([readonly]) {\n      cursor: pointer;\n    }\n  }\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  &:focus {\n    color: $input-focus-color;\n    background-color: $input-focus-bg;\n    border-color: $input-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($input-box-shadow, $input-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $input-focus-box-shadow;\n    }\n  }\n\n  // Add some height to date inputs on iOS\n  // https://github.com/twbs/bootstrap/issues/23307\n  // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved\n  &::-webkit-date-and-time-value {\n    // Multiply line-height by 1em if it has no unit\n    height: if(unit($input-line-height) == \"\", $input-line-height * 1em, $input-line-height);\n  }\n\n  // Placeholder\n  &::placeholder {\n    color: $input-placeholder-color;\n    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n    opacity: 1;\n  }\n\n  // Disabled inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &:disabled {\n    color: $input-disabled-color;\n    background-color: $input-disabled-bg;\n    border-color: $input-disabled-border-color;\n    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n    opacity: 1;\n  }\n\n  // File input buttons theming\n  &::file-selector-button {\n    padding: $input-padding-y $input-padding-x;\n    margin: (-$input-padding-y) (-$input-padding-x);\n    margin-inline-end: $input-padding-x;\n    color: $form-file-button-color;\n    @include gradient-bg($form-file-button-bg);\n    pointer-events: none;\n    border-color: inherit;\n    border-style: solid;\n    border-width: 0;\n    border-inline-end-width: $input-border-width;\n    border-radius: 0; // stylelint-disable-line property-disallowed-list\n    @include transition($btn-transition);\n  }\n\n  &:hover:not(:disabled):not([readonly])::file-selector-button {\n    background-color: $form-file-button-hover-bg;\n  }\n}\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding: $input-padding-y 0;\n  margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n  line-height: $input-line-height;\n  color: $input-plaintext-color;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: $input-border-width 0;\n\n  &:focus {\n    outline: 0;\n  }\n\n  &.form-control-sm,\n  &.form-control-lg {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// Repeated in `_input_group.scss` to avoid Sass extend issues.\n\n.form-control-sm {\n  min-height: $input-height-sm;\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n\n  &::file-selector-button {\n    padding: $input-padding-y-sm $input-padding-x-sm;\n    margin: (-$input-padding-y-sm) (-$input-padding-x-sm);\n    margin-inline-end: $input-padding-x-sm;\n  }\n}\n\n.form-control-lg {\n  min-height: $input-height-lg;\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n\n  &::file-selector-button {\n    padding: $input-padding-y-lg $input-padding-x-lg;\n    margin: (-$input-padding-y-lg) (-$input-padding-x-lg);\n    margin-inline-end: $input-padding-x-lg;\n  }\n}\n\n// Make sure textareas don't shrink too much when resized\n// https://github.com/twbs/bootstrap/pull/29124\n// stylelint-disable selector-no-qualifying-type\ntextarea {\n  &.form-control {\n    min-height: $input-height;\n  }\n\n  &.form-control-sm {\n    min-height: $input-height-sm;\n  }\n\n  &.form-control-lg {\n    min-height: $input-height-lg;\n  }\n}\n// stylelint-enable selector-no-qualifying-type\n\n.form-control-color {\n  width: $form-color-width;\n  height: $input-height;\n  padding: $input-padding-y;\n\n  &:not(:disabled):not([readonly]) {\n    cursor: pointer;\n  }\n\n  &::-moz-color-swatch {\n    border: 0 !important; // stylelint-disable-line declaration-no-important\n    @include border-radius($input-border-radius);\n  }\n\n  &::-webkit-color-swatch {\n    @include border-radius($input-border-radius);\n  }\n\n  &.form-control-sm { height: $input-height-sm; }\n  &.form-control-lg { height: $input-height-lg; }\n}\n",
+		"// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n\n.form-select {\n  display: block;\n  width: 100%;\n  padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;\n  -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636\n  font-family: $form-select-font-family;\n  @include font-size($form-select-font-size);\n  font-weight: $form-select-font-weight;\n  line-height: $form-select-line-height;\n  color: $form-select-color;\n  background-color: $form-select-bg;\n  background-image: escape-svg($form-select-indicator);\n  background-repeat: no-repeat;\n  background-position: $form-select-bg-position;\n  background-size: $form-select-bg-size;\n  border: $form-select-border-width solid $form-select-border-color;\n  @include border-radius($form-select-border-radius, 0);\n  @include box-shadow($form-select-box-shadow);\n  @include transition($form-select-transition);\n  appearance: none;\n\n  &:focus {\n    border-color: $form-select-focus-border-color;\n    outline: 0;\n    @if $enable-shadows {\n      @include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);\n    } @else {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      box-shadow: $form-select-focus-box-shadow;\n    }\n  }\n\n  &[multiple],\n  &[size]:not([size=\"1\"]) {\n    padding-right: $form-select-padding-x;\n    background-image: none;\n  }\n\n  &:disabled {\n    color: $form-select-disabled-color;\n    background-color: $form-select-disabled-bg;\n    border-color: $form-select-disabled-border-color;\n  }\n\n  // Remove outline from select box in FF\n  &:-moz-focusring {\n    color: transparent;\n    text-shadow: 0 0 0 $form-select-color;\n  }\n}\n\n.form-select-sm {\n  padding-top: $form-select-padding-y-sm;\n  padding-bottom: $form-select-padding-y-sm;\n  padding-left: $form-select-padding-x-sm;\n  @include font-size($form-select-font-size-sm);\n  @include border-radius($form-select-border-radius-sm);\n}\n\n.form-select-lg {\n  padding-top: $form-select-padding-y-lg;\n  padding-bottom: $form-select-padding-y-lg;\n  padding-left: $form-select-padding-x-lg;\n  @include font-size($form-select-font-size-lg);\n  @include border-radius($form-select-border-radius-lg);\n}\n",
+		"//\n// Check/radio\n//\n\n.form-check {\n  display: block;\n  min-height: $form-check-min-height;\n  padding-left: $form-check-padding-start;\n  margin-bottom: $form-check-margin-bottom;\n\n  .form-check-input {\n    float: left;\n    margin-left: $form-check-padding-start * -1;\n  }\n}\n\n.form-check-reverse {\n  padding-right: $form-check-padding-start;\n  padding-left: 0;\n  text-align: right;\n\n  .form-check-input {\n    float: right;\n    margin-right: $form-check-padding-start * -1;\n    margin-left: 0;\n  }\n}\n\n.form-check-input {\n  width: $form-check-input-width;\n  height: $form-check-input-width;\n  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height\n  vertical-align: top;\n  background-color: $form-check-input-bg;\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: contain;\n  border: $form-check-input-border;\n  appearance: none;\n  print-color-adjust: exact; // Keep themed appearance for print\n  @include transition($form-check-transition);\n\n  &[type=\"checkbox\"] {\n    @include border-radius($form-check-input-border-radius);\n  }\n\n  &[type=\"radio\"] {\n    // stylelint-disable-next-line property-disallowed-list\n    border-radius: $form-check-radio-border-radius;\n  }\n\n  &:active {\n    filter: $form-check-input-active-filter;\n  }\n\n  &:focus {\n    border-color: $form-check-input-focus-border;\n    outline: 0;\n    box-shadow: $form-check-input-focus-box-shadow;\n  }\n\n  &:checked {\n    background-color: $form-check-input-checked-bg-color;\n    border-color: $form-check-input-checked-border-color;\n\n    &[type=\"checkbox\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-input-checked-bg-image);\n      }\n    }\n\n    &[type=\"radio\"] {\n      @if $enable-gradients {\n        background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-check-radio-checked-bg-image);\n      }\n    }\n  }\n\n  &[type=\"checkbox\"]:indeterminate {\n    background-color: $form-check-input-indeterminate-bg-color;\n    border-color: $form-check-input-indeterminate-border-color;\n\n    @if $enable-gradients {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);\n    } @else {\n      background-image: escape-svg($form-check-input-indeterminate-bg-image);\n    }\n  }\n\n  &:disabled {\n    pointer-events: none;\n    filter: none;\n    opacity: $form-check-input-disabled-opacity;\n  }\n\n  // Use disabled attribute in addition of :disabled pseudo-class\n  // See: https://github.com/twbs/bootstrap/issues/28247\n  &[disabled],\n  &:disabled {\n    ~ .form-check-label {\n      cursor: default;\n      opacity: $form-check-label-disabled-opacity;\n    }\n  }\n}\n\n.form-check-label {\n  color: $form-check-label-color;\n  cursor: $form-check-label-cursor;\n}\n\n//\n// Switch\n//\n\n.form-switch {\n  padding-left: $form-switch-padding-start;\n\n  .form-check-input {\n    width: $form-switch-width;\n    margin-left: $form-switch-padding-start * -1;\n    background-image: escape-svg($form-switch-bg-image);\n    background-position: left center;\n    @include border-radius($form-switch-border-radius);\n    @include transition($form-switch-transition);\n\n    &:focus {\n      background-image: escape-svg($form-switch-focus-bg-image);\n    }\n\n    &:checked {\n      background-position: $form-switch-checked-bg-position;\n\n      @if $enable-gradients {\n        background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);\n      } @else {\n        background-image: escape-svg($form-switch-checked-bg-image);\n      }\n    }\n  }\n\n  &.form-check-reverse {\n    padding-right: $form-switch-padding-start;\n    padding-left: 0;\n\n    .form-check-input {\n      margin-right: $form-switch-padding-start * -1;\n      margin-left: 0;\n    }\n  }\n}\n\n.form-check-inline {\n  display: inline-block;\n  margin-right: $form-check-inline-margin-end;\n}\n\n.btn-check {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n\n  &[disabled],\n  &:disabled {\n    + .btn {\n      pointer-events: none;\n      filter: none;\n      opacity: $form-check-btn-check-disabled-opacity;\n    }\n  }\n}\n",
+		"// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for pseudo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.form-range {\n  width: 100%;\n  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);\n  padding: 0; // Need to reset padding\n  background-color: transparent;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n\n    // Pseudo-elements must be split across multiple rulesets to have an effect.\n    // No box-shadow() mixin for focus accessibility.\n    &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }\n    &::-moz-range-thumb     { box-shadow: $form-range-thumb-focus-box-shadow; }\n  }\n\n  &::-moz-focus-outer {\n    border: 0;\n  }\n\n  &::-webkit-slider-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-webkit-slider-runnable-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent; // Why?\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent;\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &::-moz-range-thumb {\n    width: $form-range-thumb-width;\n    height: $form-range-thumb-height;\n    @include gradient-bg($form-range-thumb-bg);\n    border: $form-range-thumb-border;\n    @include border-radius($form-range-thumb-border-radius);\n    @include box-shadow($form-range-thumb-box-shadow);\n    @include transition($form-range-thumb-transition);\n    appearance: none;\n\n    &:active {\n      @include gradient-bg($form-range-thumb-active-bg);\n    }\n  }\n\n  &::-moz-range-track {\n    width: $form-range-track-width;\n    height: $form-range-track-height;\n    color: transparent;\n    cursor: $form-range-track-cursor;\n    background-color: $form-range-track-bg;\n    border-color: transparent; // Firefox specific?\n    @include border-radius($form-range-track-border-radius);\n    @include box-shadow($form-range-track-box-shadow);\n  }\n\n  &:disabled {\n    pointer-events: none;\n\n    &::-webkit-slider-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n\n    &::-moz-range-thumb {\n      background-color: $form-range-thumb-disabled-bg;\n    }\n  }\n}\n",
+		".form-floating {\n  position: relative;\n\n  > .form-control,\n  > .form-control-plaintext,\n  > .form-select {\n    height: $form-floating-height;\n    line-height: $form-floating-line-height;\n  }\n\n  > label {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%; // allow textareas\n    padding: $form-floating-padding-y $form-floating-padding-x;\n    overflow: hidden;\n    text-align: start;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    pointer-events: none;\n    border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model\n    transform-origin: 0 0;\n    @include transition($form-floating-transition);\n  }\n\n  > .form-control,\n  > .form-control-plaintext {\n    padding: $form-floating-padding-y $form-floating-padding-x;\n\n    &::placeholder {\n      color: transparent;\n    }\n\n    &:focus,\n    &:not(:placeholder-shown) {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n    // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n    &:-webkit-autofill {\n      padding-top: $form-floating-input-padding-t;\n      padding-bottom: $form-floating-input-padding-b;\n    }\n  }\n\n  > .form-select {\n    padding-top: $form-floating-input-padding-t;\n    padding-bottom: $form-floating-input-padding-b;\n  }\n\n  > .form-control:focus,\n  > .form-control:not(:placeholder-shown),\n  > .form-control-plaintext,\n  > .form-select {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped\n  > .form-control:-webkit-autofill {\n    ~ label {\n      opacity: $form-floating-label-opacity;\n      transform: $form-floating-label-transform;\n    }\n  }\n\n  > .form-control-plaintext {\n    ~ label {\n      border-width: $input-border-width 0; // Required to properly position label text - as explained above\n    }\n  }\n}\n",
+		"//\n// Base styles\n//\n\n.input-group {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // For form validation feedback\n  align-items: stretch;\n  width: 100%;\n\n  > .form-control,\n  > .form-select,\n  > .form-floating {\n    position: relative; // For focus state's z-index\n    flex: 1 1 auto;\n    width: 1%;\n    min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size\n  }\n\n  // Bring the \"active\" form control to the top of surrounding elements\n  > .form-control:focus,\n  > .form-select:focus,\n  > .form-floating:focus-within {\n    z-index: 5;\n  }\n\n  // Ensure buttons are always above inputs for more visually pleasing borders.\n  // This isn't needed for `.input-group-text` since it shares the same border-color\n  // as our inputs.\n  .btn {\n    position: relative;\n    z-index: 2;\n\n    &:focus {\n      z-index: 5;\n    }\n  }\n}\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n  display: flex;\n  align-items: center;\n  padding: $input-group-addon-padding-y $input-group-addon-padding-x;\n  @include font-size($input-font-size); // Match inputs\n  font-weight: $input-group-addon-font-weight;\n  line-height: $input-line-height;\n  color: $input-group-addon-color;\n  text-align: center;\n  white-space: nowrap;\n  background-color: $input-group-addon-bg;\n  border: $input-border-width solid $input-group-addon-border-color;\n  @include border-radius($input-border-radius);\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n  padding: $input-padding-y-lg $input-padding-x-lg;\n  @include font-size($input-font-size-lg);\n  @include border-radius($input-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n  padding: $input-padding-y-sm $input-padding-x-sm;\n  @include font-size($input-font-size-sm);\n  @include border-radius($input-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n  padding-right: $form-select-padding-x + $form-select-indicator-padding;\n}\n\n\n// Rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.input-group {\n  &:not(.has-validation) {\n    > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 3),\n    > .form-floating:not(:last-child) > .form-control,\n    > .form-floating:not(:last-child) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  &.has-validation {\n    > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n    > .dropdown-toggle:nth-last-child(n + 4),\n    > .form-floating:nth-last-child(n + 3) > .form-control,\n    > .form-floating:nth-last-child(n + 3) > .form-select {\n      @include border-end-radius(0);\n    }\n  }\n\n  $validation-messages: \"\";\n  @each $state in map-keys($form-validation-states) {\n    $validation-messages: $validation-messages + \":not(.\" + unquote($state) + \"-tooltip)\" + \":not(.\" + unquote($state) + \"-feedback)\";\n  }\n\n  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {\n    margin-left: -$input-border-width;\n    @include border-start-radius(0);\n  }\n\n  > .form-floating:not(:first-child) > .form-control,\n  > .form-floating:not(:first-child) > .form-select {\n    @include border-start-radius(0);\n  }\n}\n",
+		"// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server-side validation.\n\n// scss-docs-start form-validation-states-loop\n@each $state, $data in $form-validation-states {\n  @include form-validation-state($state, $data...);\n}\n// scss-docs-end form-validation-states-loop\n",
+		"//\n// Base styles\n//\n\n.btn {\n  // scss-docs-start btn-css-vars\n  --#{$prefix}btn-padding-x: #{$btn-padding-x};\n  --#{$prefix}btn-padding-y: #{$btn-padding-y};\n  --#{$prefix}btn-font-family: #{$btn-font-family};\n  @include rfs($btn-font-size, --#{$prefix}btn-font-size);\n  --#{$prefix}btn-font-weight: #{$btn-font-weight};\n  --#{$prefix}btn-line-height: #{$btn-line-height};\n  --#{$prefix}btn-color: #{$body-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-width: #{$btn-border-width};\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-border-radius: #{$btn-border-radius};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-box-shadow: #{$btn-box-shadow};\n  --#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};\n  --#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);\n  // scss-docs-end btn-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}btn-padding-y) var(--#{$prefix}btn-padding-x);\n  font-family: var(--#{$prefix}btn-font-family);\n  @include font-size(var(--#{$prefix}btn-font-size));\n  font-weight: var(--#{$prefix}btn-font-weight);\n  line-height: var(--#{$prefix}btn-line-height);\n  color: var(--#{$prefix}btn-color);\n  text-align: center;\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: $btn-white-space;\n  vertical-align: middle;\n  cursor: if($enable-button-pointers, pointer, null);\n  user-select: none;\n  border: var(--#{$prefix}btn-border-width) solid var(--#{$prefix}btn-border-color);\n  @include border-radius(var(--#{$prefix}btn-border-radius));\n  @include gradient-bg(var(--#{$prefix}btn-bg));\n  @include box-shadow(var(--#{$prefix}btn-box-shadow));\n  @include transition($btn-transition);\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}btn-hover-bg);\n    border-color: var(--#{$prefix}btn-hover-border-color);\n  }\n\n  .btn-check + &:hover {\n    // override for the checkbox/radio buttons\n    color: var(--#{$prefix}btn-color);\n    background-color: var(--#{$prefix}btn-bg);\n    border-color: var(--#{$prefix}btn-border-color);\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-hover-color);\n    @include gradient-bg(var(--#{$prefix}btn-hover-bg));\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:focus-visible + & {\n    border-color: var(--#{$prefix}btn-hover-border-color);\n    outline: 0;\n    // Avoid using mixin so we can pass custom focus shadow properly\n    @if $enable-shadows {\n      box-shadow: var(--#{$prefix}btn-box-shadow), var(--#{$prefix}btn-focus-box-shadow);\n    } @else {\n      box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n    }\n  }\n\n  .btn-check:checked + &,\n  :not(.btn-check) + &:active,\n  &:first-child:active,\n  &.active,\n  &.show {\n    color: var(--#{$prefix}btn-active-color);\n    background-color: var(--#{$prefix}btn-active-bg);\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-active-border-color);\n    @include box-shadow(var(--#{$prefix}btn-active-shadow));\n\n    &:focus-visible {\n      // Avoid using mixin so we can pass custom focus shadow properly\n      @if $enable-shadows {\n        box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);\n      } @else {\n        box-shadow: var(--#{$prefix}btn-focus-box-shadow);\n      }\n    }\n  }\n\n  &:disabled,\n  &.disabled,\n  fieldset:disabled & {\n    color: var(--#{$prefix}btn-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}btn-disabled-bg);\n    background-image: if($enable-gradients, none, null);\n    border-color: var(--#{$prefix}btn-disabled-border-color);\n    opacity: var(--#{$prefix}btn-disabled-opacity);\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Alternate buttons\n//\n\n// scss-docs-start btn-variant-loops\n@each $color, $value in $theme-colors {\n  .btn-#{$color} {\n    @if $color == \"light\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: shade-color($value, $btn-hover-bg-shade-amount),\n        $hover-border: shade-color($value, $btn-hover-border-shade-amount),\n        $active-background: shade-color($value, $btn-active-bg-shade-amount),\n        $active-border: shade-color($value, $btn-active-border-shade-amount)\n      );\n    } @else if $color == \"dark\" {\n      @include button-variant(\n        $value,\n        $value,\n        $hover-background: tint-color($value, $btn-hover-bg-tint-amount),\n        $hover-border: tint-color($value, $btn-hover-border-tint-amount),\n        $active-background: tint-color($value, $btn-active-bg-tint-amount),\n        $active-border: tint-color($value, $btn-active-border-tint-amount)\n      );\n    } @else {\n      @include button-variant($value, $value);\n    }\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .btn-outline-#{$color} {\n    @include button-outline-variant($value);\n  }\n}\n// scss-docs-end btn-variant-loops\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n  --#{$prefix}btn-font-weight: #{$font-weight-normal};\n  --#{$prefix}btn-color: #{$btn-link-color};\n  --#{$prefix}btn-bg: transparent;\n  --#{$prefix}btn-border-color: transparent;\n  --#{$prefix}btn-hover-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-hover-border-color: transparent;\n  --#{$prefix}btn-active-color: #{$btn-link-hover-color};\n  --#{$prefix}btn-active-border-color: transparent;\n  --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color};\n  --#{$prefix}btn-disabled-border-color: transparent;\n  --#{$prefix}btn-box-shadow: none;\n  --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))};\n\n  text-decoration: $link-decoration;\n  @if $enable-gradients {\n    background-image: none;\n  }\n\n  &:hover,\n  &:focus-visible {\n    text-decoration: $link-hover-decoration;\n  }\n\n  &:focus-visible {\n    color: var(--#{$prefix}btn-color);\n  }\n\n  &:hover {\n    color: var(--#{$prefix}btn-hover-color);\n  }\n\n  // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n  @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);\n}\n",
+		".fade {\n  @include transition($transition-fade);\n\n  &:not(.show) {\n    opacity: 0;\n  }\n}\n\n// scss-docs-start collapse-classes\n.collapse {\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.collapsing {\n  height: 0;\n  overflow: hidden;\n  @include transition($transition-collapse);\n\n  &.collapse-horizontal {\n    width: 0;\n    height: auto;\n    @include transition($transition-collapse-width);\n  }\n}\n// scss-docs-end collapse-classes\n",
+		"// The dropdown wrapper (`<div>`)\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n\n  // Generate the caret automatically\n  @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n  // scss-docs-start dropdown-css-vars\n  --#{$prefix}dropdown-zindex: #{$zindex-dropdown};\n  --#{$prefix}dropdown-min-width: #{$dropdown-min-width};\n  --#{$prefix}dropdown-padding-x: #{$dropdown-padding-x};\n  --#{$prefix}dropdown-padding-y: #{$dropdown-padding-y};\n  --#{$prefix}dropdown-spacer: #{$dropdown-spacer};\n  @include rfs($dropdown-font-size, --#{$prefix}dropdown-font-size);\n  --#{$prefix}dropdown-color: #{$dropdown-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-border-color};\n  --#{$prefix}dropdown-border-radius: #{$dropdown-border-radius};\n  --#{$prefix}dropdown-border-width: #{$dropdown-border-width};\n  --#{$prefix}dropdown-inner-border-radius: #{$dropdown-inner-border-radius};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-divider-bg};\n  --#{$prefix}dropdown-divider-margin-y: #{$dropdown-divider-margin-y};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-link-hover-color};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-link-disabled-color};\n  --#{$prefix}dropdown-item-padding-x: #{$dropdown-item-padding-x};\n  --#{$prefix}dropdown-item-padding-y: #{$dropdown-item-padding-y};\n  --#{$prefix}dropdown-header-color: #{$dropdown-header-color};\n  --#{$prefix}dropdown-header-padding-x: #{$dropdown-header-padding-x};\n  --#{$prefix}dropdown-header-padding-y: #{$dropdown-header-padding-y};\n  // scss-docs-end dropdown-css-vars\n\n  position: absolute;\n  z-index: var(--#{$prefix}dropdown-zindex);\n  display: none; // none by default, but block on \"open\" of the menu\n  min-width: var(--#{$prefix}dropdown-min-width);\n  padding: var(--#{$prefix}dropdown-padding-y) var(--#{$prefix}dropdown-padding-x);\n  margin: 0; // Override default margin of ul\n  @include font-size(var(--#{$prefix}dropdown-font-size));\n  color: var(--#{$prefix}dropdown-color);\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  list-style: none;\n  background-color: var(--#{$prefix}dropdown-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}dropdown-border-width) solid var(--#{$prefix}dropdown-border-color);\n  @include border-radius(var(--#{$prefix}dropdown-border-radius));\n  @include box-shadow(var(--#{$prefix}dropdown-box-shadow));\n\n  &[data-bs-popper] {\n    top: 100%;\n    left: 0;\n    margin-top: var(--#{$prefix}dropdown-spacer);\n  }\n\n  @if $dropdown-padding-y == 0 {\n    > .dropdown-item:first-child,\n    > li:first-child .dropdown-item {\n      @include border-top-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n    > .dropdown-item:last-child,\n    > li:last-child .dropdown-item {\n      @include border-bottom-radius(var(--#{$prefix}dropdown-inner-border-radius));\n    }\n\n  }\n}\n\n// scss-docs-start responsive-breakpoints\n// We deliberately hardcode the `bs-` prefix because we check\n// this custom property in JS to determine Popper's positioning\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .dropdown-menu#{$infix}-start {\n      --bs-position: start;\n\n      &[data-bs-popper] {\n        right: auto;\n        left: 0;\n      }\n    }\n\n    .dropdown-menu#{$infix}-end {\n      --bs-position: end;\n\n      &[data-bs-popper] {\n        right: 0;\n        left: auto;\n      }\n    }\n  }\n}\n// scss-docs-end responsive-breakpoints\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n  .dropdown-menu[data-bs-popper] {\n    top: auto;\n    bottom: 100%;\n    margin-top: 0;\n    margin-bottom: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(up);\n  }\n}\n\n.dropend {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: auto;\n    left: 100%;\n    margin-top: 0;\n    margin-left: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(end);\n    &::after {\n      vertical-align: 0;\n    }\n  }\n}\n\n.dropstart {\n  .dropdown-menu[data-bs-popper] {\n    top: 0;\n    right: 100%;\n    left: auto;\n    margin-top: 0;\n    margin-right: var(--#{$prefix}dropdown-spacer);\n  }\n\n  .dropdown-toggle {\n    @include caret(start);\n    &::before {\n      vertical-align: 0;\n    }\n  }\n}\n\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n  height: 0;\n  margin: var(--#{$prefix}dropdown-divider-margin-y) 0;\n  overflow: hidden;\n  border-top: 1px solid var(--#{$prefix}dropdown-divider-bg);\n  opacity: 1; // Revisit in v6 to de-dupe styles that conflict with <hr> element\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n  display: block;\n  width: 100%; // For `<button>`s\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  clear: both;\n  font-weight: $font-weight-normal;\n  color: var(--#{$prefix}dropdown-link-color);\n  text-align: inherit; // For `<button>`s\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap; // prevent links from randomly breaking onto new lines\n  background-color: transparent; // For `<button>`s\n  border: 0; // For `<button>`s\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}dropdown-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    @include gradient-bg(var(--#{$prefix}dropdown-link-hover-bg));\n  }\n\n  &.active,\n  &:active {\n    color: var(--#{$prefix}dropdown-link-active-color);\n    text-decoration: none;\n    @include gradient-bg(var(--#{$prefix}dropdown-link-active-bg));\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}dropdown-link-disabled-color);\n    pointer-events: none;\n    background-color: transparent;\n    // Remove CSS gradients if they're enabled\n    background-image: if($enable-gradients, none, null);\n  }\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: var(--#{$prefix}dropdown-header-padding-y) var(--#{$prefix}dropdown-header-padding-x);\n  margin-bottom: 0; // for use with heading elements\n  @include font-size($font-size-sm);\n  color: var(--#{$prefix}dropdown-header-color);\n  white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n  display: block;\n  padding: var(--#{$prefix}dropdown-item-padding-y) var(--#{$prefix}dropdown-item-padding-x);\n  color: var(--#{$prefix}dropdown-link-color);\n}\n\n// Dark dropdowns\n.dropdown-menu-dark {\n  // scss-docs-start dropdown-dark-css-vars\n  --#{$prefix}dropdown-color: #{$dropdown-dark-color};\n  --#{$prefix}dropdown-bg: #{$dropdown-dark-bg};\n  --#{$prefix}dropdown-border-color: #{$dropdown-dark-border-color};\n  --#{$prefix}dropdown-box-shadow: #{$dropdown-dark-box-shadow};\n  --#{$prefix}dropdown-link-color: #{$dropdown-dark-link-color};\n  --#{$prefix}dropdown-link-hover-color: #{$dropdown-dark-link-hover-color};\n  --#{$prefix}dropdown-divider-bg: #{$dropdown-dark-divider-bg};\n  --#{$prefix}dropdown-link-hover-bg: #{$dropdown-dark-link-hover-bg};\n  --#{$prefix}dropdown-link-active-color: #{$dropdown-dark-link-active-color};\n  --#{$prefix}dropdown-link-active-bg: #{$dropdown-dark-link-active-bg};\n  --#{$prefix}dropdown-link-disabled-color: #{$dropdown-dark-link-disabled-color};\n  --#{$prefix}dropdown-header-color: #{$dropdown-dark-header-color};\n  // scss-docs-end dropdown-dark-css-vars\n}\n",
+		"// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-flex;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n\n  > .btn {\n    position: relative;\n    flex: 1 1 auto;\n  }\n\n  // Bring the hover, focused, and \"active\" buttons to the front to overlay\n  // the borders properly\n  > .btn-check:checked + .btn,\n  > .btn-check:focus + .btn,\n  > .btn:hover,\n  > .btn:focus,\n  > .btn:active,\n  > .btn.active {\n    z-index: 1;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  .input-group {\n    width: auto;\n  }\n}\n\n.btn-group {\n  @include border-radius($btn-border-radius);\n\n  // Prevent double borders when buttons are next to each other\n  > :not(.btn-check:first-child) + .btn,\n  > .btn-group:not(:first-child) {\n    margin-left: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn.dropdown-toggle-split:first-child,\n  > .btn-group:not(:last-child) > .btn {\n    @include border-end-radius(0);\n  }\n\n  // The left radius should be 0 if the button is:\n  // - the \"third or more\" child\n  // - the second child and the previous element isn't `.btn-check` (making it the first child visually)\n  // - part of a btn-group which isn't the first child\n  > .btn:nth-child(n + 3),\n  > :not(.btn-check) + .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-start-radius(0);\n  }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n  padding-right: $btn-padding-x * .75;\n  padding-left: $btn-padding-x * .75;\n\n  &::after,\n  .dropup &::after,\n  .dropend &::after {\n    margin-left: 0;\n  }\n\n  .dropstart &::before {\n    margin-right: 0;\n  }\n}\n\n.btn-sm + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-sm * .75;\n  padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n  padding-right: $btn-padding-x-lg * .75;\n  padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n  @include box-shadow($btn-active-box-shadow);\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    @include box-shadow(none);\n  }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n  flex-direction: column;\n  align-items: flex-start;\n  justify-content: center;\n\n  > .btn,\n  > .btn-group {\n    width: 100%;\n  }\n\n  > .btn:not(:first-child),\n  > .btn-group:not(:first-child) {\n    margin-top: -$btn-border-width;\n  }\n\n  // Reset rounded corners\n  > .btn:not(:last-child):not(.dropdown-toggle),\n  > .btn-group:not(:last-child) > .btn {\n    @include border-bottom-radius(0);\n  }\n\n  > .btn ~ .btn,\n  > .btn-group:not(:first-child) > .btn {\n    @include border-top-radius(0);\n  }\n}\n",
+		"// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s, `<ul>`s or `<ol>`s.\n\n.nav {\n  // scss-docs-start nav-css-vars\n  --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: #{$nav-link-color};\n  --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};\n  --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};\n  // scss-docs-end nav-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);\n  @include font-size(var(--#{$prefix}nav-link-font-size));\n  font-weight: var(--#{$prefix}nav-link-font-weight);\n  color: var(--#{$prefix}nav-link-color);\n  text-decoration: if($link-decoration == none, null, none);\n  @include transition($nav-link-transition);\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}nav-link-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  // Disabled state lightens text\n  &.disabled {\n    color: var(--#{$prefix}nav-link-disabled-color);\n    pointer-events: none;\n    cursor: default;\n  }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n  // scss-docs-start nav-tabs-css-vars\n  --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};\n  --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};\n  --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};\n  --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};\n  --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};\n  --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};\n  --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};\n  // scss-docs-end nav-tabs-css-vars\n\n  border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);\n\n  .nav-link {\n    margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    background: none;\n    border: var(--#{$prefix}nav-tabs-border-width) solid transparent;\n    @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));\n\n    &:hover,\n    &:focus {\n      // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link\n      isolation: isolate;\n      border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);\n    }\n\n    &.disabled,\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .nav-item.show .nav-link {\n    color: var(--#{$prefix}nav-tabs-link-active-color);\n    background-color: var(--#{$prefix}nav-tabs-link-active-bg);\n    border-color: var(--#{$prefix}nav-tabs-link-active-border-color);\n  }\n\n  .dropdown-menu {\n    // Make dropdown border overlap tab border\n    margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list\n    // Remove the top rounded corners here since there is a hard edge above the menu\n    @include border-top-radius(0);\n  }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n  // scss-docs-start nav-pills-css-vars\n  --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};\n  --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};\n  --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};\n  // scss-docs-end nav-pills-css-vars\n\n  .nav-link {\n    background: none;\n    border: 0;\n    @include border-radius(var(--#{$prefix}nav-pills-border-radius));\n\n    &:disabled {\n      color: var(--#{$prefix}nav-link-disabled-color);\n      background-color: transparent;\n      border-color: transparent;\n    }\n  }\n\n  .nav-link.active,\n  .show > .nav-link {\n    color: var(--#{$prefix}nav-pills-link-active-color);\n    @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));\n  }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n  > .nav-link,\n  .nav-item {\n    flex: 1 1 auto;\n    text-align: center;\n  }\n}\n\n.nav-justified {\n  > .nav-link,\n  .nav-item {\n    flex-basis: 0;\n    flex-grow: 1;\n    text-align: center;\n  }\n}\n\n.nav-fill,\n.nav-justified {\n  .nav-item .nav-link {\n    width: 100%; // Make sure button will grow\n  }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n",
+		"// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  // scss-docs-start navbar-css-vars\n  --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};\n  --#{$prefix}navbar-padding-y: #{$navbar-padding-y};\n  --#{$prefix}navbar-color: #{$navbar-light-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-light-active-color};\n  --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};\n  --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};\n  --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};\n  --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};\n  --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};\n  --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};\n  --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};\n  --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};\n  --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};\n  --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};\n  --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};\n  // scss-docs-end navbar-css-vars\n\n  position: relative;\n  display: flex;\n  flex-wrap: wrap; // allow us to do the line break for collapsing content\n  align-items: center;\n  justify-content: space-between; // space out brand from logo\n  padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);\n  @include gradient-bg();\n\n  // Because flex properties aren't inherited, we need to redeclare these first\n  // few properties so that content nested within behave properly.\n  // The `flex-wrap` property is inherited to simplify the expanded navbars\n  %container-flex-properties {\n    display: flex;\n    flex-wrap: inherit;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  > .container,\n  > .container-fluid {\n    @extend %container-flex-properties;\n  }\n\n  @each $breakpoint, $container-max-width in $container-max-widths {\n    > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {\n      @extend %container-flex-properties;\n    }\n  }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n  padding-top: var(--#{$prefix}navbar-brand-padding-y);\n  padding-bottom: var(--#{$prefix}navbar-brand-padding-y);\n  margin-right: var(--#{$prefix}navbar-brand-margin-end);\n  @include font-size(var(--#{$prefix}navbar-brand-font-size));\n  color: var(--#{$prefix}navbar-brand-color);\n  text-decoration: if($link-decoration == none, null, none);\n  white-space: nowrap;\n\n  &:hover,\n  &:focus {\n    color: var(--#{$prefix}navbar-brand-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n  // scss-docs-start navbar-nav-css-vars\n  --#{$prefix}nav-link-padding-x: 0;\n  --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};\n  @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);\n  --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};\n  --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);\n  --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);\n  --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);\n  // scss-docs-end navbar-nav-css-vars\n\n  display: flex;\n  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n\n  .show > .nav-link,\n  .nav-link.active {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n\n  .dropdown-menu {\n    position: static;\n  }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n  padding-top: $nav-link-padding-y;\n  padding-bottom: $nav-link-padding-y;\n  color: var(--#{$prefix}navbar-color);\n\n  a,\n  a:hover,\n  a:focus  {\n    color: var(--#{$prefix}navbar-active-color);\n  }\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n  flex-basis: 100%;\n  flex-grow: 1;\n  // For always expanded or extra full navbars, ensure content aligns itself\n  // properly vertically. Can be easily overridden with flex utilities.\n  align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n  padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);\n  @include font-size(var(--#{$prefix}navbar-toggler-font-size));\n  line-height: 1;\n  color: var(--#{$prefix}navbar-color);\n  background-color: transparent; // remove default button style\n  border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style\n  @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));\n  @include transition(var(--#{$prefix}navbar-toggler-transition));\n\n  &:hover {\n    text-decoration: none;\n  }\n\n  &:focus {\n    text-decoration: none;\n    outline: 0;\n    box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);\n  }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  background-image: var(--#{$prefix}navbar-toggler-icon-bg);\n  background-repeat: no-repeat;\n  background-position: center;\n  background-size: 100%;\n}\n\n.navbar-nav-scroll {\n  max-height: var(--#{$prefix}scroll-height, 75vh);\n  overflow-y: auto;\n}\n\n// scss-docs-start navbar-expand-loop\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $next: breakpoint-next($breakpoint, $grid-breakpoints);\n    $infix: breakpoint-infix($next, $grid-breakpoints);\n\n    // stylelint-disable-next-line scss/selector-no-union-class-name\n    &#{$infix} {\n      @include media-breakpoint-up($next) {\n        flex-wrap: nowrap;\n        justify-content: flex-start;\n\n        .navbar-nav {\n          flex-direction: row;\n\n          .dropdown-menu {\n            position: absolute;\n          }\n\n          .nav-link {\n            padding-right: var(--#{$prefix}navbar-nav-link-padding-x);\n            padding-left: var(--#{$prefix}navbar-nav-link-padding-x);\n          }\n        }\n\n        .navbar-nav-scroll {\n          overflow: visible;\n        }\n\n        .navbar-collapse {\n          display: flex !important; // stylelint-disable-line declaration-no-important\n          flex-basis: auto;\n        }\n\n        .navbar-toggler {\n          display: none;\n        }\n\n        .offcanvas {\n          // stylelint-disable declaration-no-important\n          position: static;\n          z-index: auto;\n          flex-grow: 1;\n          width: auto !important;\n          height: auto !important;\n          visibility: visible !important;\n          background-color: transparent !important;\n          border: 0 !important;\n          transform: none !important;\n          @include box-shadow(none);\n          @include transition(none);\n          // stylelint-enable declaration-no-important\n\n          .offcanvas-header {\n            display: none;\n          }\n\n          .offcanvas-body {\n            display: flex;\n            flex-grow: 0;\n            padding: 0;\n            overflow-y: visible;\n          }\n        }\n      }\n    }\n  }\n}\n// scss-docs-end navbar-expand-loop\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n.navbar-light {\n  @include deprecate(\"`.navbar-light`\", \"v5.2.0\", \"v6.0.0\", true);\n}\n\n.navbar-dark {\n  // scss-docs-start navbar-dark-css-vars\n  --#{$prefix}navbar-color: #{$navbar-dark-color};\n  --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};\n  --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};\n  --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};\n  --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};\n  --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};\n  --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};\n  --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};\n  // scss-docs-end navbar-dark-css-vars\n}\n",
+		"//\n// Base styles\n//\n\n.card {\n  // scss-docs-start card-css-vars\n  --#{$prefix}card-spacer-y: #{$card-spacer-y};\n  --#{$prefix}card-spacer-x: #{$card-spacer-x};\n  --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y};\n  --#{$prefix}card-border-width: #{$card-border-width};\n  --#{$prefix}card-border-color: #{$card-border-color};\n  --#{$prefix}card-border-radius: #{$card-border-radius};\n  --#{$prefix}card-box-shadow: #{$card-box-shadow};\n  --#{$prefix}card-inner-border-radius: #{$card-inner-border-radius};\n  --#{$prefix}card-cap-padding-y: #{$card-cap-padding-y};\n  --#{$prefix}card-cap-padding-x: #{$card-cap-padding-x};\n  --#{$prefix}card-cap-bg: #{$card-cap-bg};\n  --#{$prefix}card-cap-color: #{$card-cap-color};\n  --#{$prefix}card-height: #{$card-height};\n  --#{$prefix}card-color: #{$card-color};\n  --#{$prefix}card-bg: #{$card-bg};\n  --#{$prefix}card-img-overlay-padding: #{$card-img-overlay-padding};\n  --#{$prefix}card-group-margin: #{$card-group-margin};\n  // scss-docs-end card-css-vars\n\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106\n  height: var(--#{$prefix}card-height);\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}card-bg);\n  background-clip: border-box;\n  border: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n  @include border-radius(var(--#{$prefix}card-border-radius));\n  @include box-shadow(var(--#{$prefix}card-box-shadow));\n\n  > hr {\n    margin-right: 0;\n    margin-left: 0;\n  }\n\n  > .list-group {\n    border-top: inherit;\n    border-bottom: inherit;\n\n    &:first-child {\n      border-top-width: 0;\n      @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n\n    &:last-child  {\n      border-bottom-width: 0;\n      @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n    }\n  }\n\n  // Due to specificity of the above selector (`.card > .list-group`), we must\n  // use a child selector here to prevent double borders.\n  > .card-header + .list-group,\n  > .list-group + .card-footer {\n    border-top: 0;\n  }\n}\n\n.card-body {\n  // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n  // as much space as possible, ensuring footers are aligned to the bottom.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}card-spacer-y) var(--#{$prefix}card-spacer-x);\n  color: var(--#{$prefix}card-color);\n}\n\n.card-title {\n  margin-bottom: var(--#{$prefix}card-title-spacer-y);\n}\n\n.card-subtitle {\n  margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link {\n  &:hover {\n    text-decoration: if($link-hover-decoration == underline, none, null);\n  }\n\n  + .card-link {\n    margin-left: var(--#{$prefix}card-spacer-x);\n  }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  margin-bottom: 0; // Removes the default margin-bottom of <hN>\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-bottom: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:first-child {\n    @include border-radius(var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius) 0 0);\n  }\n}\n\n.card-footer {\n  padding: var(--#{$prefix}card-cap-padding-y) var(--#{$prefix}card-cap-padding-x);\n  color: var(--#{$prefix}card-cap-color);\n  background-color: var(--#{$prefix}card-cap-bg);\n  border-top: var(--#{$prefix}card-border-width) solid var(--#{$prefix}card-border-color);\n\n  &:last-child {\n    @include border-radius(0 0 var(--#{$prefix}card-inner-border-radius) var(--#{$prefix}card-inner-border-radius));\n  }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  border-bottom: 0;\n\n  .nav-link.active {\n    background-color: var(--#{$prefix}card-bg);\n    border-bottom-color: var(--#{$prefix}card-bg);\n  }\n}\n\n.card-header-pills {\n  margin-right: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n  margin-left: calc(-.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list\n}\n\n// Card image\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: var(--#{$prefix}card-img-overlay-padding);\n  @include border-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n}\n\n.card-img,\n.card-img-top {\n  @include border-top-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n.card-img,\n.card-img-bottom {\n  @include border-bottom-radius(var(--#{$prefix}card-inner-border-radius));\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n  // The child selector allows nested `.card` within `.card-group`\n  // to display properly.\n  > .card {\n    margin-bottom: var(--#{$prefix}card-group-margin);\n  }\n\n  @include media-breakpoint-up(sm) {\n    display: flex;\n    flex-flow: row wrap;\n    // The child selector allows nested `.card` within `.card-group`\n    // to display properly.\n    > .card {\n      // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n      flex: 1 0 0%;\n      margin-bottom: 0;\n\n      + .card {\n        margin-left: 0;\n        border-left: 0;\n      }\n\n      // Handle rounded corners\n      @if $enable-rounded {\n        &:not(:last-child) {\n          @include border-end-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-right-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-right-radius: 0;\n          }\n        }\n\n        &:not(:first-child) {\n          @include border-start-radius(0);\n\n          .card-img-top,\n          .card-header {\n            // stylelint-disable-next-line property-disallowed-list\n            border-top-left-radius: 0;\n          }\n          .card-img-bottom,\n          .card-footer {\n            // stylelint-disable-next-line property-disallowed-list\n            border-bottom-left-radius: 0;\n          }\n        }\n      }\n    }\n  }\n}\n",
+		"//\n// Base styles\n//\n\n.accordion {\n  // scss-docs-start accordion-css-vars\n  --#{$prefix}accordion-color: #{$accordion-color};\n  --#{$prefix}accordion-bg: #{$accordion-bg};\n  --#{$prefix}accordion-transition: #{$accordion-transition};\n  --#{$prefix}accordion-border-color: #{$accordion-border-color};\n  --#{$prefix}accordion-border-width: #{$accordion-border-width};\n  --#{$prefix}accordion-border-radius: #{$accordion-border-radius};\n  --#{$prefix}accordion-inner-border-radius: #{$accordion-inner-border-radius};\n  --#{$prefix}accordion-btn-padding-x: #{$accordion-button-padding-x};\n  --#{$prefix}accordion-btn-padding-y: #{$accordion-button-padding-y};\n  --#{$prefix}accordion-btn-color: #{$accordion-button-color};\n  --#{$prefix}accordion-btn-bg: #{$accordion-button-bg};\n  --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon)};\n  --#{$prefix}accordion-btn-icon-width: #{$accordion-icon-width};\n  --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};\n  --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};\n  --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};\n  --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};\n  --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};\n  --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};\n  --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};\n  --#{$prefix}accordion-active-color: #{$accordion-button-active-color};\n  --#{$prefix}accordion-active-bg: #{$accordion-button-active-bg};\n  // scss-docs-end accordion-css-vars\n}\n\n.accordion-button {\n  position: relative;\n  display: flex;\n  align-items: center;\n  width: 100%;\n  padding: var(--#{$prefix}accordion-btn-padding-y) var(--#{$prefix}accordion-btn-padding-x);\n  @include font-size($font-size-base);\n  color: var(--#{$prefix}accordion-btn-color);\n  text-align: left; // Reset button style\n  background-color: var(--#{$prefix}accordion-btn-bg);\n  border: 0;\n  @include border-radius(0);\n  overflow-anchor: none;\n  @include transition(var(--#{$prefix}accordion-transition));\n\n  &:not(.collapsed) {\n    color: var(--#{$prefix}accordion-active-color);\n    background-color: var(--#{$prefix}accordion-active-bg);\n    box-shadow: inset 0 calc(-1 * var(--#{$prefix}accordion-border-width)) 0 var(--#{$prefix}accordion-border-color); // stylelint-disable-line function-disallowed-list\n\n    &::after {\n      background-image: var(--#{$prefix}accordion-btn-active-icon);\n      transform: var(--#{$prefix}accordion-btn-icon-transform);\n    }\n  }\n\n  // Accordion icon\n  &::after {\n    flex-shrink: 0;\n    width: var(--#{$prefix}accordion-btn-icon-width);\n    height: var(--#{$prefix}accordion-btn-icon-width);\n    margin-left: auto;\n    content: \"\";\n    background-image: var(--#{$prefix}accordion-btn-icon);\n    background-repeat: no-repeat;\n    background-size: var(--#{$prefix}accordion-btn-icon-width);\n    @include transition(var(--#{$prefix}accordion-btn-icon-transition));\n  }\n\n  &:hover {\n    z-index: 2;\n  }\n\n  &:focus {\n    z-index: 3;\n    border-color: var(--#{$prefix}accordion-btn-focus-border-color);\n    outline: 0;\n    box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);\n  }\n}\n\n.accordion-header {\n  margin-bottom: 0;\n}\n\n.accordion-item {\n  color: var(--#{$prefix}accordion-color);\n  background-color: var(--#{$prefix}accordion-bg);\n  border: var(--#{$prefix}accordion-border-width) solid var(--#{$prefix}accordion-border-color);\n\n  &:first-of-type {\n    @include border-top-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius));\n    }\n  }\n\n  &:not(:first-of-type) {\n    border-top: 0;\n  }\n\n  // Only set a border-radius on the last item if the accordion is collapsed\n  &:last-of-type {\n    @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n\n    .accordion-button {\n      &.collapsed {\n        @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius));\n      }\n    }\n\n    .accordion-collapse {\n      @include border-bottom-radius(var(--#{$prefix}accordion-border-radius));\n    }\n  }\n}\n\n.accordion-body {\n  padding: var(--#{$prefix}accordion-body-padding-y) var(--#{$prefix}accordion-body-padding-x);\n}\n\n\n// Flush accordion items\n//\n// Remove borders and border-radius to keep accordion items edge-to-edge.\n\n.accordion-flush {\n  .accordion-collapse {\n    border-width: 0;\n  }\n\n  .accordion-item {\n    border-right: 0;\n    border-left: 0;\n    @include border-radius(0);\n\n    &:first-child { border-top: 0; }\n    &:last-child { border-bottom: 0; }\n\n    .accordion-button {\n      &,\n      &.collapsed {\n        @include border-radius(0);\n      }\n    }\n  }\n}\n",
+		".breadcrumb {\n  // scss-docs-start breadcrumb-css-vars\n  --#{$prefix}breadcrumb-padding-x: #{$breadcrumb-padding-x};\n  --#{$prefix}breadcrumb-padding-y: #{$breadcrumb-padding-y};\n  --#{$prefix}breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};\n  @include rfs($breadcrumb-font-size, --#{$prefix}breadcrumb-font-size);\n  --#{$prefix}breadcrumb-bg: #{$breadcrumb-bg};\n  --#{$prefix}breadcrumb-border-radius: #{$breadcrumb-border-radius};\n  --#{$prefix}breadcrumb-divider-color: #{$breadcrumb-divider-color};\n  --#{$prefix}breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};\n  --#{$prefix}breadcrumb-item-active-color: #{$breadcrumb-active-color};\n  // scss-docs-end breadcrumb-css-vars\n\n  display: flex;\n  flex-wrap: wrap;\n  padding: var(--#{$prefix}breadcrumb-padding-y) var(--#{$prefix}breadcrumb-padding-x);\n  margin-bottom: var(--#{$prefix}breadcrumb-margin-bottom);\n  @include font-size(var(--#{$prefix}breadcrumb-font-size));\n  list-style: none;\n  background-color: var(--#{$prefix}breadcrumb-bg);\n  @include border-radius(var(--#{$prefix}breadcrumb-border-radius));\n}\n\n.breadcrumb-item {\n  // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n  + .breadcrumb-item {\n    padding-left: var(--#{$prefix}breadcrumb-item-padding-x);\n\n    &::before {\n      float: left; // Suppress inline spacings and underlining of the separator\n      padding-right: var(--#{$prefix}breadcrumb-item-padding-x);\n      color: var(--#{$prefix}breadcrumb-divider-color);\n      content: var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{\"/* rtl:\"} var(--#{$prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{\"*/\"};\n    }\n  }\n\n  &.active {\n    color: var(--#{$prefix}breadcrumb-item-active-color);\n  }\n}\n",
+		".pagination {\n  // scss-docs-start pagination-css-vars\n  --#{$prefix}pagination-padding-x: #{$pagination-padding-x};\n  --#{$prefix}pagination-padding-y: #{$pagination-padding-y};\n  @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);\n  --#{$prefix}pagination-color: #{$pagination-color};\n  --#{$prefix}pagination-bg: #{$pagination-bg};\n  --#{$prefix}pagination-border-width: #{$pagination-border-width};\n  --#{$prefix}pagination-border-color: #{$pagination-border-color};\n  --#{$prefix}pagination-border-radius: #{$pagination-border-radius};\n  --#{$prefix}pagination-hover-color: #{$pagination-hover-color};\n  --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};\n  --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};\n  --#{$prefix}pagination-focus-color: #{$pagination-focus-color};\n  --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};\n  --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};\n  --#{$prefix}pagination-active-color: #{$pagination-active-color};\n  --#{$prefix}pagination-active-bg: #{$pagination-active-bg};\n  --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};\n  --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};\n  --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};\n  --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};\n  // scss-docs-end pagination-css-vars\n\n  display: flex;\n  @include list-unstyled();\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);\n  @include font-size(var(--#{$prefix}pagination-font-size));\n  color: var(--#{$prefix}pagination-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}pagination-bg);\n  border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);\n  @include transition($pagination-transition);\n\n  &:hover {\n    z-index: 2;\n    color: var(--#{$prefix}pagination-hover-color);\n    text-decoration: if($link-hover-decoration == underline, none, null);\n    background-color: var(--#{$prefix}pagination-hover-bg);\n    border-color: var(--#{$prefix}pagination-hover-border-color);\n  }\n\n  &:focus {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-focus-color);\n    background-color: var(--#{$prefix}pagination-focus-bg);\n    outline: $pagination-focus-outline;\n    box-shadow: var(--#{$prefix}pagination-focus-box-shadow);\n  }\n\n  &.active,\n  .active > & {\n    z-index: 3;\n    color: var(--#{$prefix}pagination-active-color);\n    @include gradient-bg(var(--#{$prefix}pagination-active-bg));\n    border-color: var(--#{$prefix}pagination-active-border-color);\n  }\n\n  &.disabled,\n  .disabled > & {\n    color: var(--#{$prefix}pagination-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}pagination-disabled-bg);\n    border-color: var(--#{$prefix}pagination-disabled-border-color);\n  }\n}\n\n.page-item {\n  &:not(:first-child) .page-link {\n    margin-left: $pagination-margin-start;\n  }\n\n  @if $pagination-margin-start == ($pagination-border-width * -1) {\n    &:first-child {\n      .page-link {\n        @include border-start-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n\n    &:last-child {\n      .page-link {\n        @include border-end-radius(var(--#{$prefix}pagination-border-radius));\n      }\n    }\n  } @else {\n    // Add border-radius to all pageLinks in case they have left margin\n    .page-link {\n      @include border-radius(var(--#{$prefix}pagination-border-radius));\n    }\n  }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);\n}\n\n.pagination-sm {\n  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $pagination-border-radius-sm);\n}\n",
+		"// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n  // scss-docs-start badge-css-vars\n  --#{$prefix}badge-padding-x: #{$badge-padding-x};\n  --#{$prefix}badge-padding-y: #{$badge-padding-y};\n  @include rfs($badge-font-size, --#{$prefix}badge-font-size);\n  --#{$prefix}badge-font-weight: #{$badge-font-weight};\n  --#{$prefix}badge-color: #{$badge-color};\n  --#{$prefix}badge-border-radius: #{$badge-border-radius};\n  // scss-docs-end badge-css-vars\n\n  display: inline-block;\n  padding: var(--#{$prefix}badge-padding-y) var(--#{$prefix}badge-padding-x);\n  @include font-size(var(--#{$prefix}badge-font-size));\n  font-weight: var(--#{$prefix}badge-font-weight);\n  line-height: 1;\n  color: var(--#{$prefix}badge-color);\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  @include border-radius(var(--#{$prefix}badge-border-radius));\n  @include gradient-bg();\n\n  // Empty badges collapse automatically\n  &:empty {\n    display: none;\n  }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n",
+		"//\n// Base styles\n//\n\n.alert {\n  // scss-docs-start alert-css-vars\n  --#{$prefix}alert-bg: transparent;\n  --#{$prefix}alert-padding-x: #{$alert-padding-x};\n  --#{$prefix}alert-padding-y: #{$alert-padding-y};\n  --#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};\n  --#{$prefix}alert-color: inherit;\n  --#{$prefix}alert-border-color: transparent;\n  --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);\n  --#{$prefix}alert-border-radius: #{$alert-border-radius};\n  // scss-docs-end alert-css-vars\n\n  position: relative;\n  padding: var(--#{$prefix}alert-padding-y) var(--#{$prefix}alert-padding-x);\n  margin-bottom: var(--#{$prefix}alert-margin-bottom);\n  color: var(--#{$prefix}alert-color);\n  background-color: var(--#{$prefix}alert-bg);\n  border: var(--#{$prefix}alert-border);\n  @include border-radius(var(--#{$prefix}alert-border-radius));\n}\n\n// Headings for larger alerts\n.alert-heading {\n  // Specified to prevent conflicts of changing $headings-color\n  color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n  font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n  padding-right: $alert-dismissible-padding-r;\n\n  // Adjust close link position\n  .btn-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    z-index: $stretched-link-z-index + 1;\n    padding: $alert-padding-y * 1.25 $alert-padding-x;\n  }\n}\n\n\n// scss-docs-start alert-modifiers\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $state, $value in $theme-colors {\n  $alert-background: shift-color($value, $alert-bg-scale);\n  $alert-border: shift-color($value, $alert-border-scale);\n  $alert-color: shift-color($value, $alert-color-scale);\n\n  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {\n    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));\n  }\n  .alert-#{$state} {\n    @include alert-variant($alert-background, $alert-border, $alert-color);\n  }\n}\n// scss-docs-end alert-modifiers\n",
+		"// Disable animation if transitions are disabled\n\n// scss-docs-start progress-keyframes\n@if $enable-transitions {\n  @keyframes progress-bar-stripes {\n    0% { background-position-x: $progress-height; }\n  }\n}\n// scss-docs-end progress-keyframes\n\n.progress {\n  // scss-docs-start progress-css-vars\n  --#{$prefix}progress-height: #{$progress-height};\n  @include rfs($progress-font-size, --#{$prefix}progress-font-size);\n  --#{$prefix}progress-bg: #{$progress-bg};\n  --#{$prefix}progress-border-radius: #{$progress-border-radius};\n  --#{$prefix}progress-box-shadow: #{$progress-box-shadow};\n  --#{$prefix}progress-bar-color: #{$progress-bar-color};\n  --#{$prefix}progress-bar-bg: #{$progress-bar-bg};\n  --#{$prefix}progress-bar-transition: #{$progress-bar-transition};\n  // scss-docs-end progress-css-vars\n\n  display: flex;\n  height: var(--#{$prefix}progress-height);\n  overflow: hidden; // force rounded corners by cropping it\n  @include font-size(var(--#{$prefix}progress-font-size));\n  background-color: var(--#{$prefix}progress-bg);\n  @include border-radius(var(--#{$prefix}progress-border-radius));\n  @include box-shadow(var(--#{$prefix}progress-box-shadow));\n}\n\n.progress-bar {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  overflow: hidden;\n  color: var(--#{$prefix}progress-bar-color);\n  text-align: center;\n  white-space: nowrap;\n  background-color: var(--#{$prefix}progress-bar-bg);\n  @include transition(var(--#{$prefix}progress-bar-transition));\n}\n\n.progress-bar-striped {\n  @include gradient-striped();\n  background-size: var(--#{$prefix}progress-height) var(--#{$prefix}progress-height);\n}\n\n@if $enable-transitions {\n  .progress-bar-animated {\n    animation: $progress-bar-animation-timing progress-bar-stripes;\n\n    @if $enable-reduced-motion {\n      @media (prefers-reduced-motion: reduce) {\n        animation: none;\n      }\n    }\n  }\n}\n",
+		"// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // scss-docs-start list-group-css-vars\n  --#{$prefix}list-group-color: #{$list-group-color};\n  --#{$prefix}list-group-bg: #{$list-group-bg};\n  --#{$prefix}list-group-border-color: #{$list-group-border-color};\n  --#{$prefix}list-group-border-width: #{$list-group-border-width};\n  --#{$prefix}list-group-border-radius: #{$list-group-border-radius};\n  --#{$prefix}list-group-item-padding-x: #{$list-group-item-padding-x};\n  --#{$prefix}list-group-item-padding-y: #{$list-group-item-padding-y};\n  --#{$prefix}list-group-action-color: #{$list-group-action-color};\n  --#{$prefix}list-group-action-hover-color: #{$list-group-action-hover-color};\n  --#{$prefix}list-group-action-hover-bg: #{$list-group-hover-bg};\n  --#{$prefix}list-group-action-active-color: #{$list-group-action-active-color};\n  --#{$prefix}list-group-action-active-bg: #{$list-group-action-active-bg};\n  --#{$prefix}list-group-disabled-color: #{$list-group-disabled-color};\n  --#{$prefix}list-group-disabled-bg: #{$list-group-disabled-bg};\n  --#{$prefix}list-group-active-color: #{$list-group-active-color};\n  --#{$prefix}list-group-active-bg: #{$list-group-active-bg};\n  --#{$prefix}list-group-active-border-color: #{$list-group-active-border-color};\n  // scss-docs-end list-group-css-vars\n\n  display: flex;\n  flex-direction: column;\n\n  // No need to set list-style: none; since .list-group-item is block level\n  padding-left: 0; // reset padding because ul and ol\n  margin-bottom: 0;\n  @include border-radius(var(--#{$prefix}list-group-border-radius));\n}\n\n.list-group-numbered {\n  list-style-type: none;\n  counter-reset: section;\n\n  > .list-group-item::before {\n    // Increments only this instance of the section counter\n    content: counters(section, \".\") \". \";\n    counter-increment: section;\n  }\n}\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n  width: 100%; // For `<button>`s (anchors become 100% by default though)\n  color: var(--#{$prefix}list-group-action-color);\n  text-align: inherit; // For `<button>`s (anchors inherit)\n\n  // Hover state\n  &:hover,\n  &:focus {\n    z-index: 1; // Place hover/focus items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-action-hover-color);\n    text-decoration: none;\n    background-color: var(--#{$prefix}list-group-action-hover-bg);\n  }\n\n  &:active {\n    color: var(--#{$prefix}list-group-action-active-color);\n    background-color: var(--#{$prefix}list-group-action-active-bg);\n  }\n}\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: var(--#{$prefix}list-group-item-padding-y) var(--#{$prefix}list-group-item-padding-x);\n  color: var(--#{$prefix}list-group-color);\n  text-decoration: if($link-decoration == none, null, none);\n  background-color: var(--#{$prefix}list-group-bg);\n  border: var(--#{$prefix}list-group-border-width) solid var(--#{$prefix}list-group-border-color);\n\n  &:first-child {\n    @include border-top-radius(inherit);\n  }\n\n  &:last-child {\n    @include border-bottom-radius(inherit);\n  }\n\n  &.disabled,\n  &:disabled {\n    color: var(--#{$prefix}list-group-disabled-color);\n    pointer-events: none;\n    background-color: var(--#{$prefix}list-group-disabled-bg);\n  }\n\n  // Include both here for `<a>`s and `<button>`s\n  &.active {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: var(--#{$prefix}list-group-active-color);\n    background-color: var(--#{$prefix}list-group-active-bg);\n    border-color: var(--#{$prefix}list-group-active-border-color);\n  }\n\n  // stylelint-disable-next-line scss/selector-no-redundant-nesting-selector\n  & + .list-group-item {\n    border-top-width: 0;\n\n    &.active {\n      margin-top: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n      border-top-width: var(--#{$prefix}list-group-border-width);\n    }\n  }\n}\n\n// Horizontal\n//\n// Change the layout of list group items from vertical (default) to horizontal.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .list-group-horizontal#{$infix} {\n      flex-direction: row;\n\n      > .list-group-item {\n        &:first-child:not(:last-child) {\n          @include border-bottom-start-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-top-end-radius(0);\n        }\n\n        &:last-child:not(:first-child) {\n          @include border-top-end-radius(var(--#{$prefix}list-group-border-radius));\n          @include border-bottom-start-radius(0);\n        }\n\n        &.active {\n          margin-top: 0;\n        }\n\n        + .list-group-item {\n          border-top-width: var(--#{$prefix}list-group-border-width);\n          border-left-width: 0;\n\n          &.active {\n            margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list\n            border-left-width: var(--#{$prefix}list-group-border-width);\n          }\n        }\n      }\n    }\n  }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n  @include border-radius(0);\n\n  > .list-group-item {\n    border-width: 0 0 var(--#{$prefix}list-group-border-width);\n\n    &:last-child {\n      border-bottom-width: 0;\n    }\n  }\n}\n\n\n// scss-docs-start list-group-modifiers\n// List group contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $state, $value in $theme-colors {\n  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);\n  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);\n  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {\n    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));\n  }\n\n  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);\n}\n// scss-docs-end list-group-modifiers\n",
+		"// Transparent background and border properties included for button version.\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n.btn-close {\n  box-sizing: content-box;\n  width: $btn-close-width;\n  height: $btn-close-height;\n  padding: $btn-close-padding-y $btn-close-padding-x;\n  color: $btn-close-color;\n  background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements\n  border: 0; // for button elements\n  @include border-radius();\n  opacity: $btn-close-opacity;\n\n  // Override <a>'s hover style\n  &:hover {\n    color: $btn-close-color;\n    text-decoration: none;\n    opacity: $btn-close-hover-opacity;\n  }\n\n  &:focus {\n    outline: 0;\n    box-shadow: $btn-close-focus-shadow;\n    opacity: $btn-close-focus-opacity;\n  }\n\n  &:disabled,\n  &.disabled {\n    pointer-events: none;\n    user-select: none;\n    opacity: $btn-close-disabled-opacity;\n  }\n}\n\n.btn-close-white {\n  filter: $btn-close-white-filter;\n}\n",
+		".toast {\n  // scss-docs-start toast-css-vars\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n  --#{$prefix}toast-padding-x: #{$toast-padding-x};\n  --#{$prefix}toast-padding-y: #{$toast-padding-y};\n  --#{$prefix}toast-spacing: #{$toast-spacing};\n  --#{$prefix}toast-max-width: #{$toast-max-width};\n  @include rfs($toast-font-size, --#{$prefix}toast-font-size);\n  --#{$prefix}toast-color: #{$toast-color};\n  --#{$prefix}toast-bg: #{$toast-background-color};\n  --#{$prefix}toast-border-width: #{$toast-border-width};\n  --#{$prefix}toast-border-color: #{$toast-border-color};\n  --#{$prefix}toast-border-radius: #{$toast-border-radius};\n  --#{$prefix}toast-box-shadow: #{$toast-box-shadow};\n  --#{$prefix}toast-header-color: #{$toast-header-color};\n  --#{$prefix}toast-header-bg: #{$toast-header-background-color};\n  --#{$prefix}toast-header-border-color: #{$toast-header-border-color};\n  // scss-docs-end toast-css-vars\n\n  width: var(--#{$prefix}toast-max-width);\n  max-width: 100%;\n  @include font-size(var(--#{$prefix}toast-font-size));\n  color: var(--#{$prefix}toast-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}toast-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-border-color);\n  box-shadow: var(--#{$prefix}toast-box-shadow);\n  @include border-radius(var(--#{$prefix}toast-border-radius));\n\n  &.showing {\n    opacity: 0;\n  }\n\n  &:not(.show) {\n    display: none;\n  }\n}\n\n.toast-container {\n  --#{$prefix}toast-zindex: #{$zindex-toast};\n\n  position: absolute;\n  z-index: var(--#{$prefix}toast-zindex);\n  width: max-content;\n  max-width: 100%;\n  pointer-events: none;\n\n  > :not(:last-child) {\n    margin-bottom: var(--#{$prefix}toast-spacing);\n  }\n}\n\n.toast-header {\n  display: flex;\n  align-items: center;\n  padding: var(--#{$prefix}toast-padding-y) var(--#{$prefix}toast-padding-x);\n  color: var(--#{$prefix}toast-header-color);\n  background-color: var(--#{$prefix}toast-header-bg);\n  background-clip: padding-box;\n  border-bottom: var(--#{$prefix}toast-border-width) solid var(--#{$prefix}toast-header-border-color);\n  @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width)));\n\n  .btn-close {\n    margin-right: calc(-.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list\n    margin-left: var(--#{$prefix}toast-padding-x);\n  }\n}\n\n.toast-body {\n  padding: var(--#{$prefix}toast-padding-x);\n  word-wrap: break-word;\n}\n",
+		"// stylelint-disable function-disallowed-list\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and stuff\n\n\n// Container that the modal scrolls within\n.modal {\n  // scss-docs-start modal-css-vars\n  --#{$prefix}modal-zindex: #{$zindex-modal};\n  --#{$prefix}modal-width: #{$modal-md};\n  --#{$prefix}modal-padding: #{$modal-inner-padding};\n  --#{$prefix}modal-margin: #{$modal-dialog-margin};\n  --#{$prefix}modal-color: #{$modal-content-color};\n  --#{$prefix}modal-bg: #{$modal-content-bg};\n  --#{$prefix}modal-border-color: #{$modal-content-border-color};\n  --#{$prefix}modal-border-width: #{$modal-content-border-width};\n  --#{$prefix}modal-border-radius: #{$modal-content-border-radius};\n  --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-xs};\n  --#{$prefix}modal-inner-border-radius: #{$modal-content-inner-border-radius};\n  --#{$prefix}modal-header-padding-x: #{$modal-header-padding-x};\n  --#{$prefix}modal-header-padding-y: #{$modal-header-padding-y};\n  --#{$prefix}modal-header-padding: #{$modal-header-padding}; // Todo in v6: Split this padding into x and y\n  --#{$prefix}modal-header-border-color: #{$modal-header-border-color};\n  --#{$prefix}modal-header-border-width: #{$modal-header-border-width};\n  --#{$prefix}modal-title-line-height: #{$modal-title-line-height};\n  --#{$prefix}modal-footer-gap: #{$modal-footer-margin-between};\n  --#{$prefix}modal-footer-bg: #{$modal-footer-bg};\n  --#{$prefix}modal-footer-border-color: #{$modal-footer-border-color};\n  --#{$prefix}modal-footer-border-width: #{$modal-footer-border-width};\n  // scss-docs-end modal-css-vars\n\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: var(--#{$prefix}modal-zindex);\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow-x: hidden;\n  overflow-y: auto;\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n  // See also https://github.com/twbs/bootstrap/issues/17695\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: var(--#{$prefix}modal-margin);\n  // allow clicks to pass through for custom click handling to close modal\n  pointer-events: none;\n\n  // When fading in the modal, animate it to slide down\n  .modal.fade & {\n    @include transition($modal-transition);\n    transform: $modal-fade-transform;\n  }\n  .modal.show & {\n    transform: $modal-show-transform;\n  }\n\n  // When trying to close, animate focus to scale\n  .modal.modal-static & {\n    transform: $modal-scale-transform;\n  }\n}\n\n.modal-dialog-scrollable {\n  height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n\n  .modal-content {\n    max-height: 100%;\n    overflow: hidden;\n  }\n\n  .modal-body {\n    overflow-y: auto;\n  }\n}\n\n.modal-dialog-centered {\n  display: flex;\n  align-items: center;\n  min-height: calc(100% - var(--#{$prefix}modal-margin) * 2);\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n  // counteract the pointer-events: none; in the .modal-dialog\n  color: var(--#{$prefix}modal-color);\n  pointer-events: auto;\n  background-color: var(--#{$prefix}modal-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}modal-border-width) solid var(--#{$prefix}modal-border-color);\n  @include border-radius(var(--#{$prefix}modal-border-radius));\n  @include box-shadow(var(--#{$prefix}modal-box-shadow));\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  // scss-docs-start modal-backdrop-css-vars\n  --#{$prefix}backdrop-zindex: #{$zindex-modal-backdrop};\n  --#{$prefix}backdrop-bg: #{$modal-backdrop-bg};\n  --#{$prefix}backdrop-opacity: #{$modal-backdrop-opacity};\n  // scss-docs-end modal-backdrop-css-vars\n\n  @include overlay-backdrop(var(--#{$prefix}backdrop-zindex), var(--#{$prefix}backdrop-bg), var(--#{$prefix}backdrop-opacity));\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  display: flex;\n  flex-shrink: 0;\n  align-items: center;\n  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n  padding: var(--#{$prefix}modal-header-padding);\n  border-bottom: var(--#{$prefix}modal-header-border-width) solid var(--#{$prefix}modal-header-border-color);\n  @include border-top-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);\n    margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;\n  }\n}\n\n// Title text within header\n.modal-title {\n  margin-bottom: 0;\n  line-height: var(--#{$prefix}modal-title-line-height);\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  // Enable `flex-grow: 1` so that the body take up as much space as possible\n  // when there should be a fixed height on `.modal-dialog`.\n  flex: 1 1 auto;\n  padding: var(--#{$prefix}modal-padding);\n}\n\n// Footer (for actions)\n.modal-footer {\n  display: flex;\n  flex-shrink: 0;\n  flex-wrap: wrap;\n  align-items: center; // vertically center\n  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n  padding: calc(var(--#{$prefix}modal-padding) - var(--#{$prefix}modal-footer-gap) * .5);\n  background-color: var(--#{$prefix}modal-footer-bg);\n  border-top: var(--#{$prefix}modal-footer-border-width) solid var(--#{$prefix}modal-footer-border-color);\n  @include border-bottom-radius(var(--#{$prefix}modal-inner-border-radius));\n\n  // Place margin between footer elements\n  // This solution is far from ideal because of the universal selector usage,\n  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800\n  > * {\n    margin: calc(var(--#{$prefix}modal-footer-gap) * .5); // Todo in v6: replace with gap on parent class\n  }\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n  .modal {\n    --#{$prefix}modal-margin: #{$modal-dialog-margin-y-sm-up};\n    --#{$prefix}modal-box-shadow: #{$modal-content-box-shadow-sm-up};\n  }\n\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    max-width: var(--#{$prefix}modal-width);\n    margin-right: auto;\n    margin-left: auto;\n  }\n\n  .modal-sm {\n    --#{$prefix}modal-width: #{$modal-sm};\n  }\n}\n\n@include media-breakpoint-up(lg) {\n  .modal-lg,\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-lg};\n  }\n}\n\n@include media-breakpoint-up(xl) {\n  .modal-xl {\n    --#{$prefix}modal-width: #{$modal-xl};\n  }\n}\n\n// scss-docs-start modal-fullscreen-loop\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n  $postfix: if($infix != \"\", $infix + \"-down\", \"\");\n\n  @include media-breakpoint-down($breakpoint) {\n    .modal-fullscreen#{$postfix} {\n      width: 100vw;\n      max-width: none;\n      height: 100%;\n      margin: 0;\n\n      .modal-content {\n        height: 100%;\n        border: 0;\n        @include border-radius(0);\n      }\n\n      .modal-header,\n      .modal-footer {\n        @include border-radius(0);\n      }\n\n      .modal-body {\n        overflow-y: auto;\n      }\n    }\n  }\n}\n// scss-docs-end modal-fullscreen-loop\n",
+		"// Base class\n.tooltip {\n  // scss-docs-start tooltip-css-vars\n  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};\n  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};\n  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};\n  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};\n  --#{$prefix}tooltip-margin: #{$tooltip-margin};\n  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);\n  --#{$prefix}tooltip-color: #{$tooltip-color};\n  --#{$prefix}tooltip-bg: #{$tooltip-bg};\n  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};\n  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};\n  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};\n  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};\n  // scss-docs-end tooltip-css-vars\n\n  z-index: var(--#{$prefix}tooltip-zindex);\n  display: block;\n  padding: var(--#{$prefix}tooltip-arrow-height);\n  margin: var(--#{$prefix}tooltip-margin);\n  @include deprecate(\"`$tooltip-margin`\", \"v5\", \"v5.x\", true);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}tooltip-font-size));\n  // Allow breaking very long words so they don't overflow the tooltip's bounds\n  word-wrap: break-word;\n  opacity: 0;\n\n  &.show { opacity: var(--#{$prefix}tooltip-opacity); }\n\n  .tooltip-arrow {\n    display: block;\n    width: var(--#{$prefix}tooltip-arrow-width);\n    height: var(--#{$prefix}tooltip-arrow-height);\n\n    &::before {\n      position: absolute;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n    }\n  }\n}\n\n.bs-tooltip-top .tooltip-arrow {\n  bottom: 0;\n\n  &::before {\n    top: -1px;\n    border-width: var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-top-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow {\n  left: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    right: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height) calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    border-right-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-bottom .tooltip-arrow {\n  top: 0;\n\n  &::before {\n    bottom: -1px;\n    border-width: 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-bottom-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow {\n  right: 0;\n  width: var(--#{$prefix}tooltip-arrow-height);\n  height: var(--#{$prefix}tooltip-arrow-width);\n\n  &::before {\n    left: -1px;\n    border-width: calc(var(--#{$prefix}tooltip-arrow-width) * .5) 0 calc(var(--#{$prefix}tooltip-arrow-width) * .5) var(--#{$prefix}tooltip-arrow-height); // stylelint-disable-line function-disallowed-list\n    border-left-color: var(--#{$prefix}tooltip-bg);\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-tooltip-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-tooltip-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-tooltip-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-tooltip-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-tooltip-start;\n  }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: var(--#{$prefix}tooltip-max-width);\n  padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);\n  color: var(--#{$prefix}tooltip-color);\n  text-align: center;\n  background-color: var(--#{$prefix}tooltip-bg);\n  @include border-radius(var(--#{$prefix}tooltip-border-radius));\n}\n",
+		".popover {\n  // scss-docs-start popover-css-vars\n  --#{$prefix}popover-zindex: #{$zindex-popover};\n  --#{$prefix}popover-max-width: #{$popover-max-width};\n  @include rfs($popover-font-size, --#{$prefix}popover-font-size);\n  --#{$prefix}popover-bg: #{$popover-bg};\n  --#{$prefix}popover-border-width: #{$popover-border-width};\n  --#{$prefix}popover-border-color: #{$popover-border-color};\n  --#{$prefix}popover-border-radius: #{$popover-border-radius};\n  --#{$prefix}popover-inner-border-radius: #{$popover-inner-border-radius};\n  --#{$prefix}popover-box-shadow: #{$popover-box-shadow};\n  --#{$prefix}popover-header-padding-x: #{$popover-header-padding-x};\n  --#{$prefix}popover-header-padding-y: #{$popover-header-padding-y};\n  @include rfs($popover-header-font-size, --#{$prefix}popover-header-font-size);\n  --#{$prefix}popover-header-color: #{$popover-header-color};\n  --#{$prefix}popover-header-bg: #{$popover-header-bg};\n  --#{$prefix}popover-body-padding-x: #{$popover-body-padding-x};\n  --#{$prefix}popover-body-padding-y: #{$popover-body-padding-y};\n  --#{$prefix}popover-body-color: #{$popover-body-color};\n  --#{$prefix}popover-arrow-width: #{$popover-arrow-width};\n  --#{$prefix}popover-arrow-height: #{$popover-arrow-height};\n  --#{$prefix}popover-arrow-border: var(--#{$prefix}popover-border-color);\n  // scss-docs-end popover-css-vars\n\n  z-index: var(--#{$prefix}popover-zindex);\n  display: block;\n  max-width: var(--#{$prefix}popover-max-width);\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  @include reset-text();\n  @include font-size(var(--#{$prefix}popover-font-size));\n  // Allow breaking very long words so they don't overflow the popover's bounds\n  word-wrap: break-word;\n  background-color: var(--#{$prefix}popover-bg);\n  background-clip: padding-box;\n  border: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-radius(var(--#{$prefix}popover-border-radius));\n  @include box-shadow(var(--#{$prefix}popover-box-shadow));\n\n  .popover-arrow {\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    height: var(--#{$prefix}popover-arrow-height);\n\n    &::before,\n    &::after {\n      position: absolute;\n      display: block;\n      content: \"\";\n      border-color: transparent;\n      border-style: solid;\n      border-width: 0;\n    }\n  }\n}\n\n.bs-popover-top {\n  > .popover-arrow {\n    bottom: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      bottom: 0;\n      border-top-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      bottom: var(--#{$prefix}popover-border-width);\n      border-top-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end {\n  > .popover-arrow {\n    left: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height) calc(var(--#{$prefix}popover-arrow-width) * .5) 0; // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      left: 0;\n      border-right-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      left: var(--#{$prefix}popover-border-width);\n      border-right-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-bottom {\n  > .popover-arrow {\n    top: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n\n    &::before,\n    &::after {\n      border-width: 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      top: 0;\n      border-bottom-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      top: var(--#{$prefix}popover-border-width);\n      border-bottom-color: var(--#{$prefix}popover-bg);\n    }\n  }\n\n  // This will remove the popover-header's border just below the arrow\n  .popover-header::before {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: block;\n    width: var(--#{$prefix}popover-arrow-width);\n    margin-left: calc(-.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list\n    content: \"\";\n    border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg);\n  }\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start {\n  > .popover-arrow {\n    right: calc(-1 * (var(--#{$prefix}popover-arrow-height)) - var(--#{$prefix}popover-border-width)); // stylelint-disable-line function-disallowed-list\n    width: var(--#{$prefix}popover-arrow-height);\n    height: var(--#{$prefix}popover-arrow-width);\n\n    &::before,\n    &::after {\n      border-width: calc(var(--#{$prefix}popover-arrow-width) * .5) 0 calc(var(--#{$prefix}popover-arrow-width) * .5) var(--#{$prefix}popover-arrow-height); // stylelint-disable-line function-disallowed-list\n    }\n\n    &::before {\n      right: 0;\n      border-left-color: var(--#{$prefix}popover-arrow-border);\n    }\n\n    &::after {\n      right: var(--#{$prefix}popover-border-width);\n      border-left-color: var(--#{$prefix}popover-bg);\n    }\n  }\n}\n\n/* rtl:end:ignore */\n\n.bs-popover-auto {\n  &[data-popper-placement^=\"top\"] {\n    @extend .bs-popover-top;\n  }\n  &[data-popper-placement^=\"right\"] {\n    @extend .bs-popover-end;\n  }\n  &[data-popper-placement^=\"bottom\"] {\n    @extend .bs-popover-bottom;\n  }\n  &[data-popper-placement^=\"left\"] {\n    @extend .bs-popover-start;\n  }\n}\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n  padding: var(--#{$prefix}popover-header-padding-y) var(--#{$prefix}popover-header-padding-x);\n  margin-bottom: 0; // Reset the default from Reboot\n  @include font-size(var(--#{$prefix}popover-header-font-size));\n  color: var(--#{$prefix}popover-header-color);\n  background-color: var(--#{$prefix}popover-header-bg);\n  border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-border-color);\n  @include border-top-radius(var(--#{$prefix}popover-inner-border-radius));\n\n  &:empty {\n    display: none;\n  }\n}\n\n.popover-body {\n  padding: var(--#{$prefix}popover-body-padding-y) var(--#{$prefix}popover-body-padding-x);\n  color: var(--#{$prefix}popover-body-color);\n}\n",
+		"// Notes on the classes:\n//\n// 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)\n//    even when their scroll action started on a carousel, but for compatibility (with Firefox)\n//    we're preventing all actions instead\n// 2. The .carousel-item-start and .carousel-item-end is used to indicate where\n//    the active slide is heading.\n// 3. .active.carousel-item is the current slide.\n// 4. .active.carousel-item-start and .active.carousel-item-end is the current\n//    slide in its in-transition state. Only one of these occurs at a time.\n// 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end\n//    is the upcoming slide in transition.\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n  @include clearfix();\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  backface-visibility: hidden;\n  @include transition($carousel-transition);\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n  transform: translateX(-100%);\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n  .carousel-item {\n    opacity: 0;\n    transition-property: opacity;\n    transform: none;\n  }\n\n  .carousel-item.active,\n  .carousel-item-next.carousel-item-start,\n  .carousel-item-prev.carousel-item-end {\n    z-index: 1;\n    opacity: 1;\n  }\n\n  .active.carousel-item-start,\n  .active.carousel-item-end {\n    z-index: 0;\n    opacity: 0;\n    @include transition(opacity 0s $carousel-transition-duration);\n  }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  // Use flex for alignment (1-3)\n  display: flex; // 1. allow flex styles\n  align-items: center; // 2. vertically center contents\n  justify-content: center; // 3. horizontally center contents\n  width: $carousel-control-width;\n  padding: 0;\n  color: $carousel-control-color;\n  text-align: center;\n  background: none;\n  border: 0;\n  opacity: $carousel-control-opacity;\n  @include transition($carousel-control-transition);\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    color: $carousel-control-color;\n    text-decoration: none;\n    outline: 0;\n    opacity: $carousel-control-hover-opacity;\n  }\n}\n.carousel-control-prev {\n  left: 0;\n  background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);\n}\n.carousel-control-next {\n  right: 0;\n  background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: $carousel-control-icon-width;\n  height: $carousel-control-icon-width;\n  background-repeat: no-repeat;\n  background-position: 50%;\n  background-size: 100% 100%;\n}\n\n/* rtl:options: {\n  \"autoRename\": true,\n  \"stringMap\":[ {\n    \"name\"    : \"prev-next\",\n    \"search\"  : \"prev\",\n    \"replace\" : \"next\"\n  } ]\n} */\n.carousel-control-prev-icon {\n  background-image: escape-svg($carousel-control-prev-icon-bg);\n}\n.carousel-control-next-icon {\n  background-image: escape-svg($carousel-control-next-icon-bg);\n}\n\n// Optional indicator pips/controls\n//\n// Add a container (such as a list) with the following class and add an item (ideally a focusable control,\n// like a button) with data-bs-target for each slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  display: flex;\n  justify-content: center;\n  padding: 0;\n  // Use the .carousel-control's width as margin so we don't overlay those\n  margin-right: $carousel-control-width;\n  margin-bottom: 1rem;\n  margin-left: $carousel-control-width;\n  list-style: none;\n\n  [data-bs-target] {\n    box-sizing: content-box;\n    flex: 0 1 auto;\n    width: $carousel-indicator-width;\n    height: $carousel-indicator-height;\n    padding: 0;\n    margin-right: $carousel-indicator-spacer;\n    margin-left: $carousel-indicator-spacer;\n    text-indent: -999px;\n    cursor: pointer;\n    background-color: $carousel-indicator-active-bg;\n    background-clip: padding-box;\n    border: 0;\n    // Use transparent borders to increase the hit area by 10px on top and bottom.\n    border-top: $carousel-indicator-hit-area-height solid transparent;\n    border-bottom: $carousel-indicator-hit-area-height solid transparent;\n    opacity: $carousel-indicator-opacity;\n    @include transition($carousel-indicator-transition);\n  }\n\n  .active {\n    opacity: $carousel-indicator-active-opacity;\n  }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n  position: absolute;\n  right: (100% - $carousel-caption-width) * .5;\n  bottom: $carousel-caption-spacer;\n  left: (100% - $carousel-caption-width) * .5;\n  padding-top: $carousel-caption-padding-y;\n  padding-bottom: $carousel-caption-padding-y;\n  color: $carousel-caption-color;\n  text-align: center;\n}\n\n// Dark mode carousel\n\n.carousel-dark {\n  .carousel-control-prev-icon,\n  .carousel-control-next-icon {\n    filter: $carousel-dark-control-icon-filter;\n  }\n\n  .carousel-indicators [data-bs-target] {\n    background-color: $carousel-dark-indicator-active-bg;\n  }\n\n  .carousel-caption {\n    color: $carousel-dark-caption-color;\n  }\n}\n",
+		"//\n// Rotating border\n//\n\n.spinner-grow,\n.spinner-border {\n  display: inline-block;\n  width: var(--#{$prefix}spinner-width);\n  height: var(--#{$prefix}spinner-height);\n  vertical-align: var(--#{$prefix}spinner-vertical-align);\n  // stylelint-disable-next-line property-disallowed-list\n  border-radius: 50%;\n  animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name);\n}\n\n// scss-docs-start spinner-border-keyframes\n@keyframes spinner-border {\n  to { transform: rotate(360deg) #{\"/* rtl:ignore */\"}; }\n}\n// scss-docs-end spinner-border-keyframes\n\n.spinner-border {\n  // scss-docs-start spinner-border-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-border;\n  // scss-docs-end spinner-border-css-vars\n\n  border: var(--#{$prefix}spinner-border-width) solid currentcolor;\n  border-right-color: transparent;\n}\n\n.spinner-border-sm {\n  // scss-docs-start spinner-border-sm-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n  --#{$prefix}spinner-border-width: #{$spinner-border-width-sm};\n  // scss-docs-end spinner-border-sm-css-vars\n}\n\n//\n// Growing circle\n//\n\n// scss-docs-start spinner-grow-keyframes\n@keyframes spinner-grow {\n  0% {\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n    transform: none;\n  }\n}\n// scss-docs-end spinner-grow-keyframes\n\n.spinner-grow {\n  // scss-docs-start spinner-grow-css-vars\n  --#{$prefix}spinner-width: #{$spinner-width};\n  --#{$prefix}spinner-height: #{$spinner-height};\n  --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align};\n  --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed};\n  --#{$prefix}spinner-animation-name: spinner-grow;\n  // scss-docs-end spinner-grow-css-vars\n\n  background-color: currentcolor;\n  opacity: 0;\n}\n\n.spinner-grow-sm {\n  --#{$prefix}spinner-width: #{$spinner-width-sm};\n  --#{$prefix}spinner-height: #{$spinner-height-sm};\n}\n\n@if $enable-reduced-motion {\n  @media (prefers-reduced-motion: reduce) {\n    .spinner-border,\n    .spinner-grow {\n      --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2};\n    }\n  }\n}\n",
+		"// stylelint-disable function-disallowed-list\n\n%offcanvas-css-vars {\n  // scss-docs-start offcanvas-css-vars\n  --#{$prefix}offcanvas-zindex: #{$zindex-offcanvas};\n  --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};\n  --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};\n  --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};\n  --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};\n  --#{$prefix}offcanvas-color: #{$offcanvas-color};\n  --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};\n  --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};\n  --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};\n  --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};\n  // scss-docs-end offcanvas-css-vars\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @extend %offcanvas-css-vars;\n  }\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n  $next: breakpoint-next($breakpoint, $grid-breakpoints);\n  $infix: breakpoint-infix($next, $grid-breakpoints);\n\n  .offcanvas#{$infix} {\n    @include media-breakpoint-down($next) {\n      position: fixed;\n      bottom: 0;\n      z-index: var(--#{$prefix}offcanvas-zindex);\n      display: flex;\n      flex-direction: column;\n      max-width: 100%;\n      color: var(--#{$prefix}offcanvas-color);\n      visibility: hidden;\n      background-color: var(--#{$prefix}offcanvas-bg);\n      background-clip: padding-box;\n      outline: 0;\n      @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));\n      @include transition(transform $offcanvas-transition-duration ease-in-out);\n\n      &.offcanvas-start {\n        top: 0;\n        left: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(-100%);\n      }\n\n      &.offcanvas-end {\n        top: 0;\n        right: 0;\n        width: var(--#{$prefix}offcanvas-width);\n        border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateX(100%);\n      }\n\n      &.offcanvas-top {\n        top: 0;\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(-100%);\n      }\n\n      &.offcanvas-bottom {\n        right: 0;\n        left: 0;\n        height: var(--#{$prefix}offcanvas-height);\n        max-height: 100%;\n        border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);\n        transform: translateY(100%);\n      }\n\n      &.showing,\n      &.show:not(.hiding) {\n        transform: none;\n      }\n\n      &.showing,\n      &.hiding,\n      &.show {\n        visibility: visible;\n      }\n    }\n\n    @if not ($infix == \"\") {\n      @include media-breakpoint-up($next) {\n        --#{$prefix}offcanvas-height: auto;\n        --#{$prefix}offcanvas-border-width: 0;\n        background-color: transparent !important; // stylelint-disable-line declaration-no-important\n\n        .offcanvas-header {\n          display: none;\n        }\n\n        .offcanvas-body {\n          display: flex;\n          flex-grow: 0;\n          padding: 0;\n          overflow-y: visible;\n          // Reset `background-color` in case `.bg-*` classes are used in offcanvas\n          background-color: transparent !important; // stylelint-disable-line declaration-no-important\n        }\n      }\n    }\n  }\n}\n\n.offcanvas-backdrop {\n  @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);\n}\n\n.offcanvas-header {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n\n  .btn-close {\n    padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);\n    margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n    margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));\n    margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));\n  }\n}\n\n.offcanvas-title {\n  margin-bottom: 0;\n  line-height: $offcanvas-title-line-height;\n}\n\n.offcanvas-body {\n  flex-grow: 1;\n  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);\n  overflow-y: auto;\n}\n",
+		".placeholder {\n  display: inline-block;\n  min-height: 1em;\n  vertical-align: middle;\n  cursor: wait;\n  background-color: currentcolor;\n  opacity: $placeholder-opacity-max;\n\n  &.btn::before {\n    display: inline-block;\n    content: \"\";\n  }\n}\n\n// Sizing\n.placeholder-xs {\n  min-height: .6em;\n}\n\n.placeholder-sm {\n  min-height: .8em;\n}\n\n.placeholder-lg {\n  min-height: 1.2em;\n}\n\n// Animation\n.placeholder-glow {\n  .placeholder {\n    animation: placeholder-glow 2s ease-in-out infinite;\n  }\n}\n\n@keyframes placeholder-glow {\n  50% {\n    opacity: $placeholder-opacity-min;\n  }\n}\n\n.placeholder-wave {\n  mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min)) 75%, $black 95%);\n  mask-size: 200% 100%;\n  animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n  100% {\n    mask-position: -200% 0%;\n  }\n}\n",
+		"@import \"helpers/clearfix\";\n@import \"helpers/color-bg\";\n@import \"helpers/colored-links\";\n@import \"helpers/ratio\";\n@import \"helpers/position\";\n@import \"helpers/stacks\";\n@import \"helpers/visually-hidden\";\n@import \"helpers/stretched-link\";\n@import \"helpers/text-truncation\";\n@import \"helpers/vr\";\n",
+		".clearfix {\n  @include clearfix();\n}\n",
+		"// stylelint-disable function-name-case\n\n// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251\n@each $color, $value in $theme-colors {\n  $color-rgb: to-rgb($value);\n  .text-bg-#{$color} {\n    color: color-contrast($value) if($enable-important-utilities, !important, null);\n    background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);\n  }\n}\n",
+		"@each $color, $value in $theme-colors {\n  .link-#{$color} {\n    color: $value !important; // stylelint-disable-line declaration-no-important\n\n    @if $link-shade-percentage != 0 {\n      &:hover,\n      &:focus {\n        color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important\n      }\n    }\n  }\n}\n",
+		"// Credit: Nicolas Gallagher and SUIT CSS.\n\n.ratio {\n  position: relative;\n  width: 100%;\n\n  &::before {\n    display: block;\n    padding-top: var(--#{$prefix}aspect-ratio);\n    content: \"\";\n  }\n\n  > * {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n  }\n}\n\n@each $key, $ratio in $aspect-ratios {\n  .ratio-#{$key} {\n    --#{$prefix}aspect-ratio: #{$ratio};\n  }\n}\n",
+		"// Shorthand\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: $zindex-fixed;\n}\n\n// Responsive sticky top and bottom\n@each $breakpoint in map-keys($grid-breakpoints) {\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    .sticky#{$infix}-top {\n      position: sticky;\n      top: 0;\n      z-index: $zindex-sticky;\n    }\n\n    .sticky#{$infix}-bottom {\n      position: sticky;\n      bottom: 0;\n      z-index: $zindex-sticky;\n    }\n  }\n}\n",
+		"// scss-docs-start stacks\n.hstack {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  align-self: stretch;\n}\n\n.vstack {\n  display: flex;\n  flex: 1 1 auto;\n  flex-direction: column;\n  align-self: stretch;\n}\n// scss-docs-end stacks\n",
+		"//\n// Visually hidden\n//\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n  @include visually-hidden();\n}\n",
+		"//\n// Stretched link\n//\n\n.stretched-link {\n  &::#{$stretched-link-pseudo-element} {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: $stretched-link-z-index;\n    content: \"\";\n  }\n}\n",
+		"//\n// Text truncation\n//\n\n.text-truncate {\n  @include text-truncate();\n}\n",
+		".vr {\n  display: inline-block;\n  align-self: stretch;\n  width: 1px;\n  min-height: 1em;\n  background-color: currentcolor;\n  opacity: $hr-opacity;\n}\n",
+		"// Loop over each breakpoint\n@each $breakpoint in map-keys($grid-breakpoints) {\n\n  // Generate media query if needed\n  @include media-breakpoint-up($breakpoint) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    // Loop over each utility property\n    @each $key, $utility in $utilities {\n      // The utility can be disabled with `false`, thus check if the utility is a map first\n      // Only proceed if responsive media queries are enabled or if it's the base media query\n      @if type-of($utility) == \"map\" and (map-get($utility, responsive) or $infix == \"\") {\n        @include generate-utility($utility, $infix);\n      }\n    }\n  }\n}\n\n// RFS rescaling\n@media (min-width: $rfs-mq-value) {\n  @each $breakpoint in map-keys($grid-breakpoints) {\n    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n    @if (map-get($grid-breakpoints, $breakpoint) < $rfs-breakpoint) {\n      // Loop over each utility property\n      @each $key, $utility in $utilities {\n        // The utility can be disabled with `false`, thus check if the utility is a map first\n        // Only proceed if responsive media queries are enabled or if it's the base media query\n        @if type-of($utility) == \"map\" and map-get($utility, rfs) and (map-get($utility, responsive) or $infix == \"\") {\n          @include generate-utility($utility, $infix, true);\n        }\n      }\n    }\n  }\n}\n\n\n// Print utilities\n@media print {\n  @each $key, $utility in $utilities {\n    // The utility can be disabled with `false`, thus check if the utility is a map first\n    // Then check if the utility needs print styles\n    @if type-of($utility) == \"map\" and map-get($utility, print) == true {\n      @include generate-utility($utility, \"-print\");\n    }\n  }\n}\n"
+	],
+	"names": [],
+	"mappings": "AAAA,OAAO,CAAC,2GAAI;AECV;;;;;KAKG;AgCNL,AAAA,KAAK,CAAC;EAQF,SAAqB,CAAE,QAAC;EAAxB,WAAqB,CAAE,QAAC;EAAxB,WAAqB,CAAE,QAAC;EAAxB,SAAqB,CAAE,QAAC;EAAxB,QAAqB,CAAE,QAAC;EAAxB,WAAqB,CAAE,QAAC;EAAxB,WAAqB,CAAE,QAAC;EAAxB,UAAqB,CAAE,QAAC;EAAxB,SAAqB,CAAE,QAAC;EAAxB,SAAqB,CAAE,QAAC;EAAxB,UAAqB,CAAE,KAAC;EAAxB,UAAqB,CAAE,KAAC;EAAxB,SAAqB,CAAE,QAAC;EAAxB,cAAqB,CAAE,QAAC;EAIxB,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAAlC,aAA0B,CAAO,QAAC;EAIlC,YAAqB,CAAE,QAAC;EAAxB,cAAqB,CAAE,QAAC;EAAxB,YAAqB,CAAE,QAAC;EAAxB,SAAqB,CAAE,QAAC;EAAxB,YAAqB,CAAE,QAAC;EAAxB,WAAqB,CAAE,QAAC;EAAxB,UAAqB,CAAE,QAAC;EAAxB,SAAqB,CAAE,QAAC;EAIxB,gBAAyB,CAAM,aAAC;EAAhC,kBAAyB,CAAM,cAAC;EAAhC,gBAAyB,CAAM,YAAC;EAAhC,aAAyB,CAAM,aAAC;EAAhC,gBAAyB,CAAM,YAAC;EAAhC,eAAyB,CAAM,YAAC;EAAhC,cAAyB,CAAM,cAAC;EAAhC,aAAyB,CAAM,WAAC;EAGlC,cAAqB,CAAW,cAAC;EACjC,cAAqB,CAAW,QAAC;EACjC,mBAA0B,CAAgB,WAAC;EAC3C,gBAAuB,CAAa,cAAC;EAMrC,oBAA2B,CAAiB,gMAAC;EAC7C,mBAA0B,CAAgB,qFAAC;EAC3C,aAAoB,CAAU,2EAAC;EAO/B,qBAA4B,CAAkB,0BAAC;E3B4P3C,mBAAY,EAvER,IAA2B;E2BnLnC,qBAA4B,CAAkB,IAAC;EAC/C,qBAA4B,CAAkB,IAAC;EAC/C,eAAsB,CAAY,QAAC;EAInC,YAAmB,CAAS,KAAC;EAI7B,iBAAwB,CAAc,IAAC;EACvC,iBAAwB,CAAc,MAAC;EACvC,iBAAwB,CAAc,QAAC;EACvC,6BAAoC,CAA0B,qBAAC;EAE/D,kBAAyB,CAAe,SAAC;EACzC,qBAA4B,CAAkB,QAAC;EAC/C,qBAA4B,CAAkB,OAAC;EAC/C,qBAA4B,CAAkB,KAAC;EAC/C,sBAA6B,CAAmB,KAAC;EACjD,uBAA8B,CAAoB,MAAC;EAGnD,eAAsB,CAAY,QAAC;EACnC,qBAA4B,CAAkB,QAAC;EAE/C,eAAsB,CAAY,QAAC;EAEnC,iBAAwB,CAAc,QAAC;CACxC;;ACzDD,AAAA,CAAC;AACD,CAAC,AAAA,QAAQ;AACT,CAAC,AAAA,OAAO,CAAC;EACP,UAAU,EAAE,UAAU;CACvB;;AAcG,MAAM,EAAE,sBAAsB,EAAE,aAAa;EDjCjD,AAAA,KAAK,CC2BC;IAOA,eAAe,EAAE,MAAM;GAG5B;;;AAWD,AAAA,IAAI,CAAC;EACH,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,0BAAmD;E5BmP5D,SAAY,EAvER,wBAA2B;E4B1KnC,WAAW,EAAE,0BAAmD;EAChE,WAAW,EAAE,0BAAmD;EAChE,KAAK,EAAE,oBAAuC;EAC9C,UAAU,EAAE,yBAAiD;EAC7D,gBAAgB,EAAE,iBAAiC;EACnD,wBAAwB,EAAE,IAAI;EAC9B,2BAA2B,E/BxClB,gBAAI;C+ByCd;;AAQD,AAAA,EAAE,CAAC;EACD,MAAM,E/BiTC,IAAI,C+BjTU,CAAC;EACtB,KAAK,E/BijBuB,OAAO;E+BhjBnC,MAAM,EAAE,CAAC;EACT,UAAU,E/BwZkB,GAAG,C+BxZF,KAAK;EAClC,OAAO,E/BujBqB,IAAG;C+BtjBhC;;AAmBD,AAVA,EAUE,ECzFF,GAAG,ED8FH,EAAE,EC1FF,GAAG,ED+FH,EAAE,EC3FF,GAAG,EDgGH,EAAE,EC5FF,GAAG,EDiGH,EAAE,EC7FF,GAAG,EDkGH,EAAE,EC9FF,GAAG,CD2DM;EACP,UAAU,EAAE,CAAC;EACb,aAAa,E/Bwfe,MAAY;E+BrfxC,WAAW,E/BwfiB,GAAG;E+Bvf/B,WAAW,E/BwfiB,GAAG;C+BtfhC;;AAED,AAAA,EAAE,ECzFF,GAAG,CDyFA;E5B6MK,SAAY,EAfV,sBAA2B;C4B3LpC;;A5BwCG,MAAM,EAAE,SAAS,EAAE,MAAM;E4B3C7B,AAAA,EAAE,ECzFF,GAAG,CDyFA;I5BoNK,SAAY,EAlFV,MAA2B;G4B/HpC;;;AAED,AAAA,EAAE,EC1FF,GAAG,CD0FA;E5BwMK,SAAY,EAfV,sBAA2B;C4BtLpC;;A5BmCG,MAAM,EAAE,SAAS,EAAE,MAAM;E4BtC7B,AAAA,EAAE,EC1FF,GAAG,CD0FA;I5B+MK,SAAY,EAlFV,IAA2B;G4B1HpC;;;AAED,AAAA,EAAE,EC3FF,GAAG,CD2FA;E5BmMK,SAAY,EAfV,oBAA2B;C4BjLpC;;A5B8BG,MAAM,EAAE,SAAS,EAAE,MAAM;E4BjC7B,AAAA,EAAE,EC3FF,GAAG,CD2FA;I5B0MK,SAAY,EAlFV,OAA2B;G4BrHpC;;;AAED,AAAA,EAAE,EC5FF,GAAG,CD4FA;E5B8LK,SAAY,EAfV,sBAA2B;C4B5KpC;;A5ByBG,MAAM,EAAE,SAAS,EAAE,MAAM;E4B5B7B,AAAA,EAAE,EC5FF,GAAG,CD4FA;I5BqMK,SAAY,EAlFV,MAA2B;G4BhHpC;;;AAED,AAAA,EAAE,EC7FF,GAAG,CD6FA;E5BqLG,SAAY,EAvER,OAA2B;C4B3GpC;;AAED,AAAA,EAAE,EC9FF,GAAG,CD8FA;E5BgLG,SAAY,EAvER,IAA2B;C4BtGpC;;AAQD,AAAA,CAAC,CAAC;EACA,UAAU,EAAE,CAAC;EACb,aAAa,E/BmSa,IAAI;C+BlS/B;;AASD,AAAA,IAAI,CAAA,AAAA,KAAC,AAAA,EAAO;EACV,eAAe,EAAE,gBAAgB;EACjC,MAAM,EAAE,IAAI;EACZ,wBAAwB,EAAE,IAAI;CAC/B;;AAKD,AAAA,OAAO,CAAC;EACN,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,OAAO;CACrB;;AAKD,AAAA,EAAE;AACF,EAAE,CAAC;EACD,YAAY,EAAE,IAAI;CACnB;;AAED,AAAA,EAAE;AACF,EAAE;AACF,EAAE,CAAC;EACD,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAAI;CACpB;;AAED,AAAA,EAAE,CAAC,EAAE;AACL,EAAE,CAAC,EAAE;AACL,EAAE,CAAC,EAAE;AACL,EAAE,CAAC,EAAE,CAAC;EACJ,aAAa,EAAE,CAAC;CACjB;;AAED,AAAA,EAAE,CAAC;EACD,WAAW,E/B6XiB,GAAG;C+B5XhC;;AAID,AAAA,EAAE,CAAC;EACD,aAAa,EAAE,KAAK;EACpB,WAAW,EAAE,CAAC;CACf;;AAKD,AAAA,UAAU,CAAC;EACT,MAAM,EAAE,QAAQ;CACjB;;AAOD,AAAA,CAAC;AACD,MAAM,CAAC;EACL,WAAW,E/BsWiB,MAAM;C+BrWnC;;AAOD,AAAA,KAAK,ECnKL,MAAM,CDmKA;E5BmFA,SAAY,EAvER,OAA2B;C4BVpC;;AAKD,AAAA,IAAI,ECtKJ,KAAK,CDsKA;EACH,OAAO,E/B+aqB,QAAO;E+B9anC,gBAAgB,EAAE,sBAA2C;CAC9D;;AAQD,AAAA,GAAG;AACH,GAAG,CAAC;EACF,QAAQ,EAAE,QAAQ;E5B+Dd,SAAY,EAvER,MAA2B;E4BUnC,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,QAAQ;CACzB;;AAED,AAAA,GAAG,CAAC;EAAE,MAAM,EAAE,MAAM;CAAI;;AACxB,AAAA,GAAG,CAAC;EAAE,GAAG,EAAE,KAAK;CAAI;;AAKpB,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,oBAAuC;EAC9C,eAAe,E/BqKyB,SAAS;C+B/JlD;;AARD,AAIE,CAJD,AAIE,MAAM,CAAC;EACN,KAAK,EAAE,0BAAmD;CAE3D;;AAQH,AACE,CADD,AAAA,IAAK,EAAA,AAAA,IAAC,AAAA,EAAM,IAAK,EAAA,AAAA,KAAC,AAAA,IAAnB,CAAC,AAAA,IAAK,EAAA,AAAA,IAAC,AAAA,EAAM,IAAK,EAAA,AAAA,KAAC,AAAA,EAEhB,MAAM,CAAC;EACN,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,IAAI;CACtB;;AAMH,AAAA,GAAG;AACH,IAAI;AACJ,GAAG;AACH,IAAI,CAAC;EACH,WAAW,E/BkRiB,wBAA+C;EG7PvE,SAAY,EAvER,GAA2B;C4BoDpC;;AAMD,AAAA,GAAG,CAAC;EACF,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAAI;EACnB,QAAQ,EAAE,IAAI;E5BSV,SAAY,EAvER,OAA2B;C4BwEpC;;AAdD,AASE,GATC,CASD,IAAI,CAAC;E5BID,SAAY,EAvER,OAA2B;E4BqEjC,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,MAAM;CACnB;;AAGH,AAAA,IAAI,CAAC;E5BHC,SAAY,EAvER,OAA2B;E4B4EnC,KAAK,EAAE,oBAAuC;EAC9C,SAAS,EAAE,UAAU;CAMtB;;AAHC,AAAA,CAAC,GANH,IAAI,CAMI;EACJ,KAAK,EAAE,OAAO;CACf;;AAGH,AAAA,GAAG,CAAC;EACF,OAAO,E/BsyC2B,SAAQ,CACR,QAAO;EGtzCrC,SAAY,EAvER,OAA2B;E4BwFnC,KAAK,E/BuyC6B,iBAAiC;E+BtyCnE,gBAAgB,E/BuyCkB,oBAAuC;EsB3kDvE,aAAa,EtB4da,OAAM;C+BhLnC;;AAZD,AAOE,GAPC,CAOD,GAAG,CAAC;EACF,OAAO,EAAE,CAAC;E5BtBR,SAAY,EAvER,GAA2B;C4BgGlC;;AAQH,AAAA,MAAM,CAAC;EACL,MAAM,EAAE,QAAQ;CACjB;;AAKD,AAAA,GAAG;AACH,GAAG,CAAC;EACF,cAAc,EAAE,MAAM;CACvB;;AAOD,AAAA,KAAK,CAAC;EACJ,YAAY,EAAE,MAAM;EACpB,eAAe,EAAE,QAAQ;CAC1B;;AAED,AAAA,OAAO,CAAC;EACN,WAAW,E/BsTiB,MAAK;E+BrTjC,cAAc,E/BqTc,MAAK;E+BpTjC,KAAK,E/BjVI,OAAO;E+BkVhB,UAAU,EAAE,IAAI;CACjB;;AAMD,AAAA,EAAE,CAAC;EAED,UAAU,EAAE,OAAO;EACnB,UAAU,EAAE,oBAAoB;CACjC;;AAED,AAAA,KAAK;AACL,KAAK;AACL,KAAK;AACL,EAAE;AACF,EAAE;AACF,EAAE,CAAC;EACD,YAAY,EAAE,OAAO;EACrB,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,CAAC;CAChB;;AAOD,AAAA,KAAK,CAAC;EACJ,OAAO,EAAE,YAAY;CACtB;;AAKD,AAAA,MAAM,CAAC;EAEL,aAAa,EAAE,CAAC;CACjB;;AAOD,AAAA,MAAM,AAAA,MAAM,AAAA,IAAK,CAAA,cAAc,EAAE;EAC/B,OAAO,EAAE,CAAC;CACX;;AAID,AAAA,KAAK;AACL,MAAM;AACN,MAAM;AACN,QAAQ;AACR,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,OAAO;E5BrHhB,SAAY,EAvER,OAA2B;E4B8LnC,WAAW,EAAE,OAAO;CACrB;;AAGD,AAAA,MAAM;AACN,MAAM,CAAC;EACL,cAAc,EAAE,IAAI;CACrB;;CAID,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe;EACd,MAAM,EAAE,OAAO;CAChB;;AAED,AAAA,MAAM,CAAC;EAGL,SAAS,EAAE,MAAM;CAMlB;;AATD,AAME,MANI,AAMH,SAAS,CAAC;EACT,OAAO,EAAE,CAAC;CACX;;CAMH,AAAA,AAAA,IAAC,AAAA,CAAK,IAAK,EAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa,IAAK,EAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,EAAuB,IAAK,EAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc,IAAK,EAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa,IAAK,EAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa,mCAAmC,CAAC;EAClJ,OAAO,EAAE,eAAe;CACzB;;AAOD,AAAA,MAAM;CACN,AAAA,IAAC,CAAK,QAAQ,AAAb;CACD,AAAA,IAAC,CAAK,OAAO,AAAZ;CACD,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe;EACd,kBAAkB,EAAE,MAAM;CAO3B;;AAXD,AAOI,MAPE,AAOD,IAAK,CAAA,SAAS;CANnB,AAAA,IAAC,CAAK,QAAQ,AAAb,CAMI,IAAK,CAAA,SAAS;CALnB,AAAA,IAAC,CAAK,OAAO,AAAZ,CAKI,IAAK,CAAA,SAAS;CAJnB,AAAA,IAAC,CAAK,QAAQ,AAAb,CAII,IAAK,CAAA,SAAS,EAAE;EACf,MAAM,EAAE,OAAO;CAChB;;AAML,AAAA,kBAAkB,CAAC;EACjB,OAAO,EAAE,CAAC;EACV,YAAY,EAAE,IAAI;CACnB;;AAID,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,QAAQ;CACjB;;AASD,AAAA,QAAQ,CAAC;EACP,SAAS,EAAE,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,CAAC;CACV;;AAOD,AAAA,MAAM,CAAC;EACL,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;EACV,aAAa,E/B8Ie,MAAK;EGxV3B,SAAY,EAfV,sBAA2B;E4B4NnC,WAAW,EAAE,OAAO;CAKrB;;A5BpXG,MAAM,EAAE,SAAS,EAAE,MAAM;E4BwW7B,AAAA,MAAM,CAAC;I5B/LC,SAAY,EAlFV,MAA2B;G4B6RpC;;;AAZD,AASE,MATI,GASF,CAAC,CAAC;EACF,KAAK,EAAE,IAAI;CACZ;;AAMH,AAAA,sCAAsC;AACtC,4BAA4B;AAC5B,8BAA8B;AAC9B,kCAAkC;AAClC,iCAAiC;AACjC,mCAAmC;AACnC,kCAAkC,CAAC;EACjC,OAAO,EAAE,CAAC;CACX;;AAED,AAAA,2BAA2B,CAAC;EAC1B,MAAM,EAAE,IAAI;CACb;;CAQD,AAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe;EACd,cAAc,EAAE,IAAI;EACpB,kBAAkB,EAAE,SAAS;CAC9B;;AAOD;;;;;;;EAOE;AAIF,AAAA,2BAA2B,CAAC;EAC1B,kBAAkB,EAAE,IAAI;CACzB;;AAID,AAAA,8BAA8B,CAAC;EAC7B,OAAO,EAAE,CAAC;CACX;;AAMD,AAAA,sBAAsB,CAAC;EACrB,IAAI,EAAE,OAAO;EACb,kBAAkB,EAAE,MAAM;CAC3B;;AAID,AAAA,MAAM,CAAC;EACL,OAAO,EAAE,YAAY;CACtB;;AAID,AAAA,MAAM,CAAC;EACL,MAAM,EAAE,CAAC;CACV;;AAMD,AAAA,OAAO,CAAC;EACN,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,OAAO;CAChB;;AAOD,AAAA,QAAQ,CAAC;EACP,cAAc,EAAE,QAAQ;CACzB;;CAOD,AAAA,AAAA,MAAC,AAAA,EAAQ;EACP,OAAO,EAAE,eAAe;CACzB;;ACrkBD,AAAA,KAAK,CAAC;E7ByQA,SAAY,EAvER,OAA2B;E6BhMnC,WAAW,EhCwkBiB,GAAG;CgCvkBhC;;AAIC,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,IAA2B;G6BrLlC;;;AAND,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,MAA2B;G6BrLlC;;;AAND,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,IAA2B;G6BrLlC;;;AAND,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,MAA2B;G6BrLlC;;;AAND,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,IAA2B;G6BrLlC;;;AAND,AAAA,UAAU,CAAW;E7BsQf,SAAY,EAfV,sBAA2B;E6BnPjC,WAAW,EhCyjBO,GAAG;EgCxjBrB,WAAW,EhCwiBe,GAAG;CgCviB9B;;A7B8FC,MAAM,EAAE,SAAS,EAAE,MAAM;E6BpG3B,AAAA,UAAU,CAAW;I7B6Qf,SAAY,EAlFV,MAA2B;G6BrLlC;;;AAkBH,AAAA,cAAc,CAAC;EdvDb,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;CcwDjB;;AAGD,AAAA,YAAY,CAAC;Ed5DX,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;Cc6DjB;;AACD,AAAA,iBAAiB,CAAC;EAChB,OAAO,EAAE,YAAY;CAKtB;;AAND,AAGE,iBAHe,AAGd,IAAK,CAAA,WAAW,EAAE;EACjB,YAAY,EhCgkBc,MAAK;CgC/jBhC;;AASH,AAAA,WAAW,CAAC;E7BoNN,SAAY,EAvER,OAA2B;E6B3InC,cAAc,EAAE,SAAS;CAC1B;;AAGD,AAAA,WAAW,CAAC;EACV,aAAa,EhC6RN,IAAI;EGhFP,SAAY,EAvER,OAA2B;C6BhIpC;;AAPD,AAIE,WAJS,GAIP,WAAW,CAAC;EACZ,aAAa,EAAE,CAAC;CACjB;;AAGH,AAAA,kBAAkB,CAAC;EACjB,UAAU,EhCoRH,KAAI;EgCnRX,aAAa,EhCmRN,IAAI;EGhFP,SAAY,EAvER,OAA2B;E6B1HnC,KAAK,EhCtFI,OAAO;CgC2FjB;;AATD,AAME,kBANgB,AAMf,QAAQ,CAAC;EACR,OAAO,EAAE,YAAY;CACtB;;ACjGH,AAAA,UAAU,CAAC;E1BIT,SAAS,EAAE,IAAI;EAGf,MAAM,EAAE,IAAI;C0BLb;;AAID,AAAA,cAAc,CAAC;EACb,OAAO,EjC48C2B,OAAM;EiC38CxC,gBAAgB,EjCPP,IAAI;EiCQb,MAAM,EjC+csB,GAAG,CiC/cC,KAAK,CjC68CH,sBAA2C;EsB18C3E,aAAa,EtB2da,QAAO;EOnenC,SAAS,EAAE,IAAI;EAGf,MAAM,EAAE,IAAI;C0BQb;;AAMD,AAAA,OAAO,CAAC;EAEN,OAAO,EAAE,YAAY;CACtB;;AAED,AAAA,WAAW,CAAC;EACV,aAAa,EAAE,MAAY;EAC3B,WAAW,EAAE,CAAC;CACf;;AAED,AAAA,eAAe,CAAC;E9B+PV,SAAY,EAvER,OAA2B;E8BtLnC,KAAK,EjC1BI,OAAO;CiC2BjB;;ACnCC,AAAA,UAAU;AAEV,gBAAgB;AAMd,aAAa;AAAb,aAAa;AAAb,aAAa;AAAb,aAAa;AAAb,cAAc,CANC;EPLjB,aAAoB,CAAU,OAAC;EAC/B,aAAoB,CAAU,EAAC;EAC/B,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,6BAA8C;EAC7D,YAAY,EAAE,6BAA8C;EAC5D,YAAY,EAAE,IAAI;EAClB,WAAW,EAAE,IAAI;COChB;;A7BqDC,MAAM,EAAE,SAAS,EAAE,KAAK;E6BnClB,AATJ,UASc,EAdhB,aAAa,CAK0B;IACnC,SAAS,ElC8aX,KAAK;GkC7aJ;;;A7B0CH,MAAM,EAAE,SAAS,EAAE,KAAK;E6BnClB,AATJ,UASc,EAdhB,aAAa,EAAb,aAAa,CAK0B;IACnC,SAAS,ElC+aX,KAAK;GkC9aJ;;;A7B0CH,MAAM,EAAE,SAAS,EAAE,KAAK;E6BnClB,AATJ,UASc,EAdhB,aAAa,EAAb,aAAa,EAAb,aAAa,CAK0B;IACnC,SAAS,ElCgbX,KAAK;GkC/aJ;;;A7B0CH,MAAM,EAAE,SAAS,EAAE,MAAM;E6BnCnB,AATJ,UASc,EAdhB,aAAa,EAAb,aAAa,EAAb,aAAa,EAAb,aAAa,CAK0B;IACnC,SAAS,ElCibX,MAAM;GkChbL;;;A7B0CH,MAAM,EAAE,SAAS,EAAE,MAAM;E6BnCnB,AATJ,UASc,EAdhB,aAAa,EAAb,aAAa,EAAb,aAAa,EAAb,aAAa,EAAb,cAAc,CAKyB;IACnC,SAAS,ElCkbV,MAAM;GkCjbN;;;AChBL,AAAA,IAAI,CAAC;EPAL,aAAoB,CAAU,OAAC;EAC/B,aAAoB,CAAU,EAAC;EAC/B,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EAEf,UAAU,EAAE,6BAA8C;EAC1D,YAAY,EAAE,8BAA+C;EAC7D,WAAW,EAAE,8BAA+C;COD3D;;AAND,AAGE,IAHE,GAGA,CAAC,CAAC;EPaN,WAAW,EAAE,CAAC;EACd,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,6BAA8C;EAC7D,YAAY,EAAE,6BAA8C;EAC5D,UAAU,EAAE,kBAAmC;COhB5C;;AP+DC,AAAA,IAAI,CAAU;EACZ,IAAI,EAAE,MAAM;CACb;;AAED,AAAA,cAAc,GAAG,CAAC,CAAU;EApChC,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,IAAI;CAqCN;;AAIG,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,IAA4C;CyBhCtD;;AAwBO,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,GAA4C;CyBhCtD;;AAwBO,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,UAA4C;CyBhCtD;;AAwBO,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,GAA4C;CyBhCtD;;AAwBO,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,GAA4C;CyBhCtD;;AAwBO,AA3BR,WA2BmB,GA3BjB,CAAC,CAAC;EACF,IAAI,EAAE,QAAQ;EACd,KAAK,EzBiCI,UAA4C;CyBhCtD;;AA8BG,AAAA,SAAS,CAAU;EAhDvB,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,IAAI;CAiDN;;AAIG,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,SAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,GAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,GAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,MAAM,CAAc;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,GAAmC;CAiEnC;;AAFD,AAAA,OAAO,CAAa;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,OAAO,CAAa;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,UAAmC;CAiEnC;;AAFD,AAAA,OAAO,CAAa;EAhE1B,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,IAAmC;CAiEnC;;AAMC,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,SAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,GAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,GAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,SAAS,CAAc;EAxDjC,WAAW,EAAmB,GAAgB;CA0DnC;;AAFD,AAAA,UAAU,CAAa;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AAFD,AAAA,UAAU,CAAa;EAxDjC,WAAW,EAAmB,UAAgB;CA0DnC;;AASL,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,EAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,EAAC;CAChC;;AARD,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,QAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,QAAC;CAChC;;AARD,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,OAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,OAAC;CAChC;;AARD,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,KAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,KAAC;CAChC;;AARD,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,OAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,OAAC;CAChC;;AARD,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,KAAC;CAChC;;AAED,AAAA,IAAI;AACJ,KAAK,CAAgB;EACnB,aAAoB,CAAU,KAAC;CAChC;;AvB3DL,MAAM,EAAE,SAAS,EAAE,KAAK;EuBUtB,AAAA,OAAO,CAAO;IACZ,IAAI,EAAE,MAAM;GACb;EAED,AAAA,iBAAiB,GAAG,CAAC,CAAO;IApChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAqCN;EAIG,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,IAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EA8BG,AAAA,YAAY,CAAO;IAhDvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAiDN;EAIG,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAmC;GAiEnC;EAMC,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAgB,CAAC;GA0DjB;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,SAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EASL,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;;;AvB3DL,MAAM,EAAE,SAAS,EAAE,KAAK;EuBUtB,AAAA,OAAO,CAAO;IACZ,IAAI,EAAE,MAAM;GACb;EAED,AAAA,iBAAiB,GAAG,CAAC,CAAO;IApChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAqCN;EAIG,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,IAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EA8BG,AAAA,YAAY,CAAO;IAhDvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAiDN;EAIG,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAmC;GAiEnC;EAMC,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAgB,CAAC;GA0DjB;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,SAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EASL,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;;;AvB3DL,MAAM,EAAE,SAAS,EAAE,KAAK;EuBUtB,AAAA,OAAO,CAAO;IACZ,IAAI,EAAE,MAAM;GACb;EAED,AAAA,iBAAiB,GAAG,CAAC,CAAO;IApChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAqCN;EAIG,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,IAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EA8BG,AAAA,YAAY,CAAO;IAhDvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAiDN;EAIG,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAmC;GAiEnC;EAMC,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAgB,CAAC;GA0DjB;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,SAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EASL,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;;;AvB3DL,MAAM,EAAE,SAAS,EAAE,MAAM;EuBUvB,AAAA,OAAO,CAAO;IACZ,IAAI,EAAE,MAAM;GACb;EAED,AAAA,iBAAiB,GAAG,CAAC,CAAO;IApChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAqCN;EAIG,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,IAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,cA2BsB,GA3BpB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EA8BG,AAAA,YAAY,CAAO;IAhDvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAiDN;EAIG,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,SAAS,CAAW;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAmC;GAiEnC;EAMC,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAgB,CAAC;GA0DjB;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,SAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,YAAY,CAAW;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EASL,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,EAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,QAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,OAAO;EACP,QAAQ,CAAa;IACnB,aAAoB,CAAU,KAAC;GAChC;;;AvB3DL,MAAM,EAAE,SAAS,EAAE,MAAM;EuBUvB,AAAA,QAAQ,CAAM;IACZ,IAAI,EAAE,MAAM;GACb;EAED,AAAA,kBAAkB,GAAG,CAAC,CAAM;IApChC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAqCN;EAIG,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,IAA4C;GyBhCtD;EAwBO,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EAwBO,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,GAA4C;GyBhCtD;EAwBO,AA3BR,eA2BuB,GA3BrB,CAAC,CAAC;IACF,IAAI,EAAE,QAAQ;IACd,KAAK,EzBiCI,UAA4C;GyBhCtD;EA8BG,AAAA,aAAa,CAAM;IAhDvB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;GAiDN;EAIG,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,UAAU,CAAU;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,GAAmC;GAiEnC;EAFD,AAAA,WAAW,CAAS;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,WAAW,CAAS;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,UAAmC;GAiEnC;EAFD,AAAA,WAAW,CAAS;IAhE1B,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAmC;GAiEnC;EAMC,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAgB,CAAC;GA0DjB;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,SAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,aAAa,CAAU;IAxDjC,WAAW,EAAmB,GAAgB;GA0DnC;EAFD,AAAA,cAAc,CAAS;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EAFD,AAAA,cAAc,CAAS;IAxDjC,WAAW,EAAmB,UAAgB;GA0DnC;EASL,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,EAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,EAAC;GAChC;EARD,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,QAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,QAAC;GAChC;EARD,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,KAAC;GAChC;EARD,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,OAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,OAAC;GAChC;EARD,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,KAAC;GAChC;EAED,AAAA,QAAQ;EACR,SAAS,CAAY;IACnB,aAAoB,CAAU,KAAC;GAChC;;;AQtHT,AAAA,MAAM,CAAC;EACL,gBAAuB,CAAa,qBAAC;EACrC,aAAoB,CAAU,YAAC;EAC/B,uBAA8B,CAAoB,uBAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,wBAA+B,CAAqB,qBAAC;EACrD,qBAA4B,CAAkB,oBAAC;EAC/C,uBAA8B,CAAoB,qBAAC;EACnD,oBAA2B,CAAiB,mBAAC;EAC7C,sBAA6B,CAAmB,qBAAC;EACjD,mBAA0B,CAAgB,qBAAC;EAE3C,KAAK,EAAE,IAAI;EACX,aAAa,EpCoWN,IAAI;EoCnWX,KAAK,EAAE,qBAAyC;EAChD,cAAc,EpCqoBc,GAAG;EoCpoB/B,YAAY,EAAE,4BAAuD;CAqBtE;;AArCD,AAuBE,MAvBI,GAuBF,IAAK,CLiUT,OAAO,IKjUa,CAAC,GAAG,CAAC,CAAC;EACtB,OAAO,EpCunBmB,MAAK,CACL,MAAK;EoCvnB/B,gBAAgB,EAAE,kBAAmC;EACrD,mBAAmB,EpCicO,GAAG;EoChc7B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAiD;CACjF;;AA5BH,AA8BE,MA9BI,GA8BF,KAAK,CAAC;EACN,cAAc,EAAE,OAAO;CACxB;;AAhCH,AAkCE,MAlCI,GAkCF,KAAK,CAAC;EACN,cAAc,EAAE,MAAM;CACvB;;AAGH,AAAA,oBAAoB,CAAC;EACnB,UAAU,EAAE,GAAyB,CAAC,KAAK,CpCuoBf,YAAY;CoCtoBzC;;AAMD,AAAA,YAAY,CAAC;EACX,YAAY,EAAE,GAAG;CAClB;;AAOD,AAEE,SAFO,GAEL,IAAK,CL8RT,OAAO,IK9Ra,CAAC,GAAG,CAAC,CAAC;EACtB,OAAO,EpCslBmB,OAAM,CACN,OAAM;CoCtlBjC;;AAaH,AACE,eADa,GACX,IAAK,CL8QT,OAAO,IK9Qa,CAAC,CAAC;EAClB,YAAY,EpCgZc,GAAG,CoChZK,CAAC;CAMpC;;AARH,AAKI,eALW,GACX,IAAK,CL8QT,OAAO,IK9Qa,CAAC,GAIf,CAAC,CAAC;EACF,YAAY,EAAE,CAAC,CpC4YS,GAAG;CoC3Y5B;;AAIL,AAEE,iBAFe,GAEb,IAAK,CLkQT,OAAO,IKlQa,CAAC,GAAG,CAAC,CAAC;EACtB,mBAAmB,EAAE,CAAC;CACvB;;AAJH,AAME,iBANe,GAMb,IAAK,CAAA,YAAY,EAAE;EACnB,gBAAgB,EAAE,CAAC;CACpB;;AAQH,AACE,cADY,GACV,KAAK,GAAG,EAAE,AAAA,YAAa,CAAA,GAAG,IAAI,CAAC,CAAqB;EACpD,oBAA2B,CAAiB,2BAAC;EAC7C,KAAK,EAAE,6BAAyD;CACjE;;AAIH,AACE,sBADoB,GAClB,IAAK,CL2OT,OAAO,IK3Oa,EAAE,GAAG,UAAW,CAAA,IAAI,EAA6B;EACjE,oBAA2B,CAAiB,2BAAC;EAC7C,KAAK,EAAE,6BAAyD;CACjE;;AAOH,AAAA,aAAa,CAAC;EACZ,oBAA2B,CAAiB,0BAAC;EAC7C,KAAK,EAAE,4BAAuD;CAC/D;;AAMD,AACE,YADU,GACR,KAAK,GAAG,EAAE,AAAA,MAAM,GAAG,CAAC,CAAC;EACrB,oBAA2B,CAAiB,yBAAC;EAC7C,KAAK,EAAE,2BAAqD;CAC7D;;AftID,AAAA,cAAc,CAAG;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,gBAAgB,CAAC;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,cAAc,CAAG;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,WAAW,CAAM;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,cAAc,CAAG;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,aAAa,CAAI;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,YAAY,CAAK;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AAnBD,AAAA,WAAW,CAAM;EAOf,gBAAuB,CAAa,KAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;EACnD,qBAA4B,CAAkB,QAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,QAAC;EAC7C,uBAA8B,CAAoB,KAAC;EACnD,mBAA0B,CAAgB,QAAC;EAC3C,sBAA6B,CAAmB,KAAC;EAEjD,KAAK,EAAE,qBAAyC;EAChD,YAAY,EAAE,4BAAuD;CACtE;;AeyIC,AAAA,iBAAiB,CAAU;EACzB,UAAU,EAAE,IAAI;EAChB,0BAA0B,EAAE,KAAK;CAClC;;A/BrFD,MAAM,EAAE,SAAS,EAAE,QAAQ;E+BkF3B,AAAA,oBAAoB,CAAO;IACzB,UAAU,EAAE,IAAI;IAChB,0BAA0B,EAAE,KAAK;GAClC;;;A/BrFD,MAAM,EAAE,SAAS,EAAE,QAAQ;E+BkF3B,AAAA,oBAAoB,CAAO;IACzB,UAAU,EAAE,IAAI;IAChB,0BAA0B,EAAE,KAAK;GAClC;;;A/BrFD,MAAM,EAAE,SAAS,EAAE,QAAQ;E+BkF3B,AAAA,oBAAoB,CAAO;IACzB,UAAU,EAAE,IAAI;IAChB,0BAA0B,EAAE,KAAK;GAClC;;;A/BrFD,MAAM,EAAE,SAAS,EAAE,SAAS;E+BkF5B,AAAA,oBAAoB,CAAO;IACzB,UAAU,EAAE,IAAI;IAChB,0BAA0B,EAAE,KAAK;GAClC;;;A/BrFD,MAAM,EAAE,SAAS,EAAE,SAAS;E+BkF5B,AAAA,qBAAqB,CAAM;IACzB,UAAU,EAAE,IAAI;IAChB,0BAA0B,EAAE,KAAK;GAClC;;;AE7JL,AAAA,WAAW,CAAC;EACV,aAAa,EtC8xByB,MAAK;CsCzxB5C;;AAID,AAAA,eAAe,CAAC;EACd,WAAW,EvC2NsB,oBAA6B;EuC1N9D,cAAc,EvC0NmB,oBAA6B;EuCzN9D,aAAa,EAAE,CAAC;EnCoRZ,SAAY,EAvER,OAA2B;EmCzMnC,WAAW,EtC+hBiB,GAAG;CsC7hBhC;;AAED,AAAA,kBAAkB,CAAC;EACjB,WAAW,EvCgNsB,kBAA6B;EuC/M9D,cAAc,EvC+MmB,kBAA6B;EI2D1D,SAAY,EAvER,OAA2B;CmCjMpC;;AAED,AAAA,kBAAkB,CAAC;EACjB,WAAW,EvC0MsB,mBAA6B;EuCzM9D,cAAc,EvCyMmB,mBAA6B;EI2D1D,SAAY,EAvER,QAA2B;CmC3LpC;;AC/BD,AAAA,UAAU,CAAC;EACT,UAAU,EvCsxB4B,OAAM;EGtfxC,SAAY,EAvER,OAA2B;EoCrNnC,KAAK,EvCKI,OAAO;CuCJjB;;ACND,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,ExCssBqB,QAAO,CACP,OAAM;EGza9B,SAAY,EAvER,IAA2B;EqCpNnC,WAAW,ExCmiBiB,GAAG;EwCliB/B,WAAW,ExCyiBiB,GAAG;EwCxiB/B,KAAK,ExCKI,OAAO;EwCJhB,gBAAgB,ExCLP,IAAI;EwCMb,eAAe,EAAE,WAAW;EAC5B,MAAM,ExCgdsB,GAAG,CwChdH,KAAK,CxCHxB,OAAO;EwCIhB,UAAU,EAAE,IAAI;ElBGd,aAAa,EtB2da,QAAO;EyB9d/B,UAAU,EzB20BwB,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;CwC9vBjG;;AfzEK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EehB5C,AAAA,aAAa,CAAC;IfiBN,UAAU,EAAE,IAAI;GewEvB;;;AAzFD,AAoBE,aApBW,CAoBV,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa;EACb,QAAQ,EAAE,MAAM;CAKjB;;AA1BH,AAuBI,aAvBS,CAoBV,AAAA,IAAC,CAAK,MAAM,AAAX,CAGC,IAAK,CT8aA,SAAS,CS9aC,IAAK,EAAA,AAAA,QAAC,AAAA,GAAW;EAC/B,MAAM,EAAE,OAAO;CAChB;;AAzBL,AA6BE,aA7BW,AA6BV,MAAM,CAAC;EACN,KAAK,ExCjBE,OAAO;EwCkBd,gBAAgB,ExC3BT,IAAI;EwC4BX,YAAY,EzC0KN,OAA2B;EyCzKjC,OAAO,EAAE,CAAC;EAKR,UAAU,ExC6qBgB,CAAC,CAAC,CAAC,CADH,CAAC,CAHD,OAAM,CA7qB5B,wBAAO;CwCMd;;AAxCH,AA6CE,aA7CW,AA6CV,6BAA6B,CAAC;EAE7B,MAAM,EAAqC,KAAwB;CACpE;;AAhDH,AAmDE,aAnDW,AAmDV,aAAa,CAAC;EACb,KAAK,ExC1CE,OAAO;EwC4Cd,OAAO,EAAE,CAAC;CACX;;AAvDH,AA8DE,aA9DW,AA8DV,SAAS,CAAC;EAET,gBAAgB,ExC1DT,OAAO;EwC6Dd,OAAO,EAAE,CAAC;CACX;;AApEH,AAuEE,aAvEW,AAuEV,sBAAsB,CAAC;EACtB,OAAO,ExCioBmB,QAAO,CACP,OAAM;EwCjoBhC,MAAM,ExCgoBoB,SAAO,CACP,QAAM;EwChoBhC,iBAAiB,ExCgoBS,OAAM;EwC/nBhC,KAAK,ExC9DE,OAAO;EwBbhB,gBAAgB,ExBMP,OAAO;EwCuEd,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,OAAO;EACrB,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,CAAC;EACf,uBAAuB,ExC0YG,GAAG;EwCzY7B,aAAa,EAAE,CAAC;EftEd,UAAU,EzB2vBc,KAAK,CAAC,KAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;CwCnrBhJ;;AfpEG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EehB5C,AAuEE,aAvEW,AAuEV,sBAAsB,CAAC;IftDlB,UAAU,EAAE,IAAI;GemErB;;;AApFH,AAsFE,aAtFW,AAsFV,MAAM,AAAA,IAAK,CT+WJ,SAAS,CS/WK,IAAK,EA/DJ,AAAA,QAAC,AAAA,EA+Dc,sBAAsB,CAAC;EAC3D,gBAAgB,EzCwHV,OAA2B;CyCvHlC;;AAQH,AAAA,uBAAuB,CAAC;EACtB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,ExCsmBqB,QAAO,CwCtmBT,CAAC;EAC3B,aAAa,EAAE,CAAC;EAChB,WAAW,ExC2ciB,GAAG;EwC1c/B,KAAK,ExCzFI,OAAO;EwC0FhB,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,iBAAiB;EACzB,YAAY,ExCkXgB,GAAG,CwClXG,CAAC;CAWpC;;AApBD,AAWE,uBAXqB,AAWpB,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;CACX;;AAbH,AAeE,uBAfqB,AAepB,gBAAgB,EAfnB,uBAAuB,AAgBpB,gBAAgB,CAAC;EAChB,aAAa,EAAE,CAAC;EAChB,YAAY,EAAE,CAAC;CAChB;;AAUH,AAAA,gBAAgB,CAAC;EACf,UAAU,EzCwGuB,0BAA6B;EyCvG9D,OAAO,ExCslBqB,OAAM,CACN,MAAK;EGrb7B,SAAY,EAvER,QAA2B;EmB3MjC,aAAa,EtB4da,OAAM;CwCnWnC;;AAXD,AAME,gBANc,AAMb,sBAAsB,CAAC;EACtB,OAAO,ExCilBmB,OAAM,CACN,MAAK;EwCjlB/B,MAAM,ExCglBoB,QAAM,CACN,OAAK;EwChlB/B,iBAAiB,ExCglBS,MAAK;CwC/kBhC;;AAGH,AAAA,gBAAgB,CAAC;EACf,UAAU,EzC2FuB,wBAA6B;EyC1F9D,OAAO,ExC6kBqB,MAAK,CACL,IAAI;EGzb5B,SAAY,EAvER,OAA2B;EmB3MjC,aAAa,EtB6da,MAAK;CwCvVlC;;AAXD,AAME,gBANc,AAMb,sBAAsB,CAAC;EACtB,OAAO,ExCwkBmB,MAAK,CACL,IAAI;EwCxkB9B,MAAM,ExCukBoB,OAAK,CACL,KAAI;EwCvkB9B,iBAAiB,ExCukBS,IAAI;CwCtkB/B;;AAMH,AACE,QADM,AACL,aAAa,CAAC;EACb,UAAU,EzC0EqB,2BAA6B;CyCzE7D;;AAHH,AAKE,QALM,AAKL,gBAAgB,CAAC;EAChB,UAAU,EzCsEqB,0BAA6B;CyCrE7D;;AAPH,AASE,QATM,AASL,gBAAgB,CAAC;EAChB,UAAU,EzCkEqB,wBAA6B;CyCjE7D;;AAIH,AAAA,mBAAmB,CAAC;EAClB,KAAK,ExC+qBiC,IAAI;EwC9qB1C,MAAM,EzC2D2B,2BAA6B;EyC1D9D,OAAO,ExC6hBqB,QAAO;CwC5gBpC;;AApBD,AAKE,mBALiB,AAKhB,IAAK,CTuRE,SAAS,CSvRD,IAAK,EAvJE,AAAA,QAAC,AAAA,GAuJS;EAC/B,MAAM,EAAE,OAAO;CAChB;;AAPH,AASE,mBATiB,AAShB,mBAAmB,CAAC;EACnB,MAAM,EAAE,YAAY;ElBpKpB,aAAa,EtB2da,QAAO;CwCrTlC;;AAZH,AAcE,mBAdiB,AAchB,sBAAsB,CAAC;ElBxKtB,aAAa,EtB2da,QAAO;CwCjTlC;;AAhBH,AAkBE,mBAlBiB,AAkBhB,gBAAgB,CAAC;EAAE,MAAM,EzC2CO,0BAA6B;CyC3Cd;;AAlBlD,AAmBE,mBAnBiB,AAmBhB,gBAAgB,CAAC;EAAE,MAAM,EzC0CO,wBAA6B;CyC1Cd;;AC3LlD,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EzCqsBqB,QAAO,CAqND,OAA0B,CArNhC,QAAO,CACP,OAAM;EyCrsBlC,kBAAkB,E1CyPe,mBAA6B;EImC1D,SAAY,EAvER,IAA2B;EsClNnC,WAAW,EzCiiBiB,GAAG;EyChiB/B,WAAW,EzCuiBiB,GAAG;EyCtiB/B,KAAK,EzCGI,OAAO;EyCFhB,gBAAgB,EzCPP,IAAI;EyCQb,gBAAgB,E1CuHD,+NAAiE;E0CtHhF,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EzCw5Be,KAAK,CA5NX,OAAM,CA4N6B,MAAM;EyCv5BrE,eAAe,EzCw5BmB,IAAI,CAAC,IAAI;EyCv5B3C,MAAM,EzC2csB,GAAG,CyC3cG,KAAK,CzCR9B,OAAO;EsBOd,aAAa,EtB2da,QAAO;EyB9d/B,UAAU,EzB20BwB,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;EyCn0BhG,UAAU,EAAE,IAAI;CA8BjB;;AhBlCK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EgBf5C,AAAA,YAAY,CAAC;IhBgBL,UAAU,EAAE,IAAI;GgBiCvB;;;AAjDD,AAqBE,YArBU,AAqBT,MAAM,CAAC;EACN,YAAY,E1CmLN,OAA2B;E0ClLjC,OAAO,EAAE,CAAC;EAKR,UAAU,EzCy5BkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAvOP,OAAM,CA7qB5B,wBAAO;CyCHd;;AA9BH,AAgCE,YAhCU,CAgCT,AAAA,QAAC,AAAA,GAhCJ,YAAY,CAiCT,AAAA,IAAC,AAAA,CAAK,IAAK,EAAA,AAAA,IAAC,CAAK,GAAG,AAAR,GAAW;EACtB,aAAa,EzCuqBa,OAAM;EyCtqBhC,gBAAgB,EAAE,IAAI;CACvB;;AApCH,AAsCE,YAtCU,AAsCT,SAAS,CAAC;EAET,gBAAgB,EzCnCT,OAAO;CyCqCf;;AA1CH,AA6CE,YA7CU,AA6CT,eAAe,CAAC;EACf,KAAK,EAAE,WAAW;EAClB,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CzCnCX,OAAO;CyCoCf;;AAGH,AAAA,eAAe,CAAC;EACd,WAAW,EzCgqBiB,OAAM;EyC/pBlC,cAAc,EzC+pBc,OAAM;EyC9pBlC,YAAY,EzC+pBgB,MAAK;EGrb7B,SAAY,EAvER,QAA2B;EmB3MjC,aAAa,EtB4da,OAAM;CyCjbnC;;AAED,AAAA,eAAe,CAAC;EACd,WAAW,EzC4pBiB,MAAK;EyC3pBjC,cAAc,EzC2pBc,MAAK;EyC1pBjC,YAAY,EzC2pBgB,IAAI;EGzb5B,SAAY,EAvER,OAA2B;EmB3MjC,aAAa,EtB6da,MAAK;CyC1alC;;AClED,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,KAAK;EACd,UAAU,E1C41B8B,MAAmC;E0C31B3E,YAAY,E1C41B4B,KAA8B;E0C31BtE,aAAa,E1C41B2B,QAAO;C0Ct1BhD;;AAVD,AAME,WANS,CAMT,iBAAiB,CAAC;EAChB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,MAA8B;CAC5C;;AAGH,AAAA,mBAAmB,CAAC;EAClB,aAAa,E1Ck1B2B,KAA8B;E0Cj1BtE,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,KAAK;CAOlB;;AAVD,AAKE,mBALiB,CAKjB,iBAAiB,CAAC;EAChB,KAAK,EAAE,KAAK;EACZ,YAAY,EAAE,MAA8B;EAC5C,WAAW,EAAE,CAAC;CACf;;AAGH,AAAA,iBAAiB,CAAC;EAChB,KAAK,E1Co0BmC,GAAG;E0Cn0B3C,MAAM,E1Cm0BkC,GAAG;E0Cl0B3C,UAAU,EAAE,MAAkD;EAC9D,cAAc,EAAE,GAAG;EACnB,gBAAgB,E1CzBP,IAAI;E0C0Bb,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,MAAM;EAC3B,eAAe,EAAE,OAAO;EACxB,MAAM,E1Cu0BkC,GAAG,CAAC,KAAK,CA11BxC,mBAAI;E0CoBb,UAAU,EAAE,IAAI;EAChB,kBAAkB,EAAE,KAAK;CAqE1B;;AAhFD,AAcE,iBAde,CAcd,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB;EpBvBjB,aAAa,EtB01ByB,MAAK;C0Cj0B5C;;AAhBH,AAkBE,iBAlBe,CAkBd,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc;EAEd,aAAa,E1C8zByB,GAAG;C0C7zB1C;;AArBH,AAuBE,iBAvBe,AAuBd,OAAO,CAAC;EACP,MAAM,E1CqzBgC,eAAe;C0CpzBtD;;AAzBH,AA2BE,iBA3Be,AA2Bd,MAAM,CAAC;EACN,YAAY,E3CsJN,OAA2B;E2CrJjC,OAAO,EAAE,CAAC;EACV,UAAU,E1C6pBkB,CAAC,CAAC,CAAC,CADH,CAAC,CAHD,OAAM,CA7qB5B,wBAAO;C0CqBd;;AA/BH,AAiCE,iBAjCe,AAiCd,QAAQ,CAAC;EACR,gBAAgB,E1CxBV,OAAO;E0CyBb,YAAY,E1CzBN,OAAO;C0C0Cd;;AApDH,AAqCI,iBArCa,AAiCd,QAAQ,CAIN,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB;EAIf,gBAAgB,E3CkEP,6NAAiE;C2ChE7E;;AA3CL,AA6CI,iBA7Ca,AAiCd,QAAQ,CAYN,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc;EAIZ,gBAAgB,E3C0DP,qIAAiE;C2CxD7E;;AAnDL,AAsDE,iBAtDe,CAsDd,AAAA,IAAC,CAAK,UAAU,AAAf,CAAgB,cAAc,CAAC;EAC/B,gBAAgB,E1C7CV,OAAO;E0C8Cb,YAAY,E1C9CN,OAAO;E0CmDX,gBAAgB,E3C8CL,uNAAiE;C2C5C/E;;AA/DH,AAiEE,iBAjEe,AAiEd,SAAS,CAAC;EACT,cAAc,EAAE,IAAI;EACpB,MAAM,EAAE,IAAI;EACZ,OAAO,E1C6xBgC,GAAE;C0C5xB1C;;AArEH,AA2EI,iBA3Ea,CAyEd,AAAA,QAAC,AAAA,IAEE,iBAAiB,EA3EvB,iBAAiB,AA0Ed,SAAS,GACN,iBAAiB,CAAC;EAClB,MAAM,EAAE,OAAO;EACf,OAAO,E1CoxB8B,GAAE;C0CnxBxC;;AAaL,AAAA,YAAY,CAAC;EACX,YAAY,E1C+wBoB,KAAyB;C0C7uB1D;;AAnCD,AAGE,YAHU,CAGV,iBAAiB,CAAC;EAChB,KAAK,E1C2wByB,GAAG;E0C1wBjC,WAAW,EAAE,MAA+B;EAC5C,gBAAgB,E3CUH,sJAAiE;E2CT9E,mBAAmB,EAAE,WAAW;EpB3GhC,aAAa,EtBm3BiB,GAAG;EyBt3B/B,UAAU,EzB03BkB,mBAAmB,CAAC,KAAI,CAAC,WAAW;C0C3vBnE;;AjB3HG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EiBmG5C,AAGE,YAHU,CAGV,iBAAiB,CAAC;IjBrGZ,UAAU,EAAE,IAAI;GiB0HrB;;;AAxBH,AAWI,YAXQ,CAGV,iBAAiB,AAQd,MAAM,CAAC;EACN,gBAAgB,E3CIL,wIAAiE;C2CH7E;;AAbL,AAeI,YAfQ,CAGV,iBAAiB,AAYd,QAAQ,CAAC;EACR,mBAAmB,E1C0wBS,KAAK,CAAC,MAAM;E0CrwBtC,gBAAgB,E3CLP,qIAAiE;C2CO7E;;AAvBL,AA0BE,YA1BU,AA0BT,mBAAmB,CAAC;EACnB,aAAa,E1CqvBiB,KAAyB;E0CpvBvD,YAAY,EAAE,CAAC;CAMhB;;AAlCH,AA8BI,YA9BQ,AA0BT,mBAAmB,CAIlB,iBAAiB,CAAC;EAChB,YAAY,EAAE,MAA+B;EAC7C,WAAW,EAAE,CAAC;CACf;;AAIL,AAAA,kBAAkB,CAAC;EACjB,OAAO,EAAE,YAAY;EACrB,YAAY,E1CmuBoB,IAAI;C0CluBrC;;AAED,AAAA,UAAU,CAAC;EACT,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,gBAAgB;EACtB,cAAc,EAAE,IAAI;CAUrB;;AAbD,AAOI,UAPM,CAKP,AAAA,QAAC,AAAA,IAEE,IAAI,EAPV,UAAU,AAMP,SAAS,GACN,IAAI,CAAC;EACL,cAAc,EAAE,IAAI;EACpB,MAAM,EAAE,IAAI;EACZ,OAAO,E1ColBiB,IAAG;C0CnlB5B;;ACtKL,AAAA,WAAW,CAAC;EACV,KAAK,EAAE,IAAI;EACX,MAAM,E5C+NI,MAAiB;E4C9N3B,OAAO,EAAE,CAAC;EACV,gBAAgB,EAAE,WAAW;EAC7B,UAAU,EAAE,IAAI;CA+EjB;;AApFD,AAOE,WAPS,AAOR,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;CAMX;;AAdH,AAYI,WAZO,AAOR,MAAM,AAKJ,sBAAsB,CAAC;EAAE,UAAU,E3Cq8BG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA/8BzC,IAAI,EA+sBiB,CAAC,CAAC,CAAC,CADH,CAAC,CAHD,OAAM,CA7qB5B,wBAAO;C2CpB+D;;AAZhF,AAaI,WAbO,AAOR,MAAM,AAMJ,kBAAkB,CAAK;EAAE,UAAU,E3Co8BG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CA/8BzC,IAAI,EA+sBiB,CAAC,CAAC,CAAC,CADH,CAAC,CAHD,OAAM,CA7qB5B,wBAAO;C2CnB+D;;AAbhF,AAgBE,WAhBS,AAgBR,kBAAkB,CAAC;EAClB,MAAM,EAAE,CAAC;CACV;;AAlBH,AAoBE,WApBS,AAoBR,sBAAsB,CAAC;EACtB,KAAK,E3Cs7BkC,IAAI;E2Cr7B3C,MAAM,E3Cq7BiC,IAAI;E2Cp7B3C,UAAU,EAAE,QAA0D;EnBzBxE,gBAAgB,ExBkCR,OAAO;E2CPb,MAAM,E3Cq7BiC,CAAC;EsBj8BxC,aAAa,EtBk8B0B,IAAI;EyBr8BzC,UAAU,EzB28B2B,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;E2Cx7BpI,UAAU,EAAE,IAAI;CAKjB;;AlBpBG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EkBd5C,AAoBE,WApBS,AAoBR,sBAAsB,CAAC;IlBLlB,UAAU,EAAE,IAAI;GkBmBrB;;;AAlCH,AA+BI,WA/BO,AAoBR,sBAAsB,AAWpB,OAAO,CAAC;EnBjCX,gBAAgB,EzB0MR,OAA2B;C4CvKhC;;AAjCL,AAoCE,WApCS,AAoCR,+BAA+B,CAAC;EAC/B,KAAK,E3C+5ByB,IAAI;E2C95BlC,MAAM,E3C+5BwB,MAAK;E2C95BnC,KAAK,EAAE,WAAW;EAClB,MAAM,E3C85BwB,OAAO;E2C75BrC,gBAAgB,E3CpCT,OAAO;E2CqCd,YAAY,EAAE,WAAW;ErB7BzB,aAAa,EtB27BiB,IAAI;C2C35BnC;;AA7CH,AA+CE,WA/CS,AA+CR,kBAAkB,CAAC;EAClB,KAAK,E3C25BkC,IAAI;E2C15B3C,MAAM,E3C05BiC,IAAI;EwB78B7C,gBAAgB,ExBkCR,OAAO;E2CmBb,MAAM,E3C25BiC,CAAC;EsBj8BxC,aAAa,EtBk8B0B,IAAI;EyBr8BzC,UAAU,EzB28B2B,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;E2C95BpI,UAAU,EAAE,IAAI;CAKjB;;AlB9CG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EkBd5C,AA+CE,WA/CS,AA+CR,kBAAkB,CAAC;IlBhCd,UAAU,EAAE,IAAI;GkB6CrB;;;AA5DH,AAyDI,WAzDO,AA+CR,kBAAkB,AAUhB,OAAO,CAAC;EnB3DX,gBAAgB,EzB0MR,OAA2B;C4C7IhC;;AA3DL,AA8DE,WA9DS,AA8DR,kBAAkB,CAAC;EAClB,KAAK,E3Cq4ByB,IAAI;E2Cp4BlC,MAAM,E3Cq4BwB,MAAK;E2Cp4BnC,KAAK,EAAE,WAAW;EAClB,MAAM,E3Co4BwB,OAAO;E2Cn4BrC,gBAAgB,E3C9DT,OAAO;E2C+Dd,YAAY,EAAE,WAAW;ErBvDzB,aAAa,EtB27BiB,IAAI;C2Cj4BnC;;AAvEH,AAyEE,WAzES,AAyER,SAAS,CAAC;EACT,cAAc,EAAE,IAAI;CASrB;;AAnFH,AA4EI,WA5EO,AAyER,SAAS,AAGP,sBAAsB,CAAC;EACtB,gBAAgB,E3CtEX,OAAO;C2CuEb;;AA9EL,AAgFI,WAhFO,AAyER,SAAS,AAOP,kBAAkB,CAAC;EAClB,gBAAgB,E3C1EX,OAAO;C2C2Eb;;ACxFL,AAAA,cAAc,CAAC;EACb,QAAQ,EAAE,QAAQ;CAyEnB;;AA1ED,AAGE,cAHY,GAGV,aAAa;AAHjB,cAAc,GAIV,uBAAuB;AAJ3B,cAAc,GAKV,YAAY,CAAC;EACb,MAAM,E7CoOyB,kBAA6B;E6CnO5D,WAAW,E5C+9BmB,IAAI;C4C99BnC;;AARH,AAUE,cAVY,GAUV,KAAK,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,OAAO,E5Cw9BuB,IAAI,CA1RR,OAAM;E4C7rBhC,QAAQ,EAAE,MAAM;EAChB,UAAU,EAAE,KAAK;EACjB,aAAa,EAAE,QAAQ;EACvB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,IAAI;EACpB,MAAM,E5CycoB,GAAG,C4CzcD,KAAK,CAAC,WAAW;EAC7C,gBAAgB,EAAE,GAAG;EnBPnB,UAAU,EzB69BkB,OAAO,CAAC,IAAG,CAAC,WAAW,EAAE,SAAS,CAAC,IAAG,CAAC,WAAW;C4Cp9BjF;;AnBLG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EmBpB5C,AAUE,cAVY,GAUV,KAAK,CAAC;InBWF,UAAU,EAAE,IAAI;GmBIrB;;;AAzBH,AA2BE,cA3BY,GA2BV,aAAa;AA3BjB,cAAc,GA4BV,uBAAuB,CAAC;EACxB,OAAO,E5C28BuB,IAAI,CA1RR,OAAM;C4CjqBjC;;AA7CH,AA+BI,cA/BU,GA2BV,aAAa,AAIZ,aAAa;AA/BlB,cAAc,GA4BV,uBAAuB,AAGtB,aAAa,CAAC;EACb,KAAK,EAAE,WAAW;CACnB;;AAjCL,AAmCI,cAnCU,GA2BV,aAAa,AAQZ,MAAM,EAnCX,cAAc,GA2BV,aAAa,AASZ,IAAK,CAAA,kBAAkB;AApC5B,cAAc,GA4BV,uBAAuB,AAOtB,MAAM;AAnCX,cAAc,GA4BV,uBAAuB,AAQtB,IAAK,CAAA,kBAAkB,EAAE;EACxB,WAAW,E5Co8BiB,QAAQ;E4Cn8BpC,cAAc,E5Co8Bc,QAAO;C4Cn8BpC;;AAvCL,AAyCI,cAzCU,GA2BV,aAAa,AAcZ,iBAAiB;AAzCtB,cAAc,GA4BV,uBAAuB,AAatB,iBAAiB,CAAC;EACjB,WAAW,E5C+7BiB,QAAQ;E4C97BpC,cAAc,E5C+7Bc,QAAO;C4C97BpC;;AA5CL,AA+CE,cA/CY,GA+CV,YAAY,CAAC;EACb,WAAW,E5Cy7BmB,QAAQ;E4Cx7BtC,cAAc,E5Cy7BgB,QAAO;C4Cx7BtC;;AAlDH,AAwDI,cAxDU,GAoDV,aAAa,AAAA,MAAM,GAIjB,KAAK;AAxDX,cAAc,GAqDV,aAAa,AAAA,IAAK,CAjBZ,kBAAkB,IAoBtB,KAAK;AAxDX,cAAc,GAsDV,uBAAuB,GAErB,KAAK;AAxDX,cAAc,GAuDV,YAAY,GACV,KAAK,CAAC;EACN,OAAO,E5Ck7BqB,IAAG;E4Cj7B/B,SAAS,E5Ck7BmB,WAAU,CAAC,mBAAkB,CAAC,mBAAkB;C4Cj7B7E;;AA3DL,AA+DI,cA/DU,GA8DV,aAAa,AAAA,iBAAiB,GAC5B,KAAK,CAAC;EACN,OAAO,E5C26BqB,IAAG;E4C16B/B,SAAS,E5C26BmB,WAAU,CAAC,mBAAkB,CAAC,mBAAkB;C4C16B7E;;AAlEL,AAsEI,cAtEU,GAqEV,uBAAuB,GACrB,KAAK,CAAC;EACN,YAAY,E5CwZY,GAAG,C4CxZO,CAAC;CACpC;;ACpEL,AAAA,YAAY,CAAC;EACX,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EACpB,KAAK,EAAE,IAAI;CA6BZ;;AAlCD,AAOE,YAPU,GAOR,aAAa;AAPjB,YAAY,GAQR,YAAY;AARhB,YAAY,GASR,cAAc,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,QAAQ;EACd,KAAK,EAAE,EAAE;EACT,SAAS,EAAE,CAAC;CACb;;AAdH,AAiBE,YAjBU,GAiBR,aAAa,AAAA,MAAM;AAjBvB,YAAY,GAkBR,YAAY,AAAA,MAAM;AAlBtB,YAAY,GAmBR,cAAc,AAAA,aAAa,CAAC;EAC5B,OAAO,EAAE,CAAC;CACX;;AArBH,AA0BE,YA1BU,CA0BV,IAAI,CAAC;EACH,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,CAAC;CAKX;;AAjCH,AA8BI,YA9BQ,CA0BV,IAAI,AAID,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;CACX;;AAUL,AAAA,iBAAiB,CAAC;EAChB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,OAAO,E7C4pBqB,QAAO,CACP,OAAM;EGza9B,SAAY,EAvER,IAA2B;E0C3KnC,WAAW,E7C0fiB,GAAG;E6Czf/B,WAAW,E7CggBiB,GAAG;E6C/f/B,KAAK,E7CpCI,OAAO;E6CqChB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,gBAAgB,E7C9CP,OAAO;E6C+ChB,MAAM,E7CsasB,GAAG,C6CtaH,KAAK,C7C7CxB,OAAO;EsBOd,aAAa,EtB2da,QAAO;C6CnbpC;;AAQD,AAAA,eAAe,GAAG,aAAa;AAC/B,eAAe,GAAG,YAAY;AAC9B,eAAe,GAAG,iBAAiB;AACnC,eAAe,GAAG,IAAI,CAAC;EACrB,OAAO,E7CspBqB,MAAK,CACL,IAAI;EGzb5B,SAAY,EAvER,OAA2B;EmB3MjC,aAAa,EtB6da,MAAK;C6CtalC;;AAED,AAAA,eAAe,GAAG,aAAa;AAC/B,eAAe,GAAG,YAAY;AAC9B,eAAe,GAAG,iBAAiB;AACnC,eAAe,GAAG,IAAI,CAAC;EACrB,OAAO,E7CyoBqB,OAAM,CACN,MAAK;EGrb7B,SAAY,EAvER,QAA2B;EmB3MjC,aAAa,EtB4da,OAAM;C6C5ZnC;;AAED,AAAA,eAAe,GAAG,YAAY;AAC9B,eAAe,GAAG,YAAY,CAAC;EAC7B,aAAa,EAAE,IAAuD;CACvE;;AAUD,AAEI,YAFQ,AACT,IAAK,CAAA,eAAe,IACjB,IAAK,Cb9BH,WAAW,Ca8BI,IAAK,CAAA,gBAAgB,CAAC,IAAK,CAAA,cAAc,CAAC,IAAK,CDpGtE,cAAc;ACkGd,YAAY,AACT,IAAK,CAAA,eAAe,IAEjB,gBAAgB,AAAA,eAAgB,CAAA,KAAK;AAH3C,YAAY,AACT,IAAK,CAAA,eAAe,IAGjB,cAAc,AAAA,IAAK,CbhCjB,WAAW,IagCqB,aAAa;AAJrD,YAAY,AACT,IAAK,CAAA,eAAe,IAIjB,cAAc,AAAA,IAAK,CbjCjB,WAAW,IaiCqB,YAAY,CAAC;EvBpEjD,uBAAuB,EuBqEM,CAAC;EvBpE9B,0BAA0B,EuBoEG,CAAC;CAC7B;;AAPL,AAWI,YAXQ,AAUT,eAAe,GACZ,eAAgB,CAAA,KAAK,CAAC,IAAK,CATL,gBAAgB,CASM,IAAK,CATL,cAAc,CASM,IAAK,CD7G3E,cAAc;ACkGd,YAAY,AAUT,eAAe,GAEZ,gBAAgB,AAAA,eAAgB,CAAA,KAAK;AAZ3C,YAAY,AAUT,eAAe,GAGZ,cAAc,AAAA,eAAgB,CAAA,KAAK,IAAI,aAAa;AAb1D,YAAY,AAUT,eAAe,GAIZ,cAAc,AAAA,eAAgB,CAAA,KAAK,IAAI,YAAY,CAAC;EvB7EtD,uBAAuB,EuB8EM,CAAC;EvB7E9B,0BAA0B,EuB6EG,CAAC;CAC7B;;AAhBL,AAwBE,YAxBU,GAwBR,IAAK,CT5BA,YAAY,CS4BC,IAAK,CAtBuB,cAAc,CAsBtB,IAAK,CAAA,cAAc,CAAC,IAAK,CAAA,eAAe,CAAC,IAAK,CAAA,gBAAgB,CAAC,IAAK,CAAA,iBAAiB,EAA7D;EAC9D,WAAW,E7CoWe,IAAG;EsB9a7B,sBAAsB,EuB2EO,CAAC;EvB1E9B,yBAAyB,EuB0EI,CAAC;CAC/B;;AA3BH,AA6BE,YA7BU,GA6BR,cAAc,AAAA,IAAK,CTjCd,YAAY,ISiCkB,aAAa;AA7BpD,YAAY,GA8BR,cAAc,AAAA,IAAK,CTlCd,YAAY,ISkCkB,YAAY,CAAC;EvB/EhD,sBAAsB,EuBgFO,CAAC;EvB/E9B,yBAAyB,EuB+EI,CAAC;CAC/B;;AARgE,AAAL,eAAoB,CzBjG5D;EAClB,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,UAAU,EpB+vB0B,OAAM;EGtfxC,SAAY,EAvER,OAA2B;EiB/LjC,KAAK,EpBcC,OAAO;CoBbd;;AyB0F4C,AAAL,cAAmB,CzBxFxC;EACjB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,OAAO,EpB0uCyB,OAAa,CACb,MAAY;EoB1uC5C,UAAU,EAAE,KAAK;EjB4Pf,SAAY,EAvER,QAA2B;EiBlLjC,KAAK,EpBpCE,IAAI;EoBqCX,gBAAgB,EpBAV,sBAAO;EsB1Bb,aAAa,EtB2da,QAAO;CoB/blC;;AAzCC,AA4CA,cA5Cc,CAAC,MAAM,GA4CnB,eAAe;AA5CjB,cAAc,CAAC,MAAM,GA6CnB,cAAc;AA5ChB,SAAS,GA2CP,eAAe;AA3CjB,SAAS,GA4CP,cAAc,CAAK;EACnB,OAAO,EAAE,KAAK;CACf;;AA/CD,AAAA,cAAc,CAkDhB,aAAa,AAlDK,MAAM,EAkDxB,aAAa,AAjDV,SAAS,CAAqB;EAmD7B,YAAY,EpBbR,OAAO;EoBgBT,aAAa,ErB6Kc,qBAA6B;EqB5KxD,gBAAgB,ErByEP,yOAAiE;EqBxE1E,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,KAAK,CrB0KC,yBAA6B,CqB1KD,MAAM;EAC7D,eAAe,ErByKY,uBAA6B,CAA7B,uBAA6B;CqBjO3D;;AAHD,AA8DE,cA9DY,CAkDhB,aAAa,AAlDK,MAAM,AA8DnB,MAAM,EAZX,aAAa,AAjDV,SAAS,AA6DP,MAAM,CAAC;EACN,YAAY,EpBxBV,OAAO;EoByBT,UAAU,EA/CG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAtqB5B,uBAAO;CoB0BV;;AAjEH,AAAA,cAAc,CAsEhB,QAAQ,AAAA,aAAa,AAtEH,MAAM,EAsExB,QAAQ,AAAA,aAAa,AArElB,SAAS,CAAqB;EAwE3B,aAAa,ErB2Jc,qBAA6B;EqB1JxD,mBAAmB,EAAE,GAAG,CrB0JG,yBAA6B,CqB1JH,KAAK,CrB0J/B,yBAA6B;CqBjO3D;;AAHD,AAAA,cAAc,CA+EhB,YAAY,AA/EM,MAAM,EA+ExB,YAAY,AA9ET,SAAS,CAAqB;EAgF7B,YAAY,EpB1CR,OAAO;CoBpCZ;;AAHD,AAoFI,cApFU,CA+EhB,YAAY,AA/EM,MAAM,AAoFjB,IAAK,EAAA,AAAA,QAAC,AAAA,EAAU,IAAK,EAAA,AAAA,IAAC,AAAA,IApF3B,cAAc,CA+EhB,YAAY,AA/EM,MAAM,AAqFjB,IAAK,EADA,AAAA,QAAC,AAAA,GACU,AAAA,IAAC,CAAK,GAAG,AAAR,GANxB,YAAY,AA9ET,SAAS,AAmFL,IAAK,EAAA,AAAA,QAAC,AAAA,EAAU,IAAK,EAAA,AAAA,IAAC,AAAA,IAL7B,YAAY,AA9ET,SAAS,AAoFL,IAAK,EADA,AAAA,QAAC,AAAA,GACU,AAAA,IAAC,CAAK,GAAG,AAAR,EAAU;EAC1B,aAAa,EpBm1BiB,QAA6D;EoBl1B3F,gBAAgB,ErB0CT,+NAAiE,EAAjE,yOAAiE;EqBzCxE,mBAAmB,EpB40BO,KAAK,CA5NX,OAAM,CA4N6B,MAAM,EAM/B,MAAM,CAAC,KAAK,CAdhB,OAA0B;EoBn0BpD,eAAe,EpB40BW,IAAI,CAAC,IAAI,EDjsBV,uBAA6B,CAA7B,uBAA6B;CqB1IvD;;AA1FL,AA6FE,cA7FY,CA+EhB,YAAY,AA/EM,MAAM,AA6FnB,MAAM,EAdX,YAAY,AA9ET,SAAS,AA4FP,MAAM,CAAC;EACN,YAAY,EpBvDV,OAAO;EoBwDT,UAAU,EA9EG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAtqB5B,uBAAO;CoByDV;;AAhGH,AAAA,cAAc,CAoGhB,mBAAmB,AApGD,MAAM,EAoGxB,mBAAmB,AAnGhB,SAAS,CAAqB;EAsG3B,KAAK,ErB6HsB,kCAA6B;CqBjO3D;;AAHD,AAAA,cAAc,CA4GhB,iBAAiB,AA5GC,MAAM,EA4GxB,iBAAiB,AA3Gd,SAAS,CAAqB;EA6G7B,YAAY,EpBvER,OAAO;CoBpCZ;;AAHD,AAgHE,cAhHY,CA4GhB,iBAAiB,AA5GC,MAAM,AAgHnB,QAAQ,EAJb,iBAAiB,AA3Gd,SAAS,AA+GP,QAAQ,CAAC;EACR,gBAAgB,EpB1Ed,OAAO;CoB2EV;;AAlHH,AAoHE,cApHY,CA4GhB,iBAAiB,AA5GC,MAAM,AAoHnB,MAAM,EARX,iBAAiB,AA3Gd,SAAS,AAmHP,MAAM,CAAC;EACN,UAAU,EApGG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAtqB5B,uBAAO;CoB+EV;;AAtHH,AAwHE,cAxHY,CA4GhB,iBAAiB,AA5GC,MAAM,GAwHlB,iBAAiB,EAZvB,iBAAiB,AA3Gd,SAAS,GAuHN,iBAAiB,CAAC;EAClB,KAAK,EpBlFH,OAAO;CoBmFV;;AAGL,AACE,kBADgB,CAAC,iBAAiB,GAChC,eAAe,CAAK;EACpB,WAAW,EAAE,IAAI;CAClB;;AAhID,AAAA,cAAc,CAmIhB,YAAY,GACR,aAAa,AAAA,IAAK,CAAA,MAAM,CApIV,MAAM,EAmIxB,YAAY,GACR,aAAa,AAAA,IAAK,CAAA,MAAM,CAnIzB,SAAS,EADV,cAAc;AAmIhB,YAAY,GAER,YAAY,AAAA,IAAK,CADC,MAAM,CApIV,MAAM;AAmIxB,YAAY,GAER,YAAY,AAAA,IAAK,CADC,MAAM,CAnIzB,SAAS,EADV,cAAc;AAmIhB,YAAY,GAGR,cAAc,AAAA,IAAK,CAAA,aAAa,CAtIlB,MAAM;AAmIxB,YAAY,GAGR,cAAc,AAAA,IAAK,CAAA,aAAa,CArIjC,SAAS,CAAqB;EAwIzB,OAAO,EAAE,CAAC;CAtIf;;AyBiHyG,AAAL,iBAAsB,CzBjGzG;EAClB,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,UAAU,EpB+vB0B,OAAM;EGtfxC,SAAY,EAvER,OAA2B;EiB/LjC,KAAK,EpBWC,OAAO;CoBVd;;AyB0FqF,AAAL,gBAAqB,CzBxFnF;EACjB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,OAAO,EpB0uCyB,OAAa,CACb,MAAY;EoB1uC5C,UAAU,EAAE,KAAK;EjB4Pf,SAAY,EAvER,QAA2B;EiBlLjC,KAAK,EpBpCE,IAAI;EoBqCX,gBAAgB,EpBHV,sBAAO;EsBvBb,aAAa,EtB2da,QAAO;CoB/blC;;AAzCC,AA4CA,cA5Cc,CAAC,QAAQ,GA4CrB,iBAAiB;AA5CnB,cAAc,CAAC,QAAQ,GA6CrB,gBAAgB;AA5ClB,WAAW,GA2CT,iBAAiB;AA3CnB,WAAW,GA4CT,gBAAgB,CAAG;EACnB,OAAO,EAAE,KAAK;CACf;;AA/CD,AAAA,cAAc,CAkDhB,aAAa,AAlDK,QAAQ,EAkD1B,aAAa,AAjDV,WAAW,CAAmB;EAmD7B,YAAY,EpBhBR,OAAO;EoBmBT,aAAa,ErB6Kc,qBAA6B;EqB5KxD,gBAAgB,ErByEP,0TAAiE;EqBxE1E,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,KAAK,CrB0KC,yBAA6B,CqB1KD,MAAM;EAC7D,eAAe,ErByKY,uBAA6B,CAA7B,uBAA6B;CqBjO3D;;AAHD,AA8DE,cA9DY,CAkDhB,aAAa,AAlDK,QAAQ,AA8DrB,MAAM,EAZX,aAAa,AAjDV,WAAW,AA6DT,MAAM,CAAC;EACN,YAAY,EpB3BV,OAAO;EoB4BT,UAAU,EA/CG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAzqB5B,uBAAO;CoB6BV;;AAjEH,AAAA,cAAc,CAsEhB,QAAQ,AAAA,aAAa,AAtEH,QAAQ,EAsE1B,QAAQ,AAAA,aAAa,AArElB,WAAW,CAAmB;EAwE3B,aAAa,ErB2Jc,qBAA6B;EqB1JxD,mBAAmB,EAAE,GAAG,CrB0JG,yBAA6B,CqB1JH,KAAK,CrB0J/B,yBAA6B;CqBjO3D;;AAHD,AAAA,cAAc,CA+EhB,YAAY,AA/EM,QAAQ,EA+E1B,YAAY,AA9ET,WAAW,CAAmB;EAgF7B,YAAY,EpB7CR,OAAO;CoBjCZ;;AAHD,AAoFI,cApFU,CA+EhB,YAAY,AA/EM,QAAQ,AAoFnB,IAAK,EAAA,AAAA,QAAC,AAAA,EAAU,IAAK,EAAA,AAAA,IAAC,AAAA,IApF3B,cAAc,CA+EhB,YAAY,AA/EM,QAAQ,AAqFnB,IAAK,EADA,AAAA,QAAC,AAAA,GACU,AAAA,IAAC,CAAK,GAAG,AAAR,GANxB,YAAY,AA9ET,WAAW,AAmFP,IAAK,EAAA,AAAA,QAAC,AAAA,EAAU,IAAK,EAAA,AAAA,IAAC,AAAA,IAL7B,YAAY,AA9ET,WAAW,AAoFP,IAAK,EADA,AAAA,QAAC,AAAA,GACU,AAAA,IAAC,CAAK,GAAG,AAAR,EAAU;EAC1B,aAAa,EpBm1BiB,QAA6D;EoBl1B3F,gBAAgB,ErB0CT,+NAAiE,EAAjE,0TAAiE;EqBzCxE,mBAAmB,EpB40BO,KAAK,CA5NX,OAAM,CA4N6B,MAAM,EAM/B,MAAM,CAAC,KAAK,CAdhB,OAA0B;EoBn0BpD,eAAe,EpB40BW,IAAI,CAAC,IAAI,EDjsBV,uBAA6B,CAA7B,uBAA6B;CqB1IvD;;AA1FL,AA6FE,cA7FY,CA+EhB,YAAY,AA/EM,QAAQ,AA6FrB,MAAM,EAdX,YAAY,AA9ET,WAAW,AA4FT,MAAM,CAAC;EACN,YAAY,EpB1DV,OAAO;EoB2DT,UAAU,EA9EG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAzqB5B,uBAAO;CoB4DV;;AAhGH,AAAA,cAAc,CAoGhB,mBAAmB,AApGD,QAAQ,EAoG1B,mBAAmB,AAnGhB,WAAW,CAAmB;EAsG3B,KAAK,ErB6HsB,kCAA6B;CqBjO3D;;AAHD,AAAA,cAAc,CA4GhB,iBAAiB,AA5GC,QAAQ,EA4G1B,iBAAiB,AA3Gd,WAAW,CAAmB;EA6G7B,YAAY,EpB1ER,OAAO;CoBjCZ;;AAHD,AAgHE,cAhHY,CA4GhB,iBAAiB,AA5GC,QAAQ,AAgHrB,QAAQ,EAJb,iBAAiB,AA3Gd,WAAW,AA+GT,QAAQ,CAAC;EACR,gBAAgB,EpB7Ed,OAAO;CoB8EV;;AAlHH,AAoHE,cApHY,CA4GhB,iBAAiB,AA5GC,QAAQ,AAoHrB,MAAM,EARX,iBAAiB,AA3Gd,WAAW,AAmHT,MAAM,CAAC;EACN,UAAU,EApGG,CAAC,CAAC,CAAC,CpB+rBQ,CAAC,CAHD,OAAM,CAzqB5B,uBAAO;CoBkFV;;AAtHH,AAwHE,cAxHY,CA4GhB,iBAAiB,AA5GC,QAAQ,GAwHpB,iBAAiB,EAZvB,iBAAiB,AA3Gd,WAAW,GAuHR,iBAAiB,CAAC;EAClB,KAAK,EpBrFH,OAAO;CoBsFV;;AAGL,AACE,kBADgB,CAAC,iBAAiB,GAChC,iBAAiB,CAAG;EACpB,WAAW,EAAE,IAAI;CAClB;;AAhID,AAAA,cAAc,CAmIhB,YAAY,GACR,aAAa,AAAA,IAAK,CAAA,MAAM,CApIV,QAAQ,EAmI1B,YAAY,GACR,aAAa,AAAA,IAAK,CAAA,MAAM,CAnIzB,WAAW,EADZ,cAAc;AAmIhB,YAAY,GAER,YAAY,AAAA,IAAK,CADC,MAAM,CApIV,QAAQ;AAmI1B,YAAY,GAER,YAAY,AAAA,IAAK,CADC,MAAM,CAnIzB,WAAW,EADZ,cAAc;AAmIhB,YAAY,GAGR,cAAc,AAAA,IAAK,CAAA,aAAa,CAtIlB,QAAQ;AAmI1B,YAAY,GAGR,cAAc,AAAA,IAAK,CAAA,aAAa,CArIjC,WAAW,CAAmB;EA0IzB,OAAO,EAAE,CAAC;CAxIf;;A2BLL,AAAA,IAAI,CAAC;EAEH,kBAAyB,CAAe,QAAC;EACzC,kBAAyB,CAAe,SAAC;EACzC,oBAA2B,CAAiB,CAAC;E5C6RzC,kBAAY,EAvER,IAA2B;E4CpNnC,oBAA2B,CAAiB,IAAC;EAC7C,oBAA2B,CAAiB,IAAC;EAC7C,cAAqB,CAAW,QAAC;EACjC,WAAkB,CAAQ,YAAC;EAC3B,qBAA4B,CAAkB,IAAC;EAC/C,qBAA4B,CAAkB,YAAC;EAC/C,sBAA6B,CAAmB,SAAC;EACjD,2BAAkC,CAAwB,YAAC;EAC3D,mBAA0B,CAAgB,wEAAC;EAC3C,yBAAgC,CAAsB,KAAC;EACvD,yBAAgC,CAAsB,uDAAC;EAGvD,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,uBAA6C,CAAC,uBAA6C;EACpG,WAAW,EAAE,yBAAiD;E5C4Q1D,SAAY,EAvER,uBAA2B;E4CnMnC,WAAW,EAAE,yBAAiD;EAC9D,WAAW,EAAE,yBAAiD;EAC9D,KAAK,EAAE,mBAAqC;EAC5C,UAAU,EAAE,MAAM;EAClB,eAAe,EAAqC,IAAI;EAExD,cAAc,EAAE,MAAM;EACtB,MAAM,EAA8B,OAAO;EAC3C,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,0BAAmD,CAAC,KAAK,CAAC,0BAAmD;EzBjBnH,aAAa,EyBkBQ,2BAAqD;EvBjC5E,gBAAgB,EuBkCK,gBAA+B;EtBtBhD,UAAU,EzB2vBc,KAAK,CAAC,KAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;C+C1pBlJ;;AtB7FK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EsBhB5C,AAAA,IAAI,CAAC;ItBiBG,UAAU,EAAE,IAAI;GsB4FvB;;;AA7GD,AAsCE,IAtCE,AAsCD,MAAM,CAAC;EACN,KAAK,EAAE,yBAAiD;EAExD,gBAAgB,EAAE,sBAA2C;EAC7D,YAAY,EAAE,gCAA+D;CAC9E;;AAED,AAAA,UAAU,GA7CZ,IAAI,AA6CY,MAAM,CAAC;EAEnB,KAAK,EAAE,mBAAqC;EAC5C,gBAAgB,EAAE,gBAA+B;EACjD,YAAY,EAAE,0BAAmD;CAClE;;AAlDH,AAoDE,IApDE,AAoDD,cAAc,CAAC;EACd,KAAK,EAAE,yBAAiD;EvBrD1D,gBAAgB,EuBsDO,sBAA2C;EAChE,YAAY,EAAE,gCAA+D;EAC7E,OAAO,EAAE,CAAC;EAKR,UAAU,EAAE,8BAA2D;CAE1E;;AAED,AAAA,UAAU,AAAA,cAAc,GAjE1B,IAAI,CAiE2B;EAC3B,YAAY,EAAE,gCAA+D;EAC7E,OAAO,EAAE,CAAC;EAKR,UAAU,EAAE,8BAA2D;CAE1E;;AAED,AAAA,UAAU,AAAA,QAAQ,GA5EpB,IAAI;AA6EF,IAAK,CLgFP,UAAU,IK7JV,IAAI,AA6EkB,OAAO,EA7E7B,IAAI,AA8ED,YAAY,AAAA,OAAO,EA9EtB,IAAI,AA+ED,OAAO,EA/EV,IAAI,AAgFD,KAAK,CAAC;EACL,KAAK,EAAE,0BAAmD;EAC1D,gBAAgB,EAAE,uBAA6C;EAG/D,YAAY,EAAE,iCAAiE;CAWhF;;AApBD,AAYE,UAZQ,AAAA,QAAQ,GA5EpB,IAAI,AAwFC,cAAc;AAXjB,IAAK,CLgFP,UAAU,IK7JV,IAAI,AA6EkB,OAAO,AAWxB,cAAc,EAxFnB,IAAI,AA8ED,YAAY,AAAA,OAAO,AAUjB,cAAc,EAxFnB,IAAI,AA+ED,OAAO,AASL,cAAc,EAxFnB,IAAI,AAgFD,KAAK,AAQH,cAAc,CAAC;EAKZ,UAAU,EAAE,8BAA2D;CAE1E;;AA/FL,AAkGE,IAlGE,AAkGD,SAAS,EAlGZ,IAAI,AAmGD,SAAS;AACV,QAAQ,AAAA,SAAS,CApGnB,IAAI,CAoGkB;EAClB,KAAK,EAAE,4BAAuD;EAC9D,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,yBAAiD;EAEnE,YAAY,EAAE,mCAAqE;EACnF,OAAO,EAAE,8BAA2D;CAErE;;AAUD,AAAA,YAAY,CAAG;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,aAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,cAAc,CAAC;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,cAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,YAAY,CAAG;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,aAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,SAAS,CAAM;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,aAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,YAAY,CAAG;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,YAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,WAAW,CAAI;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,YAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,UAAU,CAAK;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,cAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAtBD,AAAA,SAAS,CAAM;EhCtGf,cAAqB,CAAW,KAAC;EACjC,WAAkB,CAAQ,QAAC;EAC3B,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,WAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,8BAAqC,CAA2B,QAAC;CgC+GhE;;AAID,AAAA,oBAAoB,CAAG;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,aAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,sBAAsB,CAAC;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,cAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,oBAAoB,CAAG;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,YAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,iBAAiB,CAAM;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,aAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,oBAAoB,CAAG;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,YAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,mBAAmB,CAAI;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,YAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,kBAAkB,CAAK;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,cAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAFD,AAAA,iBAAiB,CAAM;EhCvGvB,cAAqB,CAAW,QAAC;EACjC,qBAA4B,CAAkB,QAAC;EAC/C,oBAA2B,CAAiB,KAAC;EAC7C,iBAAwB,CAAc,QAAC;EACvC,2BAAkC,CAAwB,QAAC;EAC3D,yBAAgC,CAAsB,WAAC;EACvD,qBAA4B,CAAkB,KAAC;EAC/C,kBAAyB,CAAe,QAAC;EACzC,4BAAmC,CAAyB,QAAC;EAC7D,sBAA6B,CAAmB,qCAAC;EACjD,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,YAAC;EAC7C,8BAAqC,CAA2B,QAAC;EACjE,aAAoB,CAAU,KAAC;CgC4F9B;;AAUH,AAAA,SAAS,CAAC;EACR,oBAA2B,CAAiB,IAAC;EAC7C,cAAqB,CAAW,qBAAC;EACjC,WAAkB,CAAQ,YAAC;EAC3B,qBAA4B,CAAkB,YAAC;EAC/C,oBAA2B,CAAiB,2BAAC;EAC7C,2BAAkC,CAAwB,YAAC;EAC3D,qBAA4B,CAAkB,2BAAC;EAC/C,4BAAmC,CAAyB,YAAC;EAC7D,uBAA8B,CAAoB,QAAC;EACnD,8BAAqC,CAA2B,YAAC;EACjE,mBAA0B,CAAgB,KAAC;EAC3C,yBAAgC,CAAsB,aAAC;EAEvD,eAAe,E/C2OyB,SAAS;C+CxNlD;;AAjCD,AAwBE,SAxBO,AAwBN,cAAc,CAAC;EACd,KAAK,EAAE,mBAAqC;CAC7C;;AA1BH,AA4BE,SA5BO,AA4BN,MAAM,CAAC;EACN,KAAK,EAAE,yBAAiD;CACzD;;AAUH,AAAA,OAAO,EGrIP,aAAa,GAAG,IAAI,CHqIZ;EhCxIN,kBAAyB,CAAe,OAAC;EACzC,kBAAyB,CAAe,KAAC;EZoOrC,kBAAY,EAvER,OAA2B;EY3JnC,sBAA6B,CAAmB,OAAC;CgCuIlD;;AAED,AAAA,OAAO,EG1IP,aAAa,GAAG,IAAI,CH0IZ;EhC5IN,kBAAyB,CAAe,QAAC;EACzC,kBAAyB,CAAe,OAAC;EZoOrC,kBAAY,EAvER,QAA2B;EY3JnC,sBAA6B,CAAmB,QAAC;CgC2IlD;;AC9MD,AAAA,KAAK,CAAC;EvBgBA,UAAU,EzBufc,OAAO,CAAC,KAAI,CAAC,MAAM;CgDjgBhD;;AvBcK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EuBpB5C,AAAA,KAAK,CAAC;IvBqBE,UAAU,EAAE,IAAI;GuBfvB;;;AAND,AAGE,KAHG,AAGF,IAAK,CAAA,KAAK,EAAE;EACX,OAAO,EAAE,CAAC;CACX;;AAIH,AACE,SADO,AACN,IAAK,CAPA,KAAK,EAOE;EACX,OAAO,EAAE,IAAI;CACd;;AAGH,AAAA,WAAW,CAAC;EACV,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,MAAM;EvBDZ,UAAU,EzByfc,MAAM,CAAC,KAAI,CAAC,IAAI;CgDhf7C;;AvBLK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EuBL5C,AAAA,WAAW,CAAC;IvBMJ,UAAU,EAAE,IAAI;GuBIvB;;;AAVD,AAKE,WALS,AAKR,oBAAoB,CAAC;EACpB,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,IAAI;EvBNV,UAAU,EzB0fc,KAAK,CAAC,KAAI,CAAC,IAAI;CgDlf1C;;AvBJG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EuBL5C,AAKE,WALS,AAKR,oBAAoB,CAAC;IvBChB,UAAU,EAAE,IAAI;GuBGrB;;;ACvBH,AAAA,OAAO;AACP,QAAQ;AACR,SAAS;AACT,UAAU;AACV,cAAc;AACd,gBAAgB,CAAC;EACf,QAAQ,EAAE,QAAQ;CACnB;;AJ4F2B,AAAL,gBAAqB,CI1F3B;EACf,WAAW,EAAE,MAAM;CAIpB;;AALD,AjCoBI,gBiCpBY,AjCoBX,OAAO,CAAC;EACP,OAAO,EAAE,YAAY;EACrB,WAAW,EhBmea,OAAkB;EgBle1C,cAAc,EhBieU,OAAkB;EgBhe1C,OAAO,EAAE,EAAE;EAhCf,UAAU,EhB+fkB,KAAI,CgB/fP,KAAK;EAC9B,YAAY,EhB8fgB,KAAI,CgB9fL,KAAK,CAAC,WAAW;EAC5C,aAAa,EAAE,CAAC;EAChB,WAAW,EhB4fiB,KAAI,CgB5fN,KAAK,CAAC,WAAW;CAqCxC;;AiChCL,AjCgDI,gBiChDY,AjCgDX,MAAM,AAAA,OAAO,CAAC;EACb,WAAW,EAAE,CAAC;CACf;;A6BwC6C,AAAL,cAAmB,CIlFjD;EAEb,oBAA2B,CAAiB,KAAC;EAC7C,uBAA8B,CAAoB,MAAC;EACnD,uBAA8B,CAAoB,EAAC;EACnD,uBAA8B,CAAoB,OAAC;EACnD,oBAA2B,CAAiB,SAAC;E9C6QzC,uBAAY,EAvER,IAA2B;E8CpMnC,mBAA0B,CAAgB,QAAC;EAC3C,gBAAuB,CAAa,KAAC;EACrC,0BAAiC,CAAuB,mCAAC;EACzD,2BAAkC,CAAwB,SAAC;EAC3D,0BAAiC,CAAuB,IAAC;EACzD,iCAAwC,CAA8B,qBAAC;EACvE,wBAA+B,CAAqB,mCAAC;EACrD,8BAAqC,CAA2B,OAAC;EACjE,wBAA+B,CAAqB,kCAAC;EACrD,wBAA+B,CAAqB,QAAC;EACrD,8BAAqC,CAA2B,QAAC;EACjE,2BAAkC,CAAwB,QAAC;EAC3D,+BAAsC,CAA4B,KAAC;EACnE,4BAAmC,CAAyB,QAAC;EAC7D,iCAAwC,CAA8B,QAAC;EACvE,4BAAmC,CAAyB,KAAC;EAC7D,4BAAmC,CAAyB,QAAC;EAC7D,0BAAiC,CAAuB,QAAC;EACzD,8BAAqC,CAA2B,KAAC;EACjE,8BAAqC,CAA2B,OAAC;EAGjE,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,yBAAiD;EAC1D,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,4BAAuD;EAClE,OAAO,EAAE,4BAAuD,CAAC,4BAAuD;EACxH,MAAM,EAAE,CAAC;E9CgPL,SAAY,EAvER,4BAA2B;E8CvKnC,KAAK,EAAE,wBAA+C;EACtD,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,IAAI;EAChB,gBAAgB,EAAE,qBAAyC;EAC3D,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,+BAA6D,CAAC,KAAK,CAAC,+BAA6D;E3BzCvI,aAAa,E2B0CQ,gCAA+D;CAoBvF;;AA/DD,AA8CE,cA9CY,CA8CX,AAAA,cAAC,AAAA,EAAgB;EAChB,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,CAAC;EACP,UAAU,EAAE,yBAAiD;CAC9D;;AAuBC,AAAA,oBAAoB,CAAU;EAC5B,aAAa,CAAA,MAAC;CAMf;;AAPD,AAGE,oBAHkB,CAGjB,AAAA,cAAC,AAAA,EAAgB;EAChB,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,CAAC;CACR;;AAGH,AAAA,kBAAkB,CAAU;EAC1B,aAAa,CAAA,IAAC;CAMf;;AAPD,AAGE,kBAHgB,CAGf,AAAA,cAAC,AAAA,EAAgB;EAChB,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,IAAI;CACX;;A5C3CH,MAAM,EAAE,SAAS,EAAE,KAAK;E4C4BxB,AAAA,uBAAuB,CAAO;IAC5B,aAAa,CAAA,MAAC;GAMf;EAPD,AAGE,uBAHqB,CAGpB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;GACR;EAGH,AAAA,qBAAqB,CAAO;IAC1B,aAAa,CAAA,IAAC;GAMf;EAPD,AAGE,qBAHmB,CAGlB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;GACX;;;A5C3CH,MAAM,EAAE,SAAS,EAAE,KAAK;E4C4BxB,AAAA,uBAAuB,CAAO;IAC5B,aAAa,CAAA,MAAC;GAMf;EAPD,AAGE,uBAHqB,CAGpB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;GACR;EAGH,AAAA,qBAAqB,CAAO;IAC1B,aAAa,CAAA,IAAC;GAMf;EAPD,AAGE,qBAHmB,CAGlB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;GACX;;;A5C3CH,MAAM,EAAE,SAAS,EAAE,KAAK;E4C4BxB,AAAA,uBAAuB,CAAO;IAC5B,aAAa,CAAA,MAAC;GAMf;EAPD,AAGE,uBAHqB,CAGpB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;GACR;EAGH,AAAA,qBAAqB,CAAO;IAC1B,aAAa,CAAA,IAAC;GAMf;EAPD,AAGE,qBAHmB,CAGlB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;GACX;;;A5C3CH,MAAM,EAAE,SAAS,EAAE,MAAM;E4C4BzB,AAAA,uBAAuB,CAAO;IAC5B,aAAa,CAAA,MAAC;GAMf;EAPD,AAGE,uBAHqB,CAGpB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;GACR;EAGH,AAAA,qBAAqB,CAAO;IAC1B,aAAa,CAAA,IAAC;GAMf;EAPD,AAGE,qBAHmB,CAGlB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;GACX;;;A5C3CH,MAAM,EAAE,SAAS,EAAE,MAAM;E4C4BzB,AAAA,wBAAwB,CAAM;IAC5B,aAAa,CAAA,MAAC;GAMf;EAPD,AAGE,wBAHsB,CAGrB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,CAAC;GACR;EAGH,AAAA,sBAAsB,CAAM;IAC1B,aAAa,CAAA,IAAC;GAMf;EAPD,AAGE,sBAHoB,CAGnB,AAAA,cAAC,AAAA,EAAgB;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,IAAI;GACX;;;AAQP,AACE,OADK,CACL,cAAc,CAAA,AAAA,cAAC,AAAA,EAAgB;EAC7B,GAAG,EAAE,IAAI;EACT,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,yBAAiD;CACjE;;AANH,AjCpFI,OiCoFG,CAQL,gBAAgB,AjC5Fb,OAAO,CAAC;EACP,OAAO,EAAE,YAAY;EACrB,WAAW,EhBmea,OAAkB;EgBle1C,cAAc,EhBieU,OAAkB;EgBhe1C,OAAO,EAAE,EAAE;EAzBf,UAAU,EAAE,CAAC;EACb,YAAY,EhBufgB,KAAI,CgBvfL,KAAK,CAAC,WAAW;EAC5C,aAAa,EhBsfe,KAAI,CgBtfJ,KAAK;EACjC,WAAW,EhBqfiB,KAAI,CgBrfN,KAAK,CAAC,WAAW;CA8BxC;;AiCwEL,AjCxDI,OiCwDG,CAQL,gBAAgB,AjChEb,MAAM,AAAA,OAAO,CAAC;EACb,WAAW,EAAE,CAAC;CACf;;AiCmEL,AACE,QADM,CACN,cAAc,CAAA,AAAA,cAAC,AAAA,EAAgB;EAC7B,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,IAAI;EACV,UAAU,EAAE,CAAC;EACb,WAAW,EAAE,yBAAiD;CAC/D;;AAPH,AjCjGI,QiCiGI,CASN,gBAAgB,AjC1Gb,OAAO,CAAC;EACP,OAAO,EAAE,YAAY;EACrB,WAAW,EhBmea,OAAkB;EgBle1C,cAAc,EhBieU,OAAkB;EgBhe1C,OAAO,EAAE,EAAE;EAlBf,UAAU,EhBifkB,KAAI,CgBjfP,KAAK,CAAC,WAAW;EAC1C,YAAY,EAAE,CAAC;EACf,aAAa,EhB+ee,KAAI,CgB/eJ,KAAK,CAAC,WAAW;EAC7C,WAAW,EhB8eiB,KAAI,CgB9eN,KAAK;CAuB5B;;AiCqFL,AjCrEI,QiCqEI,CASN,gBAAgB,AjC9Eb,MAAM,AAAA,OAAO,CAAC;EACb,WAAW,EAAE,CAAC;CACf;;AiCmEL,AjCjGI,QiCiGI,CASN,gBAAgB,AjC1Gb,OAAO,CiC4GC;EACP,cAAc,EAAE,CAAC;CAClB;;AAIL,AACE,UADQ,CACR,cAAc,CAAA,AAAA,cAAC,AAAA,EAAgB;EAC7B,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,IAAI;EACV,UAAU,EAAE,CAAC;EACb,YAAY,EAAE,yBAAiD;CAChE;;AAPH,AjClHI,UiCkHM,CASR,gBAAgB,AjC3Hb,OAAO,CAAC;EACP,OAAO,EAAE,YAAY;EACrB,WAAW,EhBmea,OAAkB;EgBle1C,cAAc,EhBieU,OAAkB;EgBhe1C,OAAO,EAAE,EAAE;CAQZ;;AiCsGL,AjClHI,UiCkHM,CASR,gBAAgB,AjC3Hb,OAAO,CAeG;EACP,OAAO,EAAE,IAAI;CACd;;AiCiGP,AjC/FM,UiC+FI,CASR,gBAAgB,AjCxGX,QAAQ,CAAC;EACR,OAAO,EAAE,YAAY;EACrB,YAAY,EhBgdU,OAAkB;EgB/cxC,cAAc,EhB8cQ,OAAkB;EgB7cxC,OAAO,EAAE,EAAE;EA9BjB,UAAU,EhB0ekB,KAAI,CgB1eP,KAAK,CAAC,WAAW;EAC1C,YAAY,EhByegB,KAAI,CgBzeL,KAAK;EAChC,aAAa,EhBwee,KAAI,CgBxeJ,KAAK,CAAC,WAAW;CA8BxC;;AiCyFP,AjCtFI,UiCsFM,CASR,gBAAgB,AjC/Fb,MAAM,AAAA,OAAO,CAAC;EACb,WAAW,EAAE,CAAC;CACf;;AiCoFL,AjC/FM,UiC+FI,CASR,gBAAgB,AjCxGX,QAAQ,CiC0GD;EACR,cAAc,EAAE,CAAC;CAClB;;AAML,AAAA,iBAAiB,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,mCAAqE,CAAC,CAAC;EAC/E,QAAQ,EAAE,MAAM;EAChB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,6BAAyD;EAC/E,OAAO,EAAE,CAAC;CACX;;AAKD,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,iCAAiE,CAAC,iCAAiE;EAC5I,KAAK,EAAE,IAAI;EACX,WAAW,EjD0XiB,GAAG;EiDzX/B,KAAK,EAAE,6BAAyD;EAChE,UAAU,EAAE,OAAO;EACnB,eAAe,EAAqC,IAAI;EACxD,WAAW,EAAE,MAAM;EACnB,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,CAAC;CAwBV;;AAnCD,AAaE,cAbY,AAaX,MAAM,EAbT,cAAc,AAcX,MAAM,CAAC;EACN,KAAK,EAAE,mCAAqE;EzBzL9E,gBAAgB,EyB2LO,gCAA+D;CACrF;;AAlBH,AAoBE,cApBY,AAoBX,OAAO,EApBV,cAAc,AAqBX,OAAO,CAAC;EACP,KAAK,EAAE,oCAAuE;EAC9E,eAAe,EAAE,IAAI;EzBjMvB,gBAAgB,EyBkMO,iCAAiE;CACvF;;AAzBH,AA2BE,cA3BY,AA2BX,SAAS,EA3BZ,cAAc,AA4BX,SAAS,CAAC;EACT,KAAK,EAAE,sCAA2E;EAClF,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,WAAW;CAG9B;;AAGH,AAAA,cAAc,AAAA,KAAK,CAAC;EAClB,OAAO,EAAE,KAAK;CACf;;AAGD,AAAA,gBAAgB,CAAC;EACf,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,mCAAqE,CAAC,mCAAqE;EACpJ,aAAa,EAAE,CAAC;E9C0EZ,SAAY,EAvER,QAA2B;E8CDnC,KAAK,EAAE,+BAA6D;EACpE,WAAW,EAAE,MAAM;CACpB;;AAGD,AAAA,mBAAmB,CAAC;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,iCAAiE,CAAC,iCAAiE;EAC5I,KAAK,EAAE,6BAAyD;CACjE;;AAGD,AAAA,mBAAmB,CAAC;EAElB,mBAA0B,CAAgB,QAAC;EAC3C,gBAAuB,CAAa,QAAC;EACrC,0BAAiC,CAAuB,mCAAC;EACzD,wBAA+B,CAAqB,CAAC;EACrD,wBAA+B,CAAqB,QAAC;EACrD,8BAAqC,CAA2B,KAAC;EACjE,wBAA+B,CAAqB,mCAAC;EACrD,2BAAkC,CAAwB,0BAAC;EAC3D,+BAAsC,CAA4B,KAAC;EACnE,4BAAmC,CAAyB,QAAC;EAC7D,iCAAwC,CAA8B,QAAC;EACvE,0BAAiC,CAAuB,QAAC;CAE1D;;ACvPD,AAAA,UAAU;AACV,mBAAmB,CAAC;EAClB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,WAAW;EACpB,cAAc,EAAE,MAAM;CAiBvB;;AArBD,AAME,UANQ,GAMN,IAAI;AALR,mBAAmB,GAKf,IAAI,CAAC;EACL,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,QAAQ;CACf;;AATH,AAaE,UAbQ,GAaN,UAAU,AAAA,QAAQ,GAAG,IAAI;AAb7B,UAAU,GAcN,UAAU,AAAA,MAAM,GAAG,IAAI;AAd3B,UAAU,GAeN,IAAI,AAAA,MAAM;AAfd,UAAU,GAgBN,IAAI,AAAA,MAAM;AAhBd,UAAU,GAiBN,IAAI,AAAA,OAAO;AAjBf,UAAU,GAkBN,IAAI,AAAA,OAAO;AAjBf,mBAAmB,GAYf,UAAU,AAAA,QAAQ,GAAG,IAAI;AAZ7B,mBAAmB,GAaf,UAAU,AAAA,MAAM,GAAG,IAAI;AAb3B,mBAAmB,GAcf,IAAI,AAAA,MAAM;AAdd,mBAAmB,GAef,IAAI,AAAA,MAAM;AAfd,mBAAmB,GAgBf,IAAI,AAAA,OAAO;AAhBf,mBAAmB,GAiBf,IAAI,AAAA,OAAO,CAAC;EACZ,OAAO,EAAE,CAAC;CACX;;AAIH,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,eAAe,EAAE,UAAU;CAK5B;;AARD,AAKE,YALU,CAKV,YAAY,CAAC;EACX,KAAK,EAAE,IAAI;CACZ;;AAGH,AAAA,UAAU,CAAC;E5BhBP,aAAa,EtB2da,QAAO;CkDlbpC;;AAzBD,AAIE,UAJQ,GAIN,IAAK,CAAA,UAAU,AAAA,YAAY,IAAI,IAAI;AAJvC,UAAU,GAKN,UAAU,AAAA,IAAK,CdsDV,YAAY,EctDY;EAC7B,WAAW,ElDsbe,IAAG;CkDrb9B;;AAPH,AAUE,UAVQ,GAUN,IAAI,AAAA,IAAK,ClByBL,WAAW,CkBzBM,IAAK,CLuDF,gBAAgB;AKjE5C,UAAU,GAWN,IAAI,AAAA,sBAAsB,AAAA,YAAY;AAX1C,UAAU,GAYN,UAAU,AAAA,IAAK,ClBuBX,WAAW,IkBvBe,IAAI,CAAC;E5BZnC,uBAAuB,E4BaI,CAAC;E5BZ5B,0BAA0B,E4BYC,CAAC;CAC7B;;AAdH,AAoBE,UApBQ,GAoBN,IAAI,AAAA,UAAW,CAAA,KAAK;AApBxB,UAAU,GAqBN,IAAK,CRyGT,UAAU,IQzGa,IAAI;AArB3B,UAAU,GAsBN,UAAU,AAAA,IAAK,CdqCV,YAAY,IcrCc,IAAI,CAAC;E5BRpC,sBAAsB,E4BSO,CAAC;E5BR9B,yBAAyB,E4BQI,CAAC;CAC/B;;AAeH,AAAA,sBAAsB,CAAC;EACrB,aAAa,EAAE,SAAoB;EACnC,YAAY,EAAE,SAAoB;CAWnC;;AAbD,AAIE,sBAJoB,AAInB,OAAO;AACR,OAAO,CALT,sBAAsB,AAKX,OAAO;AAChB,QAAQ,CANV,sBAAsB,AAMV,OAAO,CAAC;EAChB,WAAW,EAAE,CAAC;CACf;;AAED,AAAA,UAAU,CAVZ,sBAAsB,AAUR,QAAQ,CAAC;EACnB,YAAY,EAAE,CAAC;CAChB;;AAGH,AAAA,OAAO,GAAG,sBAAsB,EAvBhC,aAAa,GAAG,IAAI,GAuBV,sBAAsB,CAAC;EAC/B,aAAa,EAAE,QAAuB;EACtC,YAAY,EAAE,QAAuB;CACtC;;AAED,AAAA,OAAO,GAAG,sBAAsB,EA3BhC,aAAa,GAAG,IAAI,GA2BV,sBAAsB,CAAC;EAC/B,aAAa,EAAE,OAAuB;EACtC,YAAY,EAAE,OAAuB;CACtC;;AAmBD,AAAA,mBAAmB,CAAC;EAClB,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,UAAU;EACvB,eAAe,EAAE,MAAM;CAsBxB;;AAzBD,AAKE,mBALiB,GAKf,IAAI;AALR,mBAAmB,GAMf,UAAU,CAAC;EACX,KAAK,EAAE,IAAI;CACZ;;AARH,AAUE,mBAViB,GAUf,IAAI,AAAA,IAAK,CdhCJ,YAAY;AcsBrB,mBAAmB,GAWf,UAAU,AAAA,IAAK,CdjCV,YAAY,EciCY;EAC7B,UAAU,ElD+VgB,IAAG;CkD9V9B;;AAbH,AAgBE,mBAhBiB,GAgBf,IAAI,AAAA,IAAK,ClB9DL,WAAW,CkB8DM,IAAK,CLhCF,gBAAgB;AKgB5C,mBAAmB,GAiBf,UAAU,AAAA,IAAK,ClB/DX,WAAW,IkB+De,IAAI,CAAC;E5B3FnC,0BAA0B,E4B4FI,CAAC;E5B3F/B,yBAAyB,E4B2FK,CAAC;CAChC;;AAnBH,AAqBE,mBArBiB,GAqBf,IAAI,GAAG,IAAI;AArBf,mBAAmB,GAsBf,UAAU,AAAA,IAAK,Cd5CV,YAAY,Ic4Cc,IAAI,CAAC;E5B9GpC,sBAAsB,E4B+GK,CAAC;E5B9G5B,uBAAuB,E4B8GI,CAAC;CAC7B;;ACvIH,AAAA,IAAI,CAAC;EAEH,uBAA8B,CAAoB,KAAC;EACnD,uBAA8B,CAAoB,OAAC;EAEnD,yBAAgC,CAAsB,CAAC;EACvD,mBAA0B,CAAgB,qBAAC;EAC3C,yBAAgC,CAAsB,2BAAC;EACvD,4BAAmC,CAAyB,QAAC;EAG7D,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;EAChB,UAAU,EAAE,IAAI;CACjB;;AAED,AAAA,SAAS,CAAC;EACR,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,4BAAuD,CAAC,4BAAuD;EhD4QpH,SAAY,EAvER,4BAA2B;EgDnMnC,WAAW,EAAE,8BAA2D;EACxE,KAAK,EAAE,wBAA+C;EACtD,eAAe,EAAqC,IAAI;E1BbpD,UAAU,EzBwhCoB,KAAK,CAAC,KAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW;CmD5/B3H;;A1BxBK,MAAM,EAAE,sBAAsB,EAAE,MAAM;E0BG5C,AAAA,SAAS,CAAC;I1BFF,UAAU,EAAE,IAAI;G0BuBvB;;;AArBD,AASE,SATO,AASN,MAAM,EATT,SAAS,AAUN,MAAM,CAAC;EACN,KAAK,EAAE,8BAA2D;CAEnE;;AAbH,AAgBE,SAhBO,AAgBN,SAAS,CAAC;EACT,KAAK,EAAE,iCAAiE;EACxE,cAAc,EAAE,IAAI;EACpB,MAAM,EAAE,OAAO;CAChB;;AAOH,AAAA,SAAS,CAAC;EAER,0BAAiC,CAAuB,IAAC;EACzD,0BAAiC,CAAuB,QAAC;EACzD,2BAAkC,CAAwB,SAAC;EAC3D,qCAA4C,CAAkC,wBAAC;EAC/E,+BAAsC,CAA4B,QAAC;EACnE,4BAAmC,CAAyB,KAAC;EAC7D,sCAA6C,CAAmC,qBAAC;EAGjF,aAAa,EAAE,+BAA6D,CAAC,KAAK,CAAC,+BAA6D;CAoCjJ;;AA/CD,AAaE,SAbO,CAaP,SAAS,CAAC;EACR,aAAa,EAAE,0CAAwE;EACvF,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,+BAA6D,CAAC,KAAK,CAAC,WAAW;E7BtCvF,sBAAsB,E6BuCK,gCAA+D;E7BtC1F,uBAAuB,E6BsCI,gCAA+D;CAe3F;;AAhCH,AAmBI,SAnBK,CAaP,SAAS,AAMN,MAAM,EAnBX,SAAS,CAaP,SAAS,AAON,MAAM,CAAC;EAEN,SAAS,EAAE,OAAO;EAClB,YAAY,EAAE,0CAAmF;CAClG;;AAxBL,AA0BI,SA1BK,CAaP,SAAS,AAaN,SAAS,EA1Bd,SAAS,CAaP,SAAS,AAcN,SAAS,CAAC;EACT,KAAK,EAAE,iCAAiE;EACxE,gBAAgB,EAAE,WAAW;EAC7B,YAAY,EAAE,WAAW;CAC1B;;AA/BL,AAkCE,SAlCO,CAkCP,SAAS,AAAA,OAAO;AAlClB,SAAS,CAmCP,SAAS,AAAA,KAAK,CAAC,SAAS,CAAC;EACvB,KAAK,EAAE,oCAAuE;EAC9E,gBAAgB,EAAE,iCAAiE;EACnF,YAAY,EAAE,2CAAqF;CACpG;;AAvCH,AAyCE,SAzCO,CAyCP,cAAc,CAAC;EAEb,UAAU,EAAE,0CAAwE;E7BjEpF,sBAAsB,E6BmEK,CAAC;E7BlE5B,uBAAuB,E6BkEI,CAAC;CAC7B;;AAQH,AAAA,UAAU,CAAC;EAET,4BAAmC,CAAyB,SAAC;EAC7D,gCAAuC,CAA6B,KAAC;EACrE,6BAAoC,CAA0B,QAAC;CAoBhE;;AAxBD,AAOE,UAPQ,CAOR,SAAS,CAAC;EACR,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;E7B9FT,aAAa,E6B+FU,iCAAiE;CAOzF;;AAjBH,AAYI,UAZM,CAOR,SAAS,AAKN,SAAS,CAAC;EACT,KAAK,EAAE,iCAAiE;EACxE,gBAAgB,EAAE,WAAW;EAC7B,YAAY,EAAE,WAAW;CAC1B;;AAhBL,AAmBE,UAnBQ,CAmBR,SAAS,AAAA,OAAO;AAnBlB,UAAU,CAoBR,KAAK,GAAG,SAAS,CAAC;EAChB,KAAK,EAAE,qCAAyE;E3BzHlF,gBAAgB,E2B0HO,kCAAmE;CACzF;;AAQH,AACE,SADO,GACL,SAAS;AADb,SAAS,CAEP,SAAS,CAAC;EACR,IAAI,EAAE,QAAQ;EACd,UAAU,EAAE,MAAM;CACnB;;AAGH,AACE,cADY,GACV,SAAS;AADb,cAAc,CAEZ,SAAS,CAAC;EACR,UAAU,EAAE,CAAC;EACb,SAAS,EAAE,CAAC;EACZ,UAAU,EAAE,MAAM;CACnB;;AAGH,AAEE,SAFO,CAEP,SAAS,CAAC,SAAS;AADrB,cAAc,CACZ,SAAS,CAAC,SAAS,CAAC;EAClB,KAAK,EAAE,IAAI;CACZ;;AAQH,AACE,YADU,GACR,SAAS,CAAC;EACV,OAAO,EAAE,IAAI;CACd;;AAHH,AAIE,YAJU,GAIR,OAAO,CAAC;EACR,OAAO,EAAE,KAAK;CACf;;ACrKH,AAAA,OAAO,CAAC;EAEN,qBAA4B,CAAkB,EAAC;EAC/C,qBAA4B,CAAkB,OAAC;EAC/C,iBAAwB,CAAc,oBAAC;EACvC,uBAA8B,CAAoB,mBAAC;EACnD,0BAAiC,CAAuB,mBAAC;EACzD,wBAA+B,CAAqB,mBAAC;EACrD,2BAAkC,CAAwB,UAAC;EAC3D,4BAAmC,CAAyB,KAAC;EAC7D,2BAAkC,CAAwB,QAAC;EAC3D,uBAA8B,CAAoB,mBAAC;EACnD,6BAAoC,CAA0B,mBAAC;EAC/D,8BAAqC,CAA2B,OAAC;EACjE,6BAAoC,CAA0B,QAAC;EAC/D,6BAAoC,CAA0B,QAAC;EAC/D,6BAAoC,CAA0B,QAAC;EAC/D,2BAAkC,CAAwB,4OAAC;EAC3D,gCAAuC,CAA6B,mBAAC;EACrE,iCAAwC,CAA8B,SAAC;EACvE,+BAAsC,CAA4B,QAAC;EACnE,8BAAqC,CAA2B,6BAAC;EAGjE,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,aAAa;EAC9B,OAAO,EAAE,0BAAmD,CAAC,0BAAmD;CAuBjH;;AApDD,AAmCE,OAnCK,GA0CH,UAAU;AA1Cd,OAAO,GA2CH,gBAAgB,EA3CpB,OAAO,GlBSH,aAAa,EkBTjB,OAAO,GlBSH,aAAa,EkBTjB,OAAO,GlBSH,aAAa,EkBTjB,OAAO,GlBSH,aAAa,EkBTjB,OAAO,GlBSH,cAAc,CkB0BW;EACzB,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,OAAO;EAClB,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,aAAa;CAC/B;;AAmBH,AAAA,aAAa,CAAC;EACZ,WAAW,EAAE,gCAA+D;EAC5E,cAAc,EAAE,gCAA+D;EAC/E,YAAY,EAAE,iCAAiE;EjDkO3E,SAAY,EAvER,gCAA2B;EiDzJnC,KAAK,EAAE,4BAAuD;EAC9D,eAAe,EAAqC,IAAI;EACxD,WAAW,EAAE,MAAM;CAOpB;;AAdD,AASE,aATW,AASV,MAAM,EATT,aAAa,AAUV,MAAM,CAAC;EACN,KAAK,EAAE,kCAAmE;CAE3E;;AAQH,AAAA,WAAW,CAAC;EAEV,uBAA8B,CAAoB,EAAC;EACnD,uBAA8B,CAAoB,OAAC;EAEnD,yBAAgC,CAAsB,CAAC;EACvD,mBAA0B,CAAgB,uBAAC;EAC3C,yBAAgC,CAAsB,6BAAC;EACvD,4BAAmC,CAAyB,gCAAC;EAG7D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;EAChB,UAAU,EAAE,IAAI;CAUjB;;AAzBD,AAiBE,WAjBS,CAiBT,KAAK,GAAG,SAAS;AAjBnB,WAAW,CAkBT,SAAS,AAAA,OAAO,CAAC;EACf,KAAK,EAAE,6BAAyD;CACjE;;AApBH,AAsBE,WAtBS,CAsBT,cAAc,CAAC;EACb,QAAQ,EAAE,MAAM;CACjB;;AAQH,AAAA,YAAY,CAAC;EACX,WAAW,EpD46BuB,MAAK;EoD36BvC,cAAc,EpD26BoB,MAAK;EoD16BvC,KAAK,EAAE,sBAA2C;CAOnD;;AAVD,AAKE,YALU,CAKV,CAAC;AALH,YAAY,CAMV,CAAC,AAAA,MAAM;AANT,YAAY,CAOV,CAAC,AAAA,MAAM,CAAE;EACP,KAAK,EAAE,6BAAyD;CACjE;;AAYH,AAAA,gBAAgB,CAAC;EACf,UAAU,EAAE,IAAI;EAChB,SAAS,EAAE,CAAC;EAGZ,WAAW,EAAE,MAAM;CACpB;;AAGD,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,kCAAmE,CAAC,kCAAmE;EjDiJ5I,SAAY,EAvER,kCAA2B;EiDxEnC,WAAW,EAAE,CAAC;EACd,KAAK,EAAE,sBAA2C;EAClD,gBAAgB,EAAE,WAAW;EAC7B,MAAM,EAAE,sBAA2C,CAAC,KAAK,CAAC,qCAAyE;E9BtIjI,aAAa,E8BuIQ,sCAA2E;E3B1I9F,UAAU,E2B2IM,mCAAqE;CAW1F;;A3BlJK,MAAM,EAAE,sBAAsB,EAAE,MAAM;E2B+H5C,AAAA,eAAe,CAAC;I3B9HR,UAAU,EAAE,IAAI;G2BiJvB;;;AAnBD,AAUE,eAVa,AAUZ,MAAM,CAAC;EACN,eAAe,EAAE,IAAI;CACtB;;AAZH,AAcE,eAda,AAcZ,MAAM,CAAC;EACN,eAAe,EAAE,IAAI;EACrB,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAuE;CAC1F;;AAKH,AAAA,oBAAoB,CAAC;EACnB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,cAAc,EAAE,MAAM;EACtB,gBAAgB,EAAE,gCAA+D;EACjF,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,MAAM;EAC3B,eAAe,EAAE,IAAI;CACtB;;AAED,AAAA,kBAAkB,CAAC;EACjB,UAAU,EAAE,6BAAmD;EAC/D,UAAU,EAAE,IAAI;CACjB;;A/CzHG,MAAM,EAAE,SAAS,EAAE,KAAK;E+CoIvB,AAAD,iBAAI,CAAO;IAEP,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;GAuD9B;EA1DA,AAKG,iBALA,CAKA,WAAW,CAAC;IACV,cAAc,EAAE,GAAG;GAUpB;EAhBJ,AAQK,iBARF,CAKA,WAAW,CAGT,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;GACnB;EAVN,AAYK,iBAZF,CAKA,WAAW,CAOT,SAAS,CAAC;IACR,aAAa,EAAE,mCAAqE;IACpF,YAAY,EAAE,mCAAqE;GACpF;EAfN,AAkBG,iBAlBA,CAkBA,kBAAkB,CAAC;IACjB,QAAQ,EAAE,OAAO;GAClB;EApBJ,AAsBG,iBAtBA,CAsBA,gBAAgB,CAAC;IACf,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;GACjB;EAzBJ,AA2BG,iBA3BA,CA2BA,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;GACd;EA7BJ,AA+BG,iBA/BA,CA+BA,UAAU,CAAC;IAET,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;I3B5N9B,UAAU,E2B8Nc,IAAI;GAazB;EAxDJ,AA8CK,iBA9CF,CA+BA,UAAU,CAeR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAhDN,AAkDK,iBAlDF,CA+BA,UAAU,CAmBR,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;GACpB;;;A/C3LP,MAAM,EAAE,SAAS,EAAE,KAAK;E+CoIvB,AAAD,iBAAI,CAAO;IAEP,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;GAuD9B;EA1DA,AAKG,iBALA,CAKA,WAAW,CAAC;IACV,cAAc,EAAE,GAAG;GAUpB;EAhBJ,AAQK,iBARF,CAKA,WAAW,CAGT,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;GACnB;EAVN,AAYK,iBAZF,CAKA,WAAW,CAOT,SAAS,CAAC;IACR,aAAa,EAAE,mCAAqE;IACpF,YAAY,EAAE,mCAAqE;GACpF;EAfN,AAkBG,iBAlBA,CAkBA,kBAAkB,CAAC;IACjB,QAAQ,EAAE,OAAO;GAClB;EApBJ,AAsBG,iBAtBA,CAsBA,gBAAgB,CAAC;IACf,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;GACjB;EAzBJ,AA2BG,iBA3BA,CA2BA,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;GACd;EA7BJ,AA+BG,iBA/BA,CA+BA,UAAU,CAAC;IAET,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;I3B5N9B,UAAU,E2B8Nc,IAAI;GAazB;EAxDJ,AA8CK,iBA9CF,CA+BA,UAAU,CAeR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAhDN,AAkDK,iBAlDF,CA+BA,UAAU,CAmBR,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;GACpB;;;A/C3LP,MAAM,EAAE,SAAS,EAAE,KAAK;E+CoIvB,AAAD,iBAAI,CAAO;IAEP,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;GAuD9B;EA1DA,AAKG,iBALA,CAKA,WAAW,CAAC;IACV,cAAc,EAAE,GAAG;GAUpB;EAhBJ,AAQK,iBARF,CAKA,WAAW,CAGT,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;GACnB;EAVN,AAYK,iBAZF,CAKA,WAAW,CAOT,SAAS,CAAC;IACR,aAAa,EAAE,mCAAqE;IACpF,YAAY,EAAE,mCAAqE;GACpF;EAfN,AAkBG,iBAlBA,CAkBA,kBAAkB,CAAC;IACjB,QAAQ,EAAE,OAAO;GAClB;EApBJ,AAsBG,iBAtBA,CAsBA,gBAAgB,CAAC;IACf,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;GACjB;EAzBJ,AA2BG,iBA3BA,CA2BA,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;GACd;EA7BJ,AA+BG,iBA/BA,CA+BA,UAAU,CAAC;IAET,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;I3B5N9B,UAAU,E2B8Nc,IAAI;GAazB;EAxDJ,AA8CK,iBA9CF,CA+BA,UAAU,CAeR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAhDN,AAkDK,iBAlDF,CA+BA,UAAU,CAmBR,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;GACpB;;;A/C3LP,MAAM,EAAE,SAAS,EAAE,MAAM;E+CoIxB,AAAD,iBAAI,CAAO;IAEP,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;GAuD9B;EA1DA,AAKG,iBALA,CAKA,WAAW,CAAC;IACV,cAAc,EAAE,GAAG;GAUpB;EAhBJ,AAQK,iBARF,CAKA,WAAW,CAGT,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;GACnB;EAVN,AAYK,iBAZF,CAKA,WAAW,CAOT,SAAS,CAAC;IACR,aAAa,EAAE,mCAAqE;IACpF,YAAY,EAAE,mCAAqE;GACpF;EAfN,AAkBG,iBAlBA,CAkBA,kBAAkB,CAAC;IACjB,QAAQ,EAAE,OAAO;GAClB;EApBJ,AAsBG,iBAtBA,CAsBA,gBAAgB,CAAC;IACf,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;GACjB;EAzBJ,AA2BG,iBA3BA,CA2BA,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;GACd;EA7BJ,AA+BG,iBA/BA,CA+BA,UAAU,CAAC;IAET,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;I3B5N9B,UAAU,E2B8Nc,IAAI;GAazB;EAxDJ,AA8CK,iBA9CF,CA+BA,UAAU,CAeR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAhDN,AAkDK,iBAlDF,CA+BA,UAAU,CAmBR,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;GACpB;;;A/C3LP,MAAM,EAAE,SAAS,EAAE,MAAM;E+CoIxB,AAAD,kBAAK,CAAM;IAEP,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;GAuD9B;EA1DA,AAKG,kBALC,CAKD,WAAW,CAAC;IACV,cAAc,EAAE,GAAG;GAUpB;EAhBJ,AAQK,kBARD,CAKD,WAAW,CAGT,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;GACnB;EAVN,AAYK,kBAZD,CAKD,WAAW,CAOT,SAAS,CAAC;IACR,aAAa,EAAE,mCAAqE;IACpF,YAAY,EAAE,mCAAqE;GACpF;EAfN,AAkBG,kBAlBC,CAkBD,kBAAkB,CAAC;IACjB,QAAQ,EAAE,OAAO;GAClB;EApBJ,AAsBG,kBAtBC,CAsBD,gBAAgB,CAAC;IACf,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;GACjB;EAzBJ,AA2BG,kBA3BC,CA2BD,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;GACd;EA7BJ,AA+BG,kBA/BC,CA+BD,UAAU,CAAC;IAET,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE,kBAAkB;IAC9B,gBAAgB,EAAE,sBAAsB;IACxC,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,eAAe;I3B5N9B,UAAU,E2B8Nc,IAAI;GAazB;EAxDJ,AA8CK,kBA9CD,CA+BD,UAAU,CAeR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAhDN,AAkDK,kBAlDD,CA+BD,UAAU,CAmBR,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;GACpB;;;AA7DX,AAMI,cANU,CAMC;EAEP,SAAS,EAAE,MAAM;EACjB,eAAe,EAAE,UAAU;CAuD9B;;AAhEL,AAWQ,cAXM,CAWN,WAAW,CAAC;EACV,cAAc,EAAE,GAAG;CAUpB;;AAtBT,AAcU,cAdI,CAWN,WAAW,CAGT,cAAc,CAAC;EACb,QAAQ,EAAE,QAAQ;CACnB;;AAhBX,AAkBU,cAlBI,CAWN,WAAW,CAOT,SAAS,CAAC;EACR,aAAa,EAAE,mCAAqE;EACpF,YAAY,EAAE,mCAAqE;CACpF;;AArBX,AAwBQ,cAxBM,CAwBN,kBAAkB,CAAC;EACjB,QAAQ,EAAE,OAAO;CAClB;;AA1BT,AA4BQ,cA5BM,CA4BN,gBAAgB,CAAC;EACf,OAAO,EAAE,eAAe;EACxB,UAAU,EAAE,IAAI;CACjB;;AA/BT,AAiCQ,cAjCM,CAiCN,eAAe,CAAC;EACd,OAAO,EAAE,IAAI;CACd;;AAnCT,AAqCQ,cArCM,CAqCN,UAAU,CAAC;EAET,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,KAAK,EAAE,eAAe;EACtB,MAAM,EAAE,eAAe;EACvB,UAAU,EAAE,kBAAkB;EAC9B,gBAAgB,EAAE,sBAAsB;EACxC,MAAM,EAAE,YAAY;EACpB,SAAS,EAAE,eAAe;E3B5N9B,UAAU,E2B8Nc,IAAI;CAazB;;AA9DT,AAoDU,cApDI,CAqCN,UAAU,CAeR,iBAAiB,CAAC;EAChB,OAAO,EAAE,IAAI;CACd;;AAtDX,AAwDU,cAxDI,CAqCN,UAAU,CAmBR,eAAe,CAAC;EACd,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,CAAC;EACZ,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,OAAO;CACpB;;AAgBX,AAAA,YAAY,CAAC;EAEX,iBAAwB,CAAc,0BAAC;EACvC,uBAA8B,CAAoB,0BAAC;EACnD,0BAAiC,CAAuB,0BAAC;EACzD,wBAA+B,CAAqB,KAAC;EACrD,uBAA8B,CAAoB,KAAC;EACnD,6BAAoC,CAA0B,KAAC;EAC/D,gCAAuC,CAA6B,yBAAC;EACrE,2BAAkC,CAAwB,kPAAC;CAE5D;;ACjRD,AAAA,KAAK,CAAC;EAEJ,kBAAyB,CAAe,KAAC;EACzC,kBAAyB,CAAe,KAAC;EACzC,wBAA+B,CAAqB,OAAC;EACrD,sBAA6B,CAAmB,IAAC;EACjD,sBAA6B,CAAmB,mCAAC;EACjD,uBAA8B,CAAoB,SAAC;EACnD,oBAA2B,CAAiB,CAAC;EAC7C,6BAAoC,CAA0B,qBAAC;EAC/D,uBAA8B,CAAoB,OAAC;EACnD,uBAA8B,CAAoB,KAAC;EACnD,gBAAuB,CAAa,oBAAC;EACrC,mBAA0B,CAAgB,CAAC;EAC3C,gBAAuB,CAAa,CAAC;EACrC,eAAsB,CAAY,CAAC;EACnC,YAAmB,CAAS,KAAC;EAC7B,6BAAoC,CAA0B,KAAC;EAC/D,sBAA6B,CAAmB,QAAC;EAGjD,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EAAE,CAAC;EACZ,MAAM,EAAE,qBAAyC;EACjD,SAAS,EAAE,UAAU;EACrB,gBAAgB,EAAE,iBAAiC;EACnD,eAAe,EAAE,UAAU;EAC3B,MAAM,EAAE,2BAAqD,CAAC,KAAK,CAAC,2BAAqD;E/BdvH,aAAa,E+BeQ,4BAAuD;CA6B/E;;AA3DD,AAiCE,KAjCG,GAiCD,EAAE,CAAC;EACH,YAAY,EAAE,CAAC;EACf,WAAW,EAAE,CAAC;CACf;;AApCH,AAsCE,KAtCG,GAsCD,WAAW,CAAC;EACZ,UAAU,EAAE,OAAO;EACnB,aAAa,EAAE,OAAO;CAWvB;;AAnDH,AA0CI,KA1CC,GAsCD,WAAW,AAIV,YAAY,CAAC;EACZ,gBAAgB,EAAE,CAAC;E/BnBrB,sBAAsB,E+BoBO,kCAAmE;E/BnBhG,uBAAuB,E+BmBM,kCAAmE;CAC/F;;AA7CL,AA+CI,KA/CC,GAsCD,WAAW,AASV,WAAW,CAAE;EACZ,mBAAmB,EAAE,CAAC;E/BVxB,0BAA0B,E+BWM,kCAAmE;E/BVnG,yBAAyB,E+BUO,kCAAmE;CAClG;;AAlDL,AAuDE,KAvDG,GAuDD,YAAY,GAAG,WAAW;AAvD9B,KAAK,GAwDD,WAAW,GAAG,YAAY,CAAC;EAC3B,UAAU,EAAE,CAAC;CACd;;AAGH,AAAA,UAAU,CAAC;EAGT,IAAI,EAAE,QAAQ;EACd,OAAO,EAAE,uBAA6C,CAAC,uBAA6C;EACpG,KAAK,EAAE,oBAAuC;CAC/C;;AAED,AAAA,WAAW,CAAC;EACV,aAAa,EAAE,6BAAyD;CACzE;;AAED,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,yCAAqE;EACjF,aAAa,EAAE,CAAC;CACjB;;AAED,AAAA,UAAU,AAAA,WAAW,CAAC;EACpB,aAAa,EAAE,CAAC;CACjB;;AAED,AAKE,UALQ,GAKN,UAAU,CAAC;EACX,WAAW,EAAE,uBAA6C;CAC3D;;AAOH,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,4BAAuD,CAAC,4BAAuD;EACxH,aAAa,EAAE,CAAC;EAChB,KAAK,EAAE,wBAA+C;EACtD,gBAAgB,EAAE,qBAAyC;EAC3D,aAAa,EAAE,2BAAqD,CAAC,KAAK,CAAC,2BAAqD;CAKjI;;AAVD,AAOE,YAPU,AAOT,YAAY,CAAC;E/BxFZ,aAAa,E+ByFU,kCAAmE,CAAC,kCAAmE,CAAC,CAAC,CAAC,CAAC;CACnK;;AAGH,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,4BAAuD,CAAC,4BAAuD;EACxH,KAAK,EAAE,wBAA+C;EACtD,gBAAgB,EAAE,qBAAyC;EAC3D,UAAU,EAAE,2BAAqD,CAAC,KAAK,CAAC,2BAAqD;CAK9H;;AATD,AAME,YANU,AAMT,WAAW,CAAC;E/BnGX,aAAa,E+BoGU,CAAC,CAAC,CAAC,CAAC,kCAAmE,CAAC,kCAAmE;CACnK;;AAQH,AAAA,iBAAiB,CAAC;EAChB,YAAY,EAAE,wCAAmE;EACjF,aAAa,EAAE,uCAAkE;EACjF,WAAW,EAAE,wCAAmE;EAChF,aAAa,EAAE,CAAC;CAMjB;;AAVD,AAME,iBANe,CAMf,SAAS,AAAA,OAAO,CAAC;EACf,gBAAgB,EAAE,iBAAiC;EACnD,mBAAmB,EAAE,iBAAiC;CACvD;;AAGH,AAAA,kBAAkB,CAAC;EACjB,YAAY,EAAE,wCAAmE;EACjF,WAAW,EAAE,wCAAmE;CACjF;;AAGD,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,kCAAmE;E/BrI1E,aAAa,E+BsIQ,kCAAmE;CAC3F;;AAED,AAAA,SAAS;AACT,aAAa;AACb,gBAAgB,CAAC;EACf,KAAK,EAAE,IAAI;CACZ;;AAED,AAAA,SAAS;AACT,aAAa,CAAC;E/BvIV,sBAAsB,E+BwIG,kCAAmE;E/BvI5F,uBAAuB,E+BuIE,kCAAmE;CAC/F;;AAED,AAAA,SAAS;AACT,gBAAgB,CAAC;E/B9Hb,0BAA0B,E+B+HE,kCAAmE;E/B9H/F,yBAAyB,E+B8HG,kCAAmE;CAClG;;AAOD,AAGE,WAHS,GAGP,KAAK,CAAC;EACN,aAAa,EAAE,2BAAqD;CACrE;;AhDvHC,MAAM,EAAE,SAAS,EAAE,KAAK;EgDkH5B,AAAA,WAAW,CAAC;IAQR,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,QAAQ;GA+CtB;EAxDD,AAGE,WAHS,GAGP,KAAK,CASG;IAEN,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,CAAC;GAuCjB;EAtDL,AAiBM,WAjBK,GAYL,KAAK,GAKH,KAAK,CAAC;IACN,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;GACf;EApBP,AAwBQ,WAxBG,GAYL,KAAK,AAYF,IAAK,CrBnIN,WAAW,EqBmIQ;I/BtKvB,uBAAuB,E+BuKU,CAAC;I/BtKlC,0BAA0B,E+BsKO,CAAC;GAY7B;EArCT,AA2BU,WA3BC,GAYL,KAAK,AAYF,IAAK,CrBnIN,WAAW,EqBsIT,aAAa;EA3BvB,WAAW,GAYL,KAAK,AAYF,IAAK,CrBnIN,WAAW,EqBuIT,YAAY,CAAC;IAEX,uBAAuB,EAAE,CAAC;GAC3B;EA/BX,AAgCU,WAhCC,GAYL,KAAK,AAYF,IAAK,CrBnIN,WAAW,EqB2IT,gBAAgB;EAhC1B,WAAW,GAYL,KAAK,AAYF,IAAK,CrBnIN,WAAW,EqB4IT,YAAY,CAAC;IAEX,0BAA0B,EAAE,CAAC;GAC9B;EApCX,AAuCQ,WAvCG,GAYL,KAAK,AA2BF,IAAK,CjB1HL,YAAY,EiB0HO;I/BvKxB,sBAAsB,E+BwKa,CAAC;I/BvKpC,yBAAyB,E+BuKU,CAAC;GAY/B;EApDT,AA0CU,WA1CC,GAYL,KAAK,AA2BF,IAAK,CjB1HL,YAAY,EiB6HX,aAAa;EA1CvB,WAAW,GAYL,KAAK,AA2BF,IAAK,CjB1HL,YAAY,EiB8HX,YAAY,CAAC;IAEX,sBAAsB,EAAE,CAAC;GAC1B;EA9CX,AA+CU,WA/CC,GAYL,KAAK,AA2BF,IAAK,CjB1HL,YAAY,EiBkIX,gBAAgB;EA/C1B,WAAW,GAYL,KAAK,AA2BF,IAAK,CjB1HL,YAAY,EiBmIX,YAAY,CAAC;IAEX,yBAAyB,EAAE,CAAC;GAC7B;;;AChOX,AAAA,UAAU,CAAC;EAET,oBAA2B,CAAiB,QAAC;EAC7C,iBAAwB,CAAc,KAAC;EACvC,yBAAgC,CAAsB,oJAAC;EACvD,2BAAkC,CAAwB,uBAAC;EAC3D,2BAAkC,CAAwB,IAAC;EAC3D,4BAAmC,CAAyB,SAAC;EAC7D,kCAAyC,CAA+B,qBAAC;EACzE,4BAAmC,CAAyB,QAAC;EAC7D,4BAAmC,CAAyB,KAAC;EAC7D,wBAA+B,CAAqB,QAAC;EACrD,qBAA4B,CAAkB,uBAAC;EAC/C,uBAA8B,CAAoB,gRAAC;EACnD,6BAAoC,CAA0B,QAAC;EAC/D,iCAAwC,CAA8B,gBAAC;EACvE,kCAAyC,CAA+B,2BAAC;EACzE,8BAAqC,CAA2B,gRAAC;EACjE,qCAA4C,CAAkC,QAAC;EAC/E,mCAA0C,CAAgC,uCAAC;EAC3E,6BAAoC,CAA0B,QAAC;EAC/D,6BAAoC,CAA0B,KAAC;EAC/D,2BAAkC,CAAwB,QAAC;EAC3D,wBAA+B,CAAqB,QAAC;CAEtD;;AAED,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,iCAAiE,CAAC,iCAAiE;EnDiQxI,SAAY,EAvER,IAA2B;EmDxLnC,KAAK,EAAE,6BAAyD;EAChE,UAAU,EAAE,IAAI;EAChB,gBAAgB,EAAE,0BAAmD;EACrE,MAAM,EAAE,CAAC;EhCtBP,aAAa,EgCuBQ,CAAC;EACxB,eAAe,EAAE,IAAI;E7B3BjB,UAAU,E6B4BM,8BAA2D;CAoChF;;A7B5DK,MAAM,EAAE,sBAAsB,EAAE,MAAM;E6BW5C,AAAA,iBAAiB,CAAC;I7BVV,UAAU,EAAE,IAAI;G6B2DvB;;;AAjDD,AAeE,iBAfe,AAed,IAAK,CAAA,UAAU,EAAE;EAChB,KAAK,EAAE,gCAA+D;EACtE,gBAAgB,EAAE,6BAAyD;EAC3E,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,2CAA0E,CAAC,CAAC,CAAC,gCAA+D;CAMjK;;AAxBH,AAoBI,iBApBa,AAed,IAAK,CAAA,UAAU,CAKb,OAAO,CAAC;EACP,gBAAgB,EAAE,mCAAqE;EACvF,SAAS,EAAE,sCAA2E;CACvF;;AAvBL,AA2BE,iBA3Be,AA2Bd,OAAO,CAAC;EACP,WAAW,EAAE,CAAC;EACd,KAAK,EAAE,kCAAmE;EAC1E,MAAM,EAAE,kCAAmE;EAC3E,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,EAAE;EACX,gBAAgB,EAAE,4BAAuD;EACzE,iBAAiB,EAAE,SAAS;EAC5B,eAAe,EAAE,kCAAmE;E7BlDlF,UAAU,E6BmDQ,uCAA6E;CAClG;;A7BhDG,MAAM,EAAE,sBAAsB,EAAE,MAAM;E6BW5C,AA2BE,iBA3Be,AA2Bd,OAAO,CAAC;I7BrCH,UAAU,EAAE,IAAI;G6B+CrB;;;AArCH,AAuCE,iBAvCe,AAuCd,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;CACX;;AAzCH,AA2CE,iBA3Ce,AA2Cd,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;EACV,YAAY,EAAE,0CAAmF;EACjG,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,wCAA+E;CAC5F;;AAGH,AAAA,iBAAiB,CAAC;EAChB,aAAa,EAAE,CAAC;CACjB;;AAED,AAAA,eAAe,CAAC;EACd,KAAK,EAAE,yBAAiD;EACxD,gBAAgB,EAAE,sBAA2C;EAC7D,MAAM,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;CA4B9I;;AA/BD,AAKE,eALa,AAKZ,cAAc,CAAC;EhC/Dd,sBAAsB,EgCgEK,iCAAiE;EhC/D5F,uBAAuB,EgC+DI,iCAAiE;CAK7F;;AAXH,AAQI,eARW,AAKZ,cAAc,CAGb,iBAAiB,CAAC;EhClElB,sBAAsB,EgCmEO,uCAA6E;EhClE1G,uBAAuB,EgCkEM,uCAA6E;CACzG;;AAVL,AAaE,eAba,AAaZ,IAAK,CAAA,cAAc,EAAE;EACpB,UAAU,EAAE,CAAC;CACd;;AAfH,AAkBE,eAlBa,AAkBZ,aAAa,CAAC;EhC9Db,0BAA0B,EgC+DI,iCAAiE;EhC9D/F,yBAAyB,EgC8DK,iCAAiE;CAWhG;;AA9BH,AAsBM,eAtBS,AAkBZ,aAAa,CAGZ,iBAAiB,AACd,UAAU,CAAC;EhClEd,0BAA0B,EgCmEQ,uCAA6E;EhClE/G,yBAAyB,EgCkES,uCAA6E;CAC5G;;AAxBP,AA2BI,eA3BW,AAkBZ,aAAa,CASZ,mBAAmB,CAAC;EhCvEpB,0BAA0B,EgCwEM,iCAAiE;EhCvEjG,yBAAyB,EgCuEO,iCAAiE;CAChG;;AAIL,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,kCAAmE,CAAC,kCAAmE;CACjJ;;AAOD,AACE,gBADc,CACd,mBAAmB,CAAC;EAClB,YAAY,EAAE,CAAC;CAChB;;AAHH,AAKE,gBALc,CAKd,eAAe,CAAC;EACd,YAAY,EAAE,CAAC;EACf,WAAW,EAAE,CAAC;EhCpHd,aAAa,EgCqHU,CAAC;CAWzB;;AAnBH,AAUI,gBAVY,CAKd,eAAe,AAKZ,YAAY,CAAC;EAAE,UAAU,EAAE,CAAC;CAAI;;AAVrC,AAWI,gBAXY,CAKd,eAAe,AAMZ,WAAW,CAAC;EAAE,aAAa,EAAE,CAAC;CAAI;;AAXvC,AAcM,gBAdU,CAKd,eAAe,CAQb,iBAAiB,EAbrB,gBAAgB,CAKd,eAAe,CAQb,iBAAiB,AAEd,UAAU,CAAC;EhC5Hd,aAAa,EgC6Hc,CAAC;CACzB;;ACjJP,AAAA,WAAW,CAAC;EAEV,yBAAgC,CAAsB,EAAC;EACvD,yBAAgC,CAAsB,EAAC;EACvD,6BAAoC,CAA0B,KAAC;EAE/D,kBAAyB,CAAe,CAAC;EACzC,6BAAoC,CAA0B,CAAC;EAC/D,6BAAoC,CAA0B,QAAC;EAC/D,8BAAqC,CAA2B,OAAC;EACjE,iCAAwC,CAA8B,QAAC;EAGvE,OAAO,EAAE,IAAI;EACb,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,8BAA2D,CAAC,8BAA2D;EAChI,aAAa,EAAE,kCAAmE;EpDqR9E,SAAY,EAvER,8BAA2B;EoD5MnC,UAAU,EAAE,IAAI;EAChB,gBAAgB,EAAE,uBAA6C;EjCA7D,aAAa,EiCCQ,kCAAmE;CAC3F;;AAED,AAEE,gBAFc,GAEZ,gBAAgB,CAAC;EACjB,YAAY,EAAE,mCAAqE;CAQpF;;AAXH,AAKI,gBALY,GAEZ,gBAAgB,AAGf,QAAQ,CAAC;EACR,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,mCAAqE;EACpF,KAAK,EAAE,kCAAmE;EAC1E,OAAO,EAAE,iCAAwF,CAAC,OAAY,CAAC,iCAAgG,CAAC,EAAO;CACxN;;AAVL,AAaE,gBAbc,AAab,OAAO,CAAC;EACP,KAAK,EAAE,sCAA2E;CACnF;;ACtCH,AAAA,WAAW,CAAC;EAEV,yBAAgC,CAAsB,QAAC;EACvD,yBAAgC,CAAsB,SAAC;ErDkSnD,yBAAY,EAvER,IAA2B;EqDzNnC,qBAA4B,CAAkB,qBAAC;EAC/C,kBAAyB,CAAe,KAAC;EACzC,4BAAmC,CAAyB,IAAC;EAC7D,4BAAmC,CAAyB,QAAC;EAC7D,6BAAoC,CAA0B,SAAC;EAC/D,2BAAkC,CAAwB,2BAAC;EAC3D,wBAA+B,CAAqB,QAAC;EACrD,kCAAyC,CAA+B,QAAC;EACzE,2BAAkC,CAAwB,2BAAC;EAC3D,wBAA+B,CAAqB,QAAC;EACrD,gCAAuC,CAA6B,uCAAC;EACrE,4BAAmC,CAAyB,KAAC;EAC7D,yBAAgC,CAAsB,QAAC;EACvD,mCAA0C,CAAgC,QAAC;EAC3E,8BAAqC,CAA2B,QAAC;EACjE,2BAAkC,CAAwB,KAAC;EAC3D,qCAA4C,CAAkC,QAAC;EAG/E,OAAO,EAAE,IAAI;EtCpBb,YAAY,EAAE,CAAC;EACf,UAAU,EAAE,IAAI;CsCqBjB;;AAED,AAAA,UAAU,CAAC;EACT,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,8BAA2D,CAAC,8BAA2D;ErDsQ5H,SAAY,EAvER,8BAA2B;EqD7LnC,KAAK,EAAE,0BAAmD;EAC1D,eAAe,EAAqC,IAAI;EACxD,gBAAgB,EAAE,uBAA6C;EAC/D,MAAM,EAAE,iCAAiE,CAAC,KAAK,CAAC,iCAAiE;E/BpB7I,UAAU,EzBirCqB,KAAK,CAAC,KAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAI,CAAC,WAAW,EAAE,YAAY,CAAC,KAAI,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI,CAAC,WAAW;CwD3nCzJ;;A/BlDK,MAAM,EAAE,sBAAsB,EAAE,MAAM;E+BQ5C,AAAA,UAAU,CAAC;I/BPH,UAAU,EAAE,IAAI;G+BiDvB;;;AA1CD,AAWE,UAXQ,AAWP,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,gCAA+D;EAEtE,gBAAgB,EAAE,6BAAyD;EAC3E,YAAY,EAAE,uCAA6E;CAC5F;;AAjBH,AAmBE,UAnBQ,AAmBP,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,gCAA+D;EACtE,gBAAgB,EAAE,6BAAyD;EAC3E,OAAO,ExDgoCyB,CAAC;EwD/nCjC,UAAU,EAAE,qCAAyE;CACtF;;AAzBH,AA2BE,UA3BQ,AA2BP,OAAO;AACR,OAAO,GA5BT,UAAU,CA4BI;EACV,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,iCAAiE;EhCtD1E,gBAAgB,EgCuDO,8BAA2D;EAChF,YAAY,EAAE,wCAA+E;CAC9F;;AAjCH,AAmCE,UAnCQ,AAmCP,SAAS;AACV,SAAS,GApCX,UAAU,CAoCM;EACZ,KAAK,EAAE,mCAAqE;EAC5E,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,gCAA+D;EACjF,YAAY,EAAE,0CAAmF;CAClG;;AAGH,AACE,UADQ,AACP,IAAK,CpBqBC,YAAY,EoBrBC,UAAU,CAAC;EAC7B,WAAW,ExDmmCqB,IAA+B;CwDlmChE;;AAHH,AAOM,UAPI,AAML,YAAY,CACX,UAAU,CAAC;ElC9Bb,sBAAsB,EkC+BW,kCAAmE;ElC9BpG,yBAAyB,EkC8BQ,kCAAmE;CACjG;;AATP,AAaM,UAbI,AAYL,WAAW,CACV,UAAU,CAAC;ElClDb,uBAAuB,EkCmDQ,kCAAmE;ElClDlG,0BAA0B,EkCkDK,kCAAmE;CAC/F;;AAeP,AAAA,cAAc,CAAC;EvClGb,yBAAgC,CAAsB,OAAC;EACvD,yBAAgC,CAAsB,QAAC;EdgSnD,yBAAY,EAvER,OAA2B;EcvNnC,6BAAoC,CAA0B,OAAC;CuCiGhE;;AAED,AAAA,cAAc,CAAC;EvCtGb,yBAAgC,CAAsB,OAAC;EACvD,yBAAgC,CAAsB,QAAC;EdgSnD,yBAAY,EAvER,QAA2B;EcvNnC,6BAAoC,CAA0B,QAAC;CuCqGhE;;ACvGD,AAAA,MAAM,CAAC;EAEL,oBAA2B,CAAiB,OAAC;EAC7C,oBAA2B,CAAiB,OAAC;EtD6RzC,oBAAY,EAvER,MAA2B;EsDpNnC,sBAA6B,CAAmB,IAAC;EACjD,gBAAuB,CAAa,KAAC;EACrC,wBAA+B,CAAqB,SAAC;EAGrD,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,yBAAiD,CAAC,yBAAiD;EtDqRxG,SAAY,EAvER,yBAA2B;EsD5MnC,WAAW,EAAE,2BAAqD;EAClE,WAAW,EAAE,CAAC;EACd,KAAK,EAAE,qBAAyC;EAChD,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,QAAQ;EnCJtB,aAAa,EmCKQ,6BAAyD;CAOjF;;AA1BD,AAuBE,MAvBI,AAuBH,MAAM,CAAC;EACN,OAAO,EAAE,IAAI;CACd;;AAIH,AAAA,IAAI,CAAC,MAAM,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;CACV;;ACjCD,AAAA,MAAM,CAAC;EAEL,aAAoB,CAAU,YAAC;EAC/B,oBAA2B,CAAiB,KAAC;EAC7C,oBAA2B,CAAiB,KAAC;EAC7C,wBAA+B,CAAqB,KAAC;EACrD,gBAAuB,CAAa,QAAC;EACrC,uBAA8B,CAAoB,YAAC;EACnD,iBAAwB,CAAc,uCAAC;EACvC,wBAA+B,CAAqB,SAAC;EAGrD,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,yBAAiD,CAAC,yBAAiD;EAC5G,aAAa,EAAE,6BAAyD;EACxE,KAAK,EAAE,qBAAyC;EAChD,gBAAgB,EAAE,kBAAmC;EACrD,MAAM,EAAE,sBAA2C;EpCFjD,aAAa,EoCGQ,6BAAyD;CACjF;;AAGD,AAAA,cAAc,CAAC;EAEb,KAAK,EAAE,OAAO;CACf;;AAGD,AAAA,WAAW,CAAC;EACV,WAAW,E1D8gBiB,GAAG;C0D7gBhC;;AAOD,AAAA,kBAAkB,CAAC;EACjB,aAAa,E1D43CiB,IAAoB;C0Dl3CnD;;AAXD,AAIE,kBAJgB,CAIhB,UAAU,CAAC;EACT,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,OAAO,E1D8W+B,CAAC;E0D7WvC,OAAO,EAAE,OAAuB,C1DmU3B,IAAI;C0DlUV;;AAeD,AAAA,cAAc,CAAG;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,c6CwDc,C7CxDd,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,gBAAgB,CAAC;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,gB6CwDgB,C7CxDhB,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,cAAc,CAAG;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,c6CwDc,C7CxDd,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,WAAW,CAAM;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,W6CwDW,C7CxDX,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,cAAc,CAAG;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,c6CwDc,C7CxDd,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,aAAa,CAAI;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,a6CwDa,C7CxDb,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,YAAY,CAAK;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,Y6CwDY,C7CxDZ,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A6CsDD,AAAA,WAAW,CAAM;E7ChEjB,gBAAuB,CAAa,QAAC;EACrC,aAAoB,CAAU,QAAC;EAC/B,uBAA8B,CAAoB,QAAC;C6CgElD;;AAFD,A7CxDA,W6CwDW,C7CxDX,WAAW,CAAC;EACV,KAAK,EdwMC,OAA2B;CcvMlC;;A8CRD,UAAU,CAAV,oBAAU;EACR,EAAE;IAAG,qBAAqB,E3Dw6CM,IAAI;;;;A2Dn6CxC,AAAA,SAAS,CAAC;EAER,oBAA2B,CAAiB,KAAC;ExDyRzC,uBAAY,EAvER,OAA2B;EwDhNnC,gBAAuB,CAAa,QAAC;EACrC,2BAAkC,CAAwB,SAAC;EAC3D,wBAA+B,CAAqB,qCAAC;EACrD,uBAA8B,CAAoB,KAAC;EACnD,oBAA2B,CAAiB,QAAC;EAC7C,4BAAmC,CAAyB,gBAAC;EAG7D,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,yBAAiD;EACzD,QAAQ,EAAE,MAAM;ExD6QZ,SAAY,EAvER,4BAA2B;EwDpMnC,gBAAgB,EAAE,qBAAyC;ErCPzD,aAAa,EqCQQ,gCAA+D;CAEvF;;AAED,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,QAAQ,EAAE,MAAM;EAChB,KAAK,EAAE,4BAAuD;EAC9D,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,gBAAgB,EAAE,yBAAiD;ElCvB/D,UAAU,EkCwBM,iCAAiE;CACtF;;AlCrBK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EkCW5C,AAAA,aAAa,CAAC;IlCVN,UAAU,EAAE,IAAI;GkCoBvB;;;AAED,AAAA,qBAAqB,CAAC;EnCCpB,gBAAgB,EAAE,mLAA2H;EmCC7I,eAAe,EAAE,yBAAiD,CAAC,yBAAiD;CACrH;;AAGC,AAAA,sBAAsB,CAAC;EACrB,SAAS,E3Dk4CuB,EAAE,CAAC,MAAM,CAAC,QAAQ,C2Dl4CR,oBAAoB;CAO/D;;AAJG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EAJ1C,AAAA,sBAAsB,CAAC;IAKjB,SAAS,EAAE,IAAI;GAGpB;;;ACrDH,AAAA,WAAW,CAAC;EAEV,qBAA4B,CAAkB,QAAC;EAC/C,kBAAyB,CAAe,KAAC;EACzC,4BAAmC,CAAyB,qBAAC;EAC7D,4BAAmC,CAAyB,IAAC;EAC7D,6BAAoC,CAA0B,SAAC;EAC/D,8BAAqC,CAA2B,KAAC;EACjE,8BAAqC,CAA2B,OAAC;EACjE,4BAAmC,CAAyB,QAAC;EAC7D,kCAAyC,CAA+B,QAAC;EACzE,+BAAsC,CAA4B,QAAC;EACnE,mCAA0C,CAAgC,QAAC;EAC3E,gCAAuC,CAA6B,QAAC;EACrE,8BAAqC,CAA2B,QAAC;EACjE,2BAAkC,CAAwB,KAAC;EAC3D,4BAAmC,CAAyB,KAAC;EAC7D,yBAAgC,CAAsB,QAAC;EACvD,mCAA0C,CAAgC,QAAC;EAG3E,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EAGtB,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,CAAC;EtCXd,aAAa,EsCYQ,kCAAmE;CAC3F;;AAED,AAAA,oBAAoB,CAAC;EACnB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,OAAO;CAOvB;;AATD,AAIE,oBAJkB,GAIhB,gBAAgB,AAAA,QAAQ,CAAC;EAEzB,OAAO,EAAE,sBAAsB,CAAC,IAAI;EACpC,iBAAiB,EAAE,OAAO;CAC3B;;AAQH,AAAA,uBAAuB,CAAC;EACtB,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,iCAAiE;EACxE,UAAU,EAAE,OAAO;CAepB;;AAlBD,AAME,uBANqB,AAMpB,MAAM,EANT,uBAAuB,AAOpB,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,uCAA6E;EACpF,eAAe,EAAE,IAAI;EACrB,gBAAgB,EAAE,oCAAuE;CAC1F;;AAZH,AAcE,uBAdqB,AAcpB,OAAO,CAAC;EACP,KAAK,EAAE,wCAA+E;EACtF,gBAAgB,EAAE,qCAAyE;CAC5F;;AAOH,AAAA,gBAAgB,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,mCAAqE,CAAC,mCAAqE;EACpJ,KAAK,EAAE,0BAAmD;EAC1D,eAAe,EAAqC,IAAI;EACxD,gBAAgB,EAAE,uBAA6C;EAC/D,MAAM,EAAE,iCAAiE,CAAC,KAAK,CAAC,iCAAiE;CAkClJ;;AAzCD,AASE,gBATc,AASb,YAAY,CAAC;EtCvDZ,sBAAsB,EsCwDK,OAAO;EtCvDlC,uBAAuB,EsCuDI,OAAO;CACnC;;AAXH,AAaE,gBAbc,AAab,WAAW,CAAC;EtC7CX,0BAA0B,EsC8CI,OAAO;EtC7CrC,yBAAyB,EsC6CK,OAAO;CACtC;;AAfH,AAiBE,gBAjBc,AAiBb,SAAS,EAjBZ,gBAAgB,AAkBb,SAAS,CAAC;EACT,KAAK,EAAE,mCAAqE;EAC5E,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,gCAA+D;CAClF;;AAtBH,AAyBE,gBAzBc,AAyBb,OAAO,CAAC;EACP,OAAO,EAAE,CAAC;EACV,KAAK,EAAE,iCAAiE;EACxE,gBAAgB,EAAE,8BAA2D;EAC7E,YAAY,EAAE,wCAA+E;CAC9F;;AA9BH,AAiCE,gBAjCc,GAiCV,gBAAgB,CAAC;EACnB,gBAAgB,EAAE,CAAC;CAMpB;;AAxCH,AAoCI,gBApCY,GAiCV,gBAAgB,AAGjB,OAAO,CAAC;EACP,UAAU,EAAE,4CAA4E;EACxF,gBAAgB,EAAE,iCAAiE;CACpF;;AAYD,AAAA,sBAAsB,CAAU;EAC9B,cAAc,EAAE,GAAG;CA2BpB;;AA5BD,AAII,sBAJkB,GAGlB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;EtCvDnC,yBAAyB,EsCwDiB,kCAAmE;EtCpE7G,uBAAuB,EsCqEc,CAAC;CACjC;;AAPL,AASI,sBATkB,GAGlB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;EtCxEnC,uBAAuB,EsCyEc,kCAAmE;EtC7DxG,yBAAyB,EsC8DiB,CAAC;CACtC;;AAZL,AAcI,sBAdkB,GAGlB,gBAAgB,AAWf,OAAO,CAAC;EACP,UAAU,EAAE,CAAC;CACd;;AAhBL,AAkBI,sBAlBkB,GAGlB,gBAAgB,GAed,gBAAgB,CAAC;EACjB,gBAAgB,EAAE,iCAAiE;EACnF,iBAAiB,EAAE,CAAC;CAMrB;;AA1BL,AAsBM,sBAtBgB,GAGlB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;EACP,WAAW,EAAE,4CAA4E;EACzF,iBAAiB,EAAE,iCAAiE;CACrF;;AvDvFP,MAAM,EAAE,SAAS,EAAE,KAAK;EuD8DxB,AAAA,yBAAyB,CAAO;IAC9B,cAAc,EAAE,GAAG;GA2BpB;EA5BD,AAII,yBAJqB,GAGrB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;ItCvDnC,yBAAyB,EsCwDiB,kCAAmE;ItCpE7G,uBAAuB,EsCqEc,CAAC;GACjC;EAPL,AASI,yBATqB,GAGrB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;ItCxEnC,uBAAuB,EsCyEc,kCAAmE;ItC7DxG,yBAAyB,EsC8DiB,CAAC;GACtC;EAZL,AAcI,yBAdqB,GAGrB,gBAAgB,AAWf,OAAO,CAAC;IACP,UAAU,EAAE,CAAC;GACd;EAhBL,AAkBI,yBAlBqB,GAGrB,gBAAgB,GAed,gBAAgB,CAAC;IACjB,gBAAgB,EAAE,iCAAiE;IACnF,iBAAiB,EAAE,CAAC;GAMrB;EA1BL,AAsBM,yBAtBmB,GAGrB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;IACP,WAAW,EAAE,4CAA4E;IACzF,iBAAiB,EAAE,iCAAiE;GACrF;;;AvDvFP,MAAM,EAAE,SAAS,EAAE,KAAK;EuD8DxB,AAAA,yBAAyB,CAAO;IAC9B,cAAc,EAAE,GAAG;GA2BpB;EA5BD,AAII,yBAJqB,GAGrB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;ItCvDnC,yBAAyB,EsCwDiB,kCAAmE;ItCpE7G,uBAAuB,EsCqEc,CAAC;GACjC;EAPL,AASI,yBATqB,GAGrB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;ItCxEnC,uBAAuB,EsCyEc,kCAAmE;ItC7DxG,yBAAyB,EsC8DiB,CAAC;GACtC;EAZL,AAcI,yBAdqB,GAGrB,gBAAgB,AAWf,OAAO,CAAC;IACP,UAAU,EAAE,CAAC;GACd;EAhBL,AAkBI,yBAlBqB,GAGrB,gBAAgB,GAed,gBAAgB,CAAC;IACjB,gBAAgB,EAAE,iCAAiE;IACnF,iBAAiB,EAAE,CAAC;GAMrB;EA1BL,AAsBM,yBAtBmB,GAGrB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;IACP,WAAW,EAAE,4CAA4E;IACzF,iBAAiB,EAAE,iCAAiE;GACrF;;;AvDvFP,MAAM,EAAE,SAAS,EAAE,KAAK;EuD8DxB,AAAA,yBAAyB,CAAO;IAC9B,cAAc,EAAE,GAAG;GA2BpB;EA5BD,AAII,yBAJqB,GAGrB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;ItCvDnC,yBAAyB,EsCwDiB,kCAAmE;ItCpE7G,uBAAuB,EsCqEc,CAAC;GACjC;EAPL,AASI,yBATqB,GAGrB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;ItCxEnC,uBAAuB,EsCyEc,kCAAmE;ItC7DxG,yBAAyB,EsC8DiB,CAAC;GACtC;EAZL,AAcI,yBAdqB,GAGrB,gBAAgB,AAWf,OAAO,CAAC;IACP,UAAU,EAAE,CAAC;GACd;EAhBL,AAkBI,yBAlBqB,GAGrB,gBAAgB,GAed,gBAAgB,CAAC;IACjB,gBAAgB,EAAE,iCAAiE;IACnF,iBAAiB,EAAE,CAAC;GAMrB;EA1BL,AAsBM,yBAtBmB,GAGrB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;IACP,WAAW,EAAE,4CAA4E;IACzF,iBAAiB,EAAE,iCAAiE;GACrF;;;AvDvFP,MAAM,EAAE,SAAS,EAAE,MAAM;EuD8DzB,AAAA,yBAAyB,CAAO;IAC9B,cAAc,EAAE,GAAG;GA2BpB;EA5BD,AAII,yBAJqB,GAGrB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;ItCvDnC,yBAAyB,EsCwDiB,kCAAmE;ItCpE7G,uBAAuB,EsCqEc,CAAC;GACjC;EAPL,AASI,yBATqB,GAGrB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;ItCxEnC,uBAAuB,EsCyEc,kCAAmE;ItC7DxG,yBAAyB,EsC8DiB,CAAC;GACtC;EAZL,AAcI,yBAdqB,GAGrB,gBAAgB,AAWf,OAAO,CAAC;IACP,UAAU,EAAE,CAAC;GACd;EAhBL,AAkBI,yBAlBqB,GAGrB,gBAAgB,GAed,gBAAgB,CAAC;IACjB,gBAAgB,EAAE,iCAAiE;IACnF,iBAAiB,EAAE,CAAC;GAMrB;EA1BL,AAsBM,yBAtBmB,GAGrB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;IACP,WAAW,EAAE,4CAA4E;IACzF,iBAAiB,EAAE,iCAAiE;GACrF;;;AvDvFP,MAAM,EAAE,SAAS,EAAE,MAAM;EuD8DzB,AAAA,0BAA0B,CAAM;IAC9B,cAAc,EAAE,GAAG;GA2BpB;EA5BD,AAII,0BAJsB,GAGtB,gBAAgB,AACf,YAAY,AAAA,IAAK,C5B3DlB,WAAW,E4B2DoB;ItCvDnC,yBAAyB,EsCwDiB,kCAAmE;ItCpE7G,uBAAuB,EsCqEc,CAAC;GACjC;EAPL,AASI,0BATsB,GAGtB,gBAAgB,AAMf,WAAW,AAAA,IAAK,CxBxChB,YAAY,EwBwCkB;ItCxEnC,uBAAuB,EsCyEc,kCAAmE;ItC7DxG,yBAAyB,EsC8DiB,CAAC;GACtC;EAZL,AAcI,0BAdsB,GAGtB,gBAAgB,AAWf,OAAO,CAAC;IACP,UAAU,EAAE,CAAC;GACd;EAhBL,AAkBI,0BAlBsB,GAGtB,gBAAgB,GAed,gBAAgB,CAAC;IACjB,gBAAgB,EAAE,iCAAiE;IACnF,iBAAiB,EAAE,CAAC;GAMrB;EA1BL,AAsBM,0BAtBoB,GAGtB,gBAAgB,GAed,gBAAgB,AAIf,OAAO,CAAC;IACP,WAAW,EAAE,4CAA4E;IACzF,iBAAiB,EAAE,iCAAiE;GACrF;;;AAaX,AAAA,iBAAiB,CAAC;EtChJd,aAAa,EsCiJQ,CAAC;CASzB;;AAVD,AAGE,iBAHe,GAGb,gBAAgB,CAAC;EACjB,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,iCAAiE;CAKpF;;AATH,AAMI,iBANa,GAGb,gBAAgB,AAGf,WAAW,CAAC;EACX,mBAAmB,EAAE,CAAC;CACvB;;AzCvKH,AAAA,wBAAwB,CAAG;EACzB,KAAK,EpB8MC,OAA2B;EoB7MjC,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,wBALoB,AAIrB,uBAAuB,AACrB,MAAM,EALX,wBAAwB,AAIrB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EpBwMH,OAA2B;EoBvM7B,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,wBAXoB,AAIrB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EpBkMd,OAA2B;EoBjM7B,YAAY,EpBiMV,OAA2B;CoBhM9B;;AAfL,AAAA,0BAA0B,CAAC;EACzB,KAAK,EpB8MC,OAA2B;EoB7MjC,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,0BALsB,AAIvB,uBAAuB,AACrB,MAAM,EALX,0BAA0B,AAIvB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EpBwMH,OAA2B;EoBvM7B,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,0BAXsB,AAIvB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EpBkMd,OAA2B;EoBjM7B,YAAY,EpBiMV,OAA2B;CoBhM9B;;AAfL,AAAA,wBAAwB,CAAG;EACzB,KAAK,EpB8MC,OAA2B;EoB7MjC,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,wBALoB,AAIrB,uBAAuB,AACrB,MAAM,EALX,wBAAwB,AAIrB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EpBwMH,OAA2B;EoBvM7B,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,wBAXoB,AAIrB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EpBkMd,OAA2B;EoBjM7B,YAAY,EpBiMV,OAA2B;CoBhM9B;;AAfL,AAAA,qBAAqB,CAAM;EACzB,KAAK,EyCqLsB,OAAsF;EzCpLjH,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,qBALiB,AAIlB,uBAAuB,AACrB,MAAM,EALX,qBAAqB,AAIlB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EyC+KkB,OAAsF;EzC9K7G,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,qBAXiB,AAIlB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EyCyKO,OAAsF;EzCxK7G,YAAY,EyCwKW,OAAsF;CzCvK9G;;AAfL,AAAA,wBAAwB,CAAG;EACzB,KAAK,EyCqLsB,OAAsF;EzCpLjH,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,wBALoB,AAIrB,uBAAuB,AACrB,MAAM,EALX,wBAAwB,AAIrB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EyC+KkB,OAAsF;EzC9K7G,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,wBAXoB,AAIrB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EyCyKO,OAAsF;EzCxK7G,YAAY,EyCwKW,OAAsF;CzCvK9G;;AAfL,AAAA,uBAAuB,CAAI;EACzB,KAAK,EpB8MC,OAA2B;EoB7MjC,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,uBALmB,AAIpB,uBAAuB,AACrB,MAAM,EALX,uBAAuB,AAIpB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EpBwMH,OAA2B;EoBvM7B,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,uBAXmB,AAIpB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EpBkMd,OAA2B;EoBjM7B,YAAY,EpBiMV,OAA2B;CoBhM9B;;AAfL,AAAA,sBAAsB,CAAK;EACzB,KAAK,EyCqLsB,OAAsF;EzCpLjH,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,sBALkB,AAInB,uBAAuB,AACrB,MAAM,EALX,sBAAsB,AAInB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EyC+KkB,OAAsF;EzC9K7G,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,sBAXkB,AAInB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EyCyKO,OAAsF;EzCxK7G,YAAY,EyCwKW,OAAsF;CzCvK9G;;AAfL,AAAA,qBAAqB,CAAM;EACzB,KAAK,EpB8MC,OAA2B;EoB7MjC,gBAAgB,EpBwMV,OAA2B;CoBzLlC;;AAjBD,AAKI,qBALiB,AAIlB,uBAAuB,AACrB,MAAM,EALX,qBAAqB,AAIlB,uBAAuB,AAErB,MAAM,CAAC;EACN,KAAK,EpBwMH,OAA2B;EoBvM7B,gBAAgB,EpBuMd,OAA2B;CoBtM9B;;AATL,AAWI,qBAXiB,AAIlB,uBAAuB,AAOrB,OAAO,CAAC;EACP,KAAK,EnBRF,IAAI;EmBSP,gBAAgB,EpBkMd,OAA2B;EoBjM7B,YAAY,EpBiMV,OAA2B;CoBhM9B;;A0CdP,AAAA,UAAU,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,KAAK,E7D6iDsB,GAAG;E6D5iD9B,MAAM,E7D4iDqB,GAAG;E6D3iD9B,OAAO,E7D6iDoB,MAAK,CAAL,MAAK;E6D5iDhC,KAAK,E7DQI,IAAI;E6DPb,UAAU,EAAE,WAAW,C9D4HR,iUAAiE,C8D5H9B,UAAyB,CAAC,IAAI,CAAC,SAAS;EAC1F,MAAM,EAAE,CAAC;EvCOP,aAAa,EtB2da,QAAO;E6DhenC,OAAO,E7D6iDoB,GAAE;C6DxhD9B;;AA9BD,AAYE,UAZQ,AAYP,MAAM,CAAC;EACN,KAAK,E7DAE,IAAI;E6DCX,eAAe,EAAE,IAAI;EACrB,OAAO,E7DwiDkB,IAAG;C6DviD7B;;AAhBH,AAkBE,UAlBQ,AAkBP,MAAM,CAAC;EACN,OAAO,EAAE,CAAC;EACV,UAAU,E7D8rBkB,CAAC,CAAC,CAAC,CADH,CAAC,CAHD,OAAM,CA7qB5B,wBAAO;E6DZb,OAAO,E7DmiDkB,CAAC;C6DliD3B;;AAtBH,AAwBE,UAxBQ,AAwBP,SAAS,EAxBZ,UAAU,AAyBP,SAAS,CAAC;EACT,cAAc,EAAE,IAAI;EACpB,WAAW,EAAE,IAAI;EACjB,OAAO,E7D6hDkB,IAAG;C6D5hD7B;;AAGH,AAAA,gBAAgB,CAAC;EACf,MAAM,E7DyhDqB,SAAS,CAAC,eAAe,CAAC,gBAAgB;C6DxhDtE;;ACvCD,AAAA,MAAM,CAAC;EAEL,iBAAwB,CAAc,KAAC;EACvC,oBAA2B,CAAiB,QAAC;EAC7C,oBAA2B,CAAiB,OAAC;EAC7C,kBAAyB,CAAe,OAAC;EACzC,oBAA2B,CAAiB,MAAC;E3D+RzC,oBAAY,EAvER,QAA2B;E2DtNnC,gBAAuB,CAAa,CAAC;EACrC,aAAoB,CAAU,0BAAC;EAC/B,uBAA8B,CAAoB,IAAC;EACnD,uBAA8B,CAAoB,mCAAC;EACnD,wBAA+B,CAAqB,SAAC;EACrD,qBAA4B,CAAkB,kCAAC;EAC/C,uBAA8B,CAAoB,QAAC;EACnD,oBAA2B,CAAiB,0BAAC;EAC7C,8BAAqC,CAA2B,oBAAC;EAGjE,KAAK,EAAE,yBAAiD;EACxD,SAAS,EAAE,IAAI;E3DiRX,SAAY,EAvER,yBAA2B;E2DxMnC,KAAK,EAAE,qBAAyC;EAChD,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,kBAAmC;EACrD,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,4BAAuD,CAAC,KAAK,CAAC,4BAAuD;EAC7H,UAAU,EAAE,0BAAmD;ExCR7D,aAAa,EwCSQ,6BAAyD;CASjF;;AArCD,AA8BE,MA9BI,AA8BH,QAAQ,CAAC;EACR,OAAO,EAAE,CAAC;CACX;;AAhCH,AAkCE,MAlCI,AAkCH,IAAK,Cd/BA,KAAK,Ec+BE;EACX,OAAO,EAAE,IAAI;CACd;;AAGH,AAAA,gBAAgB,CAAC;EACf,iBAAwB,CAAc,KAAC;EAEvC,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,sBAA2C;EACpD,KAAK,EAAE,WAAW;EAClB,SAAS,EAAE,IAAI;EACf,cAAc,EAAE,IAAI;CAKrB;;AAZD,AASE,gBATc,GASZ,IAAK,C9BsBD,WAAW,E8BtBG;EAClB,aAAa,EAAE,uBAA6C;CAC7D;;AAGH,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,yBAAiD,CAAC,yBAAiD;EAC5G,KAAK,EAAE,4BAAuD;EAC9D,gBAAgB,EAAE,yBAAiD;EACnE,eAAe,EAAE,WAAW;EAC5B,aAAa,EAAE,4BAAuD,CAAC,KAAK,CAAC,mCAAqE;ExChChJ,sBAAsB,EwCiCG,kEAAyH;ExChClJ,uBAAuB,EwCgCE,kEAAyH;CAMrJ;;AAdD,AAUE,aAVW,CAUX,UAAU,CAAC;EACT,YAAY,EAAE,qCAA6D;EAC3E,WAAW,EAAE,yBAAiD;CAC/D;;AAGH,AAAA,WAAW,CAAC;EACV,OAAO,EAAE,yBAAiD;EAC1D,SAAS,EAAE,UAAU;CACtB;;AC/DD,AAAA,MAAM,CAAC;EAEL,iBAAwB,CAAc,KAAC;EACvC,gBAAuB,CAAa,MAAC;EACrC,kBAAyB,CAAe,KAAC;EACzC,iBAAwB,CAAc,OAAC;EACvC,gBAAuB,CAAa,CAAC;EACrC,aAAoB,CAAU,KAAC;EAC/B,uBAA8B,CAAoB,mCAAC;EACnD,uBAA8B,CAAoB,IAAC;EACnD,wBAA+B,CAAqB,OAAC;EACrD,qBAA4B,CAAkB,wCAAC;EAC/C,8BAAqC,CAA2B,mBAAC;EACjE,2BAAkC,CAAwB,KAAC;EAC3D,2BAAkC,CAAwB,KAAC;EAC3D,yBAAgC,CAAsB,UAAC;EACvD,8BAAqC,CAA2B,uBAAC;EACjE,8BAAqC,CAA2B,IAAC;EACjE,4BAAmC,CAAyB,IAAC;EAC7D,qBAA4B,CAAkB,OAAC;EAC/C,oBAA2B,CAAiB,CAAC;EAC7C,8BAAqC,CAA2B,uBAAC;EACjE,8BAAqC,CAA2B,IAAC;EAGjE,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,sBAA2C;EACpD,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAGhB,OAAO,EAAE,CAAC;CAIX;;AAGD,AAAA,aAAa,CAAC;EACZ,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,sBAA2C;EAEnD,cAAc,EAAE,IAAI;CAerB;;AAZC,AAAA,MAAM,AAAA,KAAK,CARb,aAAa,CAQG;EtC5CV,UAAU,EzBm4CoB,SAAS,CAAC,IAAG,CAAC,QAAQ;E+Dr1CtD,SAAS,E/Dm1CuB,mBAAmB;C+Dl1CpD;;AtC3CG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EsCwC1C,AAAA,MAAM,AAAA,KAAK,CARb,aAAa,CAQG;ItCvCR,UAAU,EAAE,IAAI;GsC0CrB;;;AACD,AAAA,MAAM,AAAA,KAAK,CAZb,aAAa,CAYG;EACZ,SAAS,E/Di1CuB,IAAI;C+Dh1CrC;;AAGD,AAAA,MAAM,AAAA,aAAa,CAjBrB,aAAa,CAiBW;EACpB,SAAS,E/D80CuB,WAAW;C+D70C5C;;AAGH,AAAA,wBAAwB,CAAC;EACvB,MAAM,EAAE,uCAA4D;CAUrE;;AAXD,AAGE,wBAHsB,CAGtB,cAAc,CAAC;EACb,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,MAAM;CACjB;;AANH,AAQE,wBARsB,CAQtB,WAAW,CAAC;EACV,UAAU,EAAE,IAAI;CACjB;;AAGH,AAAA,sBAAsB,CAAC;EACrB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,uCAA4D;CACzE;;AAGD,AAAA,cAAc,CAAC;EACb,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;EAEX,KAAK,EAAE,qBAAyC;EAChD,cAAc,EAAE,IAAI;EACpB,gBAAgB,EAAE,kBAAmC;EACrD,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,4BAAuD,CAAC,KAAK,CAAC,4BAAuD;EzCrF3H,aAAa,EyCsFQ,6BAAyD;EAGhF,OAAO,EAAE,CAAC;CACX;;AAGD,AAAA,eAAe,CAAC;EAEd,oBAA2B,CAAiB,KAAC;EAC7C,gBAAuB,CAAa,KAAC;EACrC,qBAA4B,CAAkB,IAAC;EjDlH/C,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,OAAO,EiDkHmB,yBAAiD;EjDjH3E,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,gBAAgB,EiD+G6D,qBAAyC;CACvH;;AARD,AjDrGE,eiDqGa,AjDrGZ,KAAK,CAAC;EAAE,OAAO,EAAE,CAAC;CAAI;;AiDqGzB,AjDpGE,eiDoGa,AjDpGZ,KAAK,CAAC;EAAE,OAAO,EiD2GwG,0BAAmD;CjD3GpI;;AiDgHzC,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,CAAC;EACd,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,aAAa;EAC9B,OAAO,EAAE,8BAA2D;EACpE,aAAa,EAAE,mCAAqE,CAAC,KAAK,CAAC,mCAAqE;EzCtG9J,sBAAsB,EyCuGG,mCAAqE;EzCtG9F,uBAAuB,EyCsGE,mCAAqE;CAMjG;;AAbD,AASE,aATW,CASX,UAAU,CAAC;EACT,OAAO,EAAE,2CAA0E,CAAC,2CAA0E;EAC9J,MAAM,EAAE,4CAA2E,CAAC,4CAA2E,CAAC,4CAA2E,CAAC,IAAI;CACjP;;AAIH,AAAA,YAAY,CAAC;EACX,aAAa,EAAE,CAAC;EAChB,WAAW,EAAE,iCAAiE;CAC/E;;AAID,AAAA,WAAW,CAAC;EACV,QAAQ,EAAE,QAAQ;EAGlB,IAAI,EAAE,QAAQ;EACd,OAAO,EAAE,uBAA6C;CACvD;;AAGD,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,CAAC;EACd,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,QAAQ;EACzB,OAAO,EAAE,+DAA8G;EACvH,gBAAgB,EAAE,yBAAiD;EACnE,UAAU,EAAE,mCAAqE,CAAC,KAAK,CAAC,mCAAqE;EzC1H3J,0BAA0B,EyC2HE,mCAAqE;EzC1HjG,yBAAyB,EyC0HG,mCAAqE;CAQpG;;AAjBD,AAcE,aAdW,GAcT,CAAC,CAAC;EACF,MAAM,EAAE,qCAA8D;CACvE;;A1D7GC,MAAM,EAAE,SAAS,EAAE,KAAK;E0DtD5B,AAAA,MAAM,CAwKG;IACL,iBAAwB,CAAc,QAAC;IACvC,qBAA4B,CAAkB,kCAAC;GAChD;EAhIH,AAAA,aAAa,CAmIG;IACZ,SAAS,EAAE,qBAAyC;IACpD,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;GAClB;EAED,AAAA,SAAS,CAAC;IACR,gBAAuB,CAAa,MAAC;GACtC;;;A1DhIC,MAAM,EAAE,SAAS,EAAE,KAAK;E0DoI1B,AAAA,SAAS;EACT,SAAS,CAAC;IACR,gBAAuB,CAAa,MAAC;GACtC;;;A1DvIC,MAAM,EAAE,SAAS,EAAE,MAAM;E0D2I3B,AAAA,SAAS,CAAC;IACR,gBAAuB,CAAa,OAAC;GACtC;;;AASC,AAAA,iBAAiB,CAAY;EAC3B,KAAK,EAAE,KAAK;EACZ,SAAS,EAAE,IAAI;EACf,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;CAgBV;;AApBD,AAME,iBANe,CAMf,cAAc,CAAC;EACb,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EzC1Mb,aAAa,EyC2Mc,CAAC;CACzB;;AAVH,AAYE,iBAZe,CAYf,aAAa;AAZf,iBAAiB,CAaf,aAAa,CAAC;EzC/MhB,aAAa,EyCgNc,CAAC;CACzB;;AAfH,AAiBE,iBAjBe,CAiBf,WAAW,CAAC;EACV,UAAU,EAAE,IAAI;CACjB;;A1D5JH,MAAM,EAAE,SAAS,EAAE,QAAQ;E0DyI3B,AAAA,yBAAyB,CAAI;IAC3B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;GAgBV;EApBD,AAME,yBANuB,CAMvB,cAAc,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IzC1Mb,aAAa,EyC2Mc,CAAC;GACzB;EAVH,AAYE,yBAZuB,CAYvB,aAAa;EAZf,yBAAyB,CAavB,aAAa,CAAC;IzC/MhB,aAAa,EyCgNc,CAAC;GACzB;EAfH,AAiBE,yBAjBuB,CAiBvB,WAAW,CAAC;IACV,UAAU,EAAE,IAAI;GACjB;;;A1D5JH,MAAM,EAAE,SAAS,EAAE,QAAQ;E0DyI3B,AAAA,yBAAyB,CAAI;IAC3B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;GAgBV;EApBD,AAME,yBANuB,CAMvB,cAAc,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IzC1Mb,aAAa,EyC2Mc,CAAC;GACzB;EAVH,AAYE,yBAZuB,CAYvB,aAAa;EAZf,yBAAyB,CAavB,aAAa,CAAC;IzC/MhB,aAAa,EyCgNc,CAAC;GACzB;EAfH,AAiBE,yBAjBuB,CAiBvB,WAAW,CAAC;IACV,UAAU,EAAE,IAAI;GACjB;;;A1D5JH,MAAM,EAAE,SAAS,EAAE,QAAQ;E0DyI3B,AAAA,yBAAyB,CAAI;IAC3B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;GAgBV;EApBD,AAME,yBANuB,CAMvB,cAAc,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IzC1Mb,aAAa,EyC2Mc,CAAC;GACzB;EAVH,AAYE,yBAZuB,CAYvB,aAAa;EAZf,yBAAyB,CAavB,aAAa,CAAC;IzC/MhB,aAAa,EyCgNc,CAAC;GACzB;EAfH,AAiBE,yBAjBuB,CAiBvB,WAAW,CAAC;IACV,UAAU,EAAE,IAAI;GACjB;;;A1D5JH,MAAM,EAAE,SAAS,EAAE,SAAS;E0DyI5B,AAAA,yBAAyB,CAAI;IAC3B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;GAgBV;EApBD,AAME,yBANuB,CAMvB,cAAc,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IzC1Mb,aAAa,EyC2Mc,CAAC;GACzB;EAVH,AAYE,yBAZuB,CAYvB,aAAa;EAZf,yBAAyB,CAavB,aAAa,CAAC;IzC/MhB,aAAa,EyCgNc,CAAC;GACzB;EAfH,AAiBE,yBAjBuB,CAiBvB,WAAW,CAAC;IACV,UAAU,EAAE,IAAI;GACjB;;;A1D5JH,MAAM,EAAE,SAAS,EAAE,SAAS;E0DyI5B,AAAA,0BAA0B,CAAG;IAC3B,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;GAgBV;EApBD,AAME,0BANwB,CAMxB,cAAc,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IzC1Mb,aAAa,EyC2Mc,CAAC;GACzB;EAVH,AAYE,0BAZwB,CAYxB,aAAa;EAZf,0BAA0B,CAaxB,aAAa,CAAC;IzC/MhB,aAAa,EyCgNc,CAAC;GACzB;EAfH,AAiBE,0BAjBwB,CAiBxB,WAAW,CAAC;IACV,UAAU,EAAE,IAAI;GACjB;;;ACvOP,AAAA,QAAQ,CAAC;EAEP,mBAA0B,CAAgB,KAAC;EAC3C,sBAA6B,CAAmB,MAAC;EACjD,sBAA6B,CAAmB,OAAC;EACjD,sBAA6B,CAAmB,QAAC;EACjD,mBAA0B,CAAgB,CAAC;E7D8RvC,sBAAY,EAvER,QAA2B;E6DrNnC,kBAAyB,CAAe,KAAC;EACzC,eAAsB,CAAY,KAAC;EACnC,0BAAiC,CAAuB,SAAC;EACzD,oBAA2B,CAAiB,IAAC;EAC7C,wBAA+B,CAAqB,OAAC;EACrD,yBAAgC,CAAsB,OAAC;EAGvD,OAAO,EAAE,wBAA+C;EACxD,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,8BAA2D;EACpE,MAAM,EAAE,wBAA+C;EtDnBvD,WAAW,EVgiBiB,yBAAiD;EU9hB7E,UAAU,EAAE,MAAM;EAClB,WAAW,EVyiBiB,GAAG;EUxiB/B,WAAW,EV+iBiB,GAAG;EU9iB/B,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,KAAK;EACjB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,MAAM;EACtB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,UAAU,EAAE,IAAI;EPsRZ,SAAY,EAvER,2BAA2B;E6DnMnC,SAAS,EAAE,UAAU;EACrB,OAAO,EAAE,CAAC;CAgBX;;AA3CD,AA6BE,QA7BM,AA6BL,KAAK,CAAC;EAAE,OAAO,EAAE,yBAAiD;CAAI;;AA7BzE,AA+BE,QA/BM,CA+BN,cAAc,CAAC;EACb,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,6BAAyD;EAChE,MAAM,EAAE,8BAA2D;CAQpE;;AA1CH,AAoCI,QApCI,CA+BN,cAAc,AAKX,QAAQ,CAAC;EACR,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,YAAY,EAAE,WAAW;EACzB,YAAY,EAAE,KAAK;CACpB;;AAIL,AAAA,eAAe,CAAC,cAAc,EAkD9B,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,EAnDY,cAAc,CAAC;EAC7B,MAAM,EAAE,CAAC;CAOV;;AARD,AAGE,eAHa,CAAC,cAAc,AAG3B,QAAQ,EA+CX,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,EAnDY,cAAc,AAG3B,QAAQ,CAAC;EACR,GAAG,EAAE,IAAI;EACT,YAAY,EAAE,8BAA2D,CAAC,wCAAoE,CAAC,CAAC;EAChJ,gBAAgB,EAAE,oBAAuC;CAC1D;;AAGH,sBAAsB;AACtB,AAAA,eAAe,CAAC,cAAc,EAuC9B,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,EA3CY,cAAc,CAAC;EAC7B,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,8BAA2D;EAClE,MAAM,EAAE,6BAAyD;CAOlE;;AAVD,AAKE,eALa,CAAC,cAAc,AAK3B,QAAQ,EAkCX,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,EA3CY,cAAc,AAK3B,QAAQ,CAAC;EACR,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,wCAAoE,CAAC,8BAA2D,CAAC,wCAAoE,CAAC,CAAC;EACrN,kBAAkB,EAAE,oBAAuC;CAC5D;;AAGH,oBAAoB;AAEpB,AAAA,kBAAkB,CAAC,cAAc,EAyBjC,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,EAhCe,cAAc,CAAC;EAChC,GAAG,EAAE,CAAC;CAOP;;AARD,AAGE,kBAHgB,CAAC,cAAc,AAG9B,QAAQ,EAsBX,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,EAhCe,cAAc,AAG9B,QAAQ,CAAC;EACR,MAAM,EAAE,IAAI;EACZ,YAAY,EAAE,CAAC,CAAC,wCAAoE,CAAC,8BAA2D;EAChJ,mBAAmB,EAAE,oBAAuC;CAC7D;;AAGH,sBAAsB;AACtB,AAAA,iBAAiB,CAAC,cAAc,EAchC,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,EAxBc,cAAc,CAAC;EAC/B,KAAK,EAAE,CAAC;EACR,KAAK,EAAE,8BAA2D;EAClE,MAAM,EAAE,6BAAyD;CAOlE;;AAVD,AAKE,iBALe,CAAC,cAAc,AAK7B,QAAQ,EASX,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,EAxBc,cAAc,AAK7B,QAAQ,CAAC;EACR,IAAI,EAAE,IAAI;EACV,YAAY,EAAE,wCAAoE,CAAC,CAAC,CAAC,wCAAoE,CAAC,8BAA2D;EACrN,iBAAiB,EAAE,oBAAuC;CAC3D;;AAGH,oBAAoB;AAkBpB,AAAA,cAAc,CAAC;EACb,SAAS,EAAE,2BAAqD;EAChE,OAAO,EAAE,2BAAqD,CAAC,2BAAqD;EACpH,KAAK,EAAE,uBAA6C;EACpD,UAAU,EAAE,MAAM;EAClB,gBAAgB,EAAE,oBAAuC;E1ClGvD,aAAa,E0CmGQ,+BAA6D;CACrF;;ACvHD,AAAA,QAAQ,CAAC;EAEP,mBAA0B,CAAgB,KAAC;EAC3C,sBAA6B,CAAmB,MAAC;E9DkS7C,sBAAY,EAvER,QAA2B;E8DzNnC,eAAsB,CAAY,KAAC;EACnC,yBAAgC,CAAsB,IAAC;EACvD,yBAAgC,CAAsB,mCAAC;EACvD,0BAAiC,CAAuB,OAAC;EACzD,gCAAuC,CAA6B,mBAAC;EACrE,uBAA8B,CAAoB,kCAAC;EACnD,6BAAoC,CAA0B,KAAC;EAC/D,6BAAoC,CAA0B,OAAC;E9DyR3D,6BAAY,EAvER,IAA2B;E8DhNnC,yBAAgC,CAAsB,CAAC;EACvD,sBAA6B,CAAmB,QAAC;EACjD,2BAAkC,CAAwB,KAAC;EAC3D,2BAAkC,CAAwB,KAAC;EAC3D,uBAA8B,CAAoB,QAAC;EACnD,wBAA+B,CAAqB,KAAC;EACrD,yBAAgC,CAAsB,OAAC;EACvD,yBAAgC,CAAsB,+BAAC;EAGvD,OAAO,EAAE,wBAA+C;EACxD,OAAO,EAAE,KAAK;EACd,SAAS,EAAE,2BAAqD;EvDzBhE,WAAW,EVgiBiB,yBAAiD;EU9hB7E,UAAU,EAAE,MAAM;EAClB,WAAW,EVyiBiB,GAAG;EUxiB/B,WAAW,EV+iBiB,GAAG;EU9iB/B,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,KAAK;EACjB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,MAAM;EACtB,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,YAAY,EAAE,MAAM;EACpB,UAAU,EAAE,IAAI;EPsRZ,SAAY,EAvER,2BAA2B;E8D9LnC,SAAS,EAAE,UAAU;EACrB,gBAAgB,EAAE,oBAAuC;EACzD,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,8BAA2D,CAAC,KAAK,CAAC,8BAA2D;E3ChBnI,aAAa,E2CiBQ,+BAA6D;CAkBrF;;AAtDD,AAuCE,QAvCM,CAuCN,cAAc,CAAC;EACb,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,6BAAyD;EAChE,MAAM,EAAE,8BAA2D;CAWpE;;AArDH,AA4CI,QA5CI,CAuCN,cAAc,AAKX,QAAQ,EA5Cb,QAAQ,CAuCN,cAAc,AAMX,OAAO,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,EAAE;EACX,YAAY,EAAE,WAAW;EACzB,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,CAAC;CAChB;;AAIL,AACE,eADa,GACX,cAAc,EAyGlB,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,IA1GA,cAAc,CAAC;EACf,MAAM,EAAE,4EAAsI;CAgB/I;;AAlBH,AAII,eAJW,GACX,cAAc,AAGb,QAAQ,EAsGb,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,IA1GA,cAAc,AAGb,QAAQ,EAJb,eAAe,GACX,cAAc,AAIb,OAAO,EAqGZ,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,IA1GA,cAAc,AAIb,OAAO,CAAC;EACP,YAAY,EAAE,8BAA2D,CAAC,wCAAoE,CAAC,CAAC;CACjJ;;AAPL,AASI,eATW,GACX,cAAc,AAGb,QAAQ,EAsGb,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,IA1GA,cAAc,AAGb,QAAQ,CAKC;EACR,MAAM,EAAE,CAAC;EACT,gBAAgB,EAAE,8BAA2D;CAC9E;;AAZL,AAcI,eAdW,GACX,cAAc,AAIb,OAAO,EAqGZ,gBAAgB,CACb,AAAA,qBAAC,EAAuB,KAAK,AAA5B,IA1GA,cAAc,AAIb,OAAO,CASC;EACP,MAAM,EAAE,8BAA2D;EACnE,gBAAgB,EAAE,oBAAuC;CAC1D;;AAIL,sBAAsB;AACtB,AACE,eADa,GACX,cAAc,EAmFlB,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,IAvFA,cAAc,CAAC;EACf,IAAI,EAAE,4EAAsI;EAC5I,KAAK,EAAE,8BAA2D;EAClE,MAAM,EAAE,6BAAyD;CAgBlE;;AApBH,AAMI,eANW,GACX,cAAc,AAKb,QAAQ,EA8Eb,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,IAvFA,cAAc,AAKb,QAAQ,EANb,eAAe,GACX,cAAc,AAMb,OAAO,EA6EZ,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,IAvFA,cAAc,AAMb,OAAO,CAAC;EACP,YAAY,EAAE,wCAAoE,CAAC,8BAA2D,CAAC,wCAAoE,CAAC,CAAC;CACtN;;AATL,AAWI,eAXW,GACX,cAAc,AAKb,QAAQ,EA8Eb,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,IAvFA,cAAc,AAKb,QAAQ,CAKC;EACR,IAAI,EAAE,CAAC;EACP,kBAAkB,EAAE,8BAA2D;CAChF;;AAdL,AAgBI,eAhBW,GACX,cAAc,AAMb,OAAO,EA6EZ,gBAAgB,CAIb,AAAA,qBAAC,EAAuB,OAAO,AAA9B,IAvFA,cAAc,AAMb,OAAO,CASC;EACP,IAAI,EAAE,8BAA2D;EACjE,kBAAkB,EAAE,oBAAuC;CAC5D;;AAIL,oBAAoB;AAEpB,AACE,kBADgB,GACd,cAAc,EA0DlB,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,IAjEA,cAAc,CAAC;EACf,GAAG,EAAE,4EAAsI;CAgB5I;;AAlBH,AAII,kBAJc,GACd,cAAc,AAGb,QAAQ,EAuDb,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,IAjEA,cAAc,AAGb,QAAQ,EAJb,kBAAkB,GACd,cAAc,AAIb,OAAO,EAsDZ,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,IAjEA,cAAc,AAIb,OAAO,CAAC;EACP,YAAY,EAAE,CAAC,CAAC,wCAAoE,CAAC,8BAA2D;CACjJ;;AAPL,AASI,kBATc,GACd,cAAc,AAGb,QAAQ,EAuDb,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,IAjEA,cAAc,AAGb,QAAQ,CAKC;EACR,GAAG,EAAE,CAAC;EACN,mBAAmB,EAAE,8BAA2D;CACjF;;AAZL,AAcI,kBAdc,GACd,cAAc,AAIb,OAAO,EAsDZ,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,IAjEA,cAAc,AAIb,OAAO,CASC;EACP,GAAG,EAAE,8BAA2D;EAChE,mBAAmB,EAAE,oBAAuC;CAC7D;;AAjBL,AAqBE,kBArBgB,CAqBhB,eAAe,AAAA,QAAQ,EAsCzB,gBAAgB,CAOb,AAAA,qBAAC,EAAuB,QAAQ,AAA/B,EA7CF,eAAe,AAAA,QAAQ,CAAC;EACtB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,GAAG;EACT,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,6BAAyD;EAChE,WAAW,EAAE,yCAAqE;EAClF,OAAO,EAAE,EAAE;EACX,aAAa,EAAE,8BAA2D,CAAC,KAAK,CAAC,2BAAqD;CACvI;;AAGH,sBAAsB;AACtB,AACE,iBADe,GACb,cAAc,EAwBlB,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,IAlCA,cAAc,CAAC;EACf,KAAK,EAAE,4EAAsI;EAC7I,KAAK,EAAE,8BAA2D;EAClE,MAAM,EAAE,6BAAyD;CAgBlE;;AApBH,AAMI,iBANa,GACb,cAAc,AAKb,QAAQ,EAmBb,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,IAlCA,cAAc,AAKb,QAAQ,EANb,iBAAiB,GACb,cAAc,AAMb,OAAO,EAkBZ,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,IAlCA,cAAc,AAMb,OAAO,CAAC;EACP,YAAY,EAAE,wCAAoE,CAAC,CAAC,CAAC,wCAAoE,CAAC,8BAA2D;CACtN;;AATL,AAWI,iBAXa,GACb,cAAc,AAKb,QAAQ,EAmBb,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,IAlCA,cAAc,AAKb,QAAQ,CAKC;EACR,KAAK,EAAE,CAAC;EACR,iBAAiB,EAAE,8BAA2D;CAC/E;;AAdL,AAgBI,iBAhBa,GACb,cAAc,AAMb,OAAO,EAkBZ,gBAAgB,CAUb,AAAA,qBAAC,EAAuB,MAAM,AAA7B,IAlCA,cAAc,AAMb,OAAO,CASC;EACP,KAAK,EAAE,8BAA2D;EAClE,iBAAiB,EAAE,oBAAuC;CAC3D;;AAIL,oBAAoB;AAkBpB,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,kCAAmE,CAAC,kCAAmE;EAChJ,aAAa,EAAE,CAAC;E9DiHZ,SAAY,EAvER,kCAA2B;E8DxCnC,KAAK,EAAE,8BAA2D;EAClE,gBAAgB,EAAE,2BAAqD;EACvE,aAAa,EAAE,8BAA2D,CAAC,KAAK,CAAC,8BAA2D;E3C5J1I,sBAAsB,E2C6JG,qCAAyE;E3C5JlG,uBAAuB,E2C4JE,qCAAyE;CAKrG;;AAZD,AASE,eATa,AASZ,MAAM,CAAC;EACN,OAAO,EAAE,IAAI;CACd;;AAGH,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,gCAA+D,CAAC,gCAA+D;EACxI,KAAK,EAAE,4BAAuD;CAC/D;;ACtLD,AAAA,SAAS,CAAC;EACR,QAAQ,EAAE,QAAQ;CACnB;;AAED,AAAA,SAAS,AAAA,cAAc,CAAC;EACtB,YAAY,EAAE,KAAK;CACpB;;AAED,AAAA,eAAe,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,MAAM;CAEjB;;AALD,AxCnBE,ewCmBa,AxCnBZ,OAAO,CAAC;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,EAAE;CACZ;;AwCsBH,AAAA,cAAc,CAAC;EACb,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,KAAK;EACnB,mBAAmB,EAAE,MAAM;EzClBvB,UAAU,EzBwgDqB,SAAS,CADT,IAAG,CACqC,WAAW;CkEp/CvF;;AzChBK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EyCQ5C,AAAA,cAAc,CAAC;IzCPP,UAAU,EAAE,IAAI;GyCevB;;;AAED,AAAA,cAAc,AAAA,OAAO;AACrB,mBAAmB;AACnB,mBAAmB,CAAC;EAClB,OAAO,EAAE,KAAK;CACf;;AAED,AAAA,mBAAmB,AAAA,IAAK,CAAA,oBAAoB;AAC5C,OAAO,AAAA,kBAAkB,CAAC;EACxB,SAAS,EAAE,gBAAgB;CAC5B;;AAED,AAAA,mBAAmB,AAAA,IAAK,CAAA,kBAAkB;AAC1C,OAAO,AAAA,oBAAoB,CAAC;EAC1B,SAAS,EAAE,iBAAiB;CAC7B;;AAOD,AACE,cADY,CACZ,cAAc,CAAC;EACb,OAAO,EAAE,CAAC;EACV,mBAAmB,EAAE,OAAO;EAC5B,SAAS,EAAE,IAAI;CAChB;;AALH,AAOE,cAPY,CAOZ,cAAc,AAAA,OAAO;AAPvB,cAAc,CAQZ,mBAAmB,AAAA,oBAAoB;AARzC,cAAc,CASZ,mBAAmB,AAAA,kBAAkB,CAAC;EACpC,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,CAAC;CACX;;AAZH,AAcE,cAdY,CAcZ,OAAO,AAAA,oBAAoB;AAd7B,cAAc,CAeZ,OAAO,AAAA,kBAAkB,CAAC;EACxB,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,CAAC;EzC5DR,UAAU,EyC6DQ,OAAO,CAAC,EAAE,ClE08CG,IAAG;CkEz8CrC;;AzC1DG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EyCuC5C,AAcE,cAdY,CAcZ,OAAO,AAAA,oBAAoB;EAd7B,cAAc,CAeZ,OAAO,AAAA,kBAAkB,CAAC;IzCrDpB,UAAU,EAAE,IAAI;GyCyDrB;;;AAQH,AAAA,sBAAsB;AACtB,sBAAsB,CAAC;EACrB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EAEV,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,MAAM;EACvB,KAAK,ElE+5C8B,GAAG;EkE95CtC,OAAO,EAAE,CAAC;EACV,KAAK,ElE1FI,IAAI;EkE2Fb,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,ElE05C4B,GAAE;EyBh/CjC,UAAU,EzBk/CqB,OAAO,CAAC,KAAI,CAAC,IAAI;CkEj5CrD;;AzC7FK,MAAM,EAAE,sBAAsB,EAAE,MAAM;EyCkE5C,AAAA,sBAAsB;EACtB,sBAAsB,CAAC;IzClEf,UAAU,EAAE,IAAI;GyC4FvB;;;AA3BD,AAoBE,sBApBoB,AAoBnB,MAAM,EApBT,sBAAsB,AAqBnB,MAAM;AApBT,sBAAsB,AAmBnB,MAAM;AAnBT,sBAAsB,AAoBnB,MAAM,CAAC;EACN,KAAK,ElEpGE,IAAI;EkEqGX,eAAe,EAAE,IAAI;EACrB,OAAO,EAAE,CAAC;EACV,OAAO,ElEk5C0B,GAAE;CkEj5CpC;;AAEH,AAAA,sBAAsB,CAAC;EACrB,IAAI,EAAE,CAAC;CAER;;AACD,AAAA,sBAAsB,CAAC;EACrB,KAAK,EAAE,CAAC;CAET;;AAGD,AAAA,2BAA2B;AAC3B,2BAA2B,CAAC;EAC1B,OAAO,EAAE,YAAY;EACrB,KAAK,ElEm5C8B,IAAI;EkEl5CvC,MAAM,ElEk5C6B,IAAI;EkEj5CvC,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,GAAG;EACxB,eAAe,EAAE,SAAS;CAC3B;;AAED;;;;;;;IAOI;AACJ,AAAA,2BAA2B,CAAC;EAC1B,gBAAgB,EnERD,uPAAiE;CmESjF;;AACD,AAAA,2BAA2B,CAAC;EAC1B,gBAAgB,EnEXD,wPAAiE;CmEYjF;;AAOD,AAAA,oBAAoB,CAAC;EACnB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,MAAM;EACvB,OAAO,EAAE,CAAC;EAEV,YAAY,ElE21CuB,GAAG;EkE11CtC,aAAa,EAAE,IAAI;EACnB,WAAW,ElEy1CwB,GAAG;EkEx1CtC,UAAU,EAAE,IAAI;CAyBjB;;AAtCD,AAeE,oBAfkB,EAelB,AAAA,cAAC,AAAA,EAAgB;EACf,UAAU,EAAE,WAAW;EACvB,IAAI,EAAE,QAAQ;EACd,KAAK,ElEw1C4B,IAAI;EkEv1CrC,MAAM,ElEw1C2B,GAAG;EkEv1CpC,OAAO,EAAE,CAAC;EACV,YAAY,ElEw1CqB,GAAG;EkEv1CpC,WAAW,ElEu1CsB,GAAG;EkEt1CpC,WAAW,EAAE,MAAM;EACnB,MAAM,EAAE,OAAO;EACf,gBAAgB,ElE3KT,IAAI;EkE4KX,eAAe,EAAE,WAAW;EAC5B,MAAM,EAAE,CAAC;EAET,UAAU,ElE+0CuB,IAAI,CkE/0CW,KAAK,CAAC,WAAW;EACjE,aAAa,ElE80CoB,IAAI,CkE90Cc,KAAK,CAAC,WAAW;EACpE,OAAO,ElE+0C0B,GAAE;EyBx/CjC,UAAU,EzB2/CqB,OAAO,CAAC,IAAG,CAAC,IAAI;CkEh1ClD;;AzCvKG,MAAM,EAAE,sBAAsB,EAAE,MAAM;EyCsI5C,AAeE,oBAfkB,EAelB,AAAA,cAAC,AAAA,EAAgB;IzCpJX,UAAU,EAAE,IAAI;GyCsKrB;;;AAjCH,AAmCE,oBAnCkB,CAmClB,OAAO,CAAC;EACN,OAAO,ElE40C0B,CAAC;CkE30CnC;;AAQH,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,GAAqC;EAC5C,MAAM,ElEs0C6B,OAAO;EkEr0C1C,IAAI,EAAE,GAAqC;EAC3C,WAAW,ElEm0CwB,OAAO;EkEl0C1C,cAAc,ElEk0CqB,OAAO;EkEj0C1C,KAAK,ElEtMI,IAAI;EkEuMb,UAAU,EAAE,MAAM;CACnB;;AAID,AACE,cADY,CACZ,2BAA2B;AAD7B,cAAc,CAEZ,2BAA2B,CAAC;EAC1B,MAAM,ElEu0C2B,SAAS,CAAC,cAAc;CkEt0C1D;;AAJH,AAME,cANY,CAMZ,oBAAoB,EAAC,AAAA,cAAC,AAAA,EAAgB;EACpC,gBAAgB,ElEzMT,IAAI;CkE0MZ;;AARH,AAUE,cAVY,CAUZ,iBAAiB,CAAC;EAChB,KAAK,ElE7ME,IAAI;CkE8MZ;;AC5NH,AAAA,aAAa;AACb,eAAe,CAAC;EACd,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,uBAA6C;EACpD,MAAM,EAAE,wBAA+C;EACvD,cAAc,EAAE,gCAA+D;EAE/E,aAAa,EAAE,GAAG;EAClB,SAAS,EAAE,iCAAiE,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAA+D;CAC7J;;AAGD,UAAU,CAAV,cAAU;EACR,EAAE;IAAG,SAAS,EAAE,cAAc,CAAC,gBAAqB;;;;AAItD,AAAA,eAAe,CAAC;EAEd,kBAAyB,CAAe,KAAC;EACzC,mBAA0B,CAAgB,KAAC;EAC3C,2BAAkC,CAAwB,SAAC;EAC3D,yBAAgC,CAAsB,OAAC;EACvD,4BAAmC,CAAyB,MAAC;EAC7D,2BAAkC,CAAwB,eAAC;EAG3D,MAAM,EAAE,8BAA2D,CAAC,KAAK,CAAC,YAAY;EACtF,kBAAkB,EAAE,WAAW;CAChC;;AAED,AAAA,kBAAkB,CAAC;EAEjB,kBAAyB,CAAe,KAAC;EACzC,mBAA0B,CAAgB,KAAC;EAC3C,yBAAgC,CAAsB,MAAC;CAExD;;AAOD,UAAU,CAAV,YAAU;EACR,EAAE;IACA,SAAS,EAAE,QAAQ;;EAErB,GAAG;IACD,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,IAAI;;;;AAKnB,AAAA,aAAa,CAAC;EAEZ,kBAAyB,CAAe,KAAC;EACzC,mBAA0B,CAAgB,KAAC;EAC3C,2BAAkC,CAAwB,SAAC;EAC3D,4BAAmC,CAAyB,MAAC;EAC7D,2BAAkC,CAAwB,aAAC;EAG3D,gBAAgB,EAAE,YAAY;EAC9B,OAAO,EAAE,CAAC;CACX;;AAED,AAAA,gBAAgB,CAAC;EACf,kBAAyB,CAAe,KAAC;EACzC,mBAA0B,CAAgB,KAAC;CAC5C;;AAGC,MAAM,EAAE,sBAAsB,EAAE,MAAM;EACpC,AAAA,eAAe;EACf,aAAa,CAAC;IACZ,4BAAmC,CAAyB,KAAC;GAC9D;;;AC7DH,AAnBF,aAmBe,EAAb,aAAa,EAAb,aAAa,EAAb,aAAa,EAAb,cAAc,EAAd,UAAU,CAnBQ;EAElB,qBAA4B,CAAkB,KAAC;EAC/C,oBAA2B,CAAiB,MAAC;EAC7C,qBAA4B,CAAkB,KAAC;EAC/C,wBAA+B,CAAqB,KAAC;EACrD,wBAA+B,CAAqB,KAAC;EACrD,oBAA2B,CAAiB,CAAC;EAC7C,iBAAwB,CAAc,KAAC;EACvC,2BAAkC,CAAwB,IAAC;EAC3D,2BAAkC,CAAwB,mCAAC;EAC3D,yBAAgC,CAAsB,wCAAC;CAExD;;A/D6DG,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAAA,aAAa,CAAO;IAEhB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,0BAAmD;IAC5D,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,yBAAiD;IACxD,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,sBAA2C;IAC7D,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,CAAC;I3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;GAqE3E;;;A3C7FG,MAAM,EpBwDA,SAAS,EAAE,QAAQ,OoBxDjB,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,aAAa,CAAO;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;A/DrCC,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAgBI,aAhBS,AAgBR,gBAAgB,CAAC;IAChB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,yBAAiD;IACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACnJ,SAAS,EAAE,iBAAiB;GAC7B;EAtBL,AAwBI,aAxBS,AAwBR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,yBAAiD;IACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IAClJ,SAAS,EAAE,gBAAgB;GAC5B;EA9BL,AAgCI,aAhCS,AAgCR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACpJ,SAAS,EAAE,iBAAiB;GAC7B;EAxCL,AA0CI,aA1CS,AA0CR,iBAAiB,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACjJ,SAAS,EAAE,gBAAgB;GAC5B;EAjDL,AAmDI,aAnDS,AAmDR,QAAQ,EAnDb,aAAa,AAoDR,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;IAClB,SAAS,EAAE,IAAI;GAChB;EAtDL,AAwDI,aAxDS,AAwDR,QAAQ,EAxDb,aAAa,AAyDR,OAAO,EAzDZ,aAAa,AA0DR,KAAK,CAAC;IACL,UAAU,EAAE,OAAO;GACpB;;;A/D3BH,MAAM,EAAE,SAAS,EAAE,KAAK;E+DjC1B,AAAA,aAAa,CAAO;IAiEd,qBAA4B,CAAkB,KAAC;IAC/C,2BAAkC,CAAwB,EAAC;IAC3D,gBAAgB,EAAE,sBAAsB;GAgB7C;EAnFD,AAqEM,aArEO,CAqEP,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAvEP,AAyEM,aAzEO,CAyEP,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;IAEnB,gBAAgB,EAAE,sBAAsB;GACzC;;;A/DlCL,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAAA,aAAa,CAAO;IAEhB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,0BAAmD;IAC5D,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,yBAAiD;IACxD,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,sBAA2C;IAC7D,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,CAAC;I3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;GAqE3E;;;A3C7FG,MAAM,EpBwDA,SAAS,EAAE,QAAQ,OoBxDjB,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,aAAa,CAAO;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;A/DrCC,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAgBI,aAhBS,AAgBR,gBAAgB,CAAC;IAChB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,yBAAiD;IACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACnJ,SAAS,EAAE,iBAAiB;GAC7B;EAtBL,AAwBI,aAxBS,AAwBR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,yBAAiD;IACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IAClJ,SAAS,EAAE,gBAAgB;GAC5B;EA9BL,AAgCI,aAhCS,AAgCR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACpJ,SAAS,EAAE,iBAAiB;GAC7B;EAxCL,AA0CI,aA1CS,AA0CR,iBAAiB,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACjJ,SAAS,EAAE,gBAAgB;GAC5B;EAjDL,AAmDI,aAnDS,AAmDR,QAAQ,EAnDb,aAAa,AAoDR,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;IAClB,SAAS,EAAE,IAAI;GAChB;EAtDL,AAwDI,aAxDS,AAwDR,QAAQ,EAxDb,aAAa,AAyDR,OAAO,EAzDZ,aAAa,AA0DR,KAAK,CAAC;IACL,UAAU,EAAE,OAAO;GACpB;;;A/D3BH,MAAM,EAAE,SAAS,EAAE,KAAK;E+DjC1B,AAAA,aAAa,CAAO;IAiEd,qBAA4B,CAAkB,KAAC;IAC/C,2BAAkC,CAAwB,EAAC;IAC3D,gBAAgB,EAAE,sBAAsB;GAgB7C;EAnFD,AAqEM,aArEO,CAqEP,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAvEP,AAyEM,aAzEO,CAyEP,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;IAEnB,gBAAgB,EAAE,sBAAsB;GACzC;;;A/DlCL,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAAA,aAAa,CAAO;IAEhB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,0BAAmD;IAC5D,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,yBAAiD;IACxD,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,sBAA2C;IAC7D,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,CAAC;I3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;GAqE3E;;;A3C7FG,MAAM,EpBwDA,SAAS,EAAE,QAAQ,OoBxDjB,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,aAAa,CAAO;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;A/DrCC,MAAM,EAAE,SAAS,EAAE,QAAQ;E+D9C7B,AAgBI,aAhBS,AAgBR,gBAAgB,CAAC;IAChB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,yBAAiD;IACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACnJ,SAAS,EAAE,iBAAiB;GAC7B;EAtBL,AAwBI,aAxBS,AAwBR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,yBAAiD;IACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IAClJ,SAAS,EAAE,gBAAgB;GAC5B;EA9BL,AAgCI,aAhCS,AAgCR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACpJ,SAAS,EAAE,iBAAiB;GAC7B;EAxCL,AA0CI,aA1CS,AA0CR,iBAAiB,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACjJ,SAAS,EAAE,gBAAgB;GAC5B;EAjDL,AAmDI,aAnDS,AAmDR,QAAQ,EAnDb,aAAa,AAoDR,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;IAClB,SAAS,EAAE,IAAI;GAChB;EAtDL,AAwDI,aAxDS,AAwDR,QAAQ,EAxDb,aAAa,AAyDR,OAAO,EAzDZ,aAAa,AA0DR,KAAK,CAAC;IACL,UAAU,EAAE,OAAO;GACpB;;;A/D3BH,MAAM,EAAE,SAAS,EAAE,KAAK;E+DjC1B,AAAA,aAAa,CAAO;IAiEd,qBAA4B,CAAkB,KAAC;IAC/C,2BAAkC,CAAwB,EAAC;IAC3D,gBAAgB,EAAE,sBAAsB;GAgB7C;EAnFD,AAqEM,aArEO,CAqEP,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAvEP,AAyEM,aAzEO,CAyEP,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;IAEnB,gBAAgB,EAAE,sBAAsB;GACzC;;;A/DlCL,MAAM,EAAE,SAAS,EAAE,SAAS;E+D9C9B,AAAA,aAAa,CAAO;IAEhB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,0BAAmD;IAC5D,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,yBAAiD;IACxD,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,sBAA2C;IAC7D,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,CAAC;I3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;GAqE3E;;;A3C7FG,MAAM,EpBwDA,SAAS,EAAE,SAAS,OoBxDlB,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,aAAa,CAAO;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;A/DrCC,MAAM,EAAE,SAAS,EAAE,SAAS;E+D9C9B,AAgBI,aAhBS,AAgBR,gBAAgB,CAAC;IAChB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,yBAAiD;IACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACnJ,SAAS,EAAE,iBAAiB;GAC7B;EAtBL,AAwBI,aAxBS,AAwBR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,yBAAiD;IACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IAClJ,SAAS,EAAE,gBAAgB;GAC5B;EA9BL,AAgCI,aAhCS,AAgCR,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACpJ,SAAS,EAAE,iBAAiB;GAC7B;EAxCL,AA0CI,aA1CS,AA0CR,iBAAiB,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACjJ,SAAS,EAAE,gBAAgB;GAC5B;EAjDL,AAmDI,aAnDS,AAmDR,QAAQ,EAnDb,aAAa,AAoDR,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;IAClB,SAAS,EAAE,IAAI;GAChB;EAtDL,AAwDI,aAxDS,AAwDR,QAAQ,EAxDb,aAAa,AAyDR,OAAO,EAzDZ,aAAa,AA0DR,KAAK,CAAC;IACL,UAAU,EAAE,OAAO;GACpB;;;A/D3BH,MAAM,EAAE,SAAS,EAAE,MAAM;E+DjC3B,AAAA,aAAa,CAAO;IAiEd,qBAA4B,CAAkB,KAAC;IAC/C,2BAAkC,CAAwB,EAAC;IAC3D,gBAAgB,EAAE,sBAAsB;GAgB7C;EAnFD,AAqEM,aArEO,CAqEP,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAvEP,AAyEM,aAzEO,CAyEP,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;IAEnB,gBAAgB,EAAE,sBAAsB;GACzC;;;A/DlCL,MAAM,EAAE,SAAS,EAAE,SAAS;E+D9C9B,AAAA,cAAc,CAAM;IAEhB,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,0BAAmD;IAC5D,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,yBAAiD;IACxD,UAAU,EAAE,MAAM;IAClB,gBAAgB,EAAE,sBAA2C;IAC7D,eAAe,EAAE,WAAW;IAC5B,OAAO,EAAE,CAAC;I3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;GAqE3E;;;A3C7FG,MAAM,EpBwDA,SAAS,EAAE,SAAS,OoBxDlB,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,cAAc,CAAM;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;A/DrCC,MAAM,EAAE,SAAS,EAAE,SAAS;E+D9C9B,AAgBI,cAhBU,AAgBT,gBAAgB,CAAC;IAChB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,yBAAiD;IACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACnJ,SAAS,EAAE,iBAAiB;GAC7B;EAtBL,AAwBI,cAxBU,AAwBT,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,yBAAiD;IACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IAClJ,SAAS,EAAE,gBAAgB;GAC5B;EA9BL,AAgCI,cAhCU,AAgCT,cAAc,CAAC;IACd,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACpJ,SAAS,EAAE,iBAAiB;GAC7B;EAxCL,AA0CI,cA1CU,AA0CT,iBAAiB,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,0BAAmD;IAC3D,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;IACjJ,SAAS,EAAE,gBAAgB;GAC5B;EAjDL,AAmDI,cAnDU,AAmDT,QAAQ,EAnDb,cAAc,AAoDT,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;IAClB,SAAS,EAAE,IAAI;GAChB;EAtDL,AAwDI,cAxDU,AAwDT,QAAQ,EAxDb,cAAc,AAyDT,OAAO,EAzDZ,cAAc,AA0DT,KAAK,CAAC;IACL,UAAU,EAAE,OAAO;GACpB;;;A/D3BH,MAAM,EAAE,SAAS,EAAE,MAAM;E+DjC3B,AAAA,cAAc,CAAM;IAiEd,qBAA4B,CAAkB,KAAC;IAC/C,2BAAkC,CAAwB,EAAC;IAC3D,gBAAgB,EAAE,sBAAsB;GAgB7C;EAnFD,AAqEM,cArEQ,CAqER,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;GACd;EAvEP,AAyEM,cAzEQ,CAyER,eAAe,CAAC;IACd,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,OAAO;IAEnB,gBAAgB,EAAE,sBAAsB;GACzC;;;AAhFP,AAAA,UAAU,CAAU;EAEhB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,0BAAmD;EAC5D,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,yBAAiD;EACxD,UAAU,EAAE,MAAM;EAClB,gBAAgB,EAAE,sBAA2C;EAC7D,eAAe,EAAE,WAAW;EAC5B,OAAO,EAAE,CAAC;E3C1BV,UAAU,E2C4BU,SAAS,CpE8hDC,IAAG,CoE9hD4B,WAAW;CAqE3E;;A3C7FG,MAAM,EAAE,sBAAsB,EAAE,MAAM;E2CU1C,AAAA,UAAU,CAAU;I3CTd,UAAU,EAAE,IAAI;G2C4FrB;;;AAnFD,AAgBI,UAhBM,AAgBL,gBAAgB,CAAC;EAChB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,yBAAiD;EACxD,YAAY,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;EACnJ,SAAS,EAAE,iBAAiB;CAC7B;;AAtBL,AAwBI,UAxBM,AAwBL,cAAc,CAAC;EACd,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,KAAK,EAAE,yBAAiD;EACxD,WAAW,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;EAClJ,SAAS,EAAE,gBAAgB;CAC5B;;AA9BL,AAgCI,UAhCM,AAgCL,cAAc,CAAC;EACd,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,0BAAmD;EAC3D,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;EACpJ,SAAS,EAAE,iBAAiB;CAC7B;;AAxCL,AA0CI,UA1CM,AA0CL,iBAAiB,CAAC;EACjB,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,MAAM,EAAE,0BAAmD;EAC3D,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,gCAA+D,CAAC,KAAK,CAAC,gCAA+D;EACjJ,SAAS,EAAE,gBAAgB;CAC5B;;AAjDL,AAmDI,UAnDM,AAmDL,QAAQ,EAnDb,UAAU,AAoDL,KAAK,AAAA,IAAK,CAAA,OAAO,EAAE;EAClB,SAAS,EAAE,IAAI;CAChB;;AAtDL,AAwDI,UAxDM,AAwDL,QAAQ,EAxDb,UAAU,AAyDL,OAAO,EAzDZ,UAAU,AA0DL,KAAK,CAAC;EACL,UAAU,EAAE,OAAO;CACpB;;AA0BP,AAAA,mBAAmB,CAAC;EtDlHlB,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,OAAO,EdghC2B,IAAI;Ec/gCtC,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,gBAAgB,EdUP,IAAI;CoEoGd;;AAFD,AtDzGE,mBsDyGiB,AtDzGhB,KAAK,CAAC;EAAE,OAAO,EAAE,CAAC;CAAI;;AsDyGzB,AtDxGE,mBsDwGiB,AtDxGhB,KAAK,CAAC;EAAE,OAAO,Edo3CkB,GAAE;Ccp3CG;;AsD4GzC,AAAA,iBAAiB,CAAC;EAChB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,aAAa;EAC9B,OAAO,EAAE,6BAAyD,CAAC,6BAAyD;CAQ7H;;AAZD,AAME,iBANe,CAMf,UAAU,CAAC;EACT,OAAO,EAAE,wCAAoE,CAAC,wCAAoE;EAClJ,UAAU,EAAE,yCAAqE;EACjF,YAAY,EAAE,yCAAqE;EACnF,aAAa,EAAE,yCAAqE;CACrF;;AAGH,AAAA,gBAAgB,CAAC;EACf,aAAa,EAAE,CAAC;EAChB,WAAW,EpE4aiB,GAAG;CoE3ahC;;AAED,AAAA,eAAe,CAAC;EACd,SAAS,EAAE,CAAC;EACZ,OAAO,EAAE,6BAAyD,CAAC,6BAAyD;EAC5H,UAAU,EAAE,IAAI;CACjB;;AC/ID,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,GAAG;EACf,cAAc,EAAE,MAAM;EACtB,MAAM,EAAE,IAAI;EACZ,gBAAgB,EAAE,YAAY;EAC9B,OAAO,ErEqsC2B,GAAE;CqE/rCrC;;AAZD,AAQE,YARU,AAQT,IAAI,AAAA,QAAQ,CAAC;EACZ,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,EAAE;CACZ;;AAIH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;CACjB;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,IAAI;CACjB;;AAED,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,KAAK;CAClB;;AAGD,AACE,iBADe,CACf,YAAY,CAAC;EACX,SAAS,EAAE,wCAAwC;CACpD;;AAGH,UAAU,CAAV,gBAAU;EACR,GAAG;IACD,OAAO,ErEwqCyB,GAAE;;;;AqEpqCtC,AAAA,iBAAiB,CAAC;EAChB,UAAU,EAAE,mEAAkG;EAC9G,SAAS,EAAE,SAAS;EACpB,SAAS,EAAE,mCAAmC;CAC/C;;AAED,UAAU,CAAV,gBAAU;EACR,IAAI;IACF,aAAa,EAAE,QAAQ;;;;AEhD3B,A7CEE,S6CFO,A7CEN,OAAO,CAAC;EACP,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,EAAE;CACZ;;A8CDD,AAAA,gBAAgB,CAAG;EACjB,KAAK,ExEEE,IAAI,CwEFmD,UAAU;EACxE,gBAAgB,EAAE,2CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,kBAAkB,CAAC;EACjB,KAAK,ExEEE,IAAI,CwEFmD,UAAU;EACxE,gBAAgB,EAAE,4CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,gBAAgB,CAAG;EACjB,KAAK,ExEEE,IAAI,CwEFmD,UAAU;EACxE,gBAAgB,EAAE,0CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,aAAa,CAAM;EACjB,KAAK,ExEYE,IAAI,CwEZmD,UAAU;EACxE,gBAAgB,EAAE,2CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,gBAAgB,CAAG;EACjB,KAAK,ExEYE,IAAI,CwEZmD,UAAU;EACxE,gBAAgB,EAAE,0CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,eAAe,CAAI;EACjB,KAAK,ExEEE,IAAI,CwEFmD,UAAU;EACxE,gBAAgB,EAAE,0CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,cAAc,CAAK;EACjB,KAAK,ExEYE,IAAI,CwEZmD,UAAU;EACxE,gBAAgB,EAAE,4CAA4D,CAAiC,UAAU;CAC1H;;AAHD,AAAA,aAAa,CAAM;EACjB,KAAK,ExEEE,IAAI,CwEFmD,UAAU;EACxE,gBAAgB,EAAE,yCAA4D,CAAiC,UAAU;CAC1H;;ACPD,AAAA,aAAa,CAAG;EACd,KAAK,EzEoCC,OAAO,CyEpCC,UAAU;CAQzB;;AATD,AAII,aAJS,AAIR,MAAM,EAJX,aAAa,AAKR,MAAM,CAAC;EACN,KAAK,E1E4MH,OAA2B,C0E5MuH,UAAU;CAC/J;;AAPL,AAAA,eAAe,CAAC;EACd,KAAK,EzEYE,OAAO,CyEZA,UAAU;CAQzB;;AATD,AAII,eAJW,AAIV,MAAM,EAJX,eAAe,AAKV,MAAM,CAAC;EACN,KAAK,E1E4MH,OAA2B,C0E5MuH,UAAU;CAC/J;;AAPL,AAAA,aAAa,CAAG;EACd,KAAK,EzE2CC,OAAO,CyE3CC,UAAU;CAQzB;;AATD,AAII,aAJS,AAIR,MAAM,EAJX,aAAa,AAKR,MAAM,CAAC;EACN,KAAK,E1E4MH,OAA2B,C0E5MuH,UAAU;CAC/J;;AAPL,AAAA,UAAU,CAAM;EACd,KAAK,EzE6CC,OAAO,CyE7CC,UAAU;CAQzB;;AATD,AAII,UAJM,AAIL,MAAM,EAJX,UAAU,AAKL,MAAM,CAAC;EACN,KAAK,E1EuMH,OAA2B,C0EvMuH,UAAU;CAC/J;;AAPL,AAAA,aAAa,CAAG;EACd,KAAK,EzE0CC,OAAO,CyE1CC,UAAU;CAQzB;;AATD,AAII,aAJS,AAIR,MAAM,EAJX,aAAa,AAKR,MAAM,CAAC;EACN,KAAK,E1EuMH,OAA2B,C0EvMuH,UAAU;CAC/J;;AAPL,AAAA,YAAY,CAAI;EACd,KAAK,EzEwCC,OAAO,CyExCC,UAAU;CAQzB;;AATD,AAII,YAJQ,AAIP,MAAM,EAJX,YAAY,AAKP,MAAM,CAAC;EACN,KAAK,E1E4MH,OAA2B,C0E5MuH,UAAU;CAC/J;;AAPL,AAAA,WAAW,CAAK;EACd,KAAK,EzEOE,OAAO,CyEPA,UAAU;CAQzB;;AATD,AAII,WAJO,AAIN,MAAM,EAJX,WAAW,AAKN,MAAM,CAAC;EACN,KAAK,E1EuMH,OAA2B,C0EvMuH,UAAU;CAC/J;;AAPL,AAAA,UAAU,CAAM;EACd,KAAK,EzEeE,OAAO,CyEfA,UAAU;CAQzB;;AATD,AAII,UAJM,AAIL,MAAM,EAJX,UAAU,AAKL,MAAM,CAAC;EACN,KAAK,E1E4MH,OAA2B,C0E5MuH,UAAU;CAC/J;;ACNP,AAAA,MAAM,CAAC;EACL,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;CAeZ;;AAjBD,AAIE,MAJI,AAIH,QAAQ,CAAC;EACR,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,sBAA2C;EACxD,OAAO,EAAE,EAAE;CACZ;;AARH,AAUE,MAVI,GAUF,CAAC,CAAC;EACF,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;CACb;;AAID,AAAA,UAAU,CAAK;EACb,iBAAwB,CAAc,KAAC;CACxC;;AAFD,AAAA,UAAU,CAAK;EACb,iBAAwB,CAAc,mBAAC;CACxC;;AAFD,AAAA,WAAW,CAAI;EACb,iBAAwB,CAAc,oBAAC;CACxC;;AAFD,AAAA,WAAW,CAAI;EACb,iBAAwB,CAAc,oBAAC;CACxC;;ACtBH,AAAA,UAAU,CAAC;EACT,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,IAAI,EAAE,CAAC;EACP,OAAO,E3E6gC2B,IAAI;C2E5gCvC;;AAED,AAAA,aAAa,CAAC;EACZ,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,OAAO,E3EqgC2B,IAAI;C2EpgCvC;;AAOG,AAAA,WAAW,CAAU;EACnB,QAAQ,EAAE,MAAM;EAChB,GAAG,EAAE,CAAC;EACN,OAAO,E3Ey/BuB,IAAI;C2Ex/BnC;;AAED,AAAA,cAAc,CAAU;EACtB,QAAQ,EAAE,MAAM;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,E3Em/BuB,IAAI;C2El/BnC;;AtE8BD,MAAM,EAAE,SAAS,EAAE,KAAK;EsExCxB,AAAA,cAAc,CAAO;IACnB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;IACN,OAAO,E3Ey/BuB,IAAI;G2Ex/BnC;EAED,AAAA,iBAAiB,CAAO;IACtB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,E3Em/BuB,IAAI;G2El/BnC;;;AtE8BD,MAAM,EAAE,SAAS,EAAE,KAAK;EsExCxB,AAAA,cAAc,CAAO;IACnB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;IACN,OAAO,E3Ey/BuB,IAAI;G2Ex/BnC;EAED,AAAA,iBAAiB,CAAO;IACtB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,E3Em/BuB,IAAI;G2El/BnC;;;AtE8BD,MAAM,EAAE,SAAS,EAAE,KAAK;EsExCxB,AAAA,cAAc,CAAO;IACnB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;IACN,OAAO,E3Ey/BuB,IAAI;G2Ex/BnC;EAED,AAAA,iBAAiB,CAAO;IACtB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,E3Em/BuB,IAAI;G2El/BnC;;;AtE8BD,MAAM,EAAE,SAAS,EAAE,MAAM;EsExCzB,AAAA,cAAc,CAAO;IACnB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;IACN,OAAO,E3Ey/BuB,IAAI;G2Ex/BnC;EAED,AAAA,iBAAiB,CAAO;IACtB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,E3Em/BuB,IAAI;G2El/BnC;;;AtE8BD,MAAM,EAAE,SAAS,EAAE,MAAM;EsExCzB,AAAA,eAAe,CAAM;IACnB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,CAAC;IACN,OAAO,E3Ey/BuB,IAAI;G2Ex/BnC;EAED,AAAA,kBAAkB,CAAM;IACtB,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,E3Em/BuB,IAAI;G2El/BnC;;;AChCL,AAAA,OAAO,CAAC;EACN,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,OAAO;CACpB;;AAED,AAAA,OAAO,CAAC;EACN,OAAO,EAAE,IAAI;EACb,IAAI,EAAE,QAAQ;EACd,cAAc,EAAE,MAAM;EACtB,UAAU,EAAE,OAAO;CACpB;;ACTD,AAAA,gBAAgB;AAChB,0BAA0B,AAAA,IAAK,CzDqIP,MAAM,CyDrIQ,IAAK,CzDuIlB,aAAa,EyDvIoB;EpEGxD,QAAQ,EAAE,mBAAmB;EAC7B,KAAK,EAAE,cAAc;EACrB,MAAM,EAAE,cAAc;EACtB,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,eAAe;EACvB,QAAQ,EAAE,iBAAiB;EAC3B,IAAI,EAAE,gBAAgB,CAAC,UAAU;EACjC,WAAW,EAAE,iBAAiB;EAC9B,MAAM,EAAE,YAAY;CoETrB;;ACHD,AACE,eADa,AACZ,OAAO,CAA6B;EACnC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,OAAO,E9EoZ+B,CAAC;E8EnZvC,OAAO,EAAE,EAAE;CACZ;;ACTH,AAAA,cAAc,CAAC;EpEAb,QAAQ,EAAE,MAAM;EAChB,aAAa,EAAE,QAAQ;EACvB,WAAW,EAAE,MAAM;CoEApB;;ACND,AAAA,GAAG,CAAC;EACF,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,GAAG;EACf,gBAAgB,EAAE,YAAY;EAC9B,OAAO,EhFynBqB,IAAG;CgFxnBhC;;ApE2DO,AAAA,eAAe,CAAyC;EAOpD,cAAY,EiB/DV,QAAQ,CjB+D2C,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,cAAY,EiB/DD,GAAG,CjB+DuC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,cAAY,EiB/DG,MAAM,CjB+DgC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,cAAY,EiB/DU,MAAM,CjB+DyB,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,cAAY,EiB/DiB,WAAW,CjB+Da,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,cAAY,EiB/D6B,QAAQ,CjB+DI,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,OAAY,EiB5Cb,CAAC,CjB4CqD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,OAAY,EiB3CZ,IAAG,CjB2CkD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,OAAY,EiB1CZ,GAAE,CjB0CmD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,OAAY,EiBzCZ,IAAG,CjByCkD,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,OAAY,EiBxCX,CAAC,CjBwCmD,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,QAAY,EiBjCV,IAAI,CjBiC+C,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,QAAY,EiBjCL,MAAM,CjBiCwC,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,QAAY,EiBjCE,OAAO,CjBiCgC,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,QAAY,EiBjCU,MAAM,CjBiCyB,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,UAAY,EZ8aM,CAAC,CAAC,MAAK,CAAC,IAAI,CAre/B,mBAAI,CYuDkD,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,UAAY,EZ+aM,CAAC,CAAC,QAAO,CAAC,OAAM,CAtenC,oBAAI,CYuDkD,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,UAAY,EZgbM,CAAC,CAAC,IAAI,CAAC,IAAI,CAve9B,oBAAI,CYuDkD,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,UAAY,EiBbV,IAAI,CjBa+C,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,QAAY,EiBNV,MAAM,CjBM6C,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,QAAY,EiBNH,QAAQ,CjBMoC,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,QAAY,EiBNM,QAAQ,CjBM2B,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,QAAY,EiBNe,KAAK,CjBMqB,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,QAAY,EiBNqB,MAAM,CjBMc,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZ6TnB,CAAC,CY7T2D,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,GAAY,EZ8TlB,GAAG,CY9TwD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,GAAY,EZ+TjB,IAAI,CY/TsD,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,MAAY,EZ6TnB,CAAC,CY7T2D,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,MAAY,EZ8TlB,GAAG,CY9TwD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,MAAY,EZ+TjB,IAAI,CY/TsD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,IAAY,EZ6TnB,CAAC,CY7T2D,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,IAAY,EZ8TlB,GAAG,CY9TwD,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,IAAY,EZ+TjB,IAAI,CY/TsD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,KAAY,EZ6TnB,CAAC,CY7T2D,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,KAAY,EZ8TlB,GAAG,CY9TwD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EZ+TjB,IAAI,CY/TsD,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,SAAY,EiBkBV,qBAAqB,CjBlB8B,UAAU;CAElE;;AATD,AAAA,mBAAmB,CAAqC;EAOpD,SAAY,EiBmBb,gBAAgB,CjBnBsC,UAAU;CAElE;;AATD,AAAA,mBAAmB,CAAqC;EAOpD,SAAY,EiBoBb,gBAAgB,CjBpBsC,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,MAAY,EiB4BV,sBAA2C,CAAC,sBAA2C,CAAC,sBAA2C,CjB5BhF,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,MAAY,EiB6Bb,CAAC,CjB7BqD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,UAAY,EiBmCV,sBAA2C,CAAC,sBAA2C,CAAC,sBAA2C,CjBnChF,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,UAAY,EiBoCb,CAAC,CjBpCqD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,YAAY,EiB2CV,sBAA2C,CAAC,sBAA2C,CAAC,sBAA2C,CjB3ChF,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,YAAY,EiB4Cb,CAAC,CjB5CqD,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,aAAY,EiBkDV,sBAA2C,CAAC,sBAA2C,CAAC,sBAA2C,CjBlDhF,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,aAAY,EiBmDb,CAAC,CjBnDqD,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,WAAY,EiB0DV,sBAA2C,CAAC,sBAA2C,CAAC,sBAA2C,CjB1DhF,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,WAAY,EiB2Db,CAAC,CjB3DqD,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,qDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,uDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,qDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,kDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,qDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,oDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,kDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAIhD,mBAAyB,CAAE,EAAC;EAGhC,YAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AAnBD,AAAA,SAAS,CAA+C;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,SAAS,CAA+C;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,SAAS,CAA+C;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,SAAS,CAA+C;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,SAAS,CAA+C;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,kBAAkB,CAAsC;EACtD,mBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,kBAAkB,CAAsC;EACtD,mBAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,kBAAkB,CAAsC;EACtD,mBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,kBAAkB,CAAsC;EACtD,mBAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,mBAAmB,CAAqC;EACtD,mBAAiC,CAAE,EAAC;CACrC;;AAQD,AAAA,KAAK,CAAmD;EAOpD,KAAY,EiB8FZ,GAAG,CjB9FkD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,KAAY,EiB+FZ,GAAG,CjB/FkD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,KAAY,EiBgGZ,GAAG,CjBhGkD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,KAAY,EiBiGX,IAAI,CjBjGgD,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,KAAY,EiBkGV,IAAI,CjBlG+C,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,SAAY,EiBwGJ,IAAI,CjBxGyC,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,KAAY,EiB6GJ,KAAK,CjB7GwC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,SAAY,EiBkHJ,KAAK,CjBlHwC,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,MAAY,EiBwHZ,GAAG,CjBxHkD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,MAAY,EiByHZ,GAAG,CjBzHkD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,MAAY,EiB0HZ,GAAG,CjB1HkD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,MAAY,EiB2HX,IAAI,CjB3HgD,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,MAAY,EiB4HV,IAAI,CjB5H+C,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,UAAY,EiBkIJ,IAAI,CjBlIyC,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,MAAY,EiBuIJ,KAAK,CjBvIwC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,UAAY,EiB4IJ,KAAK,CjB5IwC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;CAElE;;AATD,AAAA,oBAAoB,CAAoC;EAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;CAElE;;AATD,AAAA,sBAAsB,CAAkC;EAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;CAElE;;AATD,AAAA,oBAAoB,CAAoC;EAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;CAElE;;AATD,AAAA,uBAAuB,CAAiC;EAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;CAElE;;AATD,AAAA,wBAAwB,CAAgC;EAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;CAElE;;AATD,AAAA,uBAAuB,CAAiC;EAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;CAElE;;AATD,AAAA,uBAAuB,CAAiC;EAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;CAElE;;AATD,AAAA,mBAAmB,CAAqC;EAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;CAElE;;AATD,AAAA,qBAAqB,CAAmC;EAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;CAElE;;AATD,AAAA,oBAAoB,CAAoC;EAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;CAElE;;AATD,AAAA,oBAAoB,CAAoC;EAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;CAElE;;AATD,AAAA,qBAAqB,CAAmC;EAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;CAElE;;AATD,AAAA,sBAAsB,CAAkC;EAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;CAElE;;AATD,AAAA,qBAAqB,CAAmC;EAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;CAElE;;AATD,AAAA,sBAAsB,CAAkC;EAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;CAElE;;AATD,AAAA,kBAAkB,CAAsC;EAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;CAElE;;AATD,AAAA,oBAAoB,CAAoC;EAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;CAElE;;AATD,AAAA,mBAAmB,CAAqC;EAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,OAAO,CAAiD;EAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;EAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;EAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;EAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;EAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;EAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;EAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;EAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;EAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;EAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;EAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;EAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;EAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;EAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;EAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,IAAI,CAAoD;EAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;EAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;EAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;EAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;EAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;EAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;EAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;EAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;EAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;EAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;EAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;EAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;EAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,WAAY,EiBiYE,wBAA+C,CjBjYR,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,sBAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,sBAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,oBAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,sBAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,OAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,SAAY,ETiNd,IAA2B,CSjN4B,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,UAAY,EiB4YV,MAAM,CjB5Y6C,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,UAAY,EiB4YH,MAAM,CjB5YsC,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,WAAY,EZmeM,GAAG,CYnegC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,WAAY,EZkeM,OAAO,CYle4B,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,WAAY,EZoeM,GAAG,CYpegC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,WAAY,EZseM,GAAG,CYtegC,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,WAAY,EZqeM,GAAG,CYregC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,WAAY,EZueM,MAAM,CYve6B,UAAU;CAElE;;AATD,AAAA,KAAK,CAAmD;EAOpD,WAAY,EiB8Zb,CAAC,CjB9ZqD,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,WAAY,EZ4eM,IAAI,CY5e+B,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,WAAY,EZ2eM,GAAG,CY3egC,UAAU;CAElE;;AATD,AAAA,MAAM,CAAkD;EAOpD,WAAY,EZ6eM,CAAC,CY7ekC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;CAElE;;AATD,AAAA,qBAAqB,CAAmC;EAOpD,eAAY,EiBgbV,IAAI,CjBhb+C,UAAU;CAElE;;AATD,AAAA,0BAA0B,CAA8B;EAOpD,eAAY,EiBgbL,SAAS,CjBhbqC,UAAU;CAElE;;AATD,AAAA,6BAA6B,CAA2B;EAOpD,eAAY,EiBgbK,YAAY,CjBhbwB,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,cAAY,EiBqbV,SAAS,CjBrb0C,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,cAAY,EiBqbA,SAAS,CjBrbgC,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,cAAY,EiBqbU,UAAU,CjBrbqB,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,WAAY,EiB2bV,MAAM,CjB3b6C,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,WAAY,EiB4bR,MAAM,CjB5b2C,UAAU;CAElE;;AAvBD,sBAAsB;AActB,AAAA,WAAW,CAA6C;EAOpD,SAAY,EiBkcF,UAAU,CjBlciC,UAAU;EAA/D,UAAY,EiBkcF,UAAU,CjBlciC,UAAU;CAElE;;AAiBD,oBAAoB;AA1BpB,AAAA,aAAa,CAA2C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,qDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,gDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,kDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,gDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,Eb7BZ,sDAA0G,Ca6BrD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,EZ3Db,OAAO,CY2D+C,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,EZvDb,kBAAI,CYuDkD,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,EZjEb,wBAAI,CYiEkD,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,iBAAyB,CAAE,EAAC;EAGhC,KAAY,EiBmdL,OAAO,CjBnduC,UAAU;CAElE;;AAnBD,AAAA,gBAAgB,CAAwC;EACtD,iBAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,gBAAgB,CAAwC;EACtD,iBAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,gBAAgB,CAAwC;EACtD,iBAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,iBAAiB,CAAuC;EACtD,iBAAiC,CAAE,EAAC;CACrC;;AAQD,AAAA,WAAW,CAA6C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,mDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,8CAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,WAAW,CAA6C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,iDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,gDAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,+CAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,8CAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,+CAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,SAAS,CAA+C;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb3BZ,+CAA8F,Ca2BzC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,Eb/BZ,iDAAoG,Ca+B/C,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAIhD,eAAyB,CAAE,EAAC;EAGhC,gBAAY,EiB4eC,WAAW,CjB5e6B,UAAU;CAElE;;AAnBD,AAAA,cAAc,CAA0C;EACtD,eAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,cAAc,CAA0C;EACtD,eAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,cAAc,CAA0C;EACtD,eAAiC,CAAE,IAAC;CACrC;;AAFD,AAAA,cAAc,CAA0C;EACtD,eAAiC,CAAE,KAAC;CACrC;;AAFD,AAAA,eAAe,CAAyC;EACtD,eAAiC,CAAE,EAAC;CACrC;;AAQD,AAAA,YAAY,CAA4C;EAOpD,gBAAY,EiB+fC,kBAAmC,CjB/fK,UAAU;CAElE;;AATD,AAAA,gBAAgB,CAAwC;EAOpD,WAAY,EiBogBV,GAAG,CjBpgBgD,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,WAAY,EiBogBN,IAAI,CjBpgB2C,UAAU;CAElE;;AATD,AAAA,iBAAiB,CAAuC;EAOpD,WAAY,EiBogBD,IAAI,CjBpgBsC,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,cAAY,EiBygBV,IAAI,CjBzgB+C,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,cAAY,EiBygBL,IAAI,CjBzgB0C,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,aAAY,EiBihBV,uBAA6C,CjBjhBM,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBkhBb,CAAC,CjBlhBqD,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBmhBb,0BAAmD,CjBnhBG,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBohBb,uBAA6C,CjBphBS,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBqhBb,0BAAmD,CjBrhBG,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBshBb,0BAAmD,CjBthBG,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,aAAY,EiBuhBb,2BAAqD,CjBvhBC,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,aAAY,EiBwhBR,GAAG,CjBxhB8C,UAAU;CAElE;;AATD,AAAA,aAAa,CAA2C;EAOpD,aAAY,EiByhBV,4BAAuD,CjBzhBJ,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,sBAAY,EiB+hBH,uBAA6C,CjB/hBD,UAAU;EAA/D,uBAAY,EiB+hBH,uBAA6C,CjB/hBD,UAAU;CAElE;;AATD,AAAA,YAAY,CAA4C;EAOpD,uBAAY,EiBoiBH,uBAA6C,CjBpiBD,UAAU;EAA/D,0BAAY,EiBoiBH,uBAA6C,CjBpiBD,UAAU;CAElE;;AATD,AAAA,eAAe,CAAyC;EAOpD,0BAAY,EiByiBH,uBAA6C,CjBziBD,UAAU;EAA/D,yBAAY,EiByiBH,uBAA6C,CjBziBD,UAAU;CAElE;;AATD,AAAA,cAAc,CAA0C;EAOpD,yBAAY,EiB8iBH,uBAA6C,CjB9iBD,UAAU;EAA/D,sBAAY,EiB8iBH,uBAA6C,CjB9iBD,UAAU;CAElE;;AATD,AAAA,QAAQ,CAAgD;EAOpD,UAAY,EiBsjBP,OAAO,CjBtjByC,UAAU;CAElE;;AATD,AAAA,UAAU,CAA8C;EAOpD,UAAY,EiBujBL,MAAM,CjBvjBwC,UAAU;CAElE;;APZL,MAAM,EAAE,SAAS,EAAE,KAAK;EOGpB,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;IAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;IAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;GAElE;;;APZL,MAAM,EAAE,SAAS,EAAE,KAAK;EOGpB,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;IAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;IAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;GAElE;;;APZL,MAAM,EAAE,SAAS,EAAE,KAAK;EOGpB,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;IAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;IAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;GAElE;;;APZL,MAAM,EAAE,SAAS,EAAE,MAAM;EOGrB,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;IAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;IAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,OAAO,CAAiD;IAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;GAElE;;;APZL,MAAM,EAAE,SAAS,EAAE,MAAM;EOGrB,AAAA,gBAAgB,CAAwC;IAOpD,KAAY,EiBvDT,IAAI,CjBuD8C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,KAAY,EiBtDX,KAAK,CjBsD+C,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiBrDV,IAAI,CjBqD+C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,iBAAiB,CAAuC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,IAAY,EiBoJH,CAAC,CAAC,CAAC,CAAC,IAAI,CjBpJoC,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,cAAY,EiB0JV,GAAG,CjB1JgD,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,cAAY,EiB0JN,MAAM,CjB1JyC,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,cAAY,EiB0JC,WAAW,CjB1J6B,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,cAAY,EiB0Ja,cAAc,CjB1Jc,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,SAAY,EiBiKR,CAAC,CjBjKgD,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,SAAY,EiBkKR,CAAC,CjBlKgD,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,WAAY,EiB0KN,CAAC,CjB1K8C,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,WAAY,EiB2KN,CAAC,CjB3K8C,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,SAAY,EiBkLV,IAAI,CjBlL+C,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,SAAY,EiBkLL,MAAM,CjBlLwC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,SAAY,EiBkLE,YAAY,CjBlL2B,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,eAAY,EiBwLT,UAAU,CjBxLwC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,eAAY,EiByLX,QAAQ,CjBzL4C,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB0LR,MAAM,CjB1L2C,UAAU;GAElE;EATD,AAAA,4BAA4B,CAA4B;IAOpD,eAAY,EiB2LP,aAAa,CjB3LmC,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB4LR,YAAY,CjB5LqC,UAAU;GAElE;EATD,AAAA,2BAA2B,CAA6B;IAOpD,eAAY,EiB6LR,YAAY,CjB7LqC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,WAAY,EiBoMT,UAAU,CjBpMwC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,WAAY,EiBqMX,QAAQ,CjBrM4C,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,WAAY,EiBsMR,MAAM,CjBtM2C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,WAAY,EiBuMN,QAAQ,CjBvMuC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,WAAY,EiBwMP,OAAO,CjBxMyC,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,aAAY,EiB+MT,UAAU,CjB/MwC,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,aAAY,EiBgNX,QAAQ,CjBhN4C,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBiNR,MAAM,CjBjN2C,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,aAAY,EiBkNP,aAAa,CjBlNmC,UAAU;GAElE;EATD,AAAA,yBAAyB,CAA+B;IAOpD,aAAY,EiBmNR,YAAY,CjBnNqC,UAAU;GAElE;EATD,AAAA,0BAA0B,CAA8B;IAOpD,aAAY,EiBoNP,OAAO,CjBpNyC,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,UAAY,EiB2NV,IAAI,CjB3N+C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,UAAY,EiB4NT,UAAU,CjB5NwC,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,UAAY,EiB6NX,QAAQ,CjB7N4C,UAAU;GAElE;EATD,AAAA,sBAAsB,CAAkC;IAOpD,UAAY,EiB8NR,MAAM,CjB9N2C,UAAU;GAElE;EATD,AAAA,wBAAwB,CAAgC;IAOpD,UAAY,EiB+NN,QAAQ,CjB/NuC,UAAU;GAElE;EATD,AAAA,uBAAuB,CAAiC;IAOpD,UAAY,EiBgOP,OAAO,CjBhOyC,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,KAAY,EiBuOR,EAAC,CjBvOgD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiBwOb,CAAC,CjBxOqD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiByOb,CAAC,CjBzOqD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiB0Ob,CAAC,CjB1OqD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiB2Ob,CAAC,CjB3OqD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiB4Ob,CAAC,CjB5OqD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,KAAY,EiB6Ob,CAAC,CjB7OqD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,KAAY,EiB8OV,CAAC,CjB9OkD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,MAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,WAAW,CAA6C;IAOpD,MAAY,EiBwPiB,IAAI,CjBxPoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,YAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;IAA/D,WAAY,EiB8PiB,IAAI,CjB9PoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;IAA/D,aAAY,EiBoQiB,IAAI,CjBpQoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,UAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,UAAY,EiB0QiB,IAAI,CjB1QoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,YAAY,EiBgRiB,IAAI,CjBhRoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,aAAY,EiBsRiB,IAAI,CjBtRoB,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,YAAY,CAA4C;IAOpD,WAAY,EiB4RiB,IAAI,CjB5RoB,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,QAAQ,CAAgD;IAOpD,OAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;IAA/D,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;IAA/D,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;IAA/D,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;IAA/D,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;IAA/D,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;IAA/D,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,WAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,aAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,cAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,SAAS,CAA+C;IAOpD,YAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZ8SnB,CAAC,CY9S2D,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZ+SnB,OAAa,CY/S+C,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZgTnB,MAAY,CYhTgD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZ4Sf,IAAI,CY5SoD,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZkTnB,MAAa,CYlT+C,UAAU;GAElE;EATD,AAAA,UAAU,CAA8C;IAOpD,GAAY,EZmTnB,IAAW,CYnTiD,UAAU;GAElE;EATD,AAAA,eAAe,CAAyC;IAOpD,UAAY,EiByaT,IAAI,CjBza8C,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,UAAY,EiB0aX,KAAK,CjB1a+C,UAAU;GAElE;EATD,AAAA,gBAAgB,CAAwC;IAOpD,UAAY,EiB2aR,MAAM,CjB3a2C,UAAU;GAElE;;;AqExDT,MAAM,EAAE,SAAS,EAAE,MAAM;ErE+CjB,AAAA,KAAK,CAAmD;IAOpD,SAAY,ETqJd,MAA2B,CSrJ4B,UAAU;GAElE;EATD,AAAA,KAAK,CAAmD;IAOpD,SAAY,ETqJd,IAA2B,CSrJ4B,UAAU;GAElE;EATD,AAAA,KAAK,CAAmD;IAOpD,SAAY,ETqJd,OAA2B,CSrJ4B,UAAU;GAElE;EATD,AAAA,KAAK,CAAmD;IAOpD,SAAY,ETqJd,MAA2B,CSrJ4B,UAAU;GAElE;;;AqErCT,MAAM,CAAC,KAAK;ErE4BJ,AAAA,eAAe,CAAyC;IAOpD,OAAY,EiBxBV,MAAM,CjBwB6C,UAAU;GAElE;EATD,AAAA,qBAAqB,CAAmC;IAOpD,OAAY,EiBxBH,YAAY,CjBwBgC,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,OAAY,EiBxBU,KAAK,CjBwB0B,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,OAAY,EiBxBgB,IAAI,CjBwBqB,UAAU;GAElE;EATD,AAAA,cAAc,CAA0C;IAOpD,OAAY,EiBxBqB,KAAK,CjBwBe,UAAU;GAElE;EATD,AAAA,kBAAkB,CAAsC;IAOpD,OAAY,EiBxB2B,SAAS,CjBwBK,UAAU;GAElE;EATD,AAAA,mBAAmB,CAAqC;IAOpD,OAAY,EiBxBqC,UAAU,CjBwBN,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,OAAY,EiBxBgD,IAAI,CjBwBX,UAAU;GAElE;EATD,AAAA,oBAAoB,CAAoC;IAOpD,OAAY,EiBxBqD,WAAW,CjBwBvB,UAAU;GAElE;EATD,AAAA,aAAa,CAA2C;IAOpD,OAAY,EiBxBiE,IAAI,CjBwB5B,UAAU;GAElE;;;AkB3ET,AAAA,KAAK,ClCGA;EACH,SAAS,CAAA,QAAC;CACX;;AmC2CD,AAAA,IAAI,CnCzCC;EACH,WAAW,EAAE,oBAAoB;CAClC;;AmCyOD,AAAA,CAAC,CnCvOC;EACA,KAAK,EAAE,cAAc;EACrB,eAAe,EAAE,IAAI;CACtB;;AAED,AAAA,OAAO,CAAC,KAAK,CAAC;EACZ,WAAW,EAAE,kCAAkC;EAC/C,SAAS,EAAE,IAAI;CAChB"
+}
\ No newline at end of file
diff --git a/styles/scss/app.scss b/styles/scss/app.scss
new file mode 100644
index 0000000..8ace9ef
--- /dev/null
+++ b/styles/scss/app.scss
@@ -0,0 +1,20 @@
+@import url('https://fonts.googleapis.com/css2?family=Jacques+Francois+Shadow&family=Roboto:wght@500&display=swap');
+@import "../bootstrap/bootstrap";
+
+:root{
+  --primary: #165B26;
+}
+
+body {
+  font-family: 'Roboto', sans-serif;
+}
+
+a {
+  color: var(--primary);
+  text-decoration: none;
+}
+
+.navbar .logo {
+  font-family: 'Jacques Francois Shadow', cursive;
+  font-size: 2rem;
+}
\ No newline at end of file
-- 
GitLab