diff --git a/assets/vue/example-custom-uu-list/.eslintrc.json b/assets/vue/example-custom-uu-list/.eslintrc.json new file mode 100644 index 00000000..2ec56870 --- /dev/null +++ b/assets/vue/example-custom-uu-list/.eslintrc.json @@ -0,0 +1,47 @@ +{ + "root": true, + "extends": [ + "eslint:recommended", + "plugin:vue/vue3-recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "parserOptions": { + "ecmaVersion": "latest", + "parser": "@typescript-eslint/parser", + "sourceType": "module", + "extraFileExtensions": [".vue"] + }, + "overrides": [ + { + "files": ["*.ts"], + + "parserOptions": { + "project": ["./tsconfig.json"] // Specify it only for TypeScript files + } + } + ], + "plugins": [ + "vue", + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-inferrable-types": "off", + "vue/html-self-closing": ["error", { + "html": { + "void": "any", + "normal": "always", + "component": "always" + }, + "svg": "always", + "math": "always" + }], + "@typescript-eslint/no-unused-vars": ["warn", { + "varsIgnorePattern": "(props)|(emits?)|_" + }], + "vue/require-v-for-key": "warn", + "vue/no-v-model-argument": "off" // NO idea why this rule exists + }, + "ignorePatterns": ["**/*.test.ts", "dist/*", "node_modules/*"] +} diff --git a/assets/vue/example-custom-uu-list/.gitignore b/assets/vue/example-custom-uu-list/.gitignore new file mode 100644 index 00000000..d5aa0f8a --- /dev/null +++ b/assets/vue/example-custom-uu-list/.gitignore @@ -0,0 +1,15 @@ +.sass-cache/ +*.css.map +*.sass.map +*.scss.map +!dist/css/*.css.map + +node_modules +vite.config.d.ts +*.log* +.cache +.output +.env +generated + +.idea diff --git a/assets/vue/example-custom-uu-list/README.md b/assets/vue/example-custom-uu-list/README.md new file mode 100644 index 00000000..a52aec3c --- /dev/null +++ b/assets/vue/example-custom-uu-list/README.md @@ -0,0 +1,13 @@ +# Custom UU-List example + +An example of a custom DSCList-based UU-List. You can copy this folder +as a basis. + +## Use as a template: + +1. Copy the contents of this dir to a folder in your project +2. Install deps (yarn install) +3. Update cdh-vue-lib to latest release using yarn +4. Rename `CustomList.vue` to a more descriptive name, and update the `index.ts` import +5. Change the indicated values in `vite.config.ts`; use the name you used for the file above +6. Go make your own implementation! \ No newline at end of file diff --git a/assets/vue/example-custom-uu-list/package.json b/assets/vue/example-custom-uu-list/package.json new file mode 100644 index 00000000..de5d7701 --- /dev/null +++ b/assets/vue/example-custom-uu-list/package.json @@ -0,0 +1,22 @@ +{ + "name": "uu-list", + "version": "1.0.0", + "author": "Humanities IT Portal development", + "license": "Apache-2.0", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@intlify/unplugin-vue-i18n": "^1.5.0", + "cdh-vue-lib": "git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#v0.3.2", + "vue-i18n": "9" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.3.4", + "typescript": "^5.2.2", + "vite": "^4.4.9", + "vue": "^3.3.4" + } +} diff --git a/assets/vue/example-custom-uu-list/src/CustomList.vue b/assets/vue/example-custom-uu-list/src/CustomList.vue new file mode 100644 index 00000000..e3f3add7 --- /dev/null +++ b/assets/vue/example-custom-uu-list/src/CustomList.vue @@ -0,0 +1,87 @@ +<script setup> +import {DSCList} from "cdh-vue-lib/components"; +import {useI18n} from "vue-i18n"; + +// Required stuff +const props = defineProps(['config']); + +const {t} = useI18n() + +// Demo stuff +function statusColor(status) { + switch (status) { + case "C": + return "green" + + case "R": + return "orange" + + case "O": + return "red" + + default: + return "" + } +} +</script> + +<!-- Here you can define your translations. Please remember to use `t` in your template instead of `$t` --> +<i18n> +{ + "en": { + "name": "Name", + "refnum": "Reference Number", + "status": "Status" + }, + "nl": { + "name": "Naam", + "refnum": "Referentie Nummer", + "status": "Status" + } +} +</i18n> + +<template> + <!-- Required stuff --> + <DSCList :config="config"> + <template #data="{data, isLoading}"> + <!-- Custom stuff --> + <!-- Add your table here --> + <div> + <div v-if="isLoading"> + <!-- Show a 'loading' message if data is being loaded --> + Loading... + </div> + <table class="table" v-else> + <thead> + <tr> + <th> + {{ t('name') }} + </th> + <th> + {{ t('refnum') }} + </th> + <th> + {{ t('status') }} + </th> + </tr> + </thead> + <tbody> + <tr v-for="datum in data"> + <td> + {{ datum.project_name }} + </td> + <td> + {{ datum.reference_number }} + </td> + <td :class="`text-bg-${statusColor(datum.status)}`"> + {{ datum.get_status_display }} + </td> + </tr> + </tbody> + </table> + </div> + <!-- end custom stuff, begin required stuff --> + </template> + </DSCList> +</template> diff --git a/assets/vue/example-custom-uu-list/src/index.ts b/assets/vue/example-custom-uu-list/src/index.ts new file mode 100644 index 00000000..a35c5744 --- /dev/null +++ b/assets/vue/example-custom-uu-list/src/index.ts @@ -0,0 +1,4 @@ +import CustomList from "./CustomList.vue"; +import "cdh-vue-lib/dist/style.css" + +export default CustomList; \ No newline at end of file diff --git a/assets/vue/example-custom-uu-list/tsconfig.json b/assets/vue/example-custom-uu-list/tsconfig.json new file mode 100644 index 00000000..4d0d1dee --- /dev/null +++ b/assets/vue/example-custom-uu-list/tsconfig.json @@ -0,0 +1,44 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "moduleResolution": "node", + "declaration": true, + "outDir": "dist", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": true, + "resolveJsonModule": true, + "sourceMap": true, + "baseUrl": ".", + "typeRoots": [ + "src/stubs.d.ts" + ], + "paths": { + "@/*": [ + "./src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "tests/**/*.ts", + "tests/**/*.tsx" + ], + "exclude": [ + "node_modules", + "vite.config.ts" + ] +} \ No newline at end of file diff --git a/assets/vue/example-custom-uu-list/vite.config.ts b/assets/vue/example-custom-uu-list/vite.config.ts new file mode 100644 index 00000000..73dee3df --- /dev/null +++ b/assets/vue/example-custom-uu-list/vite.config.ts @@ -0,0 +1,48 @@ +import {defineConfig} from "vite"; +import {resolve} from "path"; +import vue from "@vitejs/plugin-vue"; +import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue(), VueI18nPlugin({})], + base: '/static/', + build: { + minify: false, + outDir: "../../../dev/dev_vue/static/dev_vue/example-custom-uu-list/", // TODO: change this to your desired static dir + emptyOutDir: true, + lib: { + // src/index.ts is where we have exported the component(s) + entry: resolve(__dirname, "src/index.ts"), + name: "CustomList", // TODO: CHANGE THIS FOR YOUR OWN COMPONENT + // the name of the output files when the build is run + fileName: "CustomList",// TODO: CHANGE THIS FOR YOUR OWN COMPONENT + formats: ['iife'] + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: ["vue", "vue-i18n"], + output: { + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + vue: "Vue", + 'vue-i18n': "VueI18n", + }, + chunkFileNames: undefined, + }, + }, + }, + resolve: { + alias: { + "@": resolve(__dirname, "./src"), + }, + }, + optimizeDeps: { + include: ['src/**/*.vue', 'src/index.ts'], + }, + define: { + 'process.env': {} + } +}); diff --git a/assets/vue/example-custom-uu-list/yarn.lock b/assets/vue/example-custom-uu-list/yarn.lock new file mode 100644 index 00000000..1ba617c8 --- /dev/null +++ b/assets/vue/example-custom-uu-list/yarn.lock @@ -0,0 +1,877 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.13.tgz#23fb17892b2be7afef94f573031c2f4b42839a2b" + integrity sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw== + +"@babel/parser@^7.23.0": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@intlify/bundle-utils@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-7.4.0.tgz#b4dc41026d2d98d2e8a2bd83851c1883a48f1254" + integrity sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w== + dependencies: + "@intlify/message-compiler" "^9.4.0" + "@intlify/shared" "^9.4.0" + acorn "^8.8.2" + escodegen "^2.0.0" + estree-walker "^2.0.2" + jsonc-eslint-parser "^2.3.0" + magic-string "^0.30.0" + mlly "^1.2.0" + source-map-js "^1.0.1" + yaml-eslint-parser "^1.2.2" + +"@intlify/core-base@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.5.0.tgz#cbb17a27029ccfd0a83a837931baee08b887af60" + integrity sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w== + dependencies: + "@intlify/message-compiler" "9.5.0" + "@intlify/shared" "9.5.0" + +"@intlify/message-compiler@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.5.0.tgz#1b4916bf11ca7024f9c15be0d6b4de7be5317808" + integrity sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g== + dependencies: + "@intlify/shared" "9.5.0" + source-map-js "^1.0.2" + +"@intlify/message-compiler@^9.4.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.7.0.tgz#6371127c5a2a4f50ec59728f85a7786e3478c931" + integrity sha512-/YdZCio2L2tCM5bZ2eMHbSEIQNPh1QqvZIOLI/yCVKXLscis7O0SsR2nmuU/DfCJ3iSeI8juw82C2wLvfsAeww== + dependencies: + "@intlify/shared" "9.7.0" + source-map-js "^1.0.2" + +"@intlify/shared@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.5.0.tgz#185d9ab9f6b4bb4f4d133cfdd51432e9b94c2c44" + integrity sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA== + +"@intlify/shared@9.7.0", "@intlify/shared@^9.4.0": + version "9.7.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.7.0.tgz#96166a54b781997db92259772e9621d3f7dff9a5" + integrity sha512-PUkEuk//YKu4CHS5ah3mNa3XL/+TZj6rAY/6yYN+GCNFd2u+uWUkeuwE4Q6t8dydRWlErOePHHS0KyNoof/oBw== + +"@intlify/unplugin-vue-i18n@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.5.0.tgz#fe2e67d50beefc4b67702a7bcec23062123cb52d" + integrity sha512-jW0MCCdwxybxcwjEfCunAcKjVoxyO3i+cnLL6v+MNGRLUHqrpELF6zQAJUhgAK2afhY7mCliy8RxTFWKdXm26w== + dependencies: + "@intlify/bundle-utils" "^7.4.0" + "@intlify/shared" "^9.4.0" + "@rollup/pluginutils" "^5.0.2" + "@vue/compiler-sfc" "^3.2.47" + debug "^4.3.3" + fast-glob "^3.2.12" + js-yaml "^4.1.0" + json5 "^2.2.3" + pathe "^1.0.0" + picocolors "^1.0.0" + source-map-js "^1.0.2" + unplugin "^1.1.0" + +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@rollup/pluginutils@^5.0.2": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.5.tgz#bbb4c175e19ebfeeb8c132c2eea0ecb89941a66c" + integrity sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@vitejs/plugin-vue@^4.3.4": + version "4.3.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz#a289dff38e01949fe7be581d5542cabaeb961dec" + integrity sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw== + +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== + dependencies: + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-core@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313" + integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-dom@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b" + integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ== + dependencies: + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/compiler-sfc@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + postcss "^8.1.10" + source-map-js "^1.0.2" + +"@vue/compiler-sfc@^3.2.47": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1" + integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/compiler-dom" "3.3.8" + "@vue/compiler-ssr" "3.3.8" + "@vue/reactivity-transform" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + postcss "^8.4.31" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-ssr@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce" + integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w== + dependencies: + "@vue/compiler-dom" "3.3.8" + "@vue/shared" "3.3.8" + +"@vue/devtools-api@^6.5.0": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== + +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + +"@vue/reactivity-transform@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2" + integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw== + dependencies: + "@babel/parser" "^7.23.0" + "@vue/compiler-core" "3.3.8" + "@vue/shared" "3.3.8" + estree-walker "^2.0.2" + magic-string "^0.30.5" + +"@vue/reactivity@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== + dependencies: + "@vue/shared" "3.3.4" + +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== + dependencies: + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== + dependencies: + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" + +"@vue/server-renderer@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== + dependencies: + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/shared@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== + +"@vue/shared@3.3.8": + version "3.3.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d" + integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.10.0, acorn@^8.11.2, acorn@^8.5.0, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bootstrap@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.1.tgz#8ca07040ad15d7f75891d1504cf14c5dedfb1cfe" + integrity sha512-jzwza3Yagduci2x0rr9MeFSORjcHpt0lRZukZPZQJT1Dth5qzV7XcgGqYzi39KGAVYR8QEDVoO0ubFKOxzMG+g== + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +"cdh-vue-lib@git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#v0.3.2": + version "0.3.2" + resolved "git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#5ec7ea2bdc3ff0c898408c4a0bc1a39526326716" + dependencies: + uu-bootstrap "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0" + uuid "^9.0.0" + vue-i18n "9" + +chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + 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" + optionalDependencies: + fsevents "~2.3.2" + +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.4.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +espree@^9.0.0: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +fast-glob@^3.2.12: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-eslint-parser@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz#74ded53f9d716e8d0671bd167bf5391f452d5461" + integrity sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg== + dependencies: + acorn "^8.5.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + semver "^7.3.5" + +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mlly@^1.2.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + dependencies: + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + +postcss@^8.1.10, postcss@^8.4.27: + version "8.4.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rollup@^3.27.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +semver@^7.3.5: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +ufo@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + +unplugin@^1.1.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.5.1.tgz#806688376fa3dcca4d2fa2c5d27cf6cd0370fbef" + integrity sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew== + dependencies: + acorn "^8.11.2" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.6.0" + +"uu-bootstrap@git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0": + version "1.5.0-alpha.0" + resolved "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#0bd740cae32d73770ed4ca7f4818612c8b4bff91" + dependencies: + bootstrap "5.3.1" + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +vite@^4.4.9: + version "4.4.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vue-i18n@9: + version "9.5.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.5.0.tgz#361a820f591f6d9689435a42763fd1dae224833b" + integrity sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg== + dependencies: + "@intlify/core-base" "9.5.0" + "@intlify/shared" "9.5.0" + "@vue/devtools-api" "^6.5.0" + +vue@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack-virtual-modules@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.0.tgz#95eb2cb160a8cb84a73bdc2b5c806693f690ad35" + integrity sha512-KnaMTE6EItz/f2q4Gwg5/rmeKVi79OR58NoYnwDJqCk9ywMtTGbBnBcfoBtN4QbYu0lWXvyMoH2Owxuhe4qI6Q== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-eslint-parser@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz#1a9673ebe254328cfc2fa99f297f6d8c9364ccd8" + integrity sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg== + dependencies: + eslint-visitor-keys "^3.0.0" + lodash "^4.17.21" + yaml "^2.0.0" + +yaml@^2.0.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== diff --git a/assets/vue/uu-list/.eslintrc.json b/assets/vue/uu-list/.eslintrc.json new file mode 100644 index 00000000..2ec56870 --- /dev/null +++ b/assets/vue/uu-list/.eslintrc.json @@ -0,0 +1,47 @@ +{ + "root": true, + "extends": [ + "eslint:recommended", + "plugin:vue/vue3-recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "parserOptions": { + "ecmaVersion": "latest", + "parser": "@typescript-eslint/parser", + "sourceType": "module", + "extraFileExtensions": [".vue"] + }, + "overrides": [ + { + "files": ["*.ts"], + + "parserOptions": { + "project": ["./tsconfig.json"] // Specify it only for TypeScript files + } + } + ], + "plugins": [ + "vue", + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-inferrable-types": "off", + "vue/html-self-closing": ["error", { + "html": { + "void": "any", + "normal": "always", + "component": "always" + }, + "svg": "always", + "math": "always" + }], + "@typescript-eslint/no-unused-vars": ["warn", { + "varsIgnorePattern": "(props)|(emits?)|_" + }], + "vue/require-v-for-key": "warn", + "vue/no-v-model-argument": "off" // NO idea why this rule exists + }, + "ignorePatterns": ["**/*.test.ts", "dist/*", "node_modules/*"] +} diff --git a/assets/vue/uu-list/.gitignore b/assets/vue/uu-list/.gitignore new file mode 100644 index 00000000..d5aa0f8a --- /dev/null +++ b/assets/vue/uu-list/.gitignore @@ -0,0 +1,15 @@ +.sass-cache/ +*.css.map +*.sass.map +*.scss.map +!dist/css/*.css.map + +node_modules +vite.config.d.ts +*.log* +.cache +.output +.env +generated + +.idea diff --git a/assets/vue/uu-list/package.json b/assets/vue/uu-list/package.json new file mode 100644 index 00000000..d5ea3f4b --- /dev/null +++ b/assets/vue/uu-list/package.json @@ -0,0 +1,20 @@ +{ + "name": "uu-list", + "version": "1.0.0", + "author": "Humanities IT Portal development", + "license": "Apache-2.0", + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "cdh-vue-lib": "git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#v0.3.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.3.4", + "typescript": "^5.2.2", + "vite": "^4.4.9", + "vue": "^3.3.4" + } +} diff --git a/assets/vue/uu-list/src/index.ts b/assets/vue/uu-list/src/index.ts new file mode 100644 index 00000000..bd9a82bb --- /dev/null +++ b/assets/vue/uu-list/src/index.ts @@ -0,0 +1,3 @@ +import {DSCList} from "cdh-vue-lib/components"; +import "cdh-vue-lib/dist/style.css" +export default DSCList; \ No newline at end of file diff --git a/assets/vue/uu-list/tsconfig.json b/assets/vue/uu-list/tsconfig.json new file mode 100644 index 00000000..4d0d1dee --- /dev/null +++ b/assets/vue/uu-list/tsconfig.json @@ -0,0 +1,44 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "strict": true, + "jsx": "preserve", + "moduleResolution": "node", + "declaration": true, + "outDir": "dist", + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": true, + "resolveJsonModule": true, + "sourceMap": true, + "baseUrl": ".", + "typeRoots": [ + "src/stubs.d.ts" + ], + "paths": { + "@/*": [ + "./src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue", + "tests/**/*.ts", + "tests/**/*.tsx" + ], + "exclude": [ + "node_modules", + "vite.config.ts" + ] +} \ No newline at end of file diff --git a/assets/vue/uu-list/vite.config.ts b/assets/vue/uu-list/vite.config.ts new file mode 100644 index 00000000..799073d6 --- /dev/null +++ b/assets/vue/uu-list/vite.config.ts @@ -0,0 +1,48 @@ +import {defineConfig} from "vite"; +import {resolve} from "path"; +import vue from "@vitejs/plugin-vue"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + base: '/static/', + build: { + // minify: 'esbuild', + minify: false, + outDir: "../../../src/cdh/vue3/static/cdh.vue3/components/uu-list/", + emptyOutDir: true, + lib: { + // src/index.ts is where we have exported the component(s) + entry: resolve(__dirname, "src/index.ts"), + name: "UUList", + // the name of the output files when the build is run + fileName: "UUList", + formats: ['iife'] + }, + rollupOptions: { + // make sure to externalize deps that shouldn't be bundled + // into your library + external: ["vue", "vueI18n"], + output: { + // Provide global variables to use in the UMD build + // for externalized deps + globals: { + vue: "Vue", + vueI18n: "vueI18n", + }, + chunkFileNames: undefined, + }, + }, + }, + resolve: { + alias: { + "@": resolve(__dirname, "./src"), + }, + }, + optimizeDeps: { + include: ['src/**/*.vue', 'src/index.ts'], + }, + define: { + 'process.env': {} + } +}); diff --git a/assets/vue/uu-list/yarn.lock b/assets/vue/uu-list/yarn.lock new file mode 100644 index 00000000..8f550e33 --- /dev/null +++ b/assets/vue/uu-list/yarn.lock @@ -0,0 +1,385 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/parser@^7.20.15", "@babel/parser@^7.21.3": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.13.tgz#23fb17892b2be7afef94f573031c2f4b42839a2b" + integrity sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw== + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@intlify/core-base@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.5.0.tgz#cbb17a27029ccfd0a83a837931baee08b887af60" + integrity sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w== + dependencies: + "@intlify/message-compiler" "9.5.0" + "@intlify/shared" "9.5.0" + +"@intlify/message-compiler@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.5.0.tgz#1b4916bf11ca7024f9c15be0d6b4de7be5317808" + integrity sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g== + dependencies: + "@intlify/shared" "9.5.0" + source-map-js "^1.0.2" + +"@intlify/shared@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.5.0.tgz#185d9ab9f6b4bb4f4d133cfdd51432e9b94c2c44" + integrity sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA== + +"@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@vitejs/plugin-vue@^4.3.4": + version "4.3.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz#a289dff38e01949fe7be581d5542cabaeb961dec" + integrity sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw== + +"@vue/compiler-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128" + integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g== + dependencies: + "@babel/parser" "^7.21.3" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + source-map-js "^1.0.2" + +"@vue/compiler-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151" + integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w== + dependencies: + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/compiler-sfc@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df" + integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-ssr" "3.3.4" + "@vue/reactivity-transform" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + postcss "^8.1.10" + source-map-js "^1.0.2" + +"@vue/compiler-ssr@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777" + integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/devtools-api@^6.5.0": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" + integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== + +"@vue/reactivity-transform@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929" + integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw== + dependencies: + "@babel/parser" "^7.20.15" + "@vue/compiler-core" "3.3.4" + "@vue/shared" "3.3.4" + estree-walker "^2.0.2" + magic-string "^0.30.0" + +"@vue/reactivity@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253" + integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ== + dependencies: + "@vue/shared" "3.3.4" + +"@vue/runtime-core@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1" + integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA== + dependencies: + "@vue/reactivity" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/runtime-dom@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566" + integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ== + dependencies: + "@vue/runtime-core" "3.3.4" + "@vue/shared" "3.3.4" + csstype "^3.1.1" + +"@vue/server-renderer@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c" + integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ== + dependencies: + "@vue/compiler-ssr" "3.3.4" + "@vue/shared" "3.3.4" + +"@vue/shared@3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780" + integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ== + +bootstrap@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.1.tgz#8ca07040ad15d7f75891d1504cf14c5dedfb1cfe" + integrity sha512-jzwza3Yagduci2x0rr9MeFSORjcHpt0lRZukZPZQJT1Dth5qzV7XcgGqYzi39KGAVYR8QEDVoO0ubFKOxzMG+g== + +"cdh-vue-lib@git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#v0.3.2": + version "0.3.2" + resolved "git+https://github.com/CentreForDigitalHumanities/Vue-lib.git#5ec7ea2bdc3ff0c898408c4a0bc1a39526326716" + dependencies: + uu-bootstrap "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0" + uuid "^9.0.0" + vue-i18n "9" + +csstype@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +magic-string@^0.30.0: + version "0.30.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.3.tgz#403755dfd9d6b398dfa40635d52e96c5ac095b85" + integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +postcss@^8.1.10, postcss@^8.4.27: + version "8.4.29" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" + integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +rollup@^3.27.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433" + integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw== + optionalDependencies: + fsevents "~2.3.2" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +"uu-bootstrap@git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0": + version "1.5.0-alpha.0" + resolved "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#0bd740cae32d73770ed4ca7f4818612c8b4bff91" + dependencies: + bootstrap "5.3.1" + +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + +vite@^4.4.9: + version "4.4.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" + integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vue-i18n@9: + version "9.5.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.5.0.tgz#361a820f591f6d9689435a42763fd1dae224833b" + integrity sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg== + dependencies: + "@intlify/core-base" "9.5.0" + "@intlify/shared" "9.5.0" + "@vue/devtools-api" "^6.5.0" + +vue@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6" + integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw== + dependencies: + "@vue/compiler-dom" "3.3.4" + "@vue/compiler-sfc" "3.3.4" + "@vue/runtime-dom" "3.3.4" + "@vue/server-renderer" "3.3.4" + "@vue/shared" "3.3.4" diff --git a/dev/dev_project/settings.py b/dev/dev_project/settings.py index 7fda6837..e80add2b 100644 --- a/dev/dev_project/settings.py +++ b/dev/dev_project/settings.py @@ -32,7 +32,6 @@ ALLOWED_HOSTS = ['localhost', '127.0.0.1'] INTERNAL_IPS = ['127.0.0.1'] - # Application definition INSTALLED_APPS = [ @@ -40,6 +39,7 @@ 'cdh.core', 'cdh.rest', 'cdh.vue', + 'cdh.vue3', 'cdh.files', 'cdh.integration_platform', @@ -59,6 +59,7 @@ # DRF 'rest_framework', + 'django_filters', # Impersonate 'impersonate', @@ -70,6 +71,7 @@ 'main', 'dev_files', 'dev_integration_platform', + 'dev_vue', ] MIDDLEWARE = [ @@ -86,6 +88,12 @@ 'csp.middleware.CSPMiddleware', ] +REST_FRAMEWORK = { + 'DEFAULT_FILTER_BACKENDS': [ + 'django_filters.rest_framework.DjangoFilterBackend' + ], +} + if DEBUG and ENABLE_DEBUG_TOOLBAR: INSTALLED_APPS.append('debug_toolbar') MIDDLEWARE.append('debug_toolbar.middleware.DebugToolbarMiddleware', ) @@ -205,7 +213,7 @@ # Django CSP # http://django-csp.readthedocs.io/en/latest/index.html -CSP_REPORT_ONLY = False +CSP_REPORT_ONLY = True CSP_UPGRADE_INSECURE_REQUESTS = not DEBUG CSP_INCLUDE_NONCE_IN = ['script-src'] diff --git a/dev/dev_project/urls.py b/dev/dev_project/urls.py index 6f157413..3f70c835 100644 --- a/dev/dev_project/urls.py +++ b/dev/dev_project/urls.py @@ -18,32 +18,32 @@ from django.contrib import admin from django.urls import include, path -handler404 = 'main.error_views.error_404' -handler500 = 'main.error_views.error_500' -handler403 = 'main.error_views.error_403' -handler400 = 'main.error_views.error_400' +handler404 = "main.error_views.error_404" +handler500 = "main.error_views.error_500" +handler403 = "main.error_views.error_403" +handler400 = "main.error_views.error_400" urlpatterns = [ - path('admin/', admin.site.urls), - path('saml/', include('djangosaml2.urls')), - path('', include('main.urls')), - path('files/', include('dev_files.urls')), - path('integration_platform/', include('dev_integration_platform.urls')), - - path('impersonate/', include('impersonate.urls')), - path('cdhcore/', include('cdh.core.urls')), - path('i18n/', include('django.conf.urls.i18n')), + path("admin/", admin.site.urls), + path("saml/", include("djangosaml2.urls")), + path("", include("main.urls")), + path("files/", include("dev_files.urls")), + path("vue/", include("dev_vue.urls")), + path("integration_platform/", include("dev_integration_platform.urls")), + path("impersonate/", include("impersonate.urls")), + path("cdhcore/", include("cdh.core.urls")), + path("i18n/", include("django.conf.urls.i18n")), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT, show_indexes=True) -admin.site.site_header = '' -admin.site.site_title = '' -admin.site.index_title = '' +admin.site.site_header = "" +admin.site.site_title = "" +admin.site.index_title = "" if settings.DEBUG: import debug_toolbar - urlpatterns = [ - path('__debug__/', include(debug_toolbar.urls)), + urlpatterns = [ + path("__debug__/", include(debug_toolbar.urls)), ] + urlpatterns diff --git a/dev/dev_vue/__init__.py b/dev/dev_vue/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/dev/dev_vue/admin.py b/dev/dev_vue/admin.py new file mode 100644 index 00000000..8c38f3f3 --- /dev/null +++ b/dev/dev_vue/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/dev/dev_vue/apps.py b/dev/dev_vue/apps.py new file mode 100644 index 00000000..9ffe0bab --- /dev/null +++ b/dev/dev_vue/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class DevRestConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'dev_vue' diff --git a/dev/dev_vue/management/__init__.py b/dev/dev_vue/management/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/dev/dev_vue/management/commands/__init__.py b/dev/dev_vue/management/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/dev/dev_vue/management/commands/create_test_data.py b/dev/dev_vue/management/commands/create_test_data.py new file mode 100644 index 00000000..d4c29a5b --- /dev/null +++ b/dev/dev_vue/management/commands/create_test_data.py @@ -0,0 +1,50 @@ +""" +Creates one million bs data entries for testing + +Not a fixture because it would be a very large file full of bs +""" + +import logging + +from django.core.management.base import BaseCommand +from django.db import transaction +from django.utils.timezone import make_aware +from faker import Faker +from random import choice + +from dev_vue.models import ExampleData + +logger = logging.getLogger(__name__) + + +class Command(BaseCommand): + + def handle(self, *args, **options): + print("Sit back, this will take a while. Up to half an hour depending on your PC.") + faker = Faker() + + # The transaction is not needed, but does speed up SQLite performance + # as everything is done in the one connection, reducing overhead + with transaction.atomic(): + for i in range(1, 1000000): + progress(i, 1000000) + ExampleData.objects.create(**{ + 'project_name': faker.bs(), + 'project_owner': faker.name(), + 'reference_number': i, + 'created': make_aware(faker.date_time_between()), + 'project_type': choice(ExampleData.TypeOptions.values), + 'status': choice(ExampleData.StatusOptions.values) + }) + + +def progress(iteration, total, width=80, start="\r", newline_on_complete=True): + width = width - 2 + tally = f" {iteration}/{total}" + width -= len(tally) + filledLength = int(width * iteration // total) + bar = "█" * filledLength + "-" * (width - filledLength) + print(f"{start}|{bar}|{tally}", end="") + # Print New Line on Complete + if newline_on_complete and iteration == total: + print() diff --git a/dev/dev_vue/menus.py b/dev/dev_vue/menus.py new file mode 100644 index 00000000..e455587b --- /dev/null +++ b/dev/dev_vue/menus.py @@ -0,0 +1,31 @@ +from django.urls import reverse +from menu import Menu, MenuItem + + +sub_menus = [] + +sub_menus.append( + MenuItem( + "UU-List", + reverse("dev_vue:list"), + exact_url=True, + ) +) + +sub_menus.append( + MenuItem( + "Example custom UU-List", + reverse("dev_vue:custom-list"), + exact_url=True, + ) +) + +Menu.add_item( + "main", + MenuItem( + "Vue", + "#", + exact_url=True, + children=sub_menus, + ), +) diff --git a/dev/dev_vue/migrations/0001_initial.py b/dev/dev_vue/migrations/0001_initial.py new file mode 100644 index 00000000..2d1195f5 --- /dev/null +++ b/dev/dev_vue/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# Generated by Django 4.0.8 on 2023-08-07 10:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='ExampleData', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('project_name', models.TextField()), + ('project_owner', models.TextField()), + ('reference_number', models.TextField()), + ('status', models.CharField(choices=[('O', 'Open'), ('R', 'In review'), ('C', 'Concluded')], default='O', max_length=2)), + ('created', models.DateTimeField(auto_now_add=True)), + ], + ), + ] diff --git a/dev/dev_vue/migrations/0002_exampledata_project_type.py b/dev/dev_vue/migrations/0002_exampledata_project_type.py new file mode 100644 index 00000000..8c1e854c --- /dev/null +++ b/dev/dev_vue/migrations/0002_exampledata_project_type.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.8 on 2023-08-11 11:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dev_vue', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='exampledata', + name='project_type', + field=models.CharField(choices=[('S', 'Standard'), ('E', 'External'), ('TS', 'Top secret'), ('TK', 'Topsy Kretts')], default='S', max_length=2), + ), + ] diff --git a/dev/dev_vue/migrations/0003_alter_exampledata_created.py b/dev/dev_vue/migrations/0003_alter_exampledata_created.py new file mode 100644 index 00000000..bcb9ebb5 --- /dev/null +++ b/dev/dev_vue/migrations/0003_alter_exampledata_created.py @@ -0,0 +1,19 @@ +# Generated by Django 4.0.8 on 2023-08-11 13:37 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dev_vue', '0002_exampledata_project_type'), + ] + + operations = [ + migrations.AlterField( + model_name='exampledata', + name='created', + field=models.DateTimeField(default=datetime.datetime.now), + ), + ] diff --git a/dev/dev_vue/migrations/__init__.py b/dev/dev_vue/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/dev/dev_vue/models.py b/dev/dev_vue/models.py new file mode 100644 index 00000000..afb0542d --- /dev/null +++ b/dev/dev_vue/models.py @@ -0,0 +1,38 @@ +from datetime import datetime + +from django.db import models + + +class ExampleData(models.Model): + class StatusOptions(models.TextChoices): + OPEN = "O", "Open" + IN_REVIEW = "R", "In review" + CONCLUDED = "C", "Concluded" + + class TypeOptions(models.TextChoices): + STANDARD = "S", "Standard" + EXTERNAL = "E", "External" + TOP_SECRET = "TS", "Top secret" + # This is a reference to the movie 'The number 23'. Can highly + # recommend that movie... if you are less than sober + TOPSY_KRETTS = "TK", "Topsy Kretts" + + project_name = models.TextField() + + project_owner = models.TextField() + + reference_number = models.TextField() + + status = models.CharField( + choices=StatusOptions.choices, + default=StatusOptions.OPEN, + max_length=2, + ) + + project_type = models.CharField( + choices=TypeOptions.choices, + default=TypeOptions.STANDARD, + max_length=2, + ) + + created = models.DateTimeField(default=datetime.now) diff --git a/dev/dev_vue/serializers.py b/dev/dev_vue/serializers.py new file mode 100644 index 00000000..da373ad1 --- /dev/null +++ b/dev/dev_vue/serializers.py @@ -0,0 +1,56 @@ +from cdh.vue3.components.uu_list import ( + DDVActionDividerField, + DDVLinkField, + DDVActionsField, +) +from cdh.rest.server.serializers import ModelDisplaySerializer +from dev_vue.models import ExampleData + + +class ExampleDataSerializer(ModelDisplaySerializer): + """This is the demo/test serializer for UU-List""" + + edit_button = DDVLinkField( + text="Edit", + link="dev_vue:dummy", + link_attr="pk", + check=lambda o: o.status == ExampleData.StatusOptions.OPEN, + ) + actions = DDVActionsField( + [ + DDVLinkField( + text="Edit", + link="dev_vue:dummy", + link_attr="pk", + check=lambda o: o.status == ExampleData.StatusOptions.OPEN, + ), + DDVLinkField( + text="Review", + link="dev_vue:list", + check=lambda o: o.status == ExampleData.StatusOptions.IN_REVIEW, + ), + DDVLinkField( + text="Assign", + link="https://www.youtube.com/watch?v=dQw4w9WgXcQ", + new_tab=True, + check=lambda o: o.status == ExampleData.StatusOptions.IN_REVIEW, + ), + DDVLinkField( + text="Print", + link="dev_vue:list", + ), + DDVActionDividerField( + check=lambda o: o.status == ExampleData.StatusOptions.OPEN, + ), + DDVLinkField( + text="Delete", + link="dev_vue:list", + classes="text-danger fw-bold", + check=lambda o: o.status == ExampleData.StatusOptions.OPEN, + ), + ] + ) + + class Meta: + model = ExampleData + fields = "__all__" diff --git a/dev/dev_vue/static/dev_vue/example-custom-uu-list/CustomList.iife.js b/dev/dev_vue/static/dev_vue/example-custom-uu-list/CustomList.iife.js new file mode 100644 index 00000000..fb899a15 --- /dev/null +++ b/dev/dev_vue/static/dev_vue/example-custom-uu-list/CustomList.iife.js @@ -0,0 +1,1282 @@ +var CustomList = function(vue, vueI18n) { + "use strict"; + let getRandomValues; + const rnds8 = new Uint8Array(16); + function rng() { + if (!getRandomValues) { + getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); + if (!getRandomValues) { + throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + } + } + return getRandomValues(rnds8); + } + const byteToHex = []; + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).slice(1)); + } + function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); + } + const randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); + const native = { + randomUUID + }; + function v4(options, buf, offset) { + if (native.randomUUID && !buf && !options) { + return native.randomUUID(); + } + options = options || {}; + const rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return unsafeStringify(rnds); + } + /*! + * Copyright 2022, 2023 Utrecht University + * + * Licensed under the EUPL, Version 1.2 only + * You may not use this work except in compliance with the + Licence. + * A copy of the Licence is provided in the 'LICENCE' file in this project. + * You may also obtain a copy of the Licence at: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Unless required by applicable law or agreed to in + writing, software distributed under the Licence is + distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. + * See the Licence for the specific language governing + permissions and limitations under the Licence. + */ + function t(e) { + return e.target.value; + } + /*! + * Copyright 2022, 2023 Utrecht University + * + * Licensed under the EUPL, Version 1.2 only + * You may not use this work except in compliance with the + Licence. + * A copy of the Licence is provided in the 'LICENCE' file in this project. + * You may also obtain a copy of the Licence at: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Unless required by applicable law or agreed to in + writing, software distributed under the Licence is + distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. + * See the Licence for the specific language governing + permissions and limitations under the Licence. + */ + const re = ["href", "target"], ie = { class: "btn-text" }, ue = ["type", "name", "disabled"], de = { class: "btn-text" }, Y = /* @__PURE__ */ vue.defineComponent({ + __name: "BSButton", + props: { + id: { default: null }, + href: { default: void 0 }, + name: { default: void 0 }, + variant: { default: "dark" }, + size: { default: "normal" }, + outlined: { type: Boolean, default: false }, + active: { type: Boolean, default: false }, + disabled: { type: Boolean, default: false }, + loading: { type: Boolean, default: false }, + input: { default: "button" }, + newTab: { type: Boolean, default: false }, + cssClasses: { default: "" } + }, + setup(i) { + const t2 = i, o = vue.computed(() => { + let n = "btn "; + return t2.size === "large" ? n += "btn-lg " : t2.size === "small" && (n += "btn-sm "), t2.outlined ? n += "btn-outline-" : n += "btn-", n += `${t2.variant} `, t2.loading && (n += "btn-loading "), t2.active && (n += "active "), n; + }); + return (n, e) => n.href ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + href: n.href, + class: vue.normalizeClass(o.value), + target: n.newTab ? "_blank" : "_self" + }, [ + vue.createElementVNode("span", ie, [ + vue.renderSlot(n.$slots, "default") + ]) + ], 10, re)) : (vue.openBlock(), vue.createElementBlock("button", { + key: 1, + type: n.input, + class: vue.normalizeClass(o.value), + name: n.name, + disabled: n.disabled + }, [ + vue.createElementVNode("span", de, [ + vue.renderSlot(n.$slots, "default") + ]) + ], 10, ue)); + } + }); + const Ve = ["id", "value", "checked", "onClick"], De = ["for"], Ue = /* @__PURE__ */ vue.defineComponent({ + __name: "BSMultiSelect", + props: { + options: {}, + modelValue: {}, + containerClasses: { default: "" }, + uniqueId: { default: v4().toString() } + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t2 }) { + const o = i; + function n(e) { + const l = o.modelValue.includes(e); + let a = [...o.modelValue]; + if (!l) + a.push(e); + else { + const u = a.indexOf(e); + u > -1 && a.splice(u, 1); + } + t2("update:modelValue", a); + } + return (e, l) => (vue.openBlock(), vue.createElementBlock("div", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.options, ([a, u]) => (vue.openBlock(), vue.createElementBlock("div", { + key: a, + class: vue.normalizeClass(["form-check", e.containerClasses]) + }, [ + vue.createElementVNode("input", { + id: "id_" + a + "_" + e.uniqueId, + type: "checkbox", + class: "form-check-input", + value: a, + checked: o.modelValue.includes(a), + onClick: (_) => n(a) + }, null, 8, Ve), + vue.createElementVNode("label", { + class: "form-check-label", + for: +"_" + e.uniqueId + }, vue.toDisplayString(u), 9, De) + ], 2))), 128)) + ])); + } + }), Le = { + class: "pagination justify-content-center", + role: "navigation", + "aria-label": "pagination" + }, Oe = ["onClick"], Ie = { + key: 1, + class: "page-link" + }, q = /* @__PURE__ */ vue.defineComponent({ + __name: "BSPagination", + props: { + maxPages: {}, + currentpage: {}, + showButtons: { type: Boolean, default: true }, + numOptions: { default: 2 } + }, + emits: ["change-page"], + setup(i, { emit: t2 }) { + const o = i; + function n(u, _, y) { + return Math.min(Math.max(u, _), y); + } + const e = vue.computed(() => { + const u = o.numOptions, _ = o.currentpage - u, y = o.currentpage + u + 1, P = [], I = []; + let U; + for (let $ = 1; $ <= o.maxPages; $++) + ($ === 1 || $ === o.maxPages || $ >= _ && $ < y) && P.push($); + for (const $ of P) + U && ($ - U === 2 ? I.push(U + 1) : $ - U !== 1 && I.push(-42)), I.push($), U = $; + return I; + }); + function l(u) { + u = n(u, 1, o.maxPages), t2("change-page", u); + } + const { t: a } = vueI18n.useI18n(); + return (u, _) => (vue.openBlock(), vue.createElementBlock("ul", Le, [ + vue.createElementVNode("li", { + class: vue.normalizeClass(["page-item page-button", u.currentpage === 1 ? "disabled" : ""]) + }, [ + u.showButtons ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: _[0] || (_[0] = (y) => l(u.currentpage - 1)) + }, vue.toDisplayString(vue.unref(a)("previous")), 1)) : vue.createCommentVNode("", true) + ], 2), + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.value, (y) => (vue.openBlock(), vue.createElementBlock("li", { + key: y, + class: vue.normalizeClass([ + "page-item", + (y === -42 ? "disabled page-ellipsis " : "") + (y === u.currentpage ? "active" : "") + ]) + }, [ + y !== -42 ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: (P) => l(y) + }, vue.toDisplayString(y), 9, Oe)) : (vue.openBlock(), vue.createElementBlock("span", Ie, "…")) + ], 2))), 128)), + vue.createElementVNode("li", { + class: vue.normalizeClass(["page-item page-button", u.currentpage >= u.maxPages ? "disabled" : ""]) + }, [ + u.showButtons ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: _[1] || (_[1] = (y) => l(u.currentpage + 1)) + }, vue.toDisplayString(vue.unref(a)("next")), 1)) : vue.createCommentVNode("", true) + ], 2) + ])); + } + }); + function Q(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + next: (o) => { + const { normalize: n } = o; + return n(["Next"]); + }, + previous: (o) => { + const { normalize: n } = o; + return n(["Previous"]); + } + }, + nl: { + next: (o) => { + const { normalize: n } = o; + return n(["Volgende"]); + }, + previous: (o) => { + const { normalize: n } = o; + return n(["Vorige"]); + } + } + } + }); + } + typeof Q == "function" && Q(q); + const Pe = ["id", "value", "checked", "onClick"], Ee = ["for"], Ne = /* @__PURE__ */ vue.defineComponent({ + __name: "BSRadioSelect", + props: { + options: {}, + modelValue: {}, + containerClasses: { default: "" } + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t2 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.options, ([e, l]) => (vue.openBlock(), vue.createElementBlock("div", { + key: e, + class: vue.normalizeClass(["form-check", o.containerClasses]) + }, [ + vue.createElementVNode("input", { + id: "id_" + e, + type: "radio", + class: "form-check-input", + value: e, + checked: o.modelValue == e, + onClick: (a) => t2("update:model-value", e) + }, null, 8, Pe), + vue.createElementVNode("label", { + class: "form-check-label", + for: "id_" + e + }, vue.toDisplayString(l), 9, Ee) + ], 2))), 128)) + ])); + } + }), Me = { class: "uu-sidebar" }, Te = ["data-bs-target"], qe = ["id"], Re = { class: "uu-sidebar-content" }, je = /* @__PURE__ */ vue.defineComponent({ + __name: "BSSidebar", + props: { + id: { default: null }, + placement: { default: "left" }, + mobilePlacement: { default: "top" }, + stickySidebar: { type: Boolean, default: false }, + mobileStickySidebar: { type: Boolean, default: false } + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.id !== null ? t2.id : "id_" + v4().toString().replace(/-/g, "")), n = vue.computed(() => { + let e = ""; + return t2.placement === "right" && (e += "uu-sidebar-right "), t2.mobilePlacement === "bottom" && (e += "uu-sidebar-mobile-bottom "), t2.stickySidebar && (e += "uu-sidebar-sticky "), t2.mobileStickySidebar && (e += "uu-sidebar-mobile-sticky "), e; + }); + return (e, l) => (vue.openBlock(), vue.createElementBlock("div", { + class: vue.normalizeClass(["uu-sidebar-container", n.value]) + }, [ + vue.createElementVNode("aside", Me, [ + vue.createElementVNode("button", { + class: "uu-sidebar-toggle", + type: "button", + "data-bs-toggle": "collapse", + "data-bs-target": "#" + o.value, + "aria-expanded": "false" + }, [ + vue.renderSlot(e.$slots, "sidebar-button") + ], 8, Te), + vue.createElementVNode("div", { + id: o.value, + class: "uu-sidebar-collapse collapse" + }, [ + vue.renderSlot(e.$slots, "sidebar") + ], 8, qe) + ]), + vue.createElementVNode("div", Re, [ + vue.renderSlot(e.$slots, "default") + ]) + ], 2)); + } + }), Fe = { class: "uu-list-filter" }, Ze = { class: "uu-list-filter-label" }, Ge = { + key: 2, + class: "uu-list-filter-field" + }, Qe = ["value"], We = /* @__PURE__ */ vue.defineComponent({ + __name: "Filter", + props: { + filter: {}, + value: {} + }, + emits: ["update:value"], + setup(i, { emit: t$1 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", Fe, [ + vue.createElementVNode("div", Ze, vue.toDisplayString(o.filter.label), 1), + o.filter.type === "checkbox" ? (vue.openBlock(), vue.createBlock(vue.unref(Ue), { + key: 0, + options: o.filter.options ?? [], + "model-value": o.value ?? [], + "onUpdate:modelValue": n[0] || (n[0] = (e) => t$1("update:value", e)) + }, null, 8, ["options", "model-value"])) : vue.createCommentVNode("", true), + o.filter.type === "radio" ? (vue.openBlock(), vue.createBlock(vue.unref(Ne), { + key: 1, + options: o.filter.options ?? [], + "model-value": o.value ?? "", + "onUpdate:modelValue": n[1] || (n[1] = (e) => t$1("update:value", e)) + }, null, 8, ["options", "model-value"])) : vue.createCommentVNode("", true), + o.filter.type === "date" ? (vue.openBlock(), vue.createElementBlock("div", Ge, [ + vue.createElementVNode("input", { + type: "date", + value: o.value, + class: "form-control", + onInput: n[2] || (n[2] = (e) => t$1("update:value", vue.unref(t)(e))) + }, null, 40, Qe) + ])) : vue.createCommentVNode("", true) + ])); + } + }), Ae = { key: 0 }, x = /* @__PURE__ */ vue.defineComponent({ + __name: "FilterBar", + props: { + filters: {}, + filterValues: {} + }, + emits: ["update:filter-values"], + setup(i, { emit: t2 }) { + const o = i; + function n(e, l) { + let a = { ...o.filterValues }; + a[e] = l, t2("update:filter-values", a); + } + return (e, l) => e.filters ? (vue.openBlock(), vue.createElementBlock("div", Ae, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.filters, (a) => (vue.openBlock(), vue.createBlock(We, { + key: a.field, + filter: a, + value: e.filterValues[a.field] ?? void 0, + "onUpdate:value": (u) => n(a.field, u) + }, null, 8, ["filter", "value", "onUpdate:value"]))), 128)) + ])) : vue.createCommentVNode("", true); + } + }), He = { class: "search" }, Je = ["value", "placeholder"], R = /* @__PURE__ */ vue.defineComponent({ + __name: "SearchControl", + props: { + modelValue: {} + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t$1 }) { + function o(a, u = 500) { + let _; + return (...y) => { + clearTimeout(_), _ = setTimeout(() => { + a.apply(this, y); + }, u); + }; + } + function n(a) { + t$1("update:modelValue", a); + } + const e = o((a) => n(a)), { t: l } = vueI18n.useI18n(); + return (a, u) => (vue.openBlock(), vue.createElementBlock("div", He, [ + vue.createElementVNode("input", { + id: "search", + class: "form-control", + value: a.modelValue, + placeholder: vue.unref(l)("placeholder"), + onInput: u[0] || (u[0] = (_) => vue.unref(e)(vue.unref(t)(_))) + }, null, 40, Je) + ])); + } + }); + function W(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + placeholder: (o) => { + const { normalize: n } = o; + return n(["Search"]); + } + }, + nl: { + placeholder: (o) => { + const { normalize: n } = o; + return n(["Zoeken"]); + } + } + } + }); + } + typeof W == "function" && W(R); + const Ke = ["value"], Xe = ["value"], ee = /* @__PURE__ */ vue.defineComponent({ + __name: "PageSizeControl", + props: { + pageSize: {}, + pageSizeOptions: {} + }, + emits: ["update:pageSize", "update:page-size"], + setup(i, { emit: t$1 }) { + const o = i; + function n(e) { + if (typeof e == "string") + try { + e = Number(e); + } catch { + e = o.pageSizeOptions[0] ?? 10; + } + t$1("update:pageSize", e); + } + return (e, l) => (vue.openBlock(), vue.createElementBlock("select", { + value: e.pageSize, + class: "form-select", + onChange: l[0] || (l[0] = (a) => n(vue.unref(t)(a))) + }, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.pageSizeOptions, (a) => (vue.openBlock(), vue.createElementBlock("option", { + key: a, + value: a + }, vue.toDisplayString(a), 9, Xe))), 128)) + ], 40, Ke)); + } + }), Ye = ["value"], xe = ["value"], te = /* @__PURE__ */ vue.defineComponent({ + __name: "SortControl", + props: { + currentSort: {}, + sortOptions: {} + }, + emits: ["update:current-sort", "update:currentSort"], + setup(i, { emit: t$1 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("select", { + value: o.currentSort, + class: "form-select", + onChange: n[0] || (n[0] = (e) => o.$emit("update:current-sort", vue.unref(t)(e).trim())) + }, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.sortOptions, ({ field: e, label: l }) => (vue.openBlock(), vue.createElementBlock("option", { + key: e, + value: e + }, vue.toDisplayString(l), 9, xe))), 128)) + ], 40, Ye)); + } + }), et = { key: 0 }, j = /* @__PURE__ */ vue.defineComponent({ + __name: "SearchResultNum", + props: { + searchQuery: {}, + pageNum: {}, + totalNum: {} + }, + setup(i) { + const { t: t2 } = vueI18n.useI18n(); + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", null, [ + o.searchQuery ? (vue.openBlock(), vue.createElementBlock("span", et, vue.toDisplayString(vue.unref(t2)("search", { query: o.searchQuery })), 1)) : vue.createCommentVNode("", true), + vue.createTextVNode(" " + vue.toDisplayString(vue.unref(t2)("showing", { + pageNum: o.pageNum, + totalNum: Intl.NumberFormat().format(o.totalNum) + })), 1) + ])); + } + }); + function A(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + search: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["Search result: ", e(l("query")), ","]); + }, + showing: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["showing ", e(l("pageNum")), " of ", e(l("totalNum")), " results"]); + } + }, + nl: { + search: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["Zoekresultaat: ", e(l("query")), ","]); + }, + showing: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n([e(l("pageNum")), " van ", e(l("totalNum")), " getoond"]); + } + } + } + }); + } + typeof A == "function" && A(j); + const tt = { class: "uu-container" }, nt = { class: "uu-list" }, ot = { class: "uu-list-controls" }, at = { + key: 1, + class: "uu-list-order-control" + }, st = { class: "uu-list-page-size-control" }, lt = { + key: 0, + class: "uu-list-filters" + }, rt = { class: "uu-list-content" }, it = /* @__PURE__ */ vue.defineComponent({ + __name: "Default", + props: { + data: {}, + isLoading: { type: Boolean }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean }, + search: {}, + sortEnabled: { type: Boolean }, + currentSort: {}, + sortOptions: {}, + pageSize: {}, + pageSizeOptions: {}, + filtersEnabled: { type: Boolean }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => Math.ceil(o.totalData / o.pageSize)); + return (e, l) => { + var a; + return vue.openBlock(), vue.createElementBlock("div", tt, [ + vue.createElementVNode("div", nt, [ + vue.createElementVNode("div", ot, [ + e.searchEnabled ? (vue.openBlock(), vue.createBlock(R, { + key: 0, + "model-value": e.search, + class: "uu-list-search-control", + "onUpdate:modelValue": l[0] || (l[0] = (u) => e.$emit("update:search", u)) + }, null, 8, ["model-value"])) : vue.createCommentVNode("", true), + vue.createVNode(j, { + "search-query": e.search, + "page-num": ((a = e.data) == null ? void 0 : a.length) ?? 0, + "total-num": e.totalData, + class: "uu-list-search-text-control" + }, null, 8, ["search-query", "page-num", "total-num"]), + e.sortEnabled ? (vue.openBlock(), vue.createElementBlock("div", at, [ + vue.createVNode(te, { + "current-sort": e.currentSort, + "sort-options": e.sortOptions, + "onUpdate:currentSort": l[1] || (l[1] = (u) => t2("update:current-sort", u)) + }, null, 8, ["current-sort", "sort-options"]) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", st, [ + vue.createVNode(ee, { + "page-size-options": e.pageSizeOptions, + "page-size": e.pageSize, + "onUpdate:pageSize": l[2] || (l[2] = (u) => t2("update:page-size", u)) + }, null, 8, ["page-size-options", "page-size"]) + ]) + ]), + e.filtersEnabled ? (vue.openBlock(), vue.createElementBlock("div", lt, [ + vue.renderSlot(e.$slots, "filters-top", { + data: e.data, + isLoading: e.isLoading + }), + vue.createVNode(x, { + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:filterValues": l[3] || (l[3] = (u) => e.$emit("update:filter-values", u)) + }, null, 8, ["filters", "filter-values"]), + vue.renderSlot(e.$slots, "filters-bottom", { + data: e.data, + isLoading: e.isLoading + }) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", rt, [ + vue.renderSlot(e.$slots, "data", { + data: e.data, + isLoading: e.isLoading + }), + vue.createElementVNode("div", null, [ + e.data ? (vue.openBlock(), vue.createBlock(vue.unref(q), { + key: 0, + "max-pages": n.value, + currentpage: e.currentPage, + onChangePage: l[4] || (l[4] = (u) => e.$emit("update:current-page", u)) + }, null, 8, ["max-pages", "currentpage"])) : vue.createCommentVNode("", true) + ]) + ]) + ]) + ]); + }; + } + }), ut = { class: "w-100 d-flex align-items-center gap-3 uu-list-controls" }, dt = { + key: 0, + class: "ms-auto" + }, ne = /* @__PURE__ */ vue.defineComponent({ + __name: "Sidebar", + props: { + data: {}, + isLoading: { type: Boolean }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean }, + search: {}, + sortEnabled: { type: Boolean }, + currentSort: {}, + sortOptions: {}, + pageSize: {}, + pageSizeOptions: {}, + filtersEnabled: { type: Boolean }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => Math.ceil(o.totalData / o.pageSize)); + return (e, l) => (vue.openBlock(), vue.createBlock(vue.unref(je), { class: "uu-list-sidebar" }, { + sidebar: vue.withCtx(() => [ + e.searchEnabled ? (vue.openBlock(), vue.createBlock(R, { + key: 0, + "model-value": e.search, + "onUpdate:modelValue": l[0] || (l[0] = (a) => e.$emit("update:search", a)) + }, null, 8, ["model-value"])) : vue.createCommentVNode("", true), + vue.renderSlot(e.$slots, "filters-top", { + data: e.data, + isLoading: e.isLoading + }), + e.filters ? (vue.openBlock(), vue.createBlock(x, { + key: 1, + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:filterValues": l[1] || (l[1] = (a) => e.$emit("update:filter-values", a)) + }, null, 8, ["filters", "filter-values"])) : vue.createCommentVNode("", true), + vue.renderSlot(e.$slots, "filters-bottom", { + data: e.data, + isLoading: e.isLoading + }) + ]), + default: vue.withCtx(() => { + var a; + return [ + vue.createElementVNode("div", null, [ + vue.createElementVNode("div", ut, [ + vue.createVNode(j, { + "search-query": e.search, + "page-num": ((a = e.data) == null ? void 0 : a.length) ?? 0, + "total-num": e.totalData + }, null, 8, ["search-query", "page-num", "total-num"]), + e.sortEnabled ? (vue.openBlock(), vue.createElementBlock("div", dt, [ + vue.createVNode(te, { + "current-sort": e.currentSort, + "sort-options": e.sortOptions, + "onUpdate:currentSort": l[2] || (l[2] = (u) => t2("update:current-sort", u)) + }, null, 8, ["current-sort", "sort-options"]) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", null, [ + vue.createVNode(ee, { + "page-size-options": e.pageSizeOptions, + "page-size": e.pageSize, + "onUpdate:pageSize": l[3] || (l[3] = (u) => t2("update:page-size", u)) + }, null, 8, ["page-size-options", "page-size"]) + ]) + ]), + vue.renderSlot(e.$slots, "data", { + data: e.data, + isLoading: e.isLoading + }), + vue.createElementVNode("div", null, [ + e.data ? (vue.openBlock(), vue.createBlock(vue.unref(q), { + key: 0, + "max-pages": n.value, + currentpage: e.currentPage, + onChangePage: l[4] || (l[4] = (u) => e.$emit("update:current-page", u)) + }, null, 8, ["max-pages", "currentpage"])) : vue.createCommentVNode("", true) + ]) + ]) + ]; + }), + _: 3 + })); + } + }); + function H(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + loading: (o) => { + const { normalize: n } = o; + return n(["Loading...."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["No items to display"]); + } + }, + nl: { + loading: (o) => { + const { normalize: n } = o; + return n(["Gegevens worden laden..."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["Geen gegevens om te tonen"]); + } + } + } + }); + } + typeof H == "function" && H(ne); + const pt = /* @__PURE__ */ vue.defineComponent({ + __name: "DebugVisualizer", + props: { + data: { default: void 0 }, + isLoading: { type: Boolean, default: false } + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("pre", null, vue.toDisplayString(t2.data), 1)); + } + }), ct = /* @__PURE__ */ vue.defineComponent({ + __name: "UUList", + props: { + container: { default: "default" }, + data: {}, + isLoading: { type: Boolean, default: false }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean, default: false }, + search: { default: "" }, + sortEnabled: { type: Boolean, default: false }, + currentSort: { default: "" }, + sortOptions: { default: () => [] }, + pageSize: { default: 10 }, + pageSizeOptions: { default: () => [10, 25, 50] }, + filtersEnabled: { type: Boolean, default: false }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => { + switch (o.container) { + case "sidebar": + return ne; + default: + return it; + } + }); + return (e, l) => (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(n.value), { + "is-loading": e.isLoading, + data: e.data, + "total-data": e.totalData, + "search-enabled": e.searchEnabled, + search: e.search, + "sort-enabled": e.sortEnabled, + "current-sort": e.currentSort, + "current-page": e.currentPage, + "page-size-options": e.pageSizeOptions, + "sort-options": e.sortOptions, + "page-size": e.pageSize, + "filters-enabled": e.filtersEnabled, + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:search": l[0] || (l[0] = (a) => t2("update:search", a)), + "onUpdate:currentSort": l[1] || (l[1] = (a) => t2("update:current-sort", a)), + "onUpdate:pageSize": l[2] || (l[2] = (a) => t2("update:page-size", a)), + "onUpdate:currentPage": l[3] || (l[3] = (a) => t2("update:current-page", a)), + "onUpdate:filterValues": l[4] || (l[4] = (a) => t2("update:filter-values", a)) + }, { + data: vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "data", { + data: a, + isLoading: u + }, () => [ + vue.createVNode(pt, { + data: a, + "is-loading": u + }, null, 8, ["data", "is-loading"]) + ]) + ]), + "filters-top": vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "filters-top", { + data: a, + isLoading: u + }) + ]), + "filters-bottom": vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "filters-bottom", { + data: a, + isLoading: u + }) + ]), + _: 3 + }, 40, ["is-loading", "data", "total-data", "search-enabled", "search", "sort-enabled", "current-sort", "current-page", "page-size-options", "sort-options", "page-size", "filters-enabled", "filters", "filter-values"])); + } + }), mt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVString", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("span", { + class: vue.normalizeClass(t2.column.classes) + }, vue.toDisplayString(t2.item[t2.column.field]), 3)); + } + }), ft = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVDate", + props: { + item: {}, + column: {} + }, + setup(i) { + const t2 = i, o = vue.computed(() => { + let n = null; + try { + n = new Date(t2.item[t2.column.field]); + } catch (a) { + return console.error(a), ""; + } + let e; + if (t2.column.language !== void 0 && t2.column.language !== null && (e = t2.column.language), typeof t2.column.format == "string") { + let a = null; + switch (t2.column.format) { + case "date": + a = { + dateStyle: "medium" + }; + break; + case "time": + a = { + timeStyle: "short" + }; + break; + case "datetime": + a = { + dateStyle: "medium", + timeStyle: "short" + }; + break; + } + return new Intl.DateTimeFormat(e, a).format(n); + } + return typeof t2.column.format == "object" && t2.column.format !== null ? new Intl.DateTimeFormat( + e, + t2.column.format + ).format(n) : new Intl.DateTimeFormat(e).format(n); + }); + return (n, e) => (vue.openBlock(), vue.createElementBlock("span", { + class: vue.normalizeClass(n.column.classes) + }, vue.toDisplayString(o.value), 3)); + } + }), gt = { key: 0 }, ht = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVButton", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.item[t2.column.field] ? (vue.openBlock(), vue.createElementBlock("span", gt, [ + vue.createVNode(vue.unref(Y), { + href: t2.item[t2.column.field].link, + "css-classes": t2.item[t2.column.field].classes, + "new-tab": t2.item[t2.column.field].new_tab, + size: t2.column.size, + variant: t2.column.variant + }, { + default: vue.withCtx(() => [ + vue.createTextVNode(vue.toDisplayString(t2.item[t2.column.field].text), 1) + ]), + _: 1 + }, 8, ["href", "css-classes", "new-tab", "size", "variant"]) + ])) : vue.createCommentVNode("", true); + } + }), vt = { key: 0 }, bt = ["href", "target"], yt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVLink", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.item[t2.column.field] ? (vue.openBlock(), vue.createElementBlock("span", vt, [ + vue.createElementVNode("a", { + href: t2.item[t2.column.field].link, + class: vue.normalizeClass(t2.column.classes), + target: t2.item[t2.column.field].new_tab ? "_blank" : "_self" + }, vue.toDisplayString(t2.item[t2.column.field].text), 11, bt) + ])) : vue.createCommentVNode("", true); + } + }), _t = ["innerHTML"], $t = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVHTML", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("span", { + innerHTML: t2.item[t2.column.field] + }, null, 8, _t)); + } + }), kt = { + key: 0, + class: "dropdown" + }, zt = /* @__PURE__ */ vue.createStaticVNode('<button class="btn p-1" type="button" data-bs-toggle="dropdown" aria-expanded="false" style="line-height:1rem;"><svg width="16px" height="16px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 13.75C12.9665 13.75 13.75 12.9665 13.75 12C13.75 11.0335 12.9665 10.25 12 10.25C11.0335 10.25 10.25 11.0335 10.25 12C10.25 12.9665 11.0335 13.75 12 13.75Z" fill="#000000"></path><path d="M19 13.75C19.9665 13.75 20.75 12.9665 20.75 12C20.75 11.0335 19.9665 10.25 19 10.25C18.0335 10.25 17.25 11.0335 17.25 12C17.25 12.9665 18.0335 13.75 19 13.75Z" fill="#000000"></path><path d="M5 13.75C5.9665 13.75 6.75 12.9665 6.75 12C6.75 11.0335 5.9665 10.25 5 10.25C4.0335 10.25 3.25 11.0335 3.25 12C3.25 12.9665 4.0335 13.75 5 13.75Z" fill="#000000"></path></svg></button>', 1), St = { class: "dropdown-menu" }, wt = { + key: 0, + class: "dropdown-divider" + }, Ct = ["href", "target"], Bt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVActions", + props: { + item: {}, + column: {} + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.item[t2.column.field].entries()); + return (n, e) => o.value ? (vue.openBlock(), vue.createElementBlock("div", kt, [ + zt, + vue.createElementVNode("ul", St, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.value, ([l, a]) => (vue.openBlock(), vue.createElementBlock("li", { key: l }, [ + a.divider ? (vue.openBlock(), vue.createElementBlock("hr", wt)) : (vue.openBlock(), vue.createElementBlock("a", { + key: 1, + href: a.link, + class: vue.normalizeClass(["dropdown-item", a.classes ?? ""]), + target: a.new_tab ? "_blank" : "_self" + }, vue.toDisplayString(a.text), 11, Ct)) + ]))), 128)) + ]) + ])) : vue.createCommentVNode("", true); + } + }), Vt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVColumn", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.column.type == "string" ? (vue.openBlock(), vue.createBlock(mt, { + key: 0, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "date" ? (vue.openBlock(), vue.createBlock(ft, { + key: 1, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "button" ? (vue.openBlock(), vue.createBlock(ht, { + key: 2, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "link" ? (vue.openBlock(), vue.createBlock(yt, { + key: 3, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "html" ? (vue.openBlock(), vue.createBlock($t, { + key: 4, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "actions" ? (vue.openBlock(), vue.createBlock(Bt, { + key: 5, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : vue.createCommentVNode("", true); + } + }), Dt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVRow", + props: { + item: {}, + columns: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("tr", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(t2.columns, (n) => (vue.openBlock(), vue.createElementBlock("td", { + key: n.field, + class: "align-middle" + }, [ + vue.createVNode(Vt, { + column: n, + item: t2.item + }, null, 8, ["column", "item"]) + ]))), 128)) + ])); + } + }), Ut = { + key: 0, + class: "alert alert-info w-100" + }, Lt = { key: 0 }, Ot = { key: 1 }, It = ["colspan"], oe = /* @__PURE__ */ vue.defineComponent({ + __name: "DataDefinedVisualizer", + props: { + data: { default: null }, + columns: {}, + isLoading: { type: Boolean, default: false } + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.data === null || t2.data === void 0 || t2.data.length === 0), { t: n } = vueI18n.useI18n(); + return (e, l) => e.isLoading && o.value ? (vue.openBlock(), vue.createElementBlock("div", Ut, vue.toDisplayString(vue.unref(n)("loading")), 1)) : (vue.openBlock(), vue.createElementBlock("table", { + key: 1, + class: vue.normalizeClass(["table", e.isLoading ? "loading" : ""]) + }, [ + vue.createElementVNode("thead", null, [ + vue.createElementVNode("tr", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.columns, (a) => (vue.openBlock(), vue.createElementBlock("th", { + key: a.field + }, vue.toDisplayString(a.label), 1))), 128)) + ]) + ]), + o.value ? (vue.openBlock(), vue.createElementBlock("tbody", Ot, [ + vue.createElementVNode("tr", null, [ + vue.createElementVNode("td", { + colspan: e.columns.length + }, vue.toDisplayString(vue.unref(n)("no_data")), 9, It) + ]) + ])) : (vue.openBlock(), vue.createElementBlock("tbody", Lt, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.data, (a) => (vue.openBlock(), vue.createBlock(Dt, { + key: a.id, + item: a, + columns: e.columns + }, null, 8, ["item", "columns"]))), 128)) + ])) + ], 2)); + } + }); + function J(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + loading: (o) => { + const { normalize: n } = o; + return n(["Loading...."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["No items to display"]); + } + }, + nl: { + loading: (o) => { + const { normalize: n } = o; + return n(["Gegevens worden laden..."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["Geen gegevens om te tonen"]); + } + } + } + }); + } + typeof J == "function" && J(oe); + const Ft = /* @__PURE__ */ vue.defineComponent({ + __name: "DSCList", + props: { + config: {} + }, + setup(i) { + const t2 = i, o = vue.ref(t2.config.pageSize), n = vue.ref(1), e = vue.ref(""), l = vue.ref("id"), a = vue.ref(true); + function u() { + var m; + let p = {}; + return (m = t2.config.filters) == null || m.forEach((k) => { + var O; + if (k.initial) { + p[k.field] = k.initial; + return; + } + switch (k.type) { + case "date": + p[k.field] = null; + break; + case "checkbox": + p[k.field] = []; + break; + case "radio": + ((O = k.options) == null ? void 0 : O.length) != 0 && k.options && (p[k.field] = k.options[0][0]); + break; + } + }), p; + } + const _ = vue.ref(u()); + let y = vue.ref(null); + const P = vue.computed(() => { + let p = []; + p.push("page_size=" + encodeURIComponent(o.value)); + for (const [m, k] of Object.entries(_.value)) + k != null && (typeof k == "object" ? k.forEach( + (O) => p.push(m + "=" + encodeURIComponent(O)) + ) : p.push(m + "=" + encodeURIComponent(k))); + return e.value && p.push("search=" + encodeURIComponent(e.value)), p.push("ordering=" + encodeURIComponent(l.value)), n.value = 1, p; + }), I = vue.computed(() => { + let p = P.value, m = "page=" + encodeURIComponent(n.value); + return p.length !== 0 && (m = "&" + m), "?" + p.join("&") + m; + }), U = vue.computed(() => { + let p = new URL(window.location.protocol + "//" + window.location.host); + return p.pathname = t2.config.dataUri, p.search = I.value, console.log(p.toString()), p.toString(); + }); + vue.watch(U, () => { + F(); + }); + const $ = vue.ref(null); + function F() { + $.value && $.value.abort(), $.value = new AbortController(), a.value = true, fetch(U.value, { signal: $.value.signal }).then((p) => { + p.json().then((m) => { + y.value = m, a.value = false, m.ordering && (l.value = m.ordering), $.value = null; + }); + }).catch((p) => { + console.log(p); + }); + } + return vue.onMounted(() => { + F(); + }), (p, m) => { + var k, O, Z; + return vue.openBlock(), vue.createBlock(ct, { + "is-loading": a.value, + data: ((k = vue.unref(y)) == null ? void 0 : k.results) ?? void 0, + "total-data": ((O = vue.unref(y)) == null ? void 0 : O.count) ?? 0, + "search-enabled": p.config.searchEnabled, + search: e.value, + "sort-enabled": p.config.sortEnabled, + "current-sort": l.value, + "page-size-options": p.config.pageSizeOptions, + "sort-options": p.config.sortOptions ?? [], + "page-size": ((Z = vue.unref(y)) == null ? void 0 : Z.page_size) ?? 10, + "current-page": n.value, + "filters-enabled": p.config.filtersEnabled, + filters: p.config.filters ?? [], + "filter-values": _.value, + container: p.config.container, + "onUpdate:search": m[0] || (m[0] = (C) => e.value = C), + "onUpdate:currentSort": m[1] || (m[1] = (C) => l.value = C), + "onUpdate:pageSize": m[2] || (m[2] = (C) => o.value = C), + "onUpdate:currentPage": m[3] || (m[3] = (C) => n.value = C), + "onUpdate:filterValues": m[4] || (m[4] = (C) => _.value = C) + }, { + data: vue.withCtx(({ data: C, isLoading: G }) => [ + vue.renderSlot(p.$slots, "data", { + data: C, + isLoading: G + }, () => [ + vue.createVNode(oe, { + data: C, + columns: p.config.columns, + "is-loading": G + }, null, 8, ["data", "columns", "is-loading"]) + ]) + ]), + _: 3 + }, 8, ["is-loading", "data", "total-data", "search-enabled", "search", "sort-enabled", "current-sort", "page-size-options", "sort-options", "page-size", "current-page", "filters-enabled", "filters", "filter-values", "container"]); + }; + } + }); + function block0(Component) { + const _Component = Component; + _Component.__i18n = _Component.__i18n || []; + _Component.__i18n.push({ + "locale": "", + "resource": { + "en": { + "name": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Name"]); + }, + "refnum": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Reference Number"]); + }, + "status": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Status"]); + } + }, + "nl": { + "name": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Naam"]); + }, + "refnum": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Referentie Nummer"]); + }, + "status": (ctx) => { + const { normalize: _normalize } = ctx; + return _normalize(["Status"]); + } + } + } + }); + } + const _hoisted_1 = { key: 0 }; + const _hoisted_2 = { + key: 1, + class: "table" + }; + const _sfc_main = { + __name: "CustomList", + props: ["config"], + setup(__props) { + const { t: t2 } = vueI18n.useI18n(); + function statusColor(status) { + switch (status) { + case "C": + return "green"; + case "R": + return "orange"; + case "O": + return "red"; + default: + return ""; + } + } + return (_ctx, _cache) => { + return vue.openBlock(), vue.createBlock(vue.unref(Ft), { config: __props.config }, { + data: vue.withCtx(({ data, isLoading }) => [ + vue.createElementVNode("div", null, [ + isLoading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, " Loading... ")) : (vue.openBlock(), vue.createElementBlock("table", _hoisted_2, [ + vue.createElementVNode("thead", null, [ + vue.createElementVNode("tr", null, [ + vue.createElementVNode("th", null, vue.toDisplayString(vue.unref(t2)("name")), 1), + vue.createElementVNode("th", null, vue.toDisplayString(vue.unref(t2)("refnum")), 1), + vue.createElementVNode("th", null, vue.toDisplayString(vue.unref(t2)("status")), 1) + ]) + ]), + vue.createElementVNode("tbody", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(data, (datum) => { + return vue.openBlock(), vue.createElementBlock("tr", null, [ + vue.createElementVNode("td", null, vue.toDisplayString(datum.project_name), 1), + vue.createElementVNode("td", null, vue.toDisplayString(datum.reference_number), 1), + vue.createElementVNode("td", { + class: vue.normalizeClass(`text-bg-${statusColor(datum.status)}`) + }, vue.toDisplayString(datum.get_status_display), 3) + ]); + }), 256)) + ]) + ])) + ]) + ]), + _: 1 + }, 8, ["config"]); + }; + } + }; + if (typeof block0 === "function") + block0(_sfc_main); + const style = ""; + return _sfc_main; +}(Vue, VueI18n); diff --git a/dev/dev_vue/static/dev_vue/example-custom-uu-list/style.css b/dev/dev_vue/static/dev_vue/example-custom-uu-list/style.css new file mode 100644 index 00000000..393f0ebd --- /dev/null +++ b/dev/dev_vue/static/dev_vue/example-custom-uu-list/style.css @@ -0,0 +1,20 @@ +/*! +* Copyright 2022, 2023 Utrecht University +* +* Licensed under the EUPL, Version 1.2 only +* You may not use this work except in compliance with the +Licence. +* A copy of the Licence is provided in the 'LICENCE' file in this project. +* You may also obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +* +* Unless required by applicable law or agreed to in +writing, software distributed under the Licence is +distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied. +* See the Licence for the specific language governing +permissions and limitations under the Licence. +*/ +.card-header-icon[data-v-06938a02]{cursor:pointer}.dropdown.dropdown-select .dropdown-menu{padding-top:0}.dropdown.dropdown-select .dropdown-item:hover{background:#ffcd00;color:#000}.dropdown.dropdown-select label{width:100%} diff --git a/dev/dev_vue/templates/dev_vue/example-custom-list.html b/dev/dev_vue/templates/dev_vue/example-custom-list.html new file mode 100644 index 00000000..ae2b1938 --- /dev/null +++ b/dev/dev_vue/templates/dev_vue/example-custom-list.html @@ -0,0 +1,13 @@ +{% extends "base/base.html" %} +{% load static %} +{% load vue3 %} + +{% block html_head %} + {% load_vue_libs %} + <script src="{% static 'dev_vue/example-custom-uu-list/CustomList.iife.js' %}"></script> + <link href="{% static 'dev_vue/example-custom-uu-list/style.css' %}" rel="stylesheet" /> +{% endblock %} + +{% block content %} + {% vue CustomList :config=uu_list_config %} +{% endblock %} diff --git a/dev/dev_vue/templates/dev_vue/list.html b/dev/dev_vue/templates/dev_vue/list.html new file mode 100644 index 00000000..2e4c0535 --- /dev/null +++ b/dev/dev_vue/templates/dev_vue/list.html @@ -0,0 +1,13 @@ +{% extends "base/base.html" %} +{% load static %} +{% load vue3 %} + +{% block html_head %} + {% load_vue_libs %} + <script src="{% static 'cdh.vue3/components/uu-list/UUList.iife.js' %}"></script> + <link href="{% static 'cdh.vue3/components/uu-list/style.css' %}" rel="stylesheet" /> +{% endblock %} + +{% block content %} + {% vue UUList :config=uu_list_config %} +{% endblock %} diff --git a/dev/dev_vue/tests.py b/dev/dev_vue/tests.py new file mode 100644 index 00000000..7ce503c2 --- /dev/null +++ b/dev/dev_vue/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/dev/dev_vue/urls.py b/dev/dev_vue/urls.py new file mode 100644 index 00000000..46f5be2d --- /dev/null +++ b/dev/dev_vue/urls.py @@ -0,0 +1,13 @@ +from django.urls import path + +from .views import ExampleDataListView, ListView, ExampleCustomListView + +app_name = "dev_vue" + +urlpatterns = [ + path("uu-list/", ListView.as_view(), name="list"), + path("uu-list/<int:pk>/", ListView.as_view(), name="dummy"), + path("custom-list/", ExampleCustomListView.as_view(), name="custom-list"), + path("custom-list/<int:pk>/", ExampleCustomListView.as_view(), name="custom-dummy"), + path("api/data/", ExampleDataListView.as_view(), name="data"), +] diff --git a/dev/dev_vue/views.py b/dev/dev_vue/views.py new file mode 100644 index 00000000..dc162103 --- /dev/null +++ b/dev/dev_vue/views.py @@ -0,0 +1,136 @@ +import time + +from django.urls import reverse_lazy +from django_filters import rest_framework as filters +from rest_framework.filters import OrderingFilter, SearchFilter + +from cdh.vue3.components.uu_list import ( + DDVActions, + DDVButton, + DDVDate, + DDVString, + DDVListView, + UUListAPIView, +) + +from .models import ExampleData +from .serializers import ExampleDataSerializer + +# +# DDV UU-List example +# This contains all Python code needed for the DDV UU-List, +# except the serializer 'ExampleDataSerializer' imported above +# + + +class ExampleDataFilterSet(filters.FilterSet): + """This is a Django-filters filterset. + + This class is used to create GET-parameter based filter fields, which + will be read by the API view to enable advanced filtering. You don't need + to do anything special related to filters aside from this class. + + These filters will be transformed to QS filters under the hood. + If a filter was not set in the request, the filter will be no-op + + See Django-filters docs for detailed docs. + """ + + # This is a filter acting on the created field of ExampleData + # The resulting QS filter would be 'created__lte={value}' + created_before = filters.DateFilter( + label="Created before", + field_name="created", + lookup_expr="lte", + ) + # This is a filter acting on the created field of ExampleData + # The resulting QS filter would be 'created__gte={value}' + created_after = filters.DateFilter( + label="Created after", + field_name="created", + lookup_expr="gte", + ) + + # Will filter the status filter on a set of N given choices + # The resulting QS filter would be `status__in=[...]` + status = filters.MultipleChoiceFilter( + label="Status", + field_name="status", + choices=ExampleData.StatusOptions.choices, + ) + + # Will filter the status filter on a given choice + # The resulting QS filter would be `project_type={value}` + project_type = filters.ChoiceFilter( + label="Type", + field_name="project_type", + choices=ExampleData.TypeOptions.choices, + ) + + class Meta: + model = ExampleData + fields = ["status", "project_type"] + + +class ExampleDataListView(UUListAPIView): + """ + See the base class(es) for information on what these fields are + """ + + queryset = ExampleData.objects.all() + serializer_class = ExampleDataSerializer + filter_backends = [OrderingFilter, SearchFilter, filters.DjangoFilterBackend] + filterset_class = ExampleDataFilterSet + search_fields = ["project_name", "project_owner", "reference_number"] + ordering_fields = [ + "id", + "reference_number", + "project_name", + "project_owner", + "created", + ] + ordering = ["project_name"] + + +class ListView(DDVListView): + template_name = "dev_vue/list.html" + model = ExampleData + data_uri = reverse_lazy("dev_vue:data") + data_view = ExampleDataListView + initial_filter_values = {"project_type": ExampleData.TypeOptions.EXTERNAL} + columns = [ + DDVString( + field="project_name", + label="Project", + ), + DDVString( + field="reference_number", + label="Ref.Num", + css_classes="fw-bold text-danger", + ), + DDVString( + field="project_owner", + label="Project Owner", + ), + DDVString( + field="get_status_display", + label="Status", + ), + DDVDate( + field="created", + label="Created on", + ), + DDVButton( + field="edit_button", + label="", + size="small", + ), + DDVActions( + field="actions", + label="", + ), + ] + + +class ExampleCustomListView(ListView): + template_name = "dev_vue/example-custom-list.html" diff --git a/package.json b/package.json index 1ded856e..ea4095c5 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "author": "Hum IT Portal Development & ILS Labs", "license": "Apache-2.0", "dependencies": { - "uu-bootstrap": "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.4.0" + "uu-bootstrap": "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0" }, "scripts": { "build-css": "yarn _build-css src/cdh/core/static/cdh.core/css/bootstrap.css --style=compressed", diff --git a/pyproject.toml b/pyproject.toml index 36d26635..85b96348 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,6 +65,7 @@ rest = [ "requests", "PyJWT", "djangorestframework", + "django-filter", "Django >=3.0,<5.0", ] vue = [ @@ -83,5 +84,6 @@ docs = [ dev = [ "pip-tools", "bpython", + "faker", "cdh-django-core[all,docs]", ] diff --git a/src/cdh/core/file_loading.py b/src/cdh/core/file_loading.py index 2b43f2e0..97467ec7 100644 --- a/src/cdh/core/file_loading.py +++ b/src/cdh/core/file_loading.py @@ -1,9 +1,14 @@ +from deprecated.sphinx import deprecated from django.templatetags.static import static js = set() css = set() +@deprecated( + version='3.1', + reason="Fundamentally flawed. Please explore your own alternatives" +) def add_js_file(file, reverse=True): """Registers a JS File to be loaded. Mostly intended for apps in the shared core to dynamically insert their files into the base template""" @@ -13,6 +18,10 @@ def add_js_file(file, reverse=True): js.add(file) +@deprecated( + version='3.1', + reason="Fundamentally flawed. Please explore your own alternatives" +) def add_css_file(file, reverse=True): """Registers a CSS File to be loaded on this page. Mostly intended for apps in the shared core to dynamically insert their files into the base diff --git a/src/cdh/core/forms.py b/src/cdh/core/forms.py index c581ef71..0f5b7edd 100644 --- a/src/cdh/core/forms.py +++ b/src/cdh/core/forms.py @@ -493,6 +493,12 @@ class TinyMCEWidget(forms.Widget): """A TinyMCE widget for HTML editting""" template_name = "cdh.core/forms/widgets/tinymce.html" + class Media: + js = [ + 'cdh.core/js/tinymce/tinymce.min.js', + 'cdh.core/js/tinymce/tinymce-jquery.min.js', + 'cdh.core/js/tinymce/shim.js' + ] def __init__( self, @@ -528,10 +534,6 @@ def __init__( self.plugins = plugins self.toolbar = toolbar - add_js_file("cdh.core/js/tinymce/tinymce.min.js") - add_js_file("cdh.core/js/tinymce/tinymce-jquery.min.js") - add_js_file("cdh.core/js/tinymce/shim.js") - def get_context(self, *args, **kwargs): context = super().get_context(*args, **kwargs) diff --git a/src/cdh/core/mail/widgets.py b/src/cdh/core/mail/widgets.py index 6f78be2e..f44640f8 100644 --- a/src/cdh/core/mail/widgets.py +++ b/src/cdh/core/mail/widgets.py @@ -11,6 +11,8 @@ class EmailContentEditWidget(TinyMCEWidget): Will add a 'preview email' button to the editor. """ + class Media: + js = ['cdh.core/js/tinymce-preview-mail-plugin.js'] def __init__( self, @@ -40,8 +42,6 @@ def __init__( self.toolbar += " | preview-mail" self.plugins.append('preview-mail') - add_js_file('cdh.core/js/tinymce-preview-mail-plugin.js') - def get_context(self, *args, **kwargs): context = super().get_context(*args, **kwargs) diff --git a/src/cdh/core/middleware/local_thread_middleware.py b/src/cdh/core/middleware/local_thread_middleware.py index e23bf7f4..9bcad207 100644 --- a/src/cdh/core/middleware/local_thread_middleware.py +++ b/src/cdh/core/middleware/local_thread_middleware.py @@ -36,20 +36,35 @@ def __init__(self, get_response): self.get_response = get_response def __call__(self, request): - # request.user closure; asserts laziness; - # memorization is implemented in - # request.user (non-data descriptor) - _do_set_current_user(lambda self: getattr(request, 'user', None)) + self.process_request(request) + try: + response = self.get_response(request) + except Exception as e: + self.process_exception(request, e) + raise + return self.process_response(request, response) + + def process_request(self, request): _do_set_current_request(lambda self: request) - response = self.get_response(request) + + def process_response(self, request, response): + # Clear the local cache, just to be sure it won't leak + _do_set_current_request(lambda self: None) return response + def process_exception(self, request, exception): + # Clear the local cache, just to be sure it won't leak + _do_set_current_request(lambda self: None) + def get_current_session(): current_request = getattr(_thread_locals, 'request', None) if callable(current_request): return current_request().session + if current_request is None: + return None + return current_request.session @@ -62,10 +77,14 @@ def get_current_request(): def get_current_user(): - current_user = getattr(_thread_locals, 'user', None) - if callable(current_user): - return current_user() - return current_user + current_request = getattr(_thread_locals, 'request', None) + if callable(current_request): + return current_request().user + + if current_request is None: + return None + + return current_request.user def get_current_authenticated_user(): diff --git a/src/cdh/core/static/cdh.core/css/bootstrap.css b/src/cdh/core/static/cdh.core/css/bootstrap.css index e3068885..742d5f2c 100644 --- a/src/cdh/core/static/cdh.core/css/bootstrap.css +++ b/src/cdh/core/static/cdh.core/css/bootstrap.css @@ -2,11 +2,11 @@ * Bootstrap v5.3.1 (https://getbootstrap.com/) * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:500;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:800;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:300;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:400;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:500;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:600;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:700;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:800;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.svg#OpenSans") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:300;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:300;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:400;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:400;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:700;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:700;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:900;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:900;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.svg#Merriweather") format("svg")}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#000 !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#000 !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-error{color:#fff !important;background-color:RGBA(var(--bs-error-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-blue{color:#fff !important;background-color:RGBA(var(--bs-blue-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark-blue{color:#fff !important;background-color:RGBA(var(--bs-dark-blue-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-indigo{color:#fff !important;background-color:RGBA(var(--bs-indigo-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-purple{color:#fff !important;background-color:RGBA(var(--bs-purple-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-pink{color:#fff !important;background-color:RGBA(var(--bs-pink-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-red{color:#fff !important;background-color:RGBA(var(--bs-red-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-bordeaux-red{color:#fff !important;background-color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-brown{color:#fff !important;background-color:RGBA(var(--bs-brown-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-cream{color:#000 !important;background-color:RGBA(var(--bs-cream-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-orange{color:#000 !important;background-color:RGBA(var(--bs-orange-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-yellow{color:#000 !important;background-color:RGBA(var(--bs-yellow-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-green{color:#000 !important;background-color:RGBA(var(--bs-green-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-teal{color:#000 !important;background-color:RGBA(var(--bs-teal-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-cyan{color:#000 !important;background-color:RGBA(var(--bs-cyan-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-white{color:#000 !important;background-color:RGBA(var(--bs-white-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-gray{color:#fff !important;background-color:RGBA(var(--bs-gray-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-gray-dark{color:#fff !important;background-color:RGBA(var(--bs-gray-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(255, 215, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 215, 51, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(0, 0, 0, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 0, 0, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(87, 198, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(87, 198, 100, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(245, 171, 126, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(245, 171, 126, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-error{color:RGBA(var(--bs-error-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-error-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-error:hover,.link-error:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(242, 242, 242, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(242, 242, 242, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(30, 30, 30, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(30, 30, 30, var(--bs-link-underline-opacity, 1)) !important}.link-blue{color:RGBA(var(--bs-blue-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-blue-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-blue:hover,.link-blue:focus{color:RGBA(66, 108, 158, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(66, 108, 158, var(--bs-link-underline-opacity, 1)) !important}.link-dark-blue{color:RGBA(var(--bs-dark-blue-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-blue-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark-blue:hover,.link-dark-blue:focus{color:RGBA(0, 14, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 14, 51, var(--bs-link-underline-opacity, 1)) !important}.link-indigo{color:RGBA(var(--bs-indigo-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-indigo-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-indigo:hover,.link-indigo:focus{color:RGBA(82, 13, 194, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(82, 13, 194, var(--bs-link-underline-opacity, 1)) !important}.link-purple{color:RGBA(var(--bs-purple-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-purple-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-purple:hover,.link-purple:focus{color:RGBA(73, 26, 104, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(73, 26, 104, var(--bs-link-underline-opacity, 1)) !important}.link-pink{color:RGBA(var(--bs-pink-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-pink-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-pink:hover,.link-pink:focus{color:RGBA(171, 41, 106, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(171, 41, 106, var(--bs-link-underline-opacity, 1)) !important}.link-red{color:RGBA(var(--bs-red-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-red-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-red:hover,.link-red:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-bordeaux-red{color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-bordeaux-red:hover,.link-bordeaux-red:focus{color:RGBA(136, 17, 68, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(136, 17, 68, var(--bs-link-underline-opacity, 1)) !important}.link-brown{color:RGBA(var(--bs-brown-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-brown-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-brown:hover,.link-brown:focus{color:RGBA(88, 47, 28, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(88, 47, 28, var(--bs-link-underline-opacity, 1)) !important}.link-cream{color:RGBA(var(--bs-cream-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-cream-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-cream:hover,.link-cream:focus{color:RGBA(255, 235, 188, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 235, 188, var(--bs-link-underline-opacity, 1)) !important}.link-orange{color:RGBA(var(--bs-orange-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-orange-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-orange:hover,.link-orange:focus{color:RGBA(245, 171, 126, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(245, 171, 126, var(--bs-link-underline-opacity, 1)) !important}.link-yellow{color:RGBA(var(--bs-yellow-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-yellow-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-yellow:hover,.link-yellow:focus{color:RGBA(255, 215, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 215, 51, var(--bs-link-underline-opacity, 1)) !important}.link-green{color:RGBA(var(--bs-green-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-green-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-green:hover,.link-green:focus{color:RGBA(87, 198, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(87, 198, 100, var(--bs-link-underline-opacity, 1)) !important}.link-teal{color:RGBA(var(--bs-teal-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-teal-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-teal:hover,.link-teal:focus{color:RGBA(80, 185, 169, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(80, 185, 169, var(--bs-link-underline-opacity, 1)) !important}.link-cyan{color:RGBA(var(--bs-cyan-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-cyan-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-cyan:hover,.link-cyan:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-white{color:RGBA(var(--bs-white-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-white-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-white:hover,.link-white:focus{color:RGBA(255, 255, 255, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 255, 255, var(--bs-link-underline-opacity, 1)) !important}.link-gray{color:RGBA(var(--bs-gray-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-gray-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-gray:hover,.link-gray:focus{color:RGBA(86, 86, 86, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 86, 86, var(--bs-link-underline-opacity, 1)) !important}.link-gray-dark{color:RGBA(var(--bs-gray-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-gray-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-gray-dark:hover,.link-gray-dark:focus{color:RGBA(42, 42, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 42, 42, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.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){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}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !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:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.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}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.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}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y: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-inline-grid{display:inline-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 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-error{--bs-focus-ring-color: rgba(var(--bs-error-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.focus-ring-blue{--bs-focus-ring-color: rgba(var(--bs-blue-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark-blue{--bs-focus-ring-color: rgba(var(--bs-dark-blue-rgb), var(--bs-focus-ring-opacity))}.focus-ring-indigo{--bs-focus-ring-color: rgba(var(--bs-indigo-rgb), var(--bs-focus-ring-opacity))}.focus-ring-purple{--bs-focus-ring-color: rgba(var(--bs-purple-rgb), var(--bs-focus-ring-opacity))}.focus-ring-pink{--bs-focus-ring-color: rgba(var(--bs-pink-rgb), var(--bs-focus-ring-opacity))}.focus-ring-red{--bs-focus-ring-color: rgba(var(--bs-red-rgb), var(--bs-focus-ring-opacity))}.focus-ring-bordeaux-red{--bs-focus-ring-color: rgba(var(--bs-bordeaux-red-rgb), var(--bs-focus-ring-opacity))}.focus-ring-brown{--bs-focus-ring-color: rgba(var(--bs-brown-rgb), var(--bs-focus-ring-opacity))}.focus-ring-cream{--bs-focus-ring-color: rgba(var(--bs-cream-rgb), var(--bs-focus-ring-opacity))}.focus-ring-orange{--bs-focus-ring-color: rgba(var(--bs-orange-rgb), var(--bs-focus-ring-opacity))}.focus-ring-yellow{--bs-focus-ring-color: rgba(var(--bs-yellow-rgb), var(--bs-focus-ring-opacity))}.focus-ring-green{--bs-focus-ring-color: rgba(var(--bs-green-rgb), var(--bs-focus-ring-opacity))}.focus-ring-teal{--bs-focus-ring-color: rgba(var(--bs-teal-rgb), var(--bs-focus-ring-opacity))}.focus-ring-cyan{--bs-focus-ring-color: rgba(var(--bs-cyan-rgb), var(--bs-focus-ring-opacity))}.focus-ring-white{--bs-focus-ring-color: rgba(var(--bs-white-rgb), var(--bs-focus-ring-opacity))}.focus-ring-gray{--bs-focus-ring-color: rgba(var(--bs-gray-rgb), var(--bs-focus-ring-opacity))}.focus-ring-gray-dark{--bs-focus-ring-color: rgba(var(--bs-gray-dark-rgb), var(--bs-focus-ring-opacity))}.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-error{--bs-border-opacity: 1;border-color:rgba(var(--bs-error-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-blue{--bs-border-opacity: 1;border-color:rgba(var(--bs-blue-rgb), var(--bs-border-opacity)) !important}.border-dark-blue{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-blue-rgb), var(--bs-border-opacity)) !important}.border-indigo{--bs-border-opacity: 1;border-color:rgba(var(--bs-indigo-rgb), var(--bs-border-opacity)) !important}.border-purple{--bs-border-opacity: 1;border-color:rgba(var(--bs-purple-rgb), var(--bs-border-opacity)) !important}.border-pink{--bs-border-opacity: 1;border-color:rgba(var(--bs-pink-rgb), var(--bs-border-opacity)) !important}.border-red{--bs-border-opacity: 1;border-color:rgba(var(--bs-red-rgb), var(--bs-border-opacity)) !important}.border-bordeaux-red{--bs-border-opacity: 1;border-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-border-opacity)) !important}.border-brown{--bs-border-opacity: 1;border-color:rgba(var(--bs-brown-rgb), var(--bs-border-opacity)) !important}.border-cream{--bs-border-opacity: 1;border-color:rgba(var(--bs-cream-rgb), var(--bs-border-opacity)) !important}.border-orange{--bs-border-opacity: 1;border-color:rgba(var(--bs-orange-rgb), var(--bs-border-opacity)) !important}.border-yellow{--bs-border-opacity: 1;border-color:rgba(var(--bs-yellow-rgb), var(--bs-border-opacity)) !important}.border-green{--bs-border-opacity: 1;border-color:rgba(var(--bs-green-rgb), var(--bs-border-opacity)) !important}.border-teal{--bs-border-opacity: 1;border-color:rgba(var(--bs-teal-rgb), var(--bs-border-opacity)) !important}.border-cyan{--bs-border-opacity: 1;border-color:rgba(var(--bs-cyan-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-gray{--bs-border-opacity: 1;border-color:rgba(var(--bs-gray-rgb), var(--bs-border-opacity)) !important}.border-gray-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-gray-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.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:.25rem !important}.m-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-2{margin-top:.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:.25rem !important}.me-2{margin-right:.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:.25rem !important}.mb-2{margin-bottom:.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:.25rem !important}.ms-2{margin-left:.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:.25rem !important}.p-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-2{padding-top:.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:.25rem !important}.pe-2{padding-right:.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:.25rem !important}.pb-2{padding-bottom:.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:.25rem !important}.ps-2{padding-left:.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:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.295rem + 0.54vw) !important}.fs-3{font-size:calc(1.265rem + 0.18vw) !important}.fs-4{font-size:1.2rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.4 !important}.lh-base{line-height:1.6 !important}.lh-lg{line-height:2.1 !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}.text-break{word-wrap:break-word !important;word-break:break-word !important}.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-error{--bs-text-opacity: 1;color:rgba(var(--bs-error-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-blue{--bs-text-opacity: 1;color:rgba(var(--bs-blue-rgb), var(--bs-text-opacity)) !important}.text-dark-blue{--bs-text-opacity: 1;color:rgba(var(--bs-dark-blue-rgb), var(--bs-text-opacity)) !important}.text-indigo{--bs-text-opacity: 1;color:rgba(var(--bs-indigo-rgb), var(--bs-text-opacity)) !important}.text-purple{--bs-text-opacity: 1;color:rgba(var(--bs-purple-rgb), var(--bs-text-opacity)) !important}.text-pink{--bs-text-opacity: 1;color:rgba(var(--bs-pink-rgb), var(--bs-text-opacity)) !important}.text-red{--bs-text-opacity: 1;color:rgba(var(--bs-red-rgb), var(--bs-text-opacity)) !important}.text-bordeaux-red{--bs-text-opacity: 1;color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-text-opacity)) !important}.text-brown{--bs-text-opacity: 1;color:rgba(var(--bs-brown-rgb), var(--bs-text-opacity)) !important}.text-cream{--bs-text-opacity: 1;color:rgba(var(--bs-cream-rgb), var(--bs-text-opacity)) !important}.text-orange{--bs-text-opacity: 1;color:rgba(var(--bs-orange-rgb), var(--bs-text-opacity)) !important}.text-yellow{--bs-text-opacity: 1;color:rgba(var(--bs-yellow-rgb), var(--bs-text-opacity)) !important}.text-green{--bs-text-opacity: 1;color:rgba(var(--bs-green-rgb), var(--bs-text-opacity)) !important}.text-teal{--bs-text-opacity: 1;color:rgba(var(--bs-teal-rgb), var(--bs-text-opacity)) !important}.text-cyan{--bs-text-opacity: 1;color:rgba(var(--bs-cyan-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-gray{--bs-text-opacity: 1;color:rgba(var(--bs-gray-rgb), var(--bs-text-opacity)) !important}.text-gray-dark{--bs-text-opacity: 1;color:rgba(var(--bs-gray-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-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !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}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-error{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-error-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-blue{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-blue-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark-blue{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-blue-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-indigo{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-indigo-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-purple{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-purple-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-pink{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-pink-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-red{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-red-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-bordeaux-red{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-brown{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-brown-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-cream{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-cream-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-orange{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-orange-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-yellow{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-yellow-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-green{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-green-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-teal{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-teal-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-cyan{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-cyan-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-white{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-white-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-gray{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-gray-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-gray-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-gray-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-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-error{--bs-bg-opacity: 1;background-color:rgba(var(--bs-error-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-blue{--bs-bg-opacity: 1;background-color:rgba(var(--bs-blue-rgb), var(--bs-bg-opacity)) !important}.bg-dark-blue{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-blue-rgb), var(--bs-bg-opacity)) !important}.bg-indigo{--bs-bg-opacity: 1;background-color:rgba(var(--bs-indigo-rgb), var(--bs-bg-opacity)) !important}.bg-purple{--bs-bg-opacity: 1;background-color:rgba(var(--bs-purple-rgb), var(--bs-bg-opacity)) !important}.bg-pink{--bs-bg-opacity: 1;background-color:rgba(var(--bs-pink-rgb), var(--bs-bg-opacity)) !important}.bg-red{--bs-bg-opacity: 1;background-color:rgba(var(--bs-red-rgb), var(--bs-bg-opacity)) !important}.bg-bordeaux-red{--bs-bg-opacity: 1;background-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-bg-opacity)) !important}.bg-brown{--bs-bg-opacity: 1;background-color:rgba(var(--bs-brown-rgb), var(--bs-bg-opacity)) !important}.bg-cream{--bs-bg-opacity: 1;background-color:rgba(var(--bs-cream-rgb), var(--bs-bg-opacity)) !important}.bg-orange{--bs-bg-opacity: 1;background-color:rgba(var(--bs-orange-rgb), var(--bs-bg-opacity)) !important}.bg-yellow{--bs-bg-opacity: 1;background-color:rgba(var(--bs-yellow-rgb), var(--bs-bg-opacity)) !important}.bg-green{--bs-bg-opacity: 1;background-color:rgba(var(--bs-green-rgb), var(--bs-bg-opacity)) !important}.bg-teal{--bs-bg-opacity: 1;background-color:rgba(var(--bs-teal-rgb), var(--bs-bg-opacity)) !important}.bg-cyan{--bs-bg-opacity: 1;background-color:rgba(var(--bs-cyan-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-gray{--bs-bg-opacity: 1;background-color:rgba(var(--bs-gray-rgb), var(--bs-bg-opacity)) !important}.bg-gray-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-gray-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-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:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !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-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.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-xxl) !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-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}.cursor-auto{cursor:auto !important}.cursor-pointer{cursor:pointer !important}.cursor-grab{cursor:grab !important}.cursor-copy{cursor:copy !important}.cursor-default{cursor:default !important}.cursor-help{cursor:help !important}.cursor-text{cursor:text !important}.cursor-none{cursor:none !important}.cursor-not-allowed{cursor:not-allowed !important}.cursor-progress{cursor:progress !important}.cursor-wait{cursor:wait !important}.cursor-zoom-in{cursor:zoom-in !important}.cursor-zoom-out{cursor:zoom-out !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-sm-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-sm-2{margin-top:.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:.25rem !important}.me-sm-2{margin-right:.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:.25rem !important}.mb-sm-2{margin-bottom:.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:.25rem !important}.ms-sm-2{margin-left:.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:.25rem !important}.p-sm-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-sm-2{padding-top:.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:.25rem !important}.pe-sm-2{padding-right:.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:.25rem !important}.pb-sm-2{padding-bottom:.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:.25rem !important}.ps-sm-2{padding-left:.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:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}.cursor-sm-auto{cursor:auto !important}.cursor-sm-pointer{cursor:pointer !important}.cursor-sm-grab{cursor:grab !important}.cursor-sm-copy{cursor:copy !important}.cursor-sm-default{cursor:default !important}.cursor-sm-help{cursor:help !important}.cursor-sm-text{cursor:text !important}.cursor-sm-none{cursor:none !important}.cursor-sm-not-allowed{cursor:not-allowed !important}.cursor-sm-progress{cursor:progress !important}.cursor-sm-wait{cursor:wait !important}.cursor-sm-zoom-in{cursor:zoom-in !important}.cursor-sm-zoom-out{cursor:zoom-out !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-md-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-md-2{margin-top:.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:.25rem !important}.me-md-2{margin-right:.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:.25rem !important}.mb-md-2{margin-bottom:.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:.25rem !important}.ms-md-2{margin-left:.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:.25rem !important}.p-md-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-md-2{padding-top:.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:.25rem !important}.pe-md-2{padding-right:.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:.25rem !important}.pb-md-2{padding-bottom:.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:.25rem !important}.ps-md-2{padding-left:.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:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}.cursor-md-auto{cursor:auto !important}.cursor-md-pointer{cursor:pointer !important}.cursor-md-grab{cursor:grab !important}.cursor-md-copy{cursor:copy !important}.cursor-md-default{cursor:default !important}.cursor-md-help{cursor:help !important}.cursor-md-text{cursor:text !important}.cursor-md-none{cursor:none !important}.cursor-md-not-allowed{cursor:not-allowed !important}.cursor-md-progress{cursor:progress !important}.cursor-md-wait{cursor:wait !important}.cursor-md-zoom-in{cursor:zoom-in !important}.cursor-md-zoom-out{cursor:zoom-out !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-lg-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-lg-2{margin-top:.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:.25rem !important}.me-lg-2{margin-right:.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:.25rem !important}.mb-lg-2{margin-bottom:.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:.25rem !important}.ms-lg-2{margin-left:.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:.25rem !important}.p-lg-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-lg-2{padding-top:.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:.25rem !important}.pe-lg-2{padding-right:.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:.25rem !important}.pb-lg-2{padding-bottom:.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:.25rem !important}.ps-lg-2{padding-left:.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:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}.cursor-lg-auto{cursor:auto !important}.cursor-lg-pointer{cursor:pointer !important}.cursor-lg-grab{cursor:grab !important}.cursor-lg-copy{cursor:copy !important}.cursor-lg-default{cursor:default !important}.cursor-lg-help{cursor:help !important}.cursor-lg-text{cursor:text !important}.cursor-lg-none{cursor:none !important}.cursor-lg-not-allowed{cursor:not-allowed !important}.cursor-lg-progress{cursor:progress !important}.cursor-lg-wait{cursor:wait !important}.cursor-lg-zoom-in{cursor:zoom-in !important}.cursor-lg-zoom-out{cursor:zoom-out !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-xl-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-xl-2{margin-top:.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:.25rem !important}.me-xl-2{margin-right:.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:.25rem !important}.mb-xl-2{margin-bottom:.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:.25rem !important}.ms-xl-2{margin-left:.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:.25rem !important}.p-xl-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-xl-2{padding-top:.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:.25rem !important}.pe-xl-2{padding-right:.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:.25rem !important}.pb-xl-2{padding-bottom:.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:.25rem !important}.ps-xl-2{padding-left:.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:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}.cursor-xl-auto{cursor:auto !important}.cursor-xl-pointer{cursor:pointer !important}.cursor-xl-grab{cursor:grab !important}.cursor-xl-copy{cursor:copy !important}.cursor-xl-default{cursor:default !important}.cursor-xl-help{cursor:help !important}.cursor-xl-text{cursor:text !important}.cursor-xl-none{cursor:none !important}.cursor-xl-not-allowed{cursor:not-allowed !important}.cursor-xl-progress{cursor:progress !important}.cursor-xl-wait{cursor:wait !important}.cursor-xl-zoom-in{cursor:zoom-in !important}.cursor-xl-zoom-out{cursor:zoom-out !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-xxl-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-xxl-2{margin-top:.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:.25rem !important}.me-xxl-2{margin-right:.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:.25rem !important}.mb-xxl-2{margin-bottom:.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:.25rem !important}.ms-xxl-2{margin-left:.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:.25rem !important}.p-xxl-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-xxl-2{padding-top:.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:.25rem !important}.pe-xxl-2{padding-right:.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:.25rem !important}.pb-xxl-2{padding-bottom:.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:.25rem !important}.ps-xxl-2{padding-left:.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:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}.cursor-xxl-auto{cursor:auto !important}.cursor-xxl-pointer{cursor:pointer !important}.cursor-xxl-grab{cursor:grab !important}.cursor-xxl-copy{cursor:copy !important}.cursor-xxl-default{cursor:default !important}.cursor-xxl-help{cursor:help !important}.cursor-xxl-text{cursor:text !important}.cursor-xxl-none{cursor:none !important}.cursor-xxl-not-allowed{cursor:not-allowed !important}.cursor-xxl-progress{cursor:progress !important}.cursor-xxl-wait{cursor:wait !important}.cursor-xxl-zoom-in{cursor:zoom-in !important}.cursor-xxl-zoom-out{cursor:zoom-out !important}}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.7rem !important}.fs-3{font-size:1.4rem !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-inline-grid{display:inline-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,[data-bs-theme=light]{--bs-blue: #5287c6;--bs-dark-blue: #001240;--bs-indigo: #6610f2;--bs-purple: #5b2182;--bs-pink: #d63384;--bs-red: #c00a35;--bs-bordeaux-red: #aa1555;--bs-brown: #6e3b23;--bs-cream: #ffe6ab;--bs-orange: #f3965e;--bs-yellow: #ffcd00;--bs-green: #2db83d;--bs-teal: #24a793;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c6c6c;--bs-gray-dark: #343434;--bs-gray-100: #efefef;--bs-gray-200: #e9e9e9;--bs-gray-300: #dedede;--bs-gray-400: #cecece;--bs-gray-500: #adadad;--bs-gray-600: #6c6c6c;--bs-gray-700: #494949;--bs-gray-800: #343434;--bs-gray-900: #212121;--bs-primary: #ffcd00;--bs-secondary: #000;--bs-success: #2db83d;--bs-info: #0dcaf0;--bs-warning: #f3965e;--bs-danger: #c00a35;--bs-error: #c00a35;--bs-light: #efefef;--bs-dark: #262626;--bs-blue: #5287c6;--bs-dark-blue: #001240;--bs-indigo: #6610f2;--bs-purple: #5b2182;--bs-pink: #d63384;--bs-red: #c00a35;--bs-bordeaux-red: #aa1555;--bs-brown: #6e3b23;--bs-cream: #ffe6ab;--bs-orange: #f3965e;--bs-yellow: #ffcd00;--bs-green: #2db83d;--bs-teal: #24a793;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c6c6c;--bs-gray-dark: #343434;--bs-primary-rgb: 255, 205, 0;--bs-secondary-rgb: 0, 0, 0;--bs-success-rgb: 45, 184, 61;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 243, 150, 94;--bs-danger-rgb: 192, 10, 53;--bs-error-rgb: 192, 10, 53;--bs-light-rgb: 239, 239, 239;--bs-dark-rgb: 38, 38, 38;--bs-blue-rgb: 82, 135, 198;--bs-dark-blue-rgb: 0, 18, 64;--bs-indigo-rgb: 102, 16, 242;--bs-purple-rgb: 91, 33, 130;--bs-pink-rgb: 214, 51, 132;--bs-red-rgb: 192, 10, 53;--bs-bordeaux-red-rgb: 170, 21, 85;--bs-brown-rgb: 110, 59, 35;--bs-cream-rgb: 255, 230, 171;--bs-orange-rgb: 243, 150, 94;--bs-yellow-rgb: 255, 205, 0;--bs-green-rgb: 45, 184, 61;--bs-teal-rgb: 36, 167, 147;--bs-cyan-rgb: 13, 202, 240;--bs-white-rgb: 255, 255, 255;--bs-gray-rgb: 108, 108, 108;--bs-gray-dark-rgb: 52, 52, 52;--bs-primary-text-emphasis: #665200;--bs-secondary-text-emphasis: black;--bs-success-text-emphasis: #124a18;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #613c26;--bs-danger-text-emphasis: #4d0415;--bs-light-text-emphasis: #494949;--bs-dark-text-emphasis: #494949;--bs-primary-bg-subtle: #fff5cc;--bs-secondary-bg-subtle: #cccccc;--bs-success-bg-subtle: #d5f1d8;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fdeadf;--bs-danger-bg-subtle: #f2ced7;--bs-light-bg-subtle: #f7f7f7;--bs-dark-bg-subtle: #cecece;--bs-primary-border-subtle: #ffeb99;--bs-secondary-border-subtle: #999999;--bs-success-border-subtle: #abe3b1;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #fad5bf;--bs-danger-border-subtle: #e69dae;--bs-light-border-subtle: #e9e9e9;--bs-dark-border-subtle: #adadad;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: "Open Sans", "Verdana", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.6;--bs-body-color: #212121;--bs-body-color-rgb: 33, 33, 33;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 33, 33, 0.75);--bs-secondary-color-rgb: 33, 33, 33;--bs-secondary-bg: #e9e9e9;--bs-secondary-bg-rgb: 233, 233, 233;--bs-tertiary-color: rgba(33, 33, 33, 0.5);--bs-tertiary-color-rgb: 33, 33, 33;--bs-tertiary-bg: #efefef;--bs-tertiary-bg-rgb: 239, 239, 239;--bs-heading-color: inherit;--bs-link-color: #000;--bs-link-color-rgb: 0, 0, 0;--bs-link-decoration: underline;--bs-link-hover-color: black;--bs-link-hover-color-rgb: 0, 0, 0;--bs-code-color: #000;--bs-highlight-bg: #fff5cc;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dedede;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0;--bs-border-radius-sm: 0;--bs-border-radius-lg: 0;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(255, 205, 0, 0.25);--bs-form-valid-color: #2db83d;--bs-form-valid-border-color: #2db83d;--bs-form-invalid-color: #c00a35;--bs-form-invalid-border-color: #c00a35}*,*::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:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.295rem + 0.54vw)}@media(min-width: 1200px){h2,.h2{font-size:1.7rem}}h3,.h3{font-size:calc(1.265rem + 0.18vw)}@media(min-width: 1200px){h3,.h3{font-size:1.4rem}}h4,.h4{font-size:1.2rem}h5,.h5{font-size:1.1rem}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:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}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.85em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:0.85em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:0.85em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:0}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:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);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:.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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:.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:#6c6c6c}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 0;--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-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 0;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-0.5*var(--bs-gutter-x));margin-left:calc(-0.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.3333333333%}.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.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.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,.dt,.datatables{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--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.01);--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.05);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*,.dt>:not(caption)>*>*,.datatables>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody,.dt>tbody,.datatables>tbody{vertical-align:inherit}.table>thead,.dt>thead,.datatables>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.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-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #fff5cc;--bs-table-border-color: #e6ddb8;--bs-table-striped-bg: #fcf3ca;--bs-table-striped-color: #000;--bs-table-active-bg: #e6ddb8;--bs-table-active-color: #000;--bs-table-hover-bg: #f2e9c2;--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: #cccccc;--bs-table-border-color: #b8b8b8;--bs-table-striped-bg: #cacaca;--bs-table-striped-color: #000;--bs-table-active-bg: #b8b8b8;--bs-table-active-color: #000;--bs-table-hover-bg: #c2c2c2;--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: #d5f1d8;--bs-table-border-color: #c0d9c2;--bs-table-striped-bg: #d3efd6;--bs-table-striped-color: #000;--bs-table-active-bg: #c0d9c2;--bs-table-active-color: #000;--bs-table-hover-bg: #cae5cd;--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: #cdf2f9;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #c5e8ef;--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: #fdeadf;--bs-table-border-color: #e4d3c9;--bs-table-striped-bg: #fae8dd;--bs-table-striped-color: #000;--bs-table-active-bg: #e4d3c9;--bs-table-active-color: #000;--bs-table-hover-bg: #f0ded4;--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: #f2ced7;--bs-table-border-color: #dab9c2;--bs-table-striped-bg: #f0ccd5;--bs-table-striped-color: #000;--bs-table-active-bg: #dab9c2;--bs-table-active-color: #000;--bs-table-hover-bg: #e6c4cc;--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: #efefef;--bs-table-border-color: #d7d7d7;--bs-table-striped-bg: #ededed;--bs-table-striped-color: #000;--bs-table-active-bg: #d7d7d7;--bs-table-active-color: #000;--bs-table-hover-bg: #e3e3e3;--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: #262626;--bs-table-border-color: #3c3c3c;--bs-table-striped-bg: #282828;--bs-table-striped-color: #fff;--bs-table-active-bg: #3c3c3c;--bs-table-active-color: #fff;--bs-table-hover-bg: #313131;--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:.5rem;font-weight:500;color:#262626}.col-form-label{padding-top:calc(0.375rem + var(--bs-border-width));padding-bottom:calc(0.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.6;color:#262626}.col-form-label-lg{padding-top:calc(0.5rem + var(--bs-border-width));padding-bottom:calc(0.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--bs-border-width));padding-bottom:calc(0.25rem + var(--bs-border-width));font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);appearance:none;background-color:#fff;background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .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:var(--bs-body-color);background-color:#fff;border-color:#000;outline:0;box-shadow:none}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.6em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.6;color:var(--bs-body-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:var(--bs-border-width) 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.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343434' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#000;outline:0;box-shadow:none}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:0 !important}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:0 !important}.form-check{display:block;min-height:1.6rem;padding-left:1.5em;margin-bottom:.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{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.3em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#000;outline:0;box-shadow:0 0 0 .25rem rgba(255,205,0,.25)}.form-check-input:checked{background-color:#5287c6;border-color:#5287c6}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-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]{--bs-form-check-bg-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:#ffcd00;border-color:#ffcd00;--bs-form-check-bg-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:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: 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");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23000'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: 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:.65}.form-range{width:100%;height:1rem;padding:0;appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,none}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,none}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#ffcd00;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#fff0b3}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#ffcd00;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#fff0b3}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .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 .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.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:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.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{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c6c6c}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.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:calc(var(--bs-border-width) * -1);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:.25rem;font-size:0.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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:var(--bs-form-valid-border-color);padding-right:calc(1.6em + 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='%232db83d' 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.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.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"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232db83d' 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");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.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:.25rem;font-size:0.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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:var(--bs-form-invalid-border-color);padding-right:calc(1.6em + 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='%23c00a35'%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='%23c00a35' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.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"]{--bs-form-select-bg-icon: 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='%23c00a35'%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='%23c00a35' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.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: 1rem;--bs-btn-padding-y: 0.5rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.6;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0 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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: black;--bs-btn-hover-border-color: black;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: black;--bs-btn-active-border-color: black;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #000;--bs-btn-disabled-border-color: #000}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--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: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-error{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #bfbfbf;--bs-btn-focus-shadow-rgb: 203, 203, 203;--bs-btn-active-color: #000;--bs-btn-active-bg: #bfbfbf;--bs-btn-active-border-color: #b3b3b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #efefef;--bs-btn-disabled-border-color: #efefef}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #3c3c3c;--bs-btn-focus-shadow-rgb: 71, 71, 71;--bs-btn-active-color: #fff;--bs-btn-active-bg: #515151;--bs-btn-active-border-color: #3c3c3c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #262626;--bs-btn-disabled-border-color: #262626}.btn-blue{--bs-btn-color: #fff;--bs-btn-bg: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #426c9e;--bs-btn-focus-shadow-rgb: 108, 153, 207;--bs-btn-active-color: #fff;--bs-btn-active-bg: #426c9e;--bs-btn-active-border-color: #3e6595;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5287c6;--bs-btn-disabled-border-color: #5287c6}.btn-dark-blue{--bs-btn-color: #fff;--bs-btn-bg: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #000e33;--bs-btn-focus-shadow-rgb: 38, 54, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000e33;--bs-btn-active-border-color: #000e30;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #001240;--bs-btn-disabled-border-color: #001240}.btn-indigo{--bs-btn-color: #fff;--bs-btn-bg: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #520dc2;--bs-btn-focus-shadow-rgb: 125, 52, 244;--bs-btn-active-color: #fff;--bs-btn-active-bg: #520dc2;--bs-btn-active-border-color: #4d0cb6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6610f2;--bs-btn-disabled-border-color: #6610f2}.btn-purple{--bs-btn-color: #fff;--bs-btn-bg: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #491a68;--bs-btn-focus-shadow-rgb: 116, 66, 149;--bs-btn-active-color: #fff;--bs-btn-active-bg: #491a68;--bs-btn-active-border-color: #441962;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5b2182;--bs-btn-disabled-border-color: #5b2182}.btn-pink{--bs-btn-color: #fff;--bs-btn-bg: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #ab296a;--bs-btn-focus-shadow-rgb: 220, 82, 150;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ab296a;--bs-btn-active-border-color: #a12663;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d63384;--bs-btn-disabled-border-color: #d63384}.btn-red{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-bordeaux-red{--bs-btn-color: #fff;--bs-btn-bg: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #881144;--bs-btn-focus-shadow-rgb: 183, 56, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #881144;--bs-btn-active-border-color: #801040;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #aa1555;--bs-btn-disabled-border-color: #aa1555}.btn-brown{--bs-btn-color: #fff;--bs-btn-bg: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #582f1c;--bs-btn-focus-shadow-rgb: 132, 88, 68;--bs-btn-active-color: #fff;--bs-btn-active-bg: #582f1c;--bs-btn-active-border-color: #532c1a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6e3b23;--bs-btn-disabled-border-color: #6e3b23}.btn-cream{--bs-btn-color: #000;--bs-btn-bg: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe9b3;--bs-btn-focus-shadow-rgb: 217, 196, 145;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffebbc;--bs-btn-active-border-color: #ffe9b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffe6ab;--bs-btn-disabled-border-color: #ffe6ab}.btn-orange{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-yellow{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-green{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-teal{--bs-btn-color: #000;--bs-btn-bg: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #3ab09e;--bs-btn-focus-shadow-rgb: 31, 142, 125;--bs-btn-active-color: #000;--bs-btn-active-bg: #50b9a9;--bs-btn-active-border-color: #3ab09e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #24a793;--bs-btn-disabled-border-color: #24a793}.btn-cyan{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-white{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-gray{--bs-btn-color: #fff;--bs-btn-bg: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 130, 130, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565656;--bs-btn-active-border-color: #515151;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c6c6c;--bs-btn-disabled-border-color: #6c6c6c}.btn-gray-dark{--bs-btn-color: #fff;--bs-btn-bg: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #2a2a2a;--bs-btn-focus-shadow-rgb: 82, 82, 82;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2a2a;--bs-btn-active-border-color: #272727;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343434;--bs-btn-disabled-border-color: #343434}.btn-outline-primary{--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #000;--bs-btn-hover-border-color: #000;--bs-btn-focus-shadow-rgb: 0, 0, 0;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000;--bs-btn-active-border-color: #000;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #000;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--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: none;--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: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-error{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #efefef;--bs-btn-focus-shadow-rgb: 239, 239, 239;--bs-btn-active-color: #000;--bs-btn-active-bg: #efefef;--bs-btn-active-border-color: #efefef;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #efefef;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #efefef;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #262626;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: #262626;--bs-btn-active-border-color: #262626;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #262626;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #262626;--bs-gradient: none}.btn-outline-blue{--bs-btn-color: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #5287c6;--bs-btn-focus-shadow-rgb: 82, 135, 198;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5287c6;--bs-btn-active-border-color: #5287c6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5287c6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5287c6;--bs-gradient: none}.btn-outline-dark-blue{--bs-btn-color: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #001240;--bs-btn-focus-shadow-rgb: 0, 18, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #001240;--bs-btn-active-border-color: #001240;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #001240;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #001240;--bs-gradient: none}.btn-outline-indigo{--bs-btn-color: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #6610f2;--bs-btn-focus-shadow-rgb: 102, 16, 242;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6610f2;--bs-btn-active-border-color: #6610f2;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6610f2;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6610f2;--bs-gradient: none}.btn-outline-purple{--bs-btn-color: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #5b2182;--bs-btn-focus-shadow-rgb: 91, 33, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5b2182;--bs-btn-active-border-color: #5b2182;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5b2182;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5b2182;--bs-gradient: none}.btn-outline-pink{--bs-btn-color: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #d63384;--bs-btn-focus-shadow-rgb: 214, 51, 132;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d63384;--bs-btn-active-border-color: #d63384;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #d63384;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d63384;--bs-gradient: none}.btn-outline-red{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-bordeaux-red{--bs-btn-color: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #aa1555;--bs-btn-focus-shadow-rgb: 170, 21, 85;--bs-btn-active-color: #fff;--bs-btn-active-bg: #aa1555;--bs-btn-active-border-color: #aa1555;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #aa1555;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #aa1555;--bs-gradient: none}.btn-outline-brown{--bs-btn-color: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #6e3b23;--bs-btn-focus-shadow-rgb: 110, 59, 35;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6e3b23;--bs-btn-active-border-color: #6e3b23;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6e3b23;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6e3b23;--bs-gradient: none}.btn-outline-cream{--bs-btn-color: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe6ab;--bs-btn-focus-shadow-rgb: 255, 230, 171;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffe6ab;--bs-btn-active-border-color: #ffe6ab;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffe6ab;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffe6ab;--bs-gradient: none}.btn-outline-orange{--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-outline-yellow{--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-outline-green{--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-outline-teal{--bs-btn-color: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #24a793;--bs-btn-focus-shadow-rgb: 36, 167, 147;--bs-btn-active-color: #000;--bs-btn-active-bg: #24a793;--bs-btn-active-border-color: #24a793;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #24a793;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #24a793;--bs-gradient: none}.btn-outline-cyan{--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-white{--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-gradient: none}.btn-outline-gray{--bs-btn-color: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #6c6c6c;--bs-btn-focus-shadow-rgb: 108, 108, 108;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c6c6c;--bs-btn-active-border-color: #6c6c6c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6c6c6c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c6c6c;--bs-gradient: none}.btn-outline-gray-dark{--bs-btn-color: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #343434;--bs-btn-focus-shadow-rgb: 52, 52, 52;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343434;--bs-btn-active-border-color: #343434;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #343434;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343434;--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: #6c6c6c;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 38, 38;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.25rem}.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 .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 .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .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:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.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: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--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: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #ffcd00;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c6c6c;--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:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.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:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.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:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.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:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 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:rgba(0,0,0,0)}.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: #dedede;--bs-dropdown-bg: #343434;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dedede;--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: #ffcd00;--bs-dropdown-link-disabled-color: #adadad;--bs-dropdown-header-color: #adadad}.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:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.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:.75rem;padding-left:.75rem}.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:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.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:calc(var(--bs-border-width) * -1)}.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: var(--bs-secondary-color);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;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .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:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(255,205,0,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: #cecece;--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) #cecece;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #cecece #cecece #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));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #000;--bs-nav-pills-link-active-bg: #ffcd00}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.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;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: 0.5rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--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%2833, 33, 33, 0.75%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(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0;--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 .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.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:rgba(0,0,0,0);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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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,.navbar[data-bs-theme=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-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);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);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.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(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.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(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.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: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--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: 0;--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - 0);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #000;--bs-accordion-btn-bg: #ffcd00;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212121'%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='%23665200'%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: #000;--bs-accordion-btn-focus-box-shadow: none;--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #000;--bs-accordion-active-bg: #ffcd00}.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: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);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: #000;--bs-pagination-bg: #dedede;--bs-pagination-border-width: 0;--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #000;--bs-pagination-hover-bg: #ffcd00;--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: #000;--bs-pagination-focus-bg: #ffcd00;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(255, 205, 0, 0.25);--bs-pagination-active-color: #000;--bs-pagination-active-bg: #ffcd00;--bs-pagination-active-border-color: #ffcd00;--bs-pagination-disabled-color: #adadad;--bs-pagination-disabled-bg: #efefef;--bs-pagination-disabled-border-color: var(--bs-border-color);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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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:calc(0 * -1)}.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: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.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: var(--bs-border-radius);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: 0.5rem;--bs-alert-margin-bottom: 0.5rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 0 solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;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;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:.625rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-error{--bs-alert-color: var(--bs-error-text-emphasis);--bs-alert-bg: var(--bs-error-bg-subtle);--bs-alert-border-color: var(--bs-error-border-subtle);--bs-alert-link-color: var(--bs-error-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}.alert-blue{--bs-alert-color: var(--bs-blue-text-emphasis);--bs-alert-bg: var(--bs-blue-bg-subtle);--bs-alert-border-color: var(--bs-blue-border-subtle);--bs-alert-link-color: var(--bs-blue-text-emphasis)}.alert-dark-blue{--bs-alert-color: var(--bs-dark-blue-text-emphasis);--bs-alert-bg: var(--bs-dark-blue-bg-subtle);--bs-alert-border-color: var(--bs-dark-blue-border-subtle);--bs-alert-link-color: var(--bs-dark-blue-text-emphasis)}.alert-indigo{--bs-alert-color: var(--bs-indigo-text-emphasis);--bs-alert-bg: var(--bs-indigo-bg-subtle);--bs-alert-border-color: var(--bs-indigo-border-subtle);--bs-alert-link-color: var(--bs-indigo-text-emphasis)}.alert-purple{--bs-alert-color: var(--bs-purple-text-emphasis);--bs-alert-bg: var(--bs-purple-bg-subtle);--bs-alert-border-color: var(--bs-purple-border-subtle);--bs-alert-link-color: var(--bs-purple-text-emphasis)}.alert-pink{--bs-alert-color: var(--bs-pink-text-emphasis);--bs-alert-bg: var(--bs-pink-bg-subtle);--bs-alert-border-color: var(--bs-pink-border-subtle);--bs-alert-link-color: var(--bs-pink-text-emphasis)}.alert-red{--bs-alert-color: var(--bs-red-text-emphasis);--bs-alert-bg: var(--bs-red-bg-subtle);--bs-alert-border-color: var(--bs-red-border-subtle);--bs-alert-link-color: var(--bs-red-text-emphasis)}.alert-bordeaux-red{--bs-alert-color: var(--bs-bordeaux-red-text-emphasis);--bs-alert-bg: var(--bs-bordeaux-red-bg-subtle);--bs-alert-border-color: var(--bs-bordeaux-red-border-subtle);--bs-alert-link-color: var(--bs-bordeaux-red-text-emphasis)}.alert-brown{--bs-alert-color: var(--bs-brown-text-emphasis);--bs-alert-bg: var(--bs-brown-bg-subtle);--bs-alert-border-color: var(--bs-brown-border-subtle);--bs-alert-link-color: var(--bs-brown-text-emphasis)}.alert-cream{--bs-alert-color: var(--bs-cream-text-emphasis);--bs-alert-bg: var(--bs-cream-bg-subtle);--bs-alert-border-color: var(--bs-cream-border-subtle);--bs-alert-link-color: var(--bs-cream-text-emphasis)}.alert-orange{--bs-alert-color: var(--bs-orange-text-emphasis);--bs-alert-bg: var(--bs-orange-bg-subtle);--bs-alert-border-color: var(--bs-orange-border-subtle);--bs-alert-link-color: var(--bs-orange-text-emphasis)}.alert-yellow{--bs-alert-color: var(--bs-yellow-text-emphasis);--bs-alert-bg: var(--bs-yellow-bg-subtle);--bs-alert-border-color: var(--bs-yellow-border-subtle);--bs-alert-link-color: var(--bs-yellow-text-emphasis)}.alert-green{--bs-alert-color: var(--bs-green-text-emphasis);--bs-alert-bg: var(--bs-green-bg-subtle);--bs-alert-border-color: var(--bs-green-border-subtle);--bs-alert-link-color: var(--bs-green-text-emphasis)}.alert-teal{--bs-alert-color: var(--bs-teal-text-emphasis);--bs-alert-bg: var(--bs-teal-bg-subtle);--bs-alert-border-color: var(--bs-teal-border-subtle);--bs-alert-link-color: var(--bs-teal-text-emphasis)}.alert-cyan{--bs-alert-color: var(--bs-cyan-text-emphasis);--bs-alert-bg: var(--bs-cyan-bg-subtle);--bs-alert-border-color: var(--bs-cyan-border-subtle);--bs-alert-link-color: var(--bs-cyan-text-emphasis)}.alert-white{--bs-alert-color: var(--bs-white-text-emphasis);--bs-alert-bg: var(--bs-white-bg-subtle);--bs-alert-border-color: var(--bs-white-border-subtle);--bs-alert-link-color: var(--bs-white-text-emphasis)}.alert-gray{--bs-alert-color: var(--bs-gray-text-emphasis);--bs-alert-bg: var(--bs-gray-bg-subtle);--bs-alert-border-color: var(--bs-gray-border-subtle);--bs-alert-link-color: var(--bs-gray-text-emphasis)}.alert-gray-dark{--bs-alert-color: var(--bs-gray-dark-text-emphasis);--bs-alert-bg: var(--bs-gray-dark-bg-subtle);--bs-alert-border-color: var(--bs-gray-dark-border-subtle);--bs-alert-link-color: var(--bs-gray-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #ffcd00;--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-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.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: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #ffcd00;--bs-list-group-active-border-color: #ffcd00;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{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-error{--bs-list-group-color: var(--bs-error-text-emphasis);--bs-list-group-bg: var(--bs-error-bg-subtle);--bs-list-group-border-color: var(--bs-error-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-error-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-error-border-subtle);--bs-list-group-active-color: var(--bs-error-bg-subtle);--bs-list-group-active-bg: var(--bs-error-text-emphasis);--bs-list-group-active-border-color: var(--bs-error-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.list-group-item-blue{--bs-list-group-color: var(--bs-blue-text-emphasis);--bs-list-group-bg: var(--bs-blue-bg-subtle);--bs-list-group-border-color: var(--bs-blue-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-blue-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-blue-border-subtle);--bs-list-group-active-color: var(--bs-blue-bg-subtle);--bs-list-group-active-bg: var(--bs-blue-text-emphasis);--bs-list-group-active-border-color: var(--bs-blue-text-emphasis)}.list-group-item-dark-blue{--bs-list-group-color: var(--bs-dark-blue-text-emphasis);--bs-list-group-bg: var(--bs-dark-blue-bg-subtle);--bs-list-group-border-color: var(--bs-dark-blue-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-blue-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-blue-border-subtle);--bs-list-group-active-color: var(--bs-dark-blue-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-blue-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-blue-text-emphasis)}.list-group-item-indigo{--bs-list-group-color: var(--bs-indigo-text-emphasis);--bs-list-group-bg: var(--bs-indigo-bg-subtle);--bs-list-group-border-color: var(--bs-indigo-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-indigo-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-indigo-border-subtle);--bs-list-group-active-color: var(--bs-indigo-bg-subtle);--bs-list-group-active-bg: var(--bs-indigo-text-emphasis);--bs-list-group-active-border-color: var(--bs-indigo-text-emphasis)}.list-group-item-purple{--bs-list-group-color: var(--bs-purple-text-emphasis);--bs-list-group-bg: var(--bs-purple-bg-subtle);--bs-list-group-border-color: var(--bs-purple-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-purple-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-purple-border-subtle);--bs-list-group-active-color: var(--bs-purple-bg-subtle);--bs-list-group-active-bg: var(--bs-purple-text-emphasis);--bs-list-group-active-border-color: var(--bs-purple-text-emphasis)}.list-group-item-pink{--bs-list-group-color: var(--bs-pink-text-emphasis);--bs-list-group-bg: var(--bs-pink-bg-subtle);--bs-list-group-border-color: var(--bs-pink-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-pink-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-pink-border-subtle);--bs-list-group-active-color: var(--bs-pink-bg-subtle);--bs-list-group-active-bg: var(--bs-pink-text-emphasis);--bs-list-group-active-border-color: var(--bs-pink-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-bordeaux-red{--bs-list-group-color: var(--bs-bordeaux-red-text-emphasis);--bs-list-group-bg: var(--bs-bordeaux-red-bg-subtle);--bs-list-group-border-color: var(--bs-bordeaux-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-bordeaux-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-bordeaux-red-border-subtle);--bs-list-group-active-color: var(--bs-bordeaux-red-bg-subtle);--bs-list-group-active-bg: var(--bs-bordeaux-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-bordeaux-red-text-emphasis)}.list-group-item-brown{--bs-list-group-color: var(--bs-brown-text-emphasis);--bs-list-group-bg: var(--bs-brown-bg-subtle);--bs-list-group-border-color: var(--bs-brown-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-brown-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-brown-border-subtle);--bs-list-group-active-color: var(--bs-brown-bg-subtle);--bs-list-group-active-bg: var(--bs-brown-text-emphasis);--bs-list-group-active-border-color: var(--bs-brown-text-emphasis)}.list-group-item-cream{--bs-list-group-color: var(--bs-cream-text-emphasis);--bs-list-group-bg: var(--bs-cream-bg-subtle);--bs-list-group-border-color: var(--bs-cream-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-cream-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-cream-border-subtle);--bs-list-group-active-color: var(--bs-cream-bg-subtle);--bs-list-group-active-bg: var(--bs-cream-text-emphasis);--bs-list-group-active-border-color: var(--bs-cream-text-emphasis)}.list-group-item-orange{--bs-list-group-color: var(--bs-orange-text-emphasis);--bs-list-group-bg: var(--bs-orange-bg-subtle);--bs-list-group-border-color: var(--bs-orange-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-orange-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-orange-border-subtle);--bs-list-group-active-color: var(--bs-orange-bg-subtle);--bs-list-group-active-bg: var(--bs-orange-text-emphasis);--bs-list-group-active-border-color: var(--bs-orange-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-teal{--bs-list-group-color: var(--bs-teal-text-emphasis);--bs-list-group-bg: var(--bs-teal-bg-subtle);--bs-list-group-border-color: var(--bs-teal-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-teal-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-teal-border-subtle);--bs-list-group-active-color: var(--bs-teal-bg-subtle);--bs-list-group-active-bg: var(--bs-teal-text-emphasis);--bs-list-group-active-border-color: var(--bs-teal-text-emphasis)}.list-group-item-cyan{--bs-list-group-color: var(--bs-cyan-text-emphasis);--bs-list-group-bg: var(--bs-cyan-bg-subtle);--bs-list-group-border-color: var(--bs-cyan-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-cyan-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-cyan-border-subtle);--bs-list-group-active-color: var(--bs-cyan-bg-subtle);--bs-list-group-active-bg: var(--bs-cyan-text-emphasis);--bs-list-group-active-border-color: var(--bs-cyan-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-gray{--bs-list-group-color: var(--bs-gray-text-emphasis);--bs-list-group-bg: var(--bs-gray-bg-subtle);--bs-list-group-border-color: var(--bs-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-gray-border-subtle);--bs-list-group-active-color: var(--bs-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-gray-text-emphasis)}.list-group-item-gray-dark{--bs-list-group-color: var(--bs-gray-dark-text-emphasis);--bs-list-group-bg: var(--bs-gray-dark-bg-subtle);--bs-list-group-border-color: var(--bs-gray-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-gray-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-gray-dark-border-subtle);--bs-list-group-active-color: var(--bs-gray-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-gray-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-gray-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: 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");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(255, 205, 0, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:0;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 0;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);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(-0.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: 9002;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: #212121;--bs-modal-bg: #fff;--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: 0;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: 0;--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: 0;--bs-modal-title-line-height: 1.6;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: 0.0625rem;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 .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(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.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: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--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;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.6;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:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.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)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));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)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.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)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));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)}.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: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--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: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--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.6;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:rgba(0,0,0,0);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)}.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)}.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(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.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)}.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 .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 .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:.5;transition:opacity .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:.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%}.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%}.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 rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .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:rgba(0,0,0,0)}.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,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--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: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.6}@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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}@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:.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(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.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:.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:.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%}}.accordion-item{margin-bottom:1rem}.alert-primary{--bs-alert-color: #000;--bs-alert-bg: #fff5cc;--bs-alert-border-color: #fff0b3;--bs-alert-link-color: #000}.alert-secondary{--bs-alert-color: #000;--bs-alert-bg: #cccccc;--bs-alert-border-color: #b3b3b3;--bs-alert-link-color: #000}.alert-success{--bs-alert-color: #000;--bs-alert-bg: #d5f1d8;--bs-alert-border-color: #c0eac5;--bs-alert-link-color: #000}.alert-info{--bs-alert-color: #000;--bs-alert-bg: #cff4fc;--bs-alert-border-color: #b6effb;--bs-alert-link-color: #000}.alert-warning{--bs-alert-color: #000;--bs-alert-bg: #fdeadf;--bs-alert-border-color: #fbe0cf;--bs-alert-link-color: #000}.alert-danger{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-error{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-light{--bs-alert-color: #000;--bs-alert-bg: #fcfcfc;--bs-alert-border-color: #fafafa;--bs-alert-link-color: #000}.alert-dark{--bs-alert-color: #000;--bs-alert-bg: #d4d4d4;--bs-alert-border-color: #bebebe;--bs-alert-link-color: #000}.alert-blue{--bs-alert-color: #000;--bs-alert-bg: #dce7f4;--bs-alert-border-color: #cbdbee;--bs-alert-link-color: #000}.alert-dark-blue{--bs-alert-color: #000;--bs-alert-bg: #ccd0d9;--bs-alert-border-color: #b3b8c6;--bs-alert-link-color: #000}.alert-indigo{--bs-alert-color: #000;--bs-alert-bg: #e0cffc;--bs-alert-border-color: #d1b7fb;--bs-alert-link-color: #000}.alert-purple{--bs-alert-color: #000;--bs-alert-bg: #ded3e6;--bs-alert-border-color: #cebcda;--bs-alert-link-color: #000}.alert-pink{--bs-alert-color: #000;--bs-alert-bg: #f7d6e6;--bs-alert-border-color: #f3c2da;--bs-alert-link-color: #000}.alert-red{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-bordeaux-red{--bs-alert-color: #000;--bs-alert-bg: #eed0dd;--bs-alert-border-color: #e6b9cc;--bs-alert-link-color: #000}.alert-brown{--bs-alert-color: #000;--bs-alert-bg: #e2d8d3;--bs-alert-border-color: #d4c4bd;--bs-alert-link-color: #000}.alert-cream{--bs-alert-color: #000;--bs-alert-bg: #fffaee;--bs-alert-border-color: #fff8e6;--bs-alert-link-color: #000}.alert-orange{--bs-alert-color: #000;--bs-alert-bg: #fdeadf;--bs-alert-border-color: #fbe0cf;--bs-alert-link-color: #000}.alert-yellow{--bs-alert-color: #000;--bs-alert-bg: #fff5cc;--bs-alert-border-color: #fff0b3;--bs-alert-link-color: #000}.alert-green{--bs-alert-color: #000;--bs-alert-bg: #d5f1d8;--bs-alert-border-color: #c0eac5;--bs-alert-link-color: #000}.alert-teal{--bs-alert-color: #000;--bs-alert-bg: #d3ede9;--bs-alert-border-color: #bde5df;--bs-alert-link-color: #000}.alert-cyan{--bs-alert-color: #000;--bs-alert-bg: #cff4fc;--bs-alert-border-color: #b6effb;--bs-alert-link-color: #000}.alert-white{--bs-alert-color: #000;--bs-alert-bg: white;--bs-alert-border-color: white;--bs-alert-link-color: #000}.alert-gray{--bs-alert-color: #000;--bs-alert-bg: #e2e2e2;--bs-alert-border-color: lightgray;--bs-alert-link-color: #000}.alert-gray-dark{--bs-alert-color: #000;--bs-alert-bg: #d6d6d6;--bs-alert-border-color: #c2c2c2;--bs-alert-link-color: #000}.alert p:last-child{margin-bottom:0}.text-bg-hover-primary:hover{color:#000 !important;background-color:RGBA(255, 205, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-secondary:hover{color:#fff !important;background-color:RGBA(0, 0, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-success:hover{color:#000 !important;background-color:RGBA(45, 184, 61, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-info:hover{color:#000 !important;background-color:RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-warning:hover{color:#000 !important;background-color:RGBA(243, 150, 94, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-danger:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-error:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-light:hover{color:#000 !important;background-color:RGBA(239, 239, 239, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-dark:hover{color:#fff !important;background-color:RGBA(38, 38, 38, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-blue:hover{color:#fff !important;background-color:RGBA(82, 135, 198, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-dark-blue:hover{color:#fff !important;background-color:RGBA(0, 18, 64, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-indigo:hover{color:#fff !important;background-color:RGBA(102, 16, 242, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-purple:hover{color:#fff !important;background-color:RGBA(91, 33, 130, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-pink:hover{color:#fff !important;background-color:RGBA(214, 51, 132, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-red:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-bordeaux-red:hover{color:#fff !important;background-color:RGBA(170, 21, 85, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-brown:hover{color:#fff !important;background-color:RGBA(110, 59, 35, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-cream:hover{color:#000 !important;background-color:RGBA(255, 230, 171, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-orange:hover{color:#000 !important;background-color:RGBA(243, 150, 94, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-yellow:hover{color:#000 !important;background-color:RGBA(255, 205, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-green:hover{color:#000 !important;background-color:RGBA(45, 184, 61, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-teal:hover{color:#000 !important;background-color:RGBA(36, 167, 147, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-cyan:hover{color:#000 !important;background-color:RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-white:hover{color:#000 !important;background-color:RGBA(255, 255, 255, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-gray:hover{color:#fff !important;background-color:RGBA(108, 108, 108, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-gray-dark:hover{color:#fff !important;background-color:RGBA(52, 52, 52, var(--bs-bg-opacity, 1)) !important}.btn{font-weight:bold}.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(1rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.5rem + var(--bs-border-width))}.btn.btn-arrow-right.btn-sm:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-sm>.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left.btn-sm:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-sm>.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(0.5rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.25rem + var(--bs-border-width))}.btn.btn-arrow-right.btn-lg:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-lg>.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left.btn-lg:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-lg>.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(1rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.5rem + var(--bs-border-width))}.btn.btn-arrow-right::after,.btn.btn-arrow-right::before,.btn.btn-arrow-left::after,.btn.btn-arrow-left::before{display:inline-block;font-weight:900;border:.0625rem solid rgba(0,0,0,0);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn.btn-arrow-right::after,.btn.btn-arrow-right::before,.btn.btn-arrow-left::after,.btn.btn-arrow-left::before{transition:none}}.btn.btn-arrow-right:hover::after,.btn.btn-arrow-right:hover::before,.btn.btn-arrow-left:hover::after,.btn.btn-arrow-left:hover::before{background:var(--bs-btn-hover-color);color:var(--bs-btn-hover-bg);border-color:#000}.btn.btn-arrow-right::after{content:">";padding:var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x)) var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x));margin:calc(0px - var(--bs-btn-padding-y)) calc(0px - var(--bs-btn-padding-x)) calc(0px - var(--bs-btn-padding-y)) calc(.7*var(--bs-btn-padding-x));border-top-right-radius:var(--bs-btn-border-radius);border-bottom-right-radius:var(--bs-btn-border-radius)}.btn.btn-arrow-left::before{content:"<";padding:var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x)) var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x));margin:calc(0px - var(--bs-btn-padding-y)) calc(.7*var(--bs-btn-padding-x)) calc(0px - var(--bs-btn-padding-y)) calc(0px - var(--bs-btn-padding-x));border-top-left-radius:var(--bs-btn-border-radius);border-bottom-left-radius:var(--bs-btn-border-radius)}.btn.btn-loading{position:relative;color:rgba(0,0,0,0)}.btn.btn-loading .btn-text{color:rgba(0,0,0,0)}.btn.btn-loading::after{border:.125rem solid #000;border-radius:999999px;border-top-color:rgba(0,0,0,0) !important;content:"";display:block;height:1em;width:1em;position:absolute;left:calc(50% - .5em);top:calc(50% - .5em);animation:spinner-border .5s infinite linear}.btn.btn-loading.btn-primary::after{border-color:#000}.btn.btn-loading.btn-secondary::after{border-color:#fff}.btn.btn-loading.btn-success::after{border-color:#000}.btn.btn-loading.btn-info::after{border-color:#000}.btn.btn-loading.btn-warning::after{border-color:#000}.btn.btn-loading.btn-danger::after{border-color:#fff}.btn.btn-loading.btn-error::after{border-color:#fff}.btn.btn-loading.btn-light::after{border-color:#000}.btn.btn-loading.btn-dark::after{border-color:#fff}.btn.btn-loading.btn-blue::after{border-color:#fff}.btn.btn-loading.btn-dark-blue::after{border-color:#fff}.btn.btn-loading.btn-indigo::after{border-color:#fff}.btn.btn-loading.btn-purple::after{border-color:#fff}.btn.btn-loading.btn-pink::after{border-color:#fff}.btn.btn-loading.btn-red::after{border-color:#fff}.btn.btn-loading.btn-bordeaux-red::after{border-color:#fff}.btn.btn-loading.btn-brown::after{border-color:#fff}.btn.btn-loading.btn-cream::after{border-color:#000}.btn.btn-loading.btn-orange::after{border-color:#000}.btn.btn-loading.btn-yellow::after{border-color:#000}.btn.btn-loading.btn-green::after{border-color:#000}.btn.btn-loading.btn-teal::after{border-color:#000}.btn.btn-loading.btn-cyan::after{border-color:#000}.btn.btn-loading.btn-white::after{border-color:#000}.btn.btn-loading.btn-gray::after{border-color:#fff}.btn.btn-loading.btn-gray-dark::after{border-color:#fff}.btn-group{gap:.5rem}.btn-check:checked+.btn.btn-checked-primary,.btn-check:active+.btn.btn-checked-primary{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-check:checked+.btn.btn-checked-outline-primary,.btn-check:active+.btn.btn-checked-outline-primary{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-secondary,.btn-check:active+.btn.btn-checked-secondary{--bs-btn-color: #fff;--bs-btn-bg: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: black;--bs-btn-hover-border-color: black;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: black;--bs-btn-active-border-color: black;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #000;--bs-btn-disabled-border-color: #000}.btn-check:checked+.btn.btn-checked-outline-secondary,.btn-check:active+.btn.btn-checked-outline-secondary{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #000;--bs-btn-hover-border-color: #000;--bs-btn-focus-shadow-rgb: 0, 0, 0;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000;--bs-btn-active-border-color: #000;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #000;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-success,.btn-check:active+.btn.btn-checked-success{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-check:checked+.btn.btn-checked-outline-success,.btn-check:active+.btn.btn-checked-outline-success{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-info,.btn-check:active+.btn.btn-checked-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-check:checked+.btn.btn-checked-outline-info,.btn-check:active+.btn.btn-checked-outline-info{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-warning,.btn-check:active+.btn.btn-checked-warning{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-check:checked+.btn.btn-checked-outline-warning,.btn-check:active+.btn.btn-checked-outline-warning{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-danger,.btn-check:active+.btn.btn-checked-danger{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-danger,.btn-check:active+.btn.btn-checked-outline-danger{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-error,.btn-check:active+.btn.btn-checked-error{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-error,.btn-check:active+.btn.btn-checked-outline-error{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-light,.btn-check:active+.btn.btn-checked-light{--bs-btn-color: #000;--bs-btn-bg: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #bfbfbf;--bs-btn-focus-shadow-rgb: 203, 203, 203;--bs-btn-active-color: #000;--bs-btn-active-bg: #bfbfbf;--bs-btn-active-border-color: #b3b3b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #efefef;--bs-btn-disabled-border-color: #efefef}.btn-check:checked+.btn.btn-checked-outline-light,.btn-check:active+.btn.btn-checked-outline-light{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #efefef;--bs-btn-focus-shadow-rgb: 239, 239, 239;--bs-btn-active-color: #000;--bs-btn-active-bg: #efefef;--bs-btn-active-border-color: #efefef;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #efefef;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #efefef;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-dark,.btn-check:active+.btn.btn-checked-dark{--bs-btn-color: #fff;--bs-btn-bg: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #3c3c3c;--bs-btn-focus-shadow-rgb: 71, 71, 71;--bs-btn-active-color: #fff;--bs-btn-active-bg: #515151;--bs-btn-active-border-color: #3c3c3c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #262626;--bs-btn-disabled-border-color: #262626}.btn-check:checked+.btn.btn-checked-outline-dark,.btn-check:active+.btn.btn-checked-outline-dark{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #262626;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: #262626;--bs-btn-active-border-color: #262626;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #262626;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #262626;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-blue,.btn-check:active+.btn.btn-checked-blue{--bs-btn-color: #fff;--bs-btn-bg: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #426c9e;--bs-btn-focus-shadow-rgb: 108, 153, 207;--bs-btn-active-color: #fff;--bs-btn-active-bg: #426c9e;--bs-btn-active-border-color: #3e6595;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5287c6;--bs-btn-disabled-border-color: #5287c6}.btn-check:checked+.btn.btn-checked-outline-blue,.btn-check:active+.btn.btn-checked-outline-blue{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #5287c6;--bs-btn-focus-shadow-rgb: 82, 135, 198;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5287c6;--bs-btn-active-border-color: #5287c6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5287c6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5287c6;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-dark-blue,.btn-check:active+.btn.btn-checked-dark-blue{--bs-btn-color: #fff;--bs-btn-bg: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #000e33;--bs-btn-focus-shadow-rgb: 38, 54, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000e33;--bs-btn-active-border-color: #000e30;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #001240;--bs-btn-disabled-border-color: #001240}.btn-check:checked+.btn.btn-checked-outline-dark-blue,.btn-check:active+.btn.btn-checked-outline-dark-blue{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #001240;--bs-btn-focus-shadow-rgb: 0, 18, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #001240;--bs-btn-active-border-color: #001240;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #001240;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #001240;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-indigo,.btn-check:active+.btn.btn-checked-indigo{--bs-btn-color: #fff;--bs-btn-bg: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #520dc2;--bs-btn-focus-shadow-rgb: 125, 52, 244;--bs-btn-active-color: #fff;--bs-btn-active-bg: #520dc2;--bs-btn-active-border-color: #4d0cb6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6610f2;--bs-btn-disabled-border-color: #6610f2}.btn-check:checked+.btn.btn-checked-outline-indigo,.btn-check:active+.btn.btn-checked-outline-indigo{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #6610f2;--bs-btn-focus-shadow-rgb: 102, 16, 242;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6610f2;--bs-btn-active-border-color: #6610f2;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6610f2;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6610f2;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-purple,.btn-check:active+.btn.btn-checked-purple{--bs-btn-color: #fff;--bs-btn-bg: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #491a68;--bs-btn-focus-shadow-rgb: 116, 66, 149;--bs-btn-active-color: #fff;--bs-btn-active-bg: #491a68;--bs-btn-active-border-color: #441962;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5b2182;--bs-btn-disabled-border-color: #5b2182}.btn-check:checked+.btn.btn-checked-outline-purple,.btn-check:active+.btn.btn-checked-outline-purple{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #5b2182;--bs-btn-focus-shadow-rgb: 91, 33, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5b2182;--bs-btn-active-border-color: #5b2182;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5b2182;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5b2182;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-pink,.btn-check:active+.btn.btn-checked-pink{--bs-btn-color: #fff;--bs-btn-bg: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #ab296a;--bs-btn-focus-shadow-rgb: 220, 82, 150;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ab296a;--bs-btn-active-border-color: #a12663;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d63384;--bs-btn-disabled-border-color: #d63384}.btn-check:checked+.btn.btn-checked-outline-pink,.btn-check:active+.btn.btn-checked-outline-pink{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #d63384;--bs-btn-focus-shadow-rgb: 214, 51, 132;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d63384;--bs-btn-active-border-color: #d63384;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #d63384;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d63384;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-red,.btn-check:active+.btn.btn-checked-red{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-red,.btn-check:active+.btn.btn-checked-outline-red{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-bordeaux-red,.btn-check:active+.btn.btn-checked-bordeaux-red{--bs-btn-color: #fff;--bs-btn-bg: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #881144;--bs-btn-focus-shadow-rgb: 183, 56, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #881144;--bs-btn-active-border-color: #801040;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #aa1555;--bs-btn-disabled-border-color: #aa1555}.btn-check:checked+.btn.btn-checked-outline-bordeaux-red,.btn-check:active+.btn.btn-checked-outline-bordeaux-red{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #aa1555;--bs-btn-focus-shadow-rgb: 170, 21, 85;--bs-btn-active-color: #fff;--bs-btn-active-bg: #aa1555;--bs-btn-active-border-color: #aa1555;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #aa1555;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #aa1555;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-brown,.btn-check:active+.btn.btn-checked-brown{--bs-btn-color: #fff;--bs-btn-bg: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #582f1c;--bs-btn-focus-shadow-rgb: 132, 88, 68;--bs-btn-active-color: #fff;--bs-btn-active-bg: #582f1c;--bs-btn-active-border-color: #532c1a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6e3b23;--bs-btn-disabled-border-color: #6e3b23}.btn-check:checked+.btn.btn-checked-outline-brown,.btn-check:active+.btn.btn-checked-outline-brown{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #6e3b23;--bs-btn-focus-shadow-rgb: 110, 59, 35;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6e3b23;--bs-btn-active-border-color: #6e3b23;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6e3b23;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6e3b23;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-cream,.btn-check:active+.btn.btn-checked-cream{--bs-btn-color: #000;--bs-btn-bg: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe9b3;--bs-btn-focus-shadow-rgb: 217, 196, 145;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffebbc;--bs-btn-active-border-color: #ffe9b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffe6ab;--bs-btn-disabled-border-color: #ffe6ab}.btn-check:checked+.btn.btn-checked-outline-cream,.btn-check:active+.btn.btn-checked-outline-cream{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe6ab;--bs-btn-focus-shadow-rgb: 255, 230, 171;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffe6ab;--bs-btn-active-border-color: #ffe6ab;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffe6ab;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffe6ab;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-orange,.btn-check:active+.btn.btn-checked-orange{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-check:checked+.btn.btn-checked-outline-orange,.btn-check:active+.btn.btn-checked-outline-orange{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-yellow,.btn-check:active+.btn.btn-checked-yellow{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-check:checked+.btn.btn-checked-outline-yellow,.btn-check:active+.btn.btn-checked-outline-yellow{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-green,.btn-check:active+.btn.btn-checked-green{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-check:checked+.btn.btn-checked-outline-green,.btn-check:active+.btn.btn-checked-outline-green{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-teal,.btn-check:active+.btn.btn-checked-teal{--bs-btn-color: #000;--bs-btn-bg: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #3ab09e;--bs-btn-focus-shadow-rgb: 31, 142, 125;--bs-btn-active-color: #000;--bs-btn-active-bg: #50b9a9;--bs-btn-active-border-color: #3ab09e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #24a793;--bs-btn-disabled-border-color: #24a793}.btn-check:checked+.btn.btn-checked-outline-teal,.btn-check:active+.btn.btn-checked-outline-teal{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #24a793;--bs-btn-focus-shadow-rgb: 36, 167, 147;--bs-btn-active-color: #000;--bs-btn-active-bg: #24a793;--bs-btn-active-border-color: #24a793;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #24a793;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #24a793;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-cyan,.btn-check:active+.btn.btn-checked-cyan{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-check:checked+.btn.btn-checked-outline-cyan,.btn-check:active+.btn.btn-checked-outline-cyan{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-white,.btn-check:active+.btn.btn-checked-white{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-check:checked+.btn.btn-checked-outline-white,.btn-check:active+.btn.btn-checked-outline-white{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-gray,.btn-check:active+.btn.btn-checked-gray{--bs-btn-color: #fff;--bs-btn-bg: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 130, 130, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565656;--bs-btn-active-border-color: #515151;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c6c6c;--bs-btn-disabled-border-color: #6c6c6c}.btn-check:checked+.btn.btn-checked-outline-gray,.btn-check:active+.btn.btn-checked-outline-gray{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #6c6c6c;--bs-btn-focus-shadow-rgb: 108, 108, 108;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c6c6c;--bs-btn-active-border-color: #6c6c6c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6c6c6c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c6c6c;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-gray-dark,.btn-check:active+.btn.btn-checked-gray-dark{--bs-btn-color: #fff;--bs-btn-bg: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #2a2a2a;--bs-btn-focus-shadow-rgb: 82, 82, 82;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2a2a;--bs-btn-active-border-color: #272727;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343434;--bs-btn-disabled-border-color: #343434}.btn-check:checked+.btn.btn-checked-outline-gray-dark,.btn-check:active+.btn.btn-checked-outline-gray-dark{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #343434;--bs-btn-focus-shadow-rgb: 52, 52, 52;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343434;--bs-btn-active-border-color: #343434;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #343434;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343434;--bs-gradient: none}.pagination{--bs-pagination-gap: 0.625rem;--bs-pagination-size: 2.5rem;--bs-pagination-button-bg: #000;--bs-pagination-button-color: #fff;--bs-pagination-ellipsis-color: #494949;gap:var(--bs-pagination-gap)}.pagination .page-item{height:100%}.pagination .page-item .page-link{cursor:pointer;height:var(--bs-pagination-size);line-height:var(--bs-pagination-size);padding-top:0;padding-bottom:0;text-align:center}.pagination .page-item:not(.page-button):not(.next):not(.previous):not(.first):not(.last) .page-link{width:var(--bs-pagination-size);padding:0}.pagination .page-item.page-button{font-weight:bold;user-select:none}.pagination .page-item.page-button .page-link{background-color:var(--bs-pagination-button-bg);color:var(--bs-pagination-button-color)}.pagination .page-item.page-button.disabled{cursor:not-allowed}.pagination .page-item.page-button.disabled .page-link{background-color:var(--bs-pagination-disabled-bg);color:var(--bs-pagination-disabled-color)}.pagination .page-item.active{font-weight:bold}.pagination .page-item.page-ellipsis .page-link{background:rgba(0,0,0,0);cursor:default;font-size:0}.pagination .page-item.page-ellipsis .page-link:before{font-size:1rem;color:var(--bs-pagination-ellipsis-color);content:"…"}.modal{--bs-modal-header-bg: #ffcd00;--bs-modal-header-color: #000;--bs-modal-header-font-weight: 500}.modal .modal-header{background-color:var(--bs-modal-header-bg);color:var(--bs-modal-header-color);font-weight:var(--bs-modal-header-font-weight)}.table.table-sticky-header thead,.table-sticky-header.dt thead,.table-sticky-header.datatables thead{position:sticky;top:0}.table.table-sticky-header.table-sticky-header-top-0 thead,.table-sticky-header.table-sticky-header-top-0.dt thead,.table-sticky-header.table-sticky-header-top-0.datatables thead{top:0 !important}.table.table-sticky-footer tfoot,.table-sticky-footer.dt tfoot,.table-sticky-footer.datatables tfoot{position:sticky;bottom:0}@media(max-width: 768px){.uu-root-container .table.table-sticky-header thead,.uu-root-container .table-sticky-header.dt thead,.uu-root-container .table-sticky-header.datatables thead{top:var(--bs-uu-navbar-mobile-height)}}.flex-fill{min-width:0}.font-serif{font-family:"Merriweather",serif}h1.hdr-underlined,.hdr-underlined.h1{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h2.hdr-underlined,.hdr-underlined.h2{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h3.hdr-underlined,.hdr-underlined.h3{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h4.hdr-underlined,.hdr-underlined.h4{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h5.hdr-underlined,.hdr-underlined.h5{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h6.hdr-underlined,.hdr-underlined.h6{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h7.hdr-underlined{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}code,pre.code{--bs-code-bg: #cecece;--bs-code-color: #000;--bs-code-border-radius: 0.2em;--bs-code-padding-y: 0.2em;--bs-code-padding-x: 0.4em;--bs-code-font-size: 0.85em;background:var(--bs-code-bg);color:var(--bs-code-color);padding:var(--bs-code-padding-y) var(--bs-code-padding-x);margin:0;font-size:var(--bs-code-font-size);border-radius:var(--bs-code-border-radius)}pre.code{overflow:auto}.stepper{--bs-stepper-color: #212121;--bs-stepper-disabled-color: var(--bs-secondary-color);--bs-stepper-complete-bg: #75b798;--bs-stepper-complete-color: #000;--bs-stepper-incomplete-bg: #ffcd00;--bs-stepper-incomplete-color: #000;--bs-stepper-inactive-bg: #cecece;--bs-stepper-inactive-color: #000;--bs-stepper-min-width: 15.625rem;--bs-stepper-padding-y: 0.75rem;--bs-stepper-line-width: 0.125rem;position:relative;z-index:1;min-width:var(--bs-stepper-min-width)}.stepper a{text-decoration:none;color:var(--bs-stepper-color)}.stepper>ul::before{content:"";display:block;position:absolute;left:calc(2rem / 2 - 1px);top:1rem;height:calc(100% - 1rem);width:var(--bs-stepper-line-width);background:var(--bs-stepper-inactive-bg);z-index:-1}.stepper ul{list-style:none;padding-left:0;margin:0}.stepper ul li{line-height:2rem}.stepper ul li>.stepper-item{display:flex;flex-direction:row;align-items:center;gap:1rem}.stepper ul li>.stepper-item.active{font-weight:600}.stepper ul li>.stepper-item.disabled{color:var(--bs-stepper-disabled-color);font-style:italic}.stepper ul li>.stepper-item.complete .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.complete,.stepper ul li>.stepper-item.finished .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.finished{background:var(--bs-stepper-complete-bg);color:var(--bs-stepper-complete-color)}.stepper ul li>.stepper-item.incomplete .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.incomplete{background:var(--bs-stepper-incomplete-bg);color:var(--bs-stepper-incomplete-color)}.stepper ul li>.stepper-item.disabled .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.disabled{font-style:normal}.stepper ul li>.stepper-item .stepper-bubble{background:var(--bs-stepper-inactive-bg);flex:0 0 auto;color:var(--bs-stepper-inactive-color);font-weight:bold;line-height:2rem;font-size:.8rem;display:inline-block;border-radius:100%;text-align:center}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-largest{width:2rem;height:2rem;margin-left:0rem;margin-right:0rem;line-height:2rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-large{width:1.66rem;height:1.66rem;margin-left:.17rem;margin-right:.77rem;line-height:1.66rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-medium{width:1.32rem;height:1.32rem;margin-left:.34rem;margin-right:1.54rem;line-height:1.32rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-normal{width:1.32rem;height:1.32rem;margin-left:.34rem;margin-right:1.54rem;line-height:1.32rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-small{width:.98rem;height:.98rem;margin-left:.51rem;margin-right:2.31rem;line-height:.98rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-smallest{width:.64rem;height:.64rem;margin-left:.68rem;margin-right:3.08rem;line-height:.64rem}.stepper ul li:not(:last-of-type){padding-bottom:var(--bs-stepper-padding-y)}.stepper ul li>ul{padding-top:var(--bs-stepper-padding-y)}.tiles{--bs-tiles-gap: 0.625rem;--bs-tiles-padding: 1rem;--bs-tiles-bg: #efefef;--bs-tiles-color: #000;--bs-tiles-hover-bg: #ffcd00;--bs-tiles-hover-color: #000;--bs-tiles-n-xs: 2;--bs-tiles-n: var(--bs-tiles-n-xs);--bs-tiles-n-sm: 4;--bs-tiles-n-md: 5;--bs-tiles-n-lg: 6;--bs-tiles-n-xl: 7;width:100%;display:grid;gap:var(--bs-tiles-gap);grid-template-columns:repeat(var(--bs-tiles-n), 1fr)}@media(min-width: 576px){.tiles{--bs-tiles-n: var(--bs-tiles-n-sm)}}@media(min-width: 768px){.tiles{--bs-tiles-n: var(--bs-tiles-n-md)}}@media(min-width: 992px){.tiles{--bs-tiles-n: var(--bs-tiles-n-lg)}}@media(min-width: 1200px){.tiles{--bs-tiles-n: var(--bs-tiles-n-xl)}}.tiles .tile{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--bs-tiles-padding);aspect-ratio:1/1;background:var(--bs-tiles-bg);color:var(--bs-tiles-color)}.tiles .tile:hover{background:var(--bs-tiles-hover-bg);color:var(--bs-tiles-hover-color)}.tiles .tile p:last-child{margin:0}.tiles a.tile,.tiles .tile a{cursor:pointer;text-decoration:none}.tiles.tiles-n-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-12{--bs-tiles-n: 12 !important}@media(min-width: 576px){.tiles.tiles-n-sm-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-sm-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-sm-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-sm-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-sm-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-sm-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-sm-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-sm-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-sm-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-sm-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-sm-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-sm-12{--bs-tiles-n: 12 !important}}@media(min-width: 768px){.tiles.tiles-n-md-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-md-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-md-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-md-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-md-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-md-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-md-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-md-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-md-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-md-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-md-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-md-12{--bs-tiles-n: 12 !important}}@media(min-width: 992px){.tiles.tiles-n-lg-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-lg-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-lg-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-lg-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-lg-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-lg-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-lg-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-lg-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-lg-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-lg-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-lg-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-lg-12{--bs-tiles-n: 12 !important}}@media(min-width: 1200px){.tiles.tiles-n-xl-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-xl-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-xl-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-xl-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-xl-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-xl-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-xl-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-xl-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-xl-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-xl-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-xl-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-xl-12{--bs-tiles-n: 12 !important}}@media(min-width: 1400px){.tiles.tiles-n-xxl-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-xxl-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-xxl-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-xxl-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-xxl-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-xxl-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-xxl-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-xxl-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-xxl-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-xxl-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-xxl-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-xxl-12{--bs-tiles-n: 12 !important}}.modal-nav-tabs{--bs-modal-nav-tabs-gap: 0.625rem;--bs-modal-nav-tabs-color: inherit;--bs-modal-nav-tabs-bg: none;--bs-modal-nav-tabs-active-color: var(--bs-modal-color);--bs-modal-nav-tabs-active-bg: var(--bs-modal-bg);--bs-modal-nav-tabs-hover-color: #000;--bs-modal-nav-tabs-hover-bg: #efefef;margin-bottom:calc(0px - var(--bs-modal-header-padding-y));border-bottom:0;gap:var(--bs-modal-nav-tabs-gap);overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;max-width:100%}.modal-nav-tabs .nav-link{background-color:var(--bs-modal-nav-tabs-bg);color:var(--bs-modal-nav-tabs-color);white-space:nowrap}.modal-nav-tabs .nav-link.active{color:var(--bs-modal-nav-tabs-active-color);background-color:var(--bs-modal-nav-tabs-active-bg);border-color:rgba(0,0,0,0)}.modal-nav-tabs .nav-link:not(.active):hover,.modal-nav-tabs .nav-link:not(.active):focus{color:var(--bs-modal-nav-tabs-hover-color);background-color:var(--bs-modal-nav-tabs-hover-bg);border-color:rgba(0,0,0,0)}.uu-root-container{width:100%;max-width:var(--bs-uu-container-width);min-height:100vh;margin:0 auto;display:flex;align-items:center;flex-direction:column;padding:0;background:var(--bs-uu-container-bg);color:var(--bs-uu-container-color)}.uu-root-container{--bs-uu-container-width: 100rem;--bs-uu-container-bg: #fff;--bs-uu-container-color: #212529;--bs-uu-container-padding-y: 1rem;--bs-uu-container-padding-x: 1rem;--bs-uu-content-width: 75rem;--bs-uu-border-color: #cecece;--bs-uu-border-color-light: #e9e9e9;--bs-uu-border-color-dark: #343434;--bs-uu-header-padding-y: 0.7rem;--bs-uu-header-font-size: 0.9rem;--bs-uu-header-title-color: #094d8e;--bs-uu-header-border-gap: 1.2rem;--bs-uu-navbar-mobile-height: 3.125rem;--bs-uu-navbar-navlink-padding-x: 0.75rem;--bs-uu-navbar-navlink-padding-y: 0.75rem;--bs-uu-unified-header-height: 4.5rem;--bs-uu-unified-header-mobile-height: 3rem;--bs-uu-unified-header-border-size: 0.0625rem;--bs-uu-unified-header-padding-x: 2rem;--bs-uu-unified-header-padding-mobile-x: 1rem;--bs-uu-unified-header-navlink-indicator-height: 0.3125rem;--bs-uu-unified-header-navlink-mobile-bg: #000;--bs-uu-unified-header-navlink-mobile-color: #fff;--bs-uu-brand-padding-x: 2.5rem;--bs-uu-brand-padding-y: 1rem;--bs-uu-brand-logo-padding-x: 0;--bs-uu-brand-logo-padding-y: 0.5rem;--bs-uu-brand-sender-bg: #ffcd00;--bs-uu-brand-sender-color: #000;--bs-uu-brand-sender-min-width: 220px;--bs-uu-brand-sender-max-width: 300px;--bs-uu-footer-padding-y: 2.5rem;--bs-uu-footer-color: #cecece;--bs-uu-footer-background-color: #262626;--bs-uu-hero-bg: #ffcd00;--bs-uu-hero-color: #000;--bs-uu-hero-padding-y: 1rem;--bs-uu-hero-font-weight: 400;--bs-uu-cover-default-height: 400px;--bs-uu-cover-copyright-padding-x: 0.625rem;--bs-uu-cover-copyright-padding-y: 0.625rem;--bs-uu-cover-copyright-text-size: 0.8rem;--bs-uu-cover-copyright-text-color: #dedede;--bs-uu-cover-copyright-background-color: rgba(0, 0, 0, 0.5);--bs-uu-sidebar-width: 21.875rem;--bs-uu-sidebar-padding-x: 1.25rem;--bs-uu-sidebar-padding-y: 1.25rem;--bs-uu-sidebar-mobile-padding-y: 0.625rem;--bs-uu-sidebar-gap: 6.25rem;--bs-uu-sidebar-background: #e9e9e9;--bs-uu-sidebar-color: #212529;--bs-uu-sidebar-header-font-weight: 200;--bs-uu-sidebar-header-padding-y: 0.625rem;--bs-uu-sidebar-nav-padding-y: 0.4375rem;--bs-uu-sidebar-nav-padding-x: 0;--bs-uu-sidebar-nav-disabled-color: #6c6c6c;--bs-uu-sidebar-nav-active-font-weight: 600;--bs-uu-form-column-gap: 2rem;--bs-uu-form-row-gap: 1.5rem;--bs-uu-form-field-padding-x: 1.5rem;--bs-uu-form-field-padding-y: 1.3rem;--bs-uu-form-field-padding-y-compensation: 0.3125rem;--bs-uu-form-field-bg: #efefef;--bs-uu-form-field-input-group-bg: #f8f8f8;--bs-uu-form-aside-font-size: 0.9rem;--bs-uu-form-aside-color: var(--bs-secondary-color);--bs-uu-form-help-padding-x: 0;--bs-uu-form-help-padding-y: 0.5rem}.uu-root-container .uu-content{width:100%;display:flex;align-items:center;flex:1 1 auto;flex-direction:column;padding:0;margin:0}.uu-root-container .uu-fullwidth-container,.uu-root-container .-uu-spaced-container,.uu-root-container .uu-footer,.uu-root-container .uu-hero,.uu-root-container .uu-cover .uu-cover-hero,.uu-root-container .uu-container,.uu-root-container .uu-inner-container{width:100%;display:flex;flex-wrap:wrap;padding:var(--bs-uu-container-padding-y) var(--bs-uu-container-padding-x)}@media(min-width: 76rem){.uu-root-container .-uu-spaced-container,.uu-root-container .uu-footer,.uu-root-container .uu-hero,.uu-root-container .uu-cover .uu-cover-hero,.uu-root-container .uu-container,.uu-root-container .uu-inner-container{padding-left:calc(50% - var(--bs-uu-content-width)/2);padding-right:calc(50% - var(--bs-uu-content-width)/2)}}.uu-container+.uu-container,.uu-inner-container+.uu-container,.uu-container+.uu-inner-container,.uu-inner-container+.uu-inner-container{padding-top:0}.uu-root-container .uu-header{width:100%;display:flex;align-items:center;flex-direction:column;font-size:var(--bs-uu-header-font-size)}.uu-root-container .uu-header .uu-header-row{display:flex;flex-direction:row;align-items:stretch;width:100%;padding-left:calc(50% - var(--bs-uu-content-width)/2);padding-right:calc(50% - var(--bs-uu-content-width)/2)}@media(max-width: 768px){.uu-root-container .uu-header .uu-header-row{display:none}}.uu-root-container .uu-header .uu-header-row>*{padding-top:var(--bs-uu-header-padding-y);padding-bottom:var(--bs-uu-header-padding-y);align-items:center;display:flex}@media(max-width: 76rem){.uu-root-container .uu-header .uu-header-row{padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x)}}.uu-root-container .uu-header .uu-header-row:not(:last-child){border-bottom:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .border-left{padding-left:var(--bs-uu-header-border-gap);border-left:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .border-right{padding-right:var(--bs-uu-header-border-gap);border-right:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .uu-header-title,.uu-root-container .uu-header .uu-header-row .uu-header-title a{color:var(--bs-uu-header-title-color);text-decoration:none;font-size:1.7rem}.uu-root-container .uu-header .uu-header-row .uu-logo img{max-height:3rem}.uu-root-container .uu-header .uu-header-row a,.uu-root-container .uu-header .uu-header-row a:hover,.uu-root-container .uu-header .uu-header-row a:focus,.uu-root-container .uu-header .uu-header-row a:active{text-decoration:none}.uu-root-container .uu-navbar{width:100%;background:#000;flex-wrap:nowrap;justify-content:flex-start}@media(max-width: 768px){.uu-root-container .uu-navbar{background:#fff !important;color:#000 !important;border-bottom:.0625rem solid var(--bs-uu-border-color);flex-wrap:wrap;justify-content:space-between;position:sticky;top:0;z-index:9001;height:var(--bs-uu-navbar-mobile-height)}}.uu-root-container .uu-navbar .uu-navbar-container{width:100%;padding-left:calc( + */@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-regular.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:500;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:800;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:300;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-300italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:400;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:500;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-500italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:600;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-600italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:700;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-700italic.svg#OpenSans") format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:800;src:url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.eot");src:local(""),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.woff2") format("woff2"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.woff") format("woff"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.ttf") format("truetype"),url("/static/cdh.core/fonts/open-sans/open-sans-v28-latin-ext_latin-800italic.svg#OpenSans") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:300;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:300;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-300italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:400;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-regular.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:400;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:700;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:700;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-700italic.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:normal;font-weight:900;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900.svg#Merriweather") format("svg")}@font-face{font-family:"Merriweather";font-style:italic;font-weight:900;src:url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.eot");src:local(""),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.eot?#iefix") format("embedded-opentype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.woff2") format("woff2"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.woff") format("woff"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.ttf") format("truetype"),url("/static/cdh.core/fonts/merriweather/merriweather-v30-latin-900italic.svg#Merriweather") format("svg")}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#000 !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#000 !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#000 !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#000 !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-error{color:#fff !important;background-color:RGBA(var(--bs-error-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-blue{color:#fff !important;background-color:RGBA(var(--bs-blue-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark-blue{color:#fff !important;background-color:RGBA(var(--bs-dark-blue-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-indigo{color:#fff !important;background-color:RGBA(var(--bs-indigo-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-purple{color:#fff !important;background-color:RGBA(var(--bs-purple-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-pink{color:#fff !important;background-color:RGBA(var(--bs-pink-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-red{color:#fff !important;background-color:RGBA(var(--bs-red-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-bordeaux-red{color:#fff !important;background-color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-brown{color:#fff !important;background-color:RGBA(var(--bs-brown-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-cream{color:#000 !important;background-color:RGBA(var(--bs-cream-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-orange{color:#000 !important;background-color:RGBA(var(--bs-orange-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-yellow{color:#000 !important;background-color:RGBA(var(--bs-yellow-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-green{color:#000 !important;background-color:RGBA(var(--bs-green-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-teal{color:#000 !important;background-color:RGBA(var(--bs-teal-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-cyan{color:#000 !important;background-color:RGBA(var(--bs-cyan-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-white{color:#000 !important;background-color:RGBA(var(--bs-white-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-gray{color:#fff !important;background-color:RGBA(var(--bs-gray-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-gray-dark{color:#fff !important;background-color:RGBA(var(--bs-gray-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(255, 215, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 215, 51, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(0, 0, 0, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 0, 0, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(87, 198, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(87, 198, 100, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(245, 171, 126, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(245, 171, 126, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-error{color:RGBA(var(--bs-error-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-error-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-error:hover,.link-error:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(242, 242, 242, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(242, 242, 242, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(30, 30, 30, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(30, 30, 30, var(--bs-link-underline-opacity, 1)) !important}.link-blue{color:RGBA(var(--bs-blue-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-blue-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-blue:hover,.link-blue:focus{color:RGBA(66, 108, 158, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(66, 108, 158, var(--bs-link-underline-opacity, 1)) !important}.link-dark-blue{color:RGBA(var(--bs-dark-blue-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-blue-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark-blue:hover,.link-dark-blue:focus{color:RGBA(0, 14, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(0, 14, 51, var(--bs-link-underline-opacity, 1)) !important}.link-indigo{color:RGBA(var(--bs-indigo-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-indigo-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-indigo:hover,.link-indigo:focus{color:RGBA(82, 13, 194, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(82, 13, 194, var(--bs-link-underline-opacity, 1)) !important}.link-purple{color:RGBA(var(--bs-purple-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-purple-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-purple:hover,.link-purple:focus{color:RGBA(73, 26, 104, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(73, 26, 104, var(--bs-link-underline-opacity, 1)) !important}.link-pink{color:RGBA(var(--bs-pink-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-pink-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-pink:hover,.link-pink:focus{color:RGBA(171, 41, 106, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(171, 41, 106, var(--bs-link-underline-opacity, 1)) !important}.link-red{color:RGBA(var(--bs-red-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-red-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-red:hover,.link-red:focus{color:RGBA(154, 8, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(154, 8, 42, var(--bs-link-underline-opacity, 1)) !important}.link-bordeaux-red{color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-bordeaux-red-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-bordeaux-red:hover,.link-bordeaux-red:focus{color:RGBA(136, 17, 68, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(136, 17, 68, var(--bs-link-underline-opacity, 1)) !important}.link-brown{color:RGBA(var(--bs-brown-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-brown-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-brown:hover,.link-brown:focus{color:RGBA(88, 47, 28, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(88, 47, 28, var(--bs-link-underline-opacity, 1)) !important}.link-cream{color:RGBA(var(--bs-cream-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-cream-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-cream:hover,.link-cream:focus{color:RGBA(255, 235, 188, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 235, 188, var(--bs-link-underline-opacity, 1)) !important}.link-orange{color:RGBA(var(--bs-orange-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-orange-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-orange:hover,.link-orange:focus{color:RGBA(245, 171, 126, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(245, 171, 126, var(--bs-link-underline-opacity, 1)) !important}.link-yellow{color:RGBA(var(--bs-yellow-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-yellow-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-yellow:hover,.link-yellow:focus{color:RGBA(255, 215, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 215, 51, var(--bs-link-underline-opacity, 1)) !important}.link-green{color:RGBA(var(--bs-green-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-green-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-green:hover,.link-green:focus{color:RGBA(87, 198, 100, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(87, 198, 100, var(--bs-link-underline-opacity, 1)) !important}.link-teal{color:RGBA(var(--bs-teal-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-teal-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-teal:hover,.link-teal:focus{color:RGBA(80, 185, 169, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(80, 185, 169, var(--bs-link-underline-opacity, 1)) !important}.link-cyan{color:RGBA(var(--bs-cyan-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-cyan-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-cyan:hover,.link-cyan:focus{color:RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important}.link-white{color:RGBA(var(--bs-white-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-white-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-white:hover,.link-white:focus{color:RGBA(255, 255, 255, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(255, 255, 255, var(--bs-link-underline-opacity, 1)) !important}.link-gray{color:RGBA(var(--bs-gray-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-gray-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-gray:hover,.link-gray:focus{color:RGBA(86, 86, 86, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(86, 86, 86, var(--bs-link-underline-opacity, 1)) !important}.link-gray-dark{color:RGBA(var(--bs-gray-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-gray-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-gray-dark:hover,.link-gray-dark:focus{color:RGBA(42, 42, 42, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 42, 42, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.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){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}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !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:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.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}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.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}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y: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-inline-grid{display:inline-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 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-error{--bs-focus-ring-color: rgba(var(--bs-error-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.focus-ring-blue{--bs-focus-ring-color: rgba(var(--bs-blue-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark-blue{--bs-focus-ring-color: rgba(var(--bs-dark-blue-rgb), var(--bs-focus-ring-opacity))}.focus-ring-indigo{--bs-focus-ring-color: rgba(var(--bs-indigo-rgb), var(--bs-focus-ring-opacity))}.focus-ring-purple{--bs-focus-ring-color: rgba(var(--bs-purple-rgb), var(--bs-focus-ring-opacity))}.focus-ring-pink{--bs-focus-ring-color: rgba(var(--bs-pink-rgb), var(--bs-focus-ring-opacity))}.focus-ring-red{--bs-focus-ring-color: rgba(var(--bs-red-rgb), var(--bs-focus-ring-opacity))}.focus-ring-bordeaux-red{--bs-focus-ring-color: rgba(var(--bs-bordeaux-red-rgb), var(--bs-focus-ring-opacity))}.focus-ring-brown{--bs-focus-ring-color: rgba(var(--bs-brown-rgb), var(--bs-focus-ring-opacity))}.focus-ring-cream{--bs-focus-ring-color: rgba(var(--bs-cream-rgb), var(--bs-focus-ring-opacity))}.focus-ring-orange{--bs-focus-ring-color: rgba(var(--bs-orange-rgb), var(--bs-focus-ring-opacity))}.focus-ring-yellow{--bs-focus-ring-color: rgba(var(--bs-yellow-rgb), var(--bs-focus-ring-opacity))}.focus-ring-green{--bs-focus-ring-color: rgba(var(--bs-green-rgb), var(--bs-focus-ring-opacity))}.focus-ring-teal{--bs-focus-ring-color: rgba(var(--bs-teal-rgb), var(--bs-focus-ring-opacity))}.focus-ring-cyan{--bs-focus-ring-color: rgba(var(--bs-cyan-rgb), var(--bs-focus-ring-opacity))}.focus-ring-white{--bs-focus-ring-color: rgba(var(--bs-white-rgb), var(--bs-focus-ring-opacity))}.focus-ring-gray{--bs-focus-ring-color: rgba(var(--bs-gray-rgb), var(--bs-focus-ring-opacity))}.focus-ring-gray-dark{--bs-focus-ring-color: rgba(var(--bs-gray-dark-rgb), var(--bs-focus-ring-opacity))}.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-error{--bs-border-opacity: 1;border-color:rgba(var(--bs-error-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-blue{--bs-border-opacity: 1;border-color:rgba(var(--bs-blue-rgb), var(--bs-border-opacity)) !important}.border-dark-blue{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-blue-rgb), var(--bs-border-opacity)) !important}.border-indigo{--bs-border-opacity: 1;border-color:rgba(var(--bs-indigo-rgb), var(--bs-border-opacity)) !important}.border-purple{--bs-border-opacity: 1;border-color:rgba(var(--bs-purple-rgb), var(--bs-border-opacity)) !important}.border-pink{--bs-border-opacity: 1;border-color:rgba(var(--bs-pink-rgb), var(--bs-border-opacity)) !important}.border-red{--bs-border-opacity: 1;border-color:rgba(var(--bs-red-rgb), var(--bs-border-opacity)) !important}.border-bordeaux-red{--bs-border-opacity: 1;border-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-border-opacity)) !important}.border-brown{--bs-border-opacity: 1;border-color:rgba(var(--bs-brown-rgb), var(--bs-border-opacity)) !important}.border-cream{--bs-border-opacity: 1;border-color:rgba(var(--bs-cream-rgb), var(--bs-border-opacity)) !important}.border-orange{--bs-border-opacity: 1;border-color:rgba(var(--bs-orange-rgb), var(--bs-border-opacity)) !important}.border-yellow{--bs-border-opacity: 1;border-color:rgba(var(--bs-yellow-rgb), var(--bs-border-opacity)) !important}.border-green{--bs-border-opacity: 1;border-color:rgba(var(--bs-green-rgb), var(--bs-border-opacity)) !important}.border-teal{--bs-border-opacity: 1;border-color:rgba(var(--bs-teal-rgb), var(--bs-border-opacity)) !important}.border-cyan{--bs-border-opacity: 1;border-color:rgba(var(--bs-cyan-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-gray{--bs-border-opacity: 1;border-color:rgba(var(--bs-gray-rgb), var(--bs-border-opacity)) !important}.border-gray-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-gray-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.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:.25rem !important}.m-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-2{margin-top:.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:.25rem !important}.me-2{margin-right:.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:.25rem !important}.mb-2{margin-bottom:.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:.25rem !important}.ms-2{margin-left:.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:.25rem !important}.p-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-2{padding-top:.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:.25rem !important}.pe-2{padding-right:.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:.25rem !important}.pb-2{padding-bottom:.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:.25rem !important}.ps-2{padding-left:.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:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.295rem + 0.54vw) !important}.fs-3{font-size:calc(1.265rem + 0.18vw) !important}.fs-4{font-size:1.2rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.4 !important}.lh-base{line-height:1.6 !important}.lh-lg{line-height:2.1 !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}.text-break{word-wrap:break-word !important;word-break:break-word !important}.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-error{--bs-text-opacity: 1;color:rgba(var(--bs-error-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-blue{--bs-text-opacity: 1;color:rgba(var(--bs-blue-rgb), var(--bs-text-opacity)) !important}.text-dark-blue{--bs-text-opacity: 1;color:rgba(var(--bs-dark-blue-rgb), var(--bs-text-opacity)) !important}.text-indigo{--bs-text-opacity: 1;color:rgba(var(--bs-indigo-rgb), var(--bs-text-opacity)) !important}.text-purple{--bs-text-opacity: 1;color:rgba(var(--bs-purple-rgb), var(--bs-text-opacity)) !important}.text-pink{--bs-text-opacity: 1;color:rgba(var(--bs-pink-rgb), var(--bs-text-opacity)) !important}.text-red{--bs-text-opacity: 1;color:rgba(var(--bs-red-rgb), var(--bs-text-opacity)) !important}.text-bordeaux-red{--bs-text-opacity: 1;color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-text-opacity)) !important}.text-brown{--bs-text-opacity: 1;color:rgba(var(--bs-brown-rgb), var(--bs-text-opacity)) !important}.text-cream{--bs-text-opacity: 1;color:rgba(var(--bs-cream-rgb), var(--bs-text-opacity)) !important}.text-orange{--bs-text-opacity: 1;color:rgba(var(--bs-orange-rgb), var(--bs-text-opacity)) !important}.text-yellow{--bs-text-opacity: 1;color:rgba(var(--bs-yellow-rgb), var(--bs-text-opacity)) !important}.text-green{--bs-text-opacity: 1;color:rgba(var(--bs-green-rgb), var(--bs-text-opacity)) !important}.text-teal{--bs-text-opacity: 1;color:rgba(var(--bs-teal-rgb), var(--bs-text-opacity)) !important}.text-cyan{--bs-text-opacity: 1;color:rgba(var(--bs-cyan-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-gray{--bs-text-opacity: 1;color:rgba(var(--bs-gray-rgb), var(--bs-text-opacity)) !important}.text-gray-dark{--bs-text-opacity: 1;color:rgba(var(--bs-gray-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-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !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}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-error{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-error-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-blue{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-blue-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark-blue{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-blue-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-indigo{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-indigo-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-purple{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-purple-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-pink{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-pink-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-red{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-red-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-bordeaux-red{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-brown{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-brown-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-cream{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-cream-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-orange{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-orange-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-yellow{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-yellow-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-green{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-green-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-teal{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-teal-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-cyan{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-cyan-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-white{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-white-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-gray{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-gray-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-gray-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-gray-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-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-error{--bs-bg-opacity: 1;background-color:rgba(var(--bs-error-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-blue{--bs-bg-opacity: 1;background-color:rgba(var(--bs-blue-rgb), var(--bs-bg-opacity)) !important}.bg-dark-blue{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-blue-rgb), var(--bs-bg-opacity)) !important}.bg-indigo{--bs-bg-opacity: 1;background-color:rgba(var(--bs-indigo-rgb), var(--bs-bg-opacity)) !important}.bg-purple{--bs-bg-opacity: 1;background-color:rgba(var(--bs-purple-rgb), var(--bs-bg-opacity)) !important}.bg-pink{--bs-bg-opacity: 1;background-color:rgba(var(--bs-pink-rgb), var(--bs-bg-opacity)) !important}.bg-red{--bs-bg-opacity: 1;background-color:rgba(var(--bs-red-rgb), var(--bs-bg-opacity)) !important}.bg-bordeaux-red{--bs-bg-opacity: 1;background-color:rgba(var(--bs-bordeaux-red-rgb), var(--bs-bg-opacity)) !important}.bg-brown{--bs-bg-opacity: 1;background-color:rgba(var(--bs-brown-rgb), var(--bs-bg-opacity)) !important}.bg-cream{--bs-bg-opacity: 1;background-color:rgba(var(--bs-cream-rgb), var(--bs-bg-opacity)) !important}.bg-orange{--bs-bg-opacity: 1;background-color:rgba(var(--bs-orange-rgb), var(--bs-bg-opacity)) !important}.bg-yellow{--bs-bg-opacity: 1;background-color:rgba(var(--bs-yellow-rgb), var(--bs-bg-opacity)) !important}.bg-green{--bs-bg-opacity: 1;background-color:rgba(var(--bs-green-rgb), var(--bs-bg-opacity)) !important}.bg-teal{--bs-bg-opacity: 1;background-color:rgba(var(--bs-teal-rgb), var(--bs-bg-opacity)) !important}.bg-cyan{--bs-bg-opacity: 1;background-color:rgba(var(--bs-cyan-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-gray{--bs-bg-opacity: 1;background-color:rgba(var(--bs-gray-rgb), var(--bs-bg-opacity)) !important}.bg-gray-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-gray-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-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:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !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-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.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-xxl) !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-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}.cursor-auto{cursor:auto !important}.cursor-pointer{cursor:pointer !important}.cursor-grab{cursor:grab !important}.cursor-copy{cursor:copy !important}.cursor-default{cursor:default !important}.cursor-help{cursor:help !important}.cursor-text{cursor:text !important}.cursor-none{cursor:none !important}.cursor-not-allowed{cursor:not-allowed !important}.cursor-progress{cursor:progress !important}.cursor-wait{cursor:wait !important}.cursor-zoom-in{cursor:zoom-in !important}.cursor-zoom-out{cursor:zoom-out !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-sm-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-sm-2{margin-top:.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:.25rem !important}.me-sm-2{margin-right:.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:.25rem !important}.mb-sm-2{margin-bottom:.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:.25rem !important}.ms-sm-2{margin-left:.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:.25rem !important}.p-sm-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-sm-2{padding-top:.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:.25rem !important}.pe-sm-2{padding-right:.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:.25rem !important}.pb-sm-2{padding-bottom:.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:.25rem !important}.ps-sm-2{padding-left:.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:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}.cursor-sm-auto{cursor:auto !important}.cursor-sm-pointer{cursor:pointer !important}.cursor-sm-grab{cursor:grab !important}.cursor-sm-copy{cursor:copy !important}.cursor-sm-default{cursor:default !important}.cursor-sm-help{cursor:help !important}.cursor-sm-text{cursor:text !important}.cursor-sm-none{cursor:none !important}.cursor-sm-not-allowed{cursor:not-allowed !important}.cursor-sm-progress{cursor:progress !important}.cursor-sm-wait{cursor:wait !important}.cursor-sm-zoom-in{cursor:zoom-in !important}.cursor-sm-zoom-out{cursor:zoom-out !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-md-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-md-2{margin-top:.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:.25rem !important}.me-md-2{margin-right:.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:.25rem !important}.mb-md-2{margin-bottom:.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:.25rem !important}.ms-md-2{margin-left:.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:.25rem !important}.p-md-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-md-2{padding-top:.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:.25rem !important}.pe-md-2{padding-right:.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:.25rem !important}.pb-md-2{padding-bottom:.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:.25rem !important}.ps-md-2{padding-left:.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:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}.cursor-md-auto{cursor:auto !important}.cursor-md-pointer{cursor:pointer !important}.cursor-md-grab{cursor:grab !important}.cursor-md-copy{cursor:copy !important}.cursor-md-default{cursor:default !important}.cursor-md-help{cursor:help !important}.cursor-md-text{cursor:text !important}.cursor-md-none{cursor:none !important}.cursor-md-not-allowed{cursor:not-allowed !important}.cursor-md-progress{cursor:progress !important}.cursor-md-wait{cursor:wait !important}.cursor-md-zoom-in{cursor:zoom-in !important}.cursor-md-zoom-out{cursor:zoom-out !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-lg-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-lg-2{margin-top:.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:.25rem !important}.me-lg-2{margin-right:.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:.25rem !important}.mb-lg-2{margin-bottom:.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:.25rem !important}.ms-lg-2{margin-left:.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:.25rem !important}.p-lg-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-lg-2{padding-top:.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:.25rem !important}.pe-lg-2{padding-right:.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:.25rem !important}.pb-lg-2{padding-bottom:.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:.25rem !important}.ps-lg-2{padding-left:.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:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}.cursor-lg-auto{cursor:auto !important}.cursor-lg-pointer{cursor:pointer !important}.cursor-lg-grab{cursor:grab !important}.cursor-lg-copy{cursor:copy !important}.cursor-lg-default{cursor:default !important}.cursor-lg-help{cursor:help !important}.cursor-lg-text{cursor:text !important}.cursor-lg-none{cursor:none !important}.cursor-lg-not-allowed{cursor:not-allowed !important}.cursor-lg-progress{cursor:progress !important}.cursor-lg-wait{cursor:wait !important}.cursor-lg-zoom-in{cursor:zoom-in !important}.cursor-lg-zoom-out{cursor:zoom-out !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-xl-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-xl-2{margin-top:.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:.25rem !important}.me-xl-2{margin-right:.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:.25rem !important}.mb-xl-2{margin-bottom:.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:.25rem !important}.ms-xl-2{margin-left:.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:.25rem !important}.p-xl-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-xl-2{padding-top:.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:.25rem !important}.pe-xl-2{padding-right:.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:.25rem !important}.pb-xl-2{padding-bottom:.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:.25rem !important}.ps-xl-2{padding-left:.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:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}.cursor-xl-auto{cursor:auto !important}.cursor-xl-pointer{cursor:pointer !important}.cursor-xl-grab{cursor:grab !important}.cursor-xl-copy{cursor:copy !important}.cursor-xl-default{cursor:default !important}.cursor-xl-help{cursor:help !important}.cursor-xl-text{cursor:text !important}.cursor-xl-none{cursor:none !important}.cursor-xl-not-allowed{cursor:not-allowed !important}.cursor-xl-progress{cursor:progress !important}.cursor-xl-wait{cursor:wait !important}.cursor-xl-zoom-in{cursor:zoom-in !important}.cursor-xl-zoom-out{cursor:zoom-out !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit: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-inline-grid{display:inline-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:.25rem !important}.m-xxl-2{margin:.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:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.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:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.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:.25rem !important}.mt-xxl-2{margin-top:.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:.25rem !important}.me-xxl-2{margin-right:.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:.25rem !important}.mb-xxl-2{margin-bottom:.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:.25rem !important}.ms-xxl-2{margin-left:.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:.25rem !important}.p-xxl-2{padding:.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:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.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:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.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:.25rem !important}.pt-xxl-2{padding-top:.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:.25rem !important}.pe-xxl-2{padding-right:.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:.25rem !important}.pb-xxl-2{padding-bottom:.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:.25rem !important}.ps-xxl-2{padding-left:.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:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}.cursor-xxl-auto{cursor:auto !important}.cursor-xxl-pointer{cursor:pointer !important}.cursor-xxl-grab{cursor:grab !important}.cursor-xxl-copy{cursor:copy !important}.cursor-xxl-default{cursor:default !important}.cursor-xxl-help{cursor:help !important}.cursor-xxl-text{cursor:text !important}.cursor-xxl-none{cursor:none !important}.cursor-xxl-not-allowed{cursor:not-allowed !important}.cursor-xxl-progress{cursor:progress !important}.cursor-xxl-wait{cursor:wait !important}.cursor-xxl-zoom-in{cursor:zoom-in !important}.cursor-xxl-zoom-out{cursor:zoom-out !important}}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.7rem !important}.fs-3{font-size:1.4rem !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-inline-grid{display:inline-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,[data-bs-theme=light]{--bs-blue: #5287c6;--bs-dark-blue: #001240;--bs-indigo: #6610f2;--bs-purple: #5b2182;--bs-pink: #d63384;--bs-red: #c00a35;--bs-bordeaux-red: #aa1555;--bs-brown: #6e3b23;--bs-cream: #ffe6ab;--bs-orange: #f3965e;--bs-yellow: #ffcd00;--bs-green: #2db83d;--bs-teal: #24a793;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c6c6c;--bs-gray-dark: #343434;--bs-gray-100: #efefef;--bs-gray-200: #e9e9e9;--bs-gray-300: #dedede;--bs-gray-400: #cecece;--bs-gray-500: #adadad;--bs-gray-600: #6c6c6c;--bs-gray-700: #494949;--bs-gray-800: #343434;--bs-gray-900: #212121;--bs-primary: #ffcd00;--bs-secondary: #000;--bs-success: #2db83d;--bs-info: #0dcaf0;--bs-warning: #f3965e;--bs-danger: #c00a35;--bs-error: #c00a35;--bs-light: #efefef;--bs-dark: #262626;--bs-blue: #5287c6;--bs-dark-blue: #001240;--bs-indigo: #6610f2;--bs-purple: #5b2182;--bs-pink: #d63384;--bs-red: #c00a35;--bs-bordeaux-red: #aa1555;--bs-brown: #6e3b23;--bs-cream: #ffe6ab;--bs-orange: #f3965e;--bs-yellow: #ffcd00;--bs-green: #2db83d;--bs-teal: #24a793;--bs-cyan: #0dcaf0;--bs-white: #fff;--bs-gray: #6c6c6c;--bs-gray-dark: #343434;--bs-primary-rgb: 255, 205, 0;--bs-secondary-rgb: 0, 0, 0;--bs-success-rgb: 45, 184, 61;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 243, 150, 94;--bs-danger-rgb: 192, 10, 53;--bs-error-rgb: 192, 10, 53;--bs-light-rgb: 239, 239, 239;--bs-dark-rgb: 38, 38, 38;--bs-blue-rgb: 82, 135, 198;--bs-dark-blue-rgb: 0, 18, 64;--bs-indigo-rgb: 102, 16, 242;--bs-purple-rgb: 91, 33, 130;--bs-pink-rgb: 214, 51, 132;--bs-red-rgb: 192, 10, 53;--bs-bordeaux-red-rgb: 170, 21, 85;--bs-brown-rgb: 110, 59, 35;--bs-cream-rgb: 255, 230, 171;--bs-orange-rgb: 243, 150, 94;--bs-yellow-rgb: 255, 205, 0;--bs-green-rgb: 45, 184, 61;--bs-teal-rgb: 36, 167, 147;--bs-cyan-rgb: 13, 202, 240;--bs-white-rgb: 255, 255, 255;--bs-gray-rgb: 108, 108, 108;--bs-gray-dark-rgb: 52, 52, 52;--bs-primary-text-emphasis: #665200;--bs-secondary-text-emphasis: black;--bs-success-text-emphasis: #124a18;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #613c26;--bs-danger-text-emphasis: #4d0415;--bs-light-text-emphasis: #494949;--bs-dark-text-emphasis: #494949;--bs-primary-bg-subtle: #fff5cc;--bs-secondary-bg-subtle: #cccccc;--bs-success-bg-subtle: #d5f1d8;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fdeadf;--bs-danger-bg-subtle: #f2ced7;--bs-light-bg-subtle: #f7f7f7;--bs-dark-bg-subtle: #cecece;--bs-primary-border-subtle: #ffeb99;--bs-secondary-border-subtle: #999999;--bs-success-border-subtle: #abe3b1;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #fad5bf;--bs-danger-border-subtle: #e69dae;--bs-light-border-subtle: #e9e9e9;--bs-dark-border-subtle: #adadad;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: "Open Sans", "Verdana", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.6;--bs-body-color: #212121;--bs-body-color-rgb: 33, 33, 33;--bs-body-bg: #f6f6f6;--bs-body-bg-rgb: 246, 246, 246;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 33, 33, 0.75);--bs-secondary-color-rgb: 33, 33, 33;--bs-secondary-bg: #e9e9e9;--bs-secondary-bg-rgb: 233, 233, 233;--bs-tertiary-color: rgba(33, 33, 33, 0.5);--bs-tertiary-color-rgb: 33, 33, 33;--bs-tertiary-bg: #efefef;--bs-tertiary-bg-rgb: 239, 239, 239;--bs-heading-color: inherit;--bs-link-color: #000;--bs-link-color-rgb: 0, 0, 0;--bs-link-decoration: underline;--bs-link-hover-color: black;--bs-link-hover-color-rgb: 0, 0, 0;--bs-code-color: #000;--bs-highlight-bg: #fff5cc;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dedede;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0;--bs-border-radius-sm: 0;--bs-border-radius-lg: 0;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(255, 205, 0, 0.25);--bs-form-valid-color: #2db83d;--bs-form-valid-border-color: #2db83d;--bs-form-invalid-color: #c00a35;--bs-form-invalid-border-color: #c00a35}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dedede;--bs-body-color-rgb: 222, 222, 222;--bs-body-bg: #212121;--bs-body-bg-rgb: 33, 33, 33;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 222, 222, 0.75);--bs-secondary-color-rgb: 222, 222, 222;--bs-secondary-bg: #343434;--bs-secondary-bg-rgb: 52, 52, 52;--bs-tertiary-color: rgba(222, 222, 222, 0.5);--bs-tertiary-color-rgb: 222, 222, 222;--bs-tertiary-bg: #2b2b2b;--bs-tertiary-bg-rgb: 43, 43, 43;--bs-primary-text-emphasis: #ffe166;--bs-secondary-text-emphasis: #666666;--bs-success-text-emphasis: #81d48b;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #f8c09e;--bs-danger-text-emphasis: #d96c86;--bs-light-text-emphasis: #efefef;--bs-dark-text-emphasis: #dedede;--bs-primary-bg-subtle: #332900;--bs-secondary-bg-subtle: black;--bs-success-bg-subtle: #09250c;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #311e13;--bs-danger-bg-subtle: #26020b;--bs-light-bg-subtle: #343434;--bs-dark-bg-subtle: #1a1a1a;--bs-primary-border-subtle: #997b00;--bs-secondary-border-subtle: black;--bs-success-border-subtle: #1b6e25;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #925a38;--bs-danger-border-subtle: #730620;--bs-light-border-subtle: #494949;--bs-dark-border-subtle: #343434;--bs-heading-color: inherit;--bs-link-color: #ffe166;--bs-link-hover-color: #ffe785;--bs-link-color-rgb: 255, 225, 102;--bs-link-hover-color-rgb: 255, 231, 133;--bs-code-color: #fff;--bs-border-color: #494949;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #81d48b;--bs-form-valid-border-color: #81d48b;--bs-form-invalid-color: #d96c86;--bs-form-invalid-border-color: #d96c86}*,*::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:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.295rem + 0.54vw)}@media(min-width: 1200px){h2,.h2{font-size:1.7rem}}h3,.h3{font-size:calc(1.265rem + 0.18vw)}@media(min-width: 1200px){h3,.h3{font-size:1.4rem}}h4,.h4{font-size:1.2rem}h5,.h5{font-size:1.1rem}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:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}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.85em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:0.85em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:0.85em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:0}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:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);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:.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]{-webkit-appearance:textfield;outline-offset:-2px}::-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:.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:#6c6c6c}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 0;--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-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 0;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--bs-gutter-y));margin-right:calc(-0.5*var(--bs-gutter-x));margin-left:calc(-0.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.3333333333%}.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.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.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.3333333333%}.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.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.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,.dt,.datatables{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-body-color);--bs-table-bg: var(--bs-body-bg);--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.01);--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.05);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*,.dt>:not(caption)>*>*,.datatables>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody,.dt>tbody,.datatables>tbody{vertical-align:inherit}.table>thead,.dt>thead,.datatables>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.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-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #fff5cc;--bs-table-border-color: #e6ddb8;--bs-table-striped-bg: #fcf3ca;--bs-table-striped-color: #000;--bs-table-active-bg: #e6ddb8;--bs-table-active-color: #000;--bs-table-hover-bg: #f2e9c2;--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: #cccccc;--bs-table-border-color: #b8b8b8;--bs-table-striped-bg: #cacaca;--bs-table-striped-color: #000;--bs-table-active-bg: #b8b8b8;--bs-table-active-color: #000;--bs-table-hover-bg: #c2c2c2;--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: #d5f1d8;--bs-table-border-color: #c0d9c2;--bs-table-striped-bg: #d3efd6;--bs-table-striped-color: #000;--bs-table-active-bg: #c0d9c2;--bs-table-active-color: #000;--bs-table-hover-bg: #cae5cd;--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: #cdf2f9;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #c5e8ef;--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: #fdeadf;--bs-table-border-color: #e4d3c9;--bs-table-striped-bg: #fae8dd;--bs-table-striped-color: #000;--bs-table-active-bg: #e4d3c9;--bs-table-active-color: #000;--bs-table-hover-bg: #f0ded4;--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: #f2ced7;--bs-table-border-color: #dab9c2;--bs-table-striped-bg: #f0ccd5;--bs-table-striped-color: #000;--bs-table-active-bg: #dab9c2;--bs-table-active-color: #000;--bs-table-hover-bg: #e6c4cc;--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: #efefef;--bs-table-border-color: #d7d7d7;--bs-table-striped-bg: #ededed;--bs-table-striped-color: #000;--bs-table-active-bg: #d7d7d7;--bs-table-active-color: #000;--bs-table-hover-bg: #e3e3e3;--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: #262626;--bs-table-border-color: #3c3c3c;--bs-table-striped-bg: #282828;--bs-table-striped-color: #fff;--bs-table-active-bg: #3c3c3c;--bs-table-active-color: #fff;--bs-table-hover-bg: #313131;--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:.5rem;font-weight:500;color:#262626}.col-form-label{padding-top:calc(0.375rem + var(--bs-border-width));padding-bottom:calc(0.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;font-weight:500;line-height:1.6;color:#262626}.col-form-label-lg{padding-top:calc(0.5rem + var(--bs-border-width));padding-bottom:calc(0.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--bs-border-width));padding-bottom:calc(0.25rem + var(--bs-border-width));font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);appearance:none;background-color:#fff;background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .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:var(--bs-body-color);background-color:#fff;border-color:#000;outline:0;box-shadow:none}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.6em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.6;color:var(--bs-body-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:var(--bs-border-width) 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.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343434' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#000;outline:0;box-shadow:none}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem;border-radius:0 !important}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:0 !important}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dedede' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.6rem;padding-left:1.5em;margin-bottom:.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{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.3em;vertical-align:top;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#000;outline:0;box-shadow:0 0 0 .25rem rgba(255,205,0,.25)}.form-check-input:checked{background-color:#5287c6;border-color:#5287c6}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-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]{--bs-form-check-bg-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:#ffcd00;border-color:#ffcd00;--bs-form-check-bg-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:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: 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");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23000'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: 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:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1rem;padding:0;appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f6f6f6,none}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f6f6f6,none}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#ffcd00;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#fff0b3}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:rgba(0,0,0,0);border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#ffcd00;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#fff0b3}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:rgba(0,0,0,0);border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .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 .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.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:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.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{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff;border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c6c6c}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--bs-secondary-bg)}.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:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem;border-radius:var(--bs-border-radius-sm)}.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:calc(var(--bs-border-width) * -1);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:.25rem;font-size:0.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.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:var(--bs-form-valid-border-color);padding-right:calc(1.6em + 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='%232db83d' 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.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.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"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232db83d' 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");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 0 rgba(var(--bs-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.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:.25rem;font-size:0.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.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:var(--bs-form-invalid-border-color);padding-right:calc(1.6em + 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='%23c00a35'%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='%23c00a35' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.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"]{--bs-form-select-bg-icon: 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='%23c00a35'%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='%23c00a35' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 0 rgba(var(--bs-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.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: 1rem;--bs-btn-padding-y: 0.5rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.6;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0 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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: black;--bs-btn-hover-border-color: black;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: black;--bs-btn-active-border-color: black;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #000;--bs-btn-disabled-border-color: #000}.btn-success{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--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: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-error{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #bfbfbf;--bs-btn-focus-shadow-rgb: 203, 203, 203;--bs-btn-active-color: #000;--bs-btn-active-bg: #bfbfbf;--bs-btn-active-border-color: #b3b3b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #efefef;--bs-btn-disabled-border-color: #efefef}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #3c3c3c;--bs-btn-focus-shadow-rgb: 71, 71, 71;--bs-btn-active-color: #fff;--bs-btn-active-bg: #515151;--bs-btn-active-border-color: #3c3c3c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #262626;--bs-btn-disabled-border-color: #262626}.btn-blue{--bs-btn-color: #fff;--bs-btn-bg: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #426c9e;--bs-btn-focus-shadow-rgb: 108, 153, 207;--bs-btn-active-color: #fff;--bs-btn-active-bg: #426c9e;--bs-btn-active-border-color: #3e6595;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5287c6;--bs-btn-disabled-border-color: #5287c6}.btn-dark-blue{--bs-btn-color: #fff;--bs-btn-bg: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #000e33;--bs-btn-focus-shadow-rgb: 38, 54, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000e33;--bs-btn-active-border-color: #000e30;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #001240;--bs-btn-disabled-border-color: #001240}.btn-indigo{--bs-btn-color: #fff;--bs-btn-bg: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #520dc2;--bs-btn-focus-shadow-rgb: 125, 52, 244;--bs-btn-active-color: #fff;--bs-btn-active-bg: #520dc2;--bs-btn-active-border-color: #4d0cb6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6610f2;--bs-btn-disabled-border-color: #6610f2}.btn-purple{--bs-btn-color: #fff;--bs-btn-bg: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #491a68;--bs-btn-focus-shadow-rgb: 116, 66, 149;--bs-btn-active-color: #fff;--bs-btn-active-bg: #491a68;--bs-btn-active-border-color: #441962;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5b2182;--bs-btn-disabled-border-color: #5b2182}.btn-pink{--bs-btn-color: #fff;--bs-btn-bg: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #ab296a;--bs-btn-focus-shadow-rgb: 220, 82, 150;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ab296a;--bs-btn-active-border-color: #a12663;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d63384;--bs-btn-disabled-border-color: #d63384}.btn-red{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-bordeaux-red{--bs-btn-color: #fff;--bs-btn-bg: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #881144;--bs-btn-focus-shadow-rgb: 183, 56, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #881144;--bs-btn-active-border-color: #801040;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #aa1555;--bs-btn-disabled-border-color: #aa1555}.btn-brown{--bs-btn-color: #fff;--bs-btn-bg: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #582f1c;--bs-btn-focus-shadow-rgb: 132, 88, 68;--bs-btn-active-color: #fff;--bs-btn-active-bg: #582f1c;--bs-btn-active-border-color: #532c1a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6e3b23;--bs-btn-disabled-border-color: #6e3b23}.btn-cream{--bs-btn-color: #000;--bs-btn-bg: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe9b3;--bs-btn-focus-shadow-rgb: 217, 196, 145;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffebbc;--bs-btn-active-border-color: #ffe9b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffe6ab;--bs-btn-disabled-border-color: #ffe6ab}.btn-orange{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-yellow{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-green{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-teal{--bs-btn-color: #000;--bs-btn-bg: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #3ab09e;--bs-btn-focus-shadow-rgb: 31, 142, 125;--bs-btn-active-color: #000;--bs-btn-active-bg: #50b9a9;--bs-btn-active-border-color: #3ab09e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #24a793;--bs-btn-disabled-border-color: #24a793}.btn-cyan{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-white{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-gray{--bs-btn-color: #fff;--bs-btn-bg: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 130, 130, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565656;--bs-btn-active-border-color: #515151;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c6c6c;--bs-btn-disabled-border-color: #6c6c6c}.btn-gray-dark{--bs-btn-color: #fff;--bs-btn-bg: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #2a2a2a;--bs-btn-focus-shadow-rgb: 82, 82, 82;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2a2a;--bs-btn-active-border-color: #272727;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343434;--bs-btn-disabled-border-color: #343434}.btn-outline-primary{--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #000;--bs-btn-hover-border-color: #000;--bs-btn-focus-shadow-rgb: 0, 0, 0;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000;--bs-btn-active-border-color: #000;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #000;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--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: none;--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: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-error{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #efefef;--bs-btn-focus-shadow-rgb: 239, 239, 239;--bs-btn-active-color: #000;--bs-btn-active-bg: #efefef;--bs-btn-active-border-color: #efefef;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #efefef;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #efefef;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #262626;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: #262626;--bs-btn-active-border-color: #262626;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #262626;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #262626;--bs-gradient: none}.btn-outline-blue{--bs-btn-color: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #5287c6;--bs-btn-focus-shadow-rgb: 82, 135, 198;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5287c6;--bs-btn-active-border-color: #5287c6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5287c6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5287c6;--bs-gradient: none}.btn-outline-dark-blue{--bs-btn-color: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #001240;--bs-btn-focus-shadow-rgb: 0, 18, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #001240;--bs-btn-active-border-color: #001240;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #001240;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #001240;--bs-gradient: none}.btn-outline-indigo{--bs-btn-color: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #6610f2;--bs-btn-focus-shadow-rgb: 102, 16, 242;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6610f2;--bs-btn-active-border-color: #6610f2;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6610f2;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6610f2;--bs-gradient: none}.btn-outline-purple{--bs-btn-color: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #5b2182;--bs-btn-focus-shadow-rgb: 91, 33, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5b2182;--bs-btn-active-border-color: #5b2182;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5b2182;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5b2182;--bs-gradient: none}.btn-outline-pink{--bs-btn-color: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #d63384;--bs-btn-focus-shadow-rgb: 214, 51, 132;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d63384;--bs-btn-active-border-color: #d63384;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #d63384;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d63384;--bs-gradient: none}.btn-outline-red{--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-outline-bordeaux-red{--bs-btn-color: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #aa1555;--bs-btn-focus-shadow-rgb: 170, 21, 85;--bs-btn-active-color: #fff;--bs-btn-active-bg: #aa1555;--bs-btn-active-border-color: #aa1555;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #aa1555;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #aa1555;--bs-gradient: none}.btn-outline-brown{--bs-btn-color: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #6e3b23;--bs-btn-focus-shadow-rgb: 110, 59, 35;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6e3b23;--bs-btn-active-border-color: #6e3b23;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6e3b23;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6e3b23;--bs-gradient: none}.btn-outline-cream{--bs-btn-color: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe6ab;--bs-btn-focus-shadow-rgb: 255, 230, 171;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffe6ab;--bs-btn-active-border-color: #ffe6ab;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffe6ab;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffe6ab;--bs-gradient: none}.btn-outline-orange{--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-outline-yellow{--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-outline-green{--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-outline-teal{--bs-btn-color: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #24a793;--bs-btn-focus-shadow-rgb: 36, 167, 147;--bs-btn-active-color: #000;--bs-btn-active-bg: #24a793;--bs-btn-active-border-color: #24a793;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #24a793;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #24a793;--bs-gradient: none}.btn-outline-cyan{--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-white{--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-gradient: none}.btn-outline-gray{--bs-btn-color: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #6c6c6c;--bs-btn-focus-shadow-rgb: 108, 108, 108;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c6c6c;--bs-btn-active-border-color: #6c6c6c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6c6c6c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c6c6c;--bs-gradient: none}.btn-outline-gray-dark{--bs-btn-color: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #343434;--bs-btn-focus-shadow-rgb: 52, 52, 52;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343434;--bs-btn-active-border-color: #343434;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #343434;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343434;--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: #6c6c6c;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 38, 38, 38;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.25rem}.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 .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 .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .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:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.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: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--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: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #ffcd00;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c6c6c;--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:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.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:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.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:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.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:rgba(0,0,0,0);border:0;border-radius:var(--bs-dropdown-item-border-radius, 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:rgba(0,0,0,0)}.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: #dedede;--bs-dropdown-bg: #343434;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dedede;--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: #ffcd00;--bs-dropdown-link-disabled-color: #adadad;--bs-dropdown-header-color: #adadad}.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:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(var(--bs-border-width) * -1)}.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:.75rem;padding-left:.75rem}.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:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.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:calc(var(--bs-border-width) * -1)}.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: var(--bs-secondary-color);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;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .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:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(255,205,0,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: #cecece;--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) #cecece;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #cecece #cecece #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));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0);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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #000;--bs-nav-pills-link-active-bg: #ffcd00}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.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;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: 0.5rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--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%2833, 33, 33, 0.75%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(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0;--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 .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.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:rgba(0,0,0,0);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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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:rgba(0,0,0,0) !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,.navbar[data-bs-theme=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")}[data-bs-theme=dark] .navbar-toggler-icon{--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-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);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);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.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(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.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(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.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: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--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: 0;--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - 0);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #000;--bs-accordion-btn-bg: #ffcd00;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212121'%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='%23665200'%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: #000;--bs-accordion-btn-focus-box-shadow: none;--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #000;--bs-accordion-active-bg: #ffcd00}.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}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffe166'%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-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffe166'%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")}.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: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);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: #000;--bs-pagination-bg: #dedede;--bs-pagination-border-width: 0;--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #000;--bs-pagination-hover-bg: #ffcd00;--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: #000;--bs-pagination-focus-bg: #ffcd00;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(255, 205, 0, 0.25);--bs-pagination-active-color: #000;--bs-pagination-active-bg: #ffcd00;--bs-pagination-active-border-color: #ffcd00;--bs-pagination-disabled-color: #adadad;--bs-pagination-disabled-bg: #efefef;--bs-pagination-disabled-border-color: var(--bs-border-color);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 .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .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:calc(0 * -1)}.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: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.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: var(--bs-border-radius);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: 0.5rem;--bs-alert-margin-bottom: 0.5rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 0 solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;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;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:.625rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-error{--bs-alert-color: var(--bs-error-text-emphasis);--bs-alert-bg: var(--bs-error-bg-subtle);--bs-alert-border-color: var(--bs-error-border-subtle);--bs-alert-link-color: var(--bs-error-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}.alert-blue{--bs-alert-color: var(--bs-blue-text-emphasis);--bs-alert-bg: var(--bs-blue-bg-subtle);--bs-alert-border-color: var(--bs-blue-border-subtle);--bs-alert-link-color: var(--bs-blue-text-emphasis)}.alert-dark-blue{--bs-alert-color: var(--bs-dark-blue-text-emphasis);--bs-alert-bg: var(--bs-dark-blue-bg-subtle);--bs-alert-border-color: var(--bs-dark-blue-border-subtle);--bs-alert-link-color: var(--bs-dark-blue-text-emphasis)}.alert-indigo{--bs-alert-color: var(--bs-indigo-text-emphasis);--bs-alert-bg: var(--bs-indigo-bg-subtle);--bs-alert-border-color: var(--bs-indigo-border-subtle);--bs-alert-link-color: var(--bs-indigo-text-emphasis)}.alert-purple{--bs-alert-color: var(--bs-purple-text-emphasis);--bs-alert-bg: var(--bs-purple-bg-subtle);--bs-alert-border-color: var(--bs-purple-border-subtle);--bs-alert-link-color: var(--bs-purple-text-emphasis)}.alert-pink{--bs-alert-color: var(--bs-pink-text-emphasis);--bs-alert-bg: var(--bs-pink-bg-subtle);--bs-alert-border-color: var(--bs-pink-border-subtle);--bs-alert-link-color: var(--bs-pink-text-emphasis)}.alert-red{--bs-alert-color: var(--bs-red-text-emphasis);--bs-alert-bg: var(--bs-red-bg-subtle);--bs-alert-border-color: var(--bs-red-border-subtle);--bs-alert-link-color: var(--bs-red-text-emphasis)}.alert-bordeaux-red{--bs-alert-color: var(--bs-bordeaux-red-text-emphasis);--bs-alert-bg: var(--bs-bordeaux-red-bg-subtle);--bs-alert-border-color: var(--bs-bordeaux-red-border-subtle);--bs-alert-link-color: var(--bs-bordeaux-red-text-emphasis)}.alert-brown{--bs-alert-color: var(--bs-brown-text-emphasis);--bs-alert-bg: var(--bs-brown-bg-subtle);--bs-alert-border-color: var(--bs-brown-border-subtle);--bs-alert-link-color: var(--bs-brown-text-emphasis)}.alert-cream{--bs-alert-color: var(--bs-cream-text-emphasis);--bs-alert-bg: var(--bs-cream-bg-subtle);--bs-alert-border-color: var(--bs-cream-border-subtle);--bs-alert-link-color: var(--bs-cream-text-emphasis)}.alert-orange{--bs-alert-color: var(--bs-orange-text-emphasis);--bs-alert-bg: var(--bs-orange-bg-subtle);--bs-alert-border-color: var(--bs-orange-border-subtle);--bs-alert-link-color: var(--bs-orange-text-emphasis)}.alert-yellow{--bs-alert-color: var(--bs-yellow-text-emphasis);--bs-alert-bg: var(--bs-yellow-bg-subtle);--bs-alert-border-color: var(--bs-yellow-border-subtle);--bs-alert-link-color: var(--bs-yellow-text-emphasis)}.alert-green{--bs-alert-color: var(--bs-green-text-emphasis);--bs-alert-bg: var(--bs-green-bg-subtle);--bs-alert-border-color: var(--bs-green-border-subtle);--bs-alert-link-color: var(--bs-green-text-emphasis)}.alert-teal{--bs-alert-color: var(--bs-teal-text-emphasis);--bs-alert-bg: var(--bs-teal-bg-subtle);--bs-alert-border-color: var(--bs-teal-border-subtle);--bs-alert-link-color: var(--bs-teal-text-emphasis)}.alert-cyan{--bs-alert-color: var(--bs-cyan-text-emphasis);--bs-alert-bg: var(--bs-cyan-bg-subtle);--bs-alert-border-color: var(--bs-cyan-border-subtle);--bs-alert-link-color: var(--bs-cyan-text-emphasis)}.alert-white{--bs-alert-color: var(--bs-white-text-emphasis);--bs-alert-bg: var(--bs-white-bg-subtle);--bs-alert-border-color: var(--bs-white-border-subtle);--bs-alert-link-color: var(--bs-white-text-emphasis)}.alert-gray{--bs-alert-color: var(--bs-gray-text-emphasis);--bs-alert-bg: var(--bs-gray-bg-subtle);--bs-alert-border-color: var(--bs-gray-border-subtle);--bs-alert-link-color: var(--bs-gray-text-emphasis)}.alert-gray-dark{--bs-alert-color: var(--bs-gray-dark-text-emphasis);--bs-alert-bg: var(--bs-gray-dark-bg-subtle);--bs-alert-border-color: var(--bs-gray-dark-border-subtle);--bs-alert-link-color: var(--bs-gray-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #ffcd00;--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-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.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: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #ffcd00;--bs-list-group-active-border-color: #ffcd00;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{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-error{--bs-list-group-color: var(--bs-error-text-emphasis);--bs-list-group-bg: var(--bs-error-bg-subtle);--bs-list-group-border-color: var(--bs-error-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-error-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-error-border-subtle);--bs-list-group-active-color: var(--bs-error-bg-subtle);--bs-list-group-active-bg: var(--bs-error-text-emphasis);--bs-list-group-active-border-color: var(--bs-error-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.list-group-item-blue{--bs-list-group-color: var(--bs-blue-text-emphasis);--bs-list-group-bg: var(--bs-blue-bg-subtle);--bs-list-group-border-color: var(--bs-blue-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-blue-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-blue-border-subtle);--bs-list-group-active-color: var(--bs-blue-bg-subtle);--bs-list-group-active-bg: var(--bs-blue-text-emphasis);--bs-list-group-active-border-color: var(--bs-blue-text-emphasis)}.list-group-item-dark-blue{--bs-list-group-color: var(--bs-dark-blue-text-emphasis);--bs-list-group-bg: var(--bs-dark-blue-bg-subtle);--bs-list-group-border-color: var(--bs-dark-blue-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-blue-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-blue-border-subtle);--bs-list-group-active-color: var(--bs-dark-blue-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-blue-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-blue-text-emphasis)}.list-group-item-indigo{--bs-list-group-color: var(--bs-indigo-text-emphasis);--bs-list-group-bg: var(--bs-indigo-bg-subtle);--bs-list-group-border-color: var(--bs-indigo-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-indigo-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-indigo-border-subtle);--bs-list-group-active-color: var(--bs-indigo-bg-subtle);--bs-list-group-active-bg: var(--bs-indigo-text-emphasis);--bs-list-group-active-border-color: var(--bs-indigo-text-emphasis)}.list-group-item-purple{--bs-list-group-color: var(--bs-purple-text-emphasis);--bs-list-group-bg: var(--bs-purple-bg-subtle);--bs-list-group-border-color: var(--bs-purple-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-purple-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-purple-border-subtle);--bs-list-group-active-color: var(--bs-purple-bg-subtle);--bs-list-group-active-bg: var(--bs-purple-text-emphasis);--bs-list-group-active-border-color: var(--bs-purple-text-emphasis)}.list-group-item-pink{--bs-list-group-color: var(--bs-pink-text-emphasis);--bs-list-group-bg: var(--bs-pink-bg-subtle);--bs-list-group-border-color: var(--bs-pink-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-pink-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-pink-border-subtle);--bs-list-group-active-color: var(--bs-pink-bg-subtle);--bs-list-group-active-bg: var(--bs-pink-text-emphasis);--bs-list-group-active-border-color: var(--bs-pink-text-emphasis)}.list-group-item-red{--bs-list-group-color: var(--bs-red-text-emphasis);--bs-list-group-bg: var(--bs-red-bg-subtle);--bs-list-group-border-color: var(--bs-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-red-border-subtle);--bs-list-group-active-color: var(--bs-red-bg-subtle);--bs-list-group-active-bg: var(--bs-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-red-text-emphasis)}.list-group-item-bordeaux-red{--bs-list-group-color: var(--bs-bordeaux-red-text-emphasis);--bs-list-group-bg: var(--bs-bordeaux-red-bg-subtle);--bs-list-group-border-color: var(--bs-bordeaux-red-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-bordeaux-red-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-bordeaux-red-border-subtle);--bs-list-group-active-color: var(--bs-bordeaux-red-bg-subtle);--bs-list-group-active-bg: var(--bs-bordeaux-red-text-emphasis);--bs-list-group-active-border-color: var(--bs-bordeaux-red-text-emphasis)}.list-group-item-brown{--bs-list-group-color: var(--bs-brown-text-emphasis);--bs-list-group-bg: var(--bs-brown-bg-subtle);--bs-list-group-border-color: var(--bs-brown-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-brown-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-brown-border-subtle);--bs-list-group-active-color: var(--bs-brown-bg-subtle);--bs-list-group-active-bg: var(--bs-brown-text-emphasis);--bs-list-group-active-border-color: var(--bs-brown-text-emphasis)}.list-group-item-cream{--bs-list-group-color: var(--bs-cream-text-emphasis);--bs-list-group-bg: var(--bs-cream-bg-subtle);--bs-list-group-border-color: var(--bs-cream-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-cream-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-cream-border-subtle);--bs-list-group-active-color: var(--bs-cream-bg-subtle);--bs-list-group-active-bg: var(--bs-cream-text-emphasis);--bs-list-group-active-border-color: var(--bs-cream-text-emphasis)}.list-group-item-orange{--bs-list-group-color: var(--bs-orange-text-emphasis);--bs-list-group-bg: var(--bs-orange-bg-subtle);--bs-list-group-border-color: var(--bs-orange-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-orange-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-orange-border-subtle);--bs-list-group-active-color: var(--bs-orange-bg-subtle);--bs-list-group-active-bg: var(--bs-orange-text-emphasis);--bs-list-group-active-border-color: var(--bs-orange-text-emphasis)}.list-group-item-yellow{--bs-list-group-color: var(--bs-yellow-text-emphasis);--bs-list-group-bg: var(--bs-yellow-bg-subtle);--bs-list-group-border-color: var(--bs-yellow-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-yellow-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-yellow-border-subtle);--bs-list-group-active-color: var(--bs-yellow-bg-subtle);--bs-list-group-active-bg: var(--bs-yellow-text-emphasis);--bs-list-group-active-border-color: var(--bs-yellow-text-emphasis)}.list-group-item-green{--bs-list-group-color: var(--bs-green-text-emphasis);--bs-list-group-bg: var(--bs-green-bg-subtle);--bs-list-group-border-color: var(--bs-green-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-green-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-green-border-subtle);--bs-list-group-active-color: var(--bs-green-bg-subtle);--bs-list-group-active-bg: var(--bs-green-text-emphasis);--bs-list-group-active-border-color: var(--bs-green-text-emphasis)}.list-group-item-teal{--bs-list-group-color: var(--bs-teal-text-emphasis);--bs-list-group-bg: var(--bs-teal-bg-subtle);--bs-list-group-border-color: var(--bs-teal-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-teal-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-teal-border-subtle);--bs-list-group-active-color: var(--bs-teal-bg-subtle);--bs-list-group-active-bg: var(--bs-teal-text-emphasis);--bs-list-group-active-border-color: var(--bs-teal-text-emphasis)}.list-group-item-cyan{--bs-list-group-color: var(--bs-cyan-text-emphasis);--bs-list-group-bg: var(--bs-cyan-bg-subtle);--bs-list-group-border-color: var(--bs-cyan-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-cyan-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-cyan-border-subtle);--bs-list-group-active-color: var(--bs-cyan-bg-subtle);--bs-list-group-active-bg: var(--bs-cyan-text-emphasis);--bs-list-group-active-border-color: var(--bs-cyan-text-emphasis)}.list-group-item-white{--bs-list-group-color: var(--bs-white-text-emphasis);--bs-list-group-bg: var(--bs-white-bg-subtle);--bs-list-group-border-color: var(--bs-white-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-white-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-white-border-subtle);--bs-list-group-active-color: var(--bs-white-bg-subtle);--bs-list-group-active-bg: var(--bs-white-text-emphasis);--bs-list-group-active-border-color: var(--bs-white-text-emphasis)}.list-group-item-gray{--bs-list-group-color: var(--bs-gray-text-emphasis);--bs-list-group-bg: var(--bs-gray-bg-subtle);--bs-list-group-border-color: var(--bs-gray-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-gray-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-gray-border-subtle);--bs-list-group-active-color: var(--bs-gray-bg-subtle);--bs-list-group-active-bg: var(--bs-gray-text-emphasis);--bs-list-group-active-border-color: var(--bs-gray-text-emphasis)}.list-group-item-gray-dark{--bs-list-group-color: var(--bs-gray-dark-text-emphasis);--bs-list-group-bg: var(--bs-gray-dark-bg-subtle);--bs-list-group-border-color: var(--bs-gray-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-gray-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-gray-dark-border-subtle);--bs-list-group-active-color: var(--bs-gray-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-gray-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-gray-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: 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");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(255, 205, 0, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:0;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 0;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color: var(--bs-border-color-translucent);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(-0.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: 9002;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: #212121;--bs-modal-bg: #fff;--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: 0;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: 0;--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: 0;--bs-modal-title-line-height: 1.6;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: 0.0625rem;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 .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(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.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: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--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;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.6;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:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.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)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));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)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.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)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));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)}.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: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--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: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--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.6;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:rgba(0,0,0,0);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)}.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)}.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(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.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)}.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 .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 .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:.5;transition:opacity .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:.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%}.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%}.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 rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .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}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .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:rgba(0,0,0,0)}.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,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--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: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.6}@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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}}@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:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !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:var(--bs-offcanvas-transition)}@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:.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(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.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:.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:.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%}}.accordion-item{margin-bottom:1rem}.alert-primary{--bs-alert-color: #000;--bs-alert-bg: #fff5cc;--bs-alert-border-color: #fff0b3;--bs-alert-link-color: #000}.alert-secondary{--bs-alert-color: #000;--bs-alert-bg: #cccccc;--bs-alert-border-color: #b3b3b3;--bs-alert-link-color: #000}.alert-success{--bs-alert-color: #000;--bs-alert-bg: #d5f1d8;--bs-alert-border-color: #c0eac5;--bs-alert-link-color: #000}.alert-info{--bs-alert-color: #000;--bs-alert-bg: #cff4fc;--bs-alert-border-color: #b6effb;--bs-alert-link-color: #000}.alert-warning{--bs-alert-color: #000;--bs-alert-bg: #fdeadf;--bs-alert-border-color: #fbe0cf;--bs-alert-link-color: #000}.alert-danger{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-error{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-light{--bs-alert-color: #000;--bs-alert-bg: #fcfcfc;--bs-alert-border-color: #fafafa;--bs-alert-link-color: #000}.alert-dark{--bs-alert-color: #000;--bs-alert-bg: #d4d4d4;--bs-alert-border-color: #bebebe;--bs-alert-link-color: #000}.alert-blue{--bs-alert-color: #000;--bs-alert-bg: #dce7f4;--bs-alert-border-color: #cbdbee;--bs-alert-link-color: #000}.alert-dark-blue{--bs-alert-color: #000;--bs-alert-bg: #ccd0d9;--bs-alert-border-color: #b3b8c6;--bs-alert-link-color: #000}.alert-indigo{--bs-alert-color: #000;--bs-alert-bg: #e0cffc;--bs-alert-border-color: #d1b7fb;--bs-alert-link-color: #000}.alert-purple{--bs-alert-color: #000;--bs-alert-bg: #ded3e6;--bs-alert-border-color: #cebcda;--bs-alert-link-color: #000}.alert-pink{--bs-alert-color: #000;--bs-alert-bg: #f7d6e6;--bs-alert-border-color: #f3c2da;--bs-alert-link-color: #000}.alert-red{--bs-alert-color: #000;--bs-alert-bg: #f2ced7;--bs-alert-border-color: #ecb6c2;--bs-alert-link-color: #000}.alert-bordeaux-red{--bs-alert-color: #000;--bs-alert-bg: #eed0dd;--bs-alert-border-color: #e6b9cc;--bs-alert-link-color: #000}.alert-brown{--bs-alert-color: #000;--bs-alert-bg: #e2d8d3;--bs-alert-border-color: #d4c4bd;--bs-alert-link-color: #000}.alert-cream{--bs-alert-color: #000;--bs-alert-bg: #fffaee;--bs-alert-border-color: #fff8e6;--bs-alert-link-color: #000}.alert-orange{--bs-alert-color: #000;--bs-alert-bg: #fdeadf;--bs-alert-border-color: #fbe0cf;--bs-alert-link-color: #000}.alert-yellow{--bs-alert-color: #000;--bs-alert-bg: #fff5cc;--bs-alert-border-color: #fff0b3;--bs-alert-link-color: #000}.alert-green{--bs-alert-color: #000;--bs-alert-bg: #d5f1d8;--bs-alert-border-color: #c0eac5;--bs-alert-link-color: #000}.alert-teal{--bs-alert-color: #000;--bs-alert-bg: #d3ede9;--bs-alert-border-color: #bde5df;--bs-alert-link-color: #000}.alert-cyan{--bs-alert-color: #000;--bs-alert-bg: #cff4fc;--bs-alert-border-color: #b6effb;--bs-alert-link-color: #000}.alert-white{--bs-alert-color: #000;--bs-alert-bg: white;--bs-alert-border-color: white;--bs-alert-link-color: #000}.alert-gray{--bs-alert-color: #000;--bs-alert-bg: #e2e2e2;--bs-alert-border-color: lightgray;--bs-alert-link-color: #000}.alert-gray-dark{--bs-alert-color: #000;--bs-alert-bg: #d6d6d6;--bs-alert-border-color: #c2c2c2;--bs-alert-link-color: #000}.alert p:last-child{margin-bottom:0}.text-bg-hover-primary:hover{color:#000 !important;background-color:RGBA(255, 205, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-secondary:hover{color:#fff !important;background-color:RGBA(0, 0, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-success:hover{color:#000 !important;background-color:RGBA(45, 184, 61, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-info:hover{color:#000 !important;background-color:RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-warning:hover{color:#000 !important;background-color:RGBA(243, 150, 94, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-danger:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-error:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-light:hover{color:#000 !important;background-color:RGBA(239, 239, 239, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-dark:hover{color:#fff !important;background-color:RGBA(38, 38, 38, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-blue:hover{color:#fff !important;background-color:RGBA(82, 135, 198, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-dark-blue:hover{color:#fff !important;background-color:RGBA(0, 18, 64, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-indigo:hover{color:#fff !important;background-color:RGBA(102, 16, 242, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-purple:hover{color:#fff !important;background-color:RGBA(91, 33, 130, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-pink:hover{color:#fff !important;background-color:RGBA(214, 51, 132, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-red:hover{color:#fff !important;background-color:RGBA(192, 10, 53, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-bordeaux-red:hover{color:#fff !important;background-color:RGBA(170, 21, 85, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-brown:hover{color:#fff !important;background-color:RGBA(110, 59, 35, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-cream:hover{color:#000 !important;background-color:RGBA(255, 230, 171, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-orange:hover{color:#000 !important;background-color:RGBA(243, 150, 94, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-yellow:hover{color:#000 !important;background-color:RGBA(255, 205, 0, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-green:hover{color:#000 !important;background-color:RGBA(45, 184, 61, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-teal:hover{color:#000 !important;background-color:RGBA(36, 167, 147, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-cyan:hover{color:#000 !important;background-color:RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-white:hover{color:#000 !important;background-color:RGBA(255, 255, 255, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-gray:hover{color:#fff !important;background-color:RGBA(108, 108, 108, var(--bs-bg-opacity, 1)) !important}.text-bg-hover-gray-dark:hover{color:#fff !important;background-color:RGBA(52, 52, 52, var(--bs-bg-opacity, 1)) !important}.btn{font-weight:bold}.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(1rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.5rem + var(--bs-border-width))}.btn.btn-arrow-right.btn-sm:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-sm>.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left.btn-sm:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-sm>.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(0.5rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.25rem + var(--bs-border-width))}.btn.btn-arrow-right.btn-lg:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-lg>.btn.btn-arrow-right:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn.btn-arrow-left.btn-lg:not([class^=btn-outline]):not([class*=" btn-outline"]),.btn-group-lg>.btn.btn-arrow-left:not([class^=btn-outline]):not([class*=" btn-outline"]){--bs-btn-border-width: 0;--bs-btn-padding-x: calc(1rem + var(--bs-border-width));--bs-btn-padding-y: calc(0.5rem + var(--bs-border-width))}.btn.btn-arrow-right::after,.btn.btn-arrow-right::before,.btn.btn-arrow-left::after,.btn.btn-arrow-left::before{display:inline-block;font-weight:900;border:.0625rem solid rgba(0,0,0,0);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn.btn-arrow-right::after,.btn.btn-arrow-right::before,.btn.btn-arrow-left::after,.btn.btn-arrow-left::before{transition:none}}.btn.btn-arrow-right:hover::after,.btn.btn-arrow-right:hover::before,.btn.btn-arrow-left:hover::after,.btn.btn-arrow-left:hover::before{background:var(--bs-btn-hover-color);color:var(--bs-btn-hover-bg);border-color:#000}.btn.btn-arrow-right::after{content:">";padding:var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x)) var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x));margin:calc(0px - var(--bs-btn-padding-y)) calc(0px - var(--bs-btn-padding-x)) calc(0px - var(--bs-btn-padding-y)) calc(.7*var(--bs-btn-padding-x));border-top-right-radius:var(--bs-btn-border-radius);border-bottom-right-radius:var(--bs-btn-border-radius)}.btn.btn-arrow-left::before{content:"<";padding:var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x)) var(--bs-btn-padding-y) calc(.8*var(--bs-btn-padding-x));margin:calc(0px - var(--bs-btn-padding-y)) calc(.7*var(--bs-btn-padding-x)) calc(0px - var(--bs-btn-padding-y)) calc(0px - var(--bs-btn-padding-x));border-top-left-radius:var(--bs-btn-border-radius);border-bottom-left-radius:var(--bs-btn-border-radius)}.btn.btn-loading{position:relative;color:rgba(0,0,0,0)}.btn.btn-loading .btn-text{color:rgba(0,0,0,0)}.btn.btn-loading::after{border:.125rem solid #000;border-radius:999999px;border-top-color:rgba(0,0,0,0) !important;content:"";display:block;height:1em;width:1em;position:absolute;left:calc(50% - .5em);top:calc(50% - .5em);animation:spinner-border .5s infinite linear}.btn.btn-loading.btn-primary::after{border-color:#000}.btn.btn-loading.btn-secondary::after{border-color:#fff}.btn.btn-loading.btn-success::after{border-color:#000}.btn.btn-loading.btn-info::after{border-color:#000}.btn.btn-loading.btn-warning::after{border-color:#000}.btn.btn-loading.btn-danger::after{border-color:#fff}.btn.btn-loading.btn-error::after{border-color:#fff}.btn.btn-loading.btn-light::after{border-color:#000}.btn.btn-loading.btn-dark::after{border-color:#fff}.btn.btn-loading.btn-blue::after{border-color:#fff}.btn.btn-loading.btn-dark-blue::after{border-color:#fff}.btn.btn-loading.btn-indigo::after{border-color:#fff}.btn.btn-loading.btn-purple::after{border-color:#fff}.btn.btn-loading.btn-pink::after{border-color:#fff}.btn.btn-loading.btn-red::after{border-color:#fff}.btn.btn-loading.btn-bordeaux-red::after{border-color:#fff}.btn.btn-loading.btn-brown::after{border-color:#fff}.btn.btn-loading.btn-cream::after{border-color:#000}.btn.btn-loading.btn-orange::after{border-color:#000}.btn.btn-loading.btn-yellow::after{border-color:#000}.btn.btn-loading.btn-green::after{border-color:#000}.btn.btn-loading.btn-teal::after{border-color:#000}.btn.btn-loading.btn-cyan::after{border-color:#000}.btn.btn-loading.btn-white::after{border-color:#000}.btn.btn-loading.btn-gray::after{border-color:#fff}.btn.btn-loading.btn-gray-dark::after{border-color:#fff}.btn-group{gap:.5rem}.btn-check:checked+.btn.btn-checked-primary,.btn-check:active+.btn.btn-checked-primary{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-check:checked+.btn.btn-checked-outline-primary,.btn-check:active+.btn.btn-checked-outline-primary{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-secondary,.btn-check:active+.btn.btn-checked-secondary{--bs-btn-color: #fff;--bs-btn-bg: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: black;--bs-btn-hover-border-color: black;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: black;--bs-btn-active-border-color: black;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #000;--bs-btn-disabled-border-color: #000}.btn-check:checked+.btn.btn-checked-outline-secondary,.btn-check:active+.btn.btn-checked-outline-secondary{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #000;--bs-btn-border-color: #000;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #000;--bs-btn-hover-border-color: #000;--bs-btn-focus-shadow-rgb: 0, 0, 0;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000;--bs-btn-active-border-color: #000;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #000;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-success,.btn-check:active+.btn.btn-checked-success{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-check:checked+.btn.btn-checked-outline-success,.btn-check:active+.btn.btn-checked-outline-success{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-info,.btn-check:active+.btn.btn-checked-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-check:checked+.btn.btn-checked-outline-info,.btn-check:active+.btn.btn-checked-outline-info{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-warning,.btn-check:active+.btn.btn-checked-warning{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-check:checked+.btn.btn-checked-outline-warning,.btn-check:active+.btn.btn-checked-outline-warning{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-danger,.btn-check:active+.btn.btn-checked-danger{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-danger,.btn-check:active+.btn.btn-checked-outline-danger{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-error,.btn-check:active+.btn.btn-checked-error{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-error,.btn-check:active+.btn.btn-checked-outline-error{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-light,.btn-check:active+.btn.btn-checked-light{--bs-btn-color: #000;--bs-btn-bg: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #bfbfbf;--bs-btn-focus-shadow-rgb: 203, 203, 203;--bs-btn-active-color: #000;--bs-btn-active-bg: #bfbfbf;--bs-btn-active-border-color: #b3b3b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #efefef;--bs-btn-disabled-border-color: #efefef}.btn-check:checked+.btn.btn-checked-outline-light,.btn-check:active+.btn.btn-checked-outline-light{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #efefef;--bs-btn-border-color: #efefef;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #efefef;--bs-btn-hover-border-color: #efefef;--bs-btn-focus-shadow-rgb: 239, 239, 239;--bs-btn-active-color: #000;--bs-btn-active-bg: #efefef;--bs-btn-active-border-color: #efefef;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #efefef;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #efefef;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-dark,.btn-check:active+.btn.btn-checked-dark{--bs-btn-color: #fff;--bs-btn-bg: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #3c3c3c;--bs-btn-focus-shadow-rgb: 71, 71, 71;--bs-btn-active-color: #fff;--bs-btn-active-bg: #515151;--bs-btn-active-border-color: #3c3c3c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #262626;--bs-btn-disabled-border-color: #262626}.btn-check:checked+.btn.btn-checked-outline-dark,.btn-check:active+.btn.btn-checked-outline-dark{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #262626;--bs-btn-border-color: #262626;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #262626;--bs-btn-hover-border-color: #262626;--bs-btn-focus-shadow-rgb: 38, 38, 38;--bs-btn-active-color: #fff;--bs-btn-active-bg: #262626;--bs-btn-active-border-color: #262626;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #262626;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #262626;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-blue,.btn-check:active+.btn.btn-checked-blue{--bs-btn-color: #fff;--bs-btn-bg: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #426c9e;--bs-btn-focus-shadow-rgb: 108, 153, 207;--bs-btn-active-color: #fff;--bs-btn-active-bg: #426c9e;--bs-btn-active-border-color: #3e6595;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5287c6;--bs-btn-disabled-border-color: #5287c6}.btn-check:checked+.btn.btn-checked-outline-blue,.btn-check:active+.btn.btn-checked-outline-blue{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #5287c6;--bs-btn-border-color: #5287c6;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5287c6;--bs-btn-hover-border-color: #5287c6;--bs-btn-focus-shadow-rgb: 82, 135, 198;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5287c6;--bs-btn-active-border-color: #5287c6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5287c6;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5287c6;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-dark-blue,.btn-check:active+.btn.btn-checked-dark-blue{--bs-btn-color: #fff;--bs-btn-bg: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #000e33;--bs-btn-focus-shadow-rgb: 38, 54, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #000e33;--bs-btn-active-border-color: #000e30;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #001240;--bs-btn-disabled-border-color: #001240}.btn-check:checked+.btn.btn-checked-outline-dark-blue,.btn-check:active+.btn.btn-checked-outline-dark-blue{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #001240;--bs-btn-border-color: #001240;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #001240;--bs-btn-hover-border-color: #001240;--bs-btn-focus-shadow-rgb: 0, 18, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #001240;--bs-btn-active-border-color: #001240;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #001240;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #001240;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-indigo,.btn-check:active+.btn.btn-checked-indigo{--bs-btn-color: #fff;--bs-btn-bg: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #520dc2;--bs-btn-focus-shadow-rgb: 125, 52, 244;--bs-btn-active-color: #fff;--bs-btn-active-bg: #520dc2;--bs-btn-active-border-color: #4d0cb6;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6610f2;--bs-btn-disabled-border-color: #6610f2}.btn-check:checked+.btn.btn-checked-outline-indigo,.btn-check:active+.btn.btn-checked-outline-indigo{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6610f2;--bs-btn-border-color: #6610f2;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6610f2;--bs-btn-hover-border-color: #6610f2;--bs-btn-focus-shadow-rgb: 102, 16, 242;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6610f2;--bs-btn-active-border-color: #6610f2;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6610f2;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6610f2;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-purple,.btn-check:active+.btn.btn-checked-purple{--bs-btn-color: #fff;--bs-btn-bg: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #491a68;--bs-btn-focus-shadow-rgb: 116, 66, 149;--bs-btn-active-color: #fff;--bs-btn-active-bg: #491a68;--bs-btn-active-border-color: #441962;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5b2182;--bs-btn-disabled-border-color: #5b2182}.btn-check:checked+.btn.btn-checked-outline-purple,.btn-check:active+.btn.btn-checked-outline-purple{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #5b2182;--bs-btn-border-color: #5b2182;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5b2182;--bs-btn-hover-border-color: #5b2182;--bs-btn-focus-shadow-rgb: 91, 33, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5b2182;--bs-btn-active-border-color: #5b2182;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #5b2182;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #5b2182;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-pink,.btn-check:active+.btn.btn-checked-pink{--bs-btn-color: #fff;--bs-btn-bg: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #ab296a;--bs-btn-focus-shadow-rgb: 220, 82, 150;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ab296a;--bs-btn-active-border-color: #a12663;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #d63384;--bs-btn-disabled-border-color: #d63384}.btn-check:checked+.btn.btn-checked-outline-pink,.btn-check:active+.btn.btn-checked-outline-pink{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #d63384;--bs-btn-border-color: #d63384;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d63384;--bs-btn-hover-border-color: #d63384;--bs-btn-focus-shadow-rgb: 214, 51, 132;--bs-btn-active-color: #fff;--bs-btn-active-bg: #d63384;--bs-btn-active-border-color: #d63384;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #d63384;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #d63384;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-red,.btn-check:active+.btn.btn-checked-red{--bs-btn-color: #fff;--bs-btn-bg: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #9a082a;--bs-btn-focus-shadow-rgb: 201, 47, 83;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9a082a;--bs-btn-active-border-color: #900828;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #c00a35;--bs-btn-disabled-border-color: #c00a35}.btn-check:checked+.btn.btn-checked-outline-red,.btn-check:active+.btn.btn-checked-outline-red{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #c00a35;--bs-btn-border-color: #c00a35;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #c00a35;--bs-btn-hover-border-color: #c00a35;--bs-btn-focus-shadow-rgb: 192, 10, 53;--bs-btn-active-color: #fff;--bs-btn-active-bg: #c00a35;--bs-btn-active-border-color: #c00a35;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #c00a35;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #c00a35;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-bordeaux-red,.btn-check:active+.btn.btn-checked-bordeaux-red{--bs-btn-color: #fff;--bs-btn-bg: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #881144;--bs-btn-focus-shadow-rgb: 183, 56, 111;--bs-btn-active-color: #fff;--bs-btn-active-bg: #881144;--bs-btn-active-border-color: #801040;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #aa1555;--bs-btn-disabled-border-color: #aa1555}.btn-check:checked+.btn.btn-checked-outline-bordeaux-red,.btn-check:active+.btn.btn-checked-outline-bordeaux-red{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #aa1555;--bs-btn-border-color: #aa1555;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #aa1555;--bs-btn-hover-border-color: #aa1555;--bs-btn-focus-shadow-rgb: 170, 21, 85;--bs-btn-active-color: #fff;--bs-btn-active-bg: #aa1555;--bs-btn-active-border-color: #aa1555;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #aa1555;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #aa1555;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-brown,.btn-check:active+.btn.btn-checked-brown{--bs-btn-color: #fff;--bs-btn-bg: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #582f1c;--bs-btn-focus-shadow-rgb: 132, 88, 68;--bs-btn-active-color: #fff;--bs-btn-active-bg: #582f1c;--bs-btn-active-border-color: #532c1a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6e3b23;--bs-btn-disabled-border-color: #6e3b23}.btn-check:checked+.btn.btn-checked-outline-brown,.btn-check:active+.btn.btn-checked-outline-brown{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6e3b23;--bs-btn-border-color: #6e3b23;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6e3b23;--bs-btn-hover-border-color: #6e3b23;--bs-btn-focus-shadow-rgb: 110, 59, 35;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6e3b23;--bs-btn-active-border-color: #6e3b23;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6e3b23;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6e3b23;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-cream,.btn-check:active+.btn.btn-checked-cream{--bs-btn-color: #000;--bs-btn-bg: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe9b3;--bs-btn-focus-shadow-rgb: 217, 196, 145;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffebbc;--bs-btn-active-border-color: #ffe9b3;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffe6ab;--bs-btn-disabled-border-color: #ffe6ab}.btn-check:checked+.btn.btn-checked-outline-cream,.btn-check:active+.btn.btn-checked-outline-cream{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffe6ab;--bs-btn-border-color: #ffe6ab;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffe6ab;--bs-btn-hover-border-color: #ffe6ab;--bs-btn-focus-shadow-rgb: 255, 230, 171;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffe6ab;--bs-btn-active-border-color: #ffe6ab;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffe6ab;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffe6ab;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-orange,.btn-check:active+.btn.btn-checked-orange{--bs-btn-color: #000;--bs-btn-bg: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f4a16e;--bs-btn-focus-shadow-rgb: 207, 128, 80;--bs-btn-active-color: #000;--bs-btn-active-bg: #f5ab7e;--bs-btn-active-border-color: #f4a16e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f3965e;--bs-btn-disabled-border-color: #f3965e}.btn-check:checked+.btn.btn-checked-outline-orange,.btn-check:active+.btn.btn-checked-outline-orange{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #f3965e;--bs-btn-border-color: #f3965e;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f3965e;--bs-btn-hover-border-color: #f3965e;--bs-btn-focus-shadow-rgb: 243, 150, 94;--bs-btn-active-color: #000;--bs-btn-active-bg: #f3965e;--bs-btn-active-border-color: #f3965e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #f3965e;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f3965e;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-yellow,.btn-check:active+.btn.btn-checked-yellow{--bs-btn-color: #000;--bs-btn-bg: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffd21a;--bs-btn-focus-shadow-rgb: 217, 174, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffd733;--bs-btn-active-border-color: #ffd21a;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffcd00;--bs-btn-disabled-border-color: #ffcd00}.btn-check:checked+.btn.btn-checked-outline-yellow,.btn-check:active+.btn.btn-checked-outline-yellow{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #ffcd00;--bs-btn-border-color: #ffcd00;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffcd00;--bs-btn-hover-border-color: #ffcd00;--bs-btn-focus-shadow-rgb: 255, 205, 0;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd00;--bs-btn-active-border-color: #ffcd00;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #ffcd00;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffcd00;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-green,.btn-check:active+.btn.btn-checked-green{--bs-btn-color: #000;--bs-btn-bg: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #42bf50;--bs-btn-focus-shadow-rgb: 38, 156, 52;--bs-btn-active-color: #000;--bs-btn-active-bg: #57c664;--bs-btn-active-border-color: #42bf50;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #2db83d;--bs-btn-disabled-border-color: #2db83d}.btn-check:checked+.btn.btn-checked-outline-green,.btn-check:active+.btn.btn-checked-outline-green{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #2db83d;--bs-btn-border-color: #2db83d;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #2db83d;--bs-btn-hover-border-color: #2db83d;--bs-btn-focus-shadow-rgb: 45, 184, 61;--bs-btn-active-color: #000;--bs-btn-active-bg: #2db83d;--bs-btn-active-border-color: #2db83d;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #2db83d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2db83d;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-teal,.btn-check:active+.btn.btn-checked-teal{--bs-btn-color: #000;--bs-btn-bg: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #3ab09e;--bs-btn-focus-shadow-rgb: 31, 142, 125;--bs-btn-active-color: #000;--bs-btn-active-bg: #50b9a9;--bs-btn-active-border-color: #3ab09e;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #24a793;--bs-btn-disabled-border-color: #24a793}.btn-check:checked+.btn.btn-checked-outline-teal,.btn-check:active+.btn.btn-checked-outline-teal{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #24a793;--bs-btn-border-color: #24a793;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #24a793;--bs-btn-hover-border-color: #24a793;--bs-btn-focus-shadow-rgb: 36, 167, 147;--bs-btn-active-color: #000;--bs-btn-active-bg: #24a793;--bs-btn-active-border-color: #24a793;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #24a793;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #24a793;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-cyan,.btn-check:active+.btn.btn-checked-cyan{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--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: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-check:checked+.btn.btn-checked-outline-cyan,.btn-check:active+.btn.btn-checked-outline-cyan{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--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: none;--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-white,.btn-check:active+.btn.btn-checked-white{--bs-btn-color: #000;--bs-btn-bg: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: white;--bs-btn-hover-border-color: white;--bs-btn-focus-shadow-rgb: 217, 217, 217;--bs-btn-active-color: #000;--bs-btn-active-bg: white;--bs-btn-active-border-color: white;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #fff;--bs-btn-disabled-border-color: #fff}.btn-check:checked+.btn.btn-checked-outline-white,.btn-check:active+.btn.btn-checked-outline-white{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #fff;--bs-btn-border-color: #fff;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #fff;--bs-btn-hover-border-color: #fff;--bs-btn-focus-shadow-rgb: 255, 255, 255;--bs-btn-active-color: #000;--bs-btn-active-bg: #fff;--bs-btn-active-border-color: #fff;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #fff;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-gray,.btn-check:active+.btn.btn-checked-gray{--bs-btn-color: #fff;--bs-btn-bg: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #565656;--bs-btn-focus-shadow-rgb: 130, 130, 130;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565656;--bs-btn-active-border-color: #515151;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c6c6c;--bs-btn-disabled-border-color: #6c6c6c}.btn-check:checked+.btn.btn-checked-outline-gray,.btn-check:active+.btn.btn-checked-outline-gray{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #6c6c6c;--bs-btn-border-color: #6c6c6c;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c6c6c;--bs-btn-hover-border-color: #6c6c6c;--bs-btn-focus-shadow-rgb: 108, 108, 108;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c6c6c;--bs-btn-active-border-color: #6c6c6c;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #6c6c6c;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c6c6c;--bs-gradient: none}.btn-check:checked+.btn.btn-checked-gray-dark,.btn-check:active+.btn.btn-checked-gray-dark{--bs-btn-color: #fff;--bs-btn-bg: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #2a2a2a;--bs-btn-focus-shadow-rgb: 82, 82, 82;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2a2a;--bs-btn-active-border-color: #272727;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343434;--bs-btn-disabled-border-color: #343434}.btn-check:checked+.btn.btn-checked-outline-gray-dark,.btn-check:active+.btn.btn-checked-outline-gray-dark{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color);--bs-btn-color: #343434;--bs-btn-border-color: #343434;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343434;--bs-btn-hover-border-color: #343434;--bs-btn-focus-shadow-rgb: 52, 52, 52;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343434;--bs-btn-active-border-color: #343434;--bs-btn-active-shadow: none;--bs-btn-disabled-color: #343434;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343434;--bs-gradient: none}.pagination{--bs-pagination-gap: 0.625rem;--bs-pagination-size: 2.5rem;--bs-pagination-button-bg: #000;--bs-pagination-button-color: #fff;--bs-pagination-ellipsis-color: #494949;gap:var(--bs-pagination-gap)}.pagination .page-item{height:100%}.pagination .page-item .page-link{cursor:pointer;height:var(--bs-pagination-size);line-height:var(--bs-pagination-size);padding-top:0;padding-bottom:0;text-align:center}.pagination .page-item:not(.page-button):not(.next):not(.previous):not(.first):not(.last) .page-link{width:var(--bs-pagination-size);padding:0}.pagination .page-item.page-button{font-weight:bold;user-select:none}.pagination .page-item.page-button .page-link{background-color:var(--bs-pagination-button-bg);color:var(--bs-pagination-button-color)}.pagination .page-item.page-button.disabled{cursor:not-allowed}.pagination .page-item.page-button.disabled .page-link{background-color:var(--bs-pagination-disabled-bg);color:var(--bs-pagination-disabled-color)}.pagination .page-item.active{font-weight:bold}.pagination .page-item.page-ellipsis .page-link{background:rgba(0,0,0,0);cursor:default;font-size:0}.pagination .page-item.page-ellipsis .page-link:before{font-size:1rem;color:var(--bs-pagination-ellipsis-color);content:"…"}[data-bs-theme=dark] .pagination{--bs-pagination-button-bg-dark: #000;--bs-pagination-ellipsis-color: #dedede;--bs-pagination-color: #fff;--bs-pagination-bg: #6c6c6c;--bs-pagination-focus-color: #000;--bs-pagination-focus-bg: #ffcd00;--bs-pagination-hover-color: #000;--bs-pagination-hover-bg: #ffcd00;--bs-pagination-active-color: #000;--bs-pagination-active-bg: #ffcd00;--bs-pagination-disabled-color: #adadad;--bs-pagination-disabled-bg: #494949}.modal{--bs-modal-header-bg: #ffcd00;--bs-modal-header-color: #000;--bs-modal-header-font-weight: 500}.modal .modal-header{background-color:var(--bs-modal-header-bg);color:var(--bs-modal-header-color);font-weight:var(--bs-modal-header-font-weight)}[data-bs-theme=dark] .modal{--bs-modal-bg: #343434;--bs-modal-color: #efefef;--bs-modal-header-bg: #ffcd00;--bs-modal-header-color: #000}.table.table-sticky-header thead,.table-sticky-header.dt thead,.table-sticky-header.datatables thead{position:sticky;top:0}.table.table-sticky-header.table-sticky-header-top-0 thead,.table-sticky-header.table-sticky-header-top-0.dt thead,.table-sticky-header.table-sticky-header-top-0.datatables thead{top:0 !important}.table.table-sticky-footer tfoot,.table-sticky-footer.dt tfoot,.table-sticky-footer.datatables tfoot{position:sticky;bottom:0}.table.loading tbody,.loading.dt tbody,.loading.datatables tbody{position:relative}.table.loading tbody td,.loading.dt tbody td,.loading.datatables tbody td{opacity:.4}.table.loading tbody:after,.loading.dt tbody:after,.loading.datatables tbody:after{border:.2rem solid var(--bs-secondary);border-radius:999999px;border-top-color:rgba(0,0,0,0) !important;content:"";display:block;height:3em;width:3em;position:absolute;left:calc(50% - 1.5em);top:calc(50% - 1.5em);animation:spinner-border .5s infinite linear}@media(max-width: 768px){.uu-root-container .table.table-sticky-header thead,.uu-root-container .table-sticky-header.dt thead,.uu-root-container .table-sticky-header.datatables thead{top:var(--bs-uu-navbar-mobile-height)}}.form-control,.form-select{--bs-input-bg: #fff;background-color:var(--bs-input-bg)}[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{--bs-input-bg: #212121}.flex-fill{min-width:0}.font-serif{font-family:"Merriweather",serif}h1.hdr-underlined,.hdr-underlined.h1{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h2.hdr-underlined,.hdr-underlined.h2{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h3.hdr-underlined,.hdr-underlined.h3{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h4.hdr-underlined,.hdr-underlined.h4{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h5.hdr-underlined,.hdr-underlined.h5{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h6.hdr-underlined,.hdr-underlined.h6{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}h7.hdr-underlined{border-bottom:.0625rem solid #cecece;padding-bottom:.625rem}code,pre.code{--bs-code-bg: #cecece;--bs-code-color: #000;--bs-code-border-radius: 0.2em;--bs-code-padding-y: 0.2em;--bs-code-padding-x: 0.4em;--bs-code-font-size: 0.85em;background:var(--bs-code-bg);color:var(--bs-code-color);padding:var(--bs-code-padding-y) var(--bs-code-padding-x);margin:0;font-size:var(--bs-code-font-size);border-radius:var(--bs-code-border-radius)}pre.code{overflow:auto}[data-bs-theme=dark] code,[data-bs-theme=dark] pre.code{--bs-code-bg: #494949;--bs-code-color: #fff}.stepper{--bs-stepper-color: #212121;--bs-stepper-disabled-color: var(--bs-secondary-color);--bs-stepper-complete-bg: #75b798;--bs-stepper-complete-color: #000;--bs-stepper-incomplete-bg: #ffcd00;--bs-stepper-incomplete-color: #000;--bs-stepper-inactive-bg: #cecece;--bs-stepper-inactive-color: #000;--bs-stepper-min-width: 15.625rem;--bs-stepper-padding-y: 0.75rem;--bs-stepper-line-width: 0.125rem;position:relative;z-index:1;min-width:var(--bs-stepper-min-width)}.stepper a{text-decoration:none;color:var(--bs-stepper-color)}.stepper>ul::before{content:"";display:block;position:absolute;left:calc(2rem / 2 - 1px);top:1rem;height:calc(100% - 1rem);width:var(--bs-stepper-line-width);background:var(--bs-stepper-inactive-bg);z-index:-1}.stepper ul{list-style:none;padding-left:0;margin:0}.stepper ul li{line-height:2rem}.stepper ul li>.stepper-item{display:flex;flex-direction:row;align-items:center;gap:1rem}.stepper ul li>.stepper-item.active{font-weight:600}.stepper ul li>.stepper-item.disabled{color:var(--bs-stepper-disabled-color);font-style:italic}.stepper ul li>.stepper-item.complete .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.complete,.stepper ul li>.stepper-item.finished .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.finished{background:var(--bs-stepper-complete-bg);color:var(--bs-stepper-complete-color)}.stepper ul li>.stepper-item.incomplete .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.incomplete{background:var(--bs-stepper-incomplete-bg);color:var(--bs-stepper-incomplete-color)}.stepper ul li>.stepper-item.disabled .stepper-bubble,.stepper ul li>.stepper-item .stepper-bubble.disabled{font-style:normal}.stepper ul li>.stepper-item .stepper-bubble{background:var(--bs-stepper-inactive-bg);flex:0 0 auto;color:var(--bs-stepper-inactive-color);font-weight:bold;line-height:2rem;font-size:.8rem;display:inline-block;border-radius:100%;text-align:center}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-largest{width:2rem;height:2rem;margin-left:0rem;margin-right:0rem;line-height:2rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-large{width:1.66rem;height:1.66rem;margin-left:.17rem;margin-right:.77rem;line-height:1.66rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-medium{width:1.32rem;height:1.32rem;margin-left:.34rem;margin-right:1.54rem;line-height:1.32rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-normal{width:1.32rem;height:1.32rem;margin-left:.34rem;margin-right:1.54rem;line-height:1.32rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-small{width:.98rem;height:.98rem;margin-left:.51rem;margin-right:2.31rem;line-height:.98rem}.stepper ul li>.stepper-item .stepper-bubble.stepper-bubble-smallest{width:.64rem;height:.64rem;margin-left:.68rem;margin-right:3.08rem;line-height:.64rem}.stepper ul li:not(:last-of-type){padding-bottom:var(--bs-stepper-padding-y)}.stepper ul li>ul{padding-top:var(--bs-stepper-padding-y)}[data-bs-theme=dark] .stepper{--bs-stepper-color: #dedede;--bs-stepper-disabled-color: var(--bs-secondary-color);--bs-stepper-complete-bg: #198754;--bs-stepper-complete-color: #fff;--bs-stepper-incomplete-bg: #cc9a06;--bs-stepper-incomplete-color: #fff;--bs-stepper-inactive-bg: #6c6c6c;--bs-stepper-inactive-color: #fff}.tiles{--bs-tiles-gap: 0.625rem;--bs-tiles-padding: 1rem;--bs-tiles-bg: #efefef;--bs-tiles-color: #000;--bs-tiles-hover-bg: #ffcd00;--bs-tiles-hover-color: #000;--bs-tiles-n-xs: 2;--bs-tiles-n: var(--bs-tiles-n-xs);--bs-tiles-n-sm: 4;--bs-tiles-n-md: 5;--bs-tiles-n-lg: 6;--bs-tiles-n-xl: 7;width:100%;display:grid;gap:var(--bs-tiles-gap);grid-template-columns:repeat(var(--bs-tiles-n), 1fr)}@media(min-width: 576px){.tiles{--bs-tiles-n: var(--bs-tiles-n-sm)}}@media(min-width: 768px){.tiles{--bs-tiles-n: var(--bs-tiles-n-md)}}@media(min-width: 992px){.tiles{--bs-tiles-n: var(--bs-tiles-n-lg)}}@media(min-width: 1200px){.tiles{--bs-tiles-n: var(--bs-tiles-n-xl)}}.tiles .tile{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--bs-tiles-padding);aspect-ratio:1/1;background:var(--bs-tiles-bg);color:var(--bs-tiles-color)}.tiles .tile:hover{background:var(--bs-tiles-hover-bg);color:var(--bs-tiles-hover-color)}.tiles .tile p:last-child{margin:0}.tiles a.tile,.tiles .tile a{cursor:pointer;text-decoration:none}.tiles.tiles-n-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-12{--bs-tiles-n: 12 !important}@media(min-width: 576px){.tiles.tiles-n-sm-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-sm-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-sm-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-sm-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-sm-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-sm-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-sm-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-sm-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-sm-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-sm-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-sm-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-sm-12{--bs-tiles-n: 12 !important}}@media(min-width: 768px){.tiles.tiles-n-md-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-md-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-md-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-md-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-md-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-md-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-md-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-md-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-md-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-md-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-md-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-md-12{--bs-tiles-n: 12 !important}}@media(min-width: 992px){.tiles.tiles-n-lg-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-lg-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-lg-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-lg-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-lg-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-lg-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-lg-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-lg-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-lg-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-lg-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-lg-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-lg-12{--bs-tiles-n: 12 !important}}@media(min-width: 1200px){.tiles.tiles-n-xl-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-xl-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-xl-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-xl-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-xl-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-xl-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-xl-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-xl-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-xl-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-xl-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-xl-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-xl-12{--bs-tiles-n: 12 !important}}@media(min-width: 1400px){.tiles.tiles-n-xxl-1{--bs-tiles-n: 1 !important}.tiles.tiles-n-xxl-2{--bs-tiles-n: 2 !important}.tiles.tiles-n-xxl-3{--bs-tiles-n: 3 !important}.tiles.tiles-n-xxl-4{--bs-tiles-n: 4 !important}.tiles.tiles-n-xxl-5{--bs-tiles-n: 5 !important}.tiles.tiles-n-xxl-6{--bs-tiles-n: 6 !important}.tiles.tiles-n-xxl-7{--bs-tiles-n: 7 !important}.tiles.tiles-n-xxl-8{--bs-tiles-n: 8 !important}.tiles.tiles-n-xxl-9{--bs-tiles-n: 9 !important}.tiles.tiles-n-xxl-10{--bs-tiles-n: 10 !important}.tiles.tiles-n-xxl-11{--bs-tiles-n: 11 !important}.tiles.tiles-n-xxl-12{--bs-tiles-n: 12 !important}}[data-bs-theme=dark] .tiles{--bs-tiles-bg: #494949;--bs-tiles-color: #fff;--bs-tiles-hover-bg: #ffcd00;--bs-tiles-hover-color: #000}.modal-nav-tabs{--bs-modal-nav-tabs-gap: 0.625rem;--bs-modal-nav-tabs-color: inherit;--bs-modal-nav-tabs-bg: none;--bs-modal-nav-tabs-active-color: var(--bs-modal-color);--bs-modal-nav-tabs-active-bg: var(--bs-modal-bg);--bs-modal-nav-tabs-hover-color: #000;--bs-modal-nav-tabs-hover-bg: #efefef;margin-bottom:calc(0px - var(--bs-modal-header-padding-y));border-bottom:0;gap:var(--bs-modal-nav-tabs-gap);overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;max-width:100%}.modal-nav-tabs .nav-link{background-color:var(--bs-modal-nav-tabs-bg);color:var(--bs-modal-nav-tabs-color);white-space:nowrap}.modal-nav-tabs .nav-link.active{color:var(--bs-modal-nav-tabs-active-color);background-color:var(--bs-modal-nav-tabs-active-bg);border-color:rgba(0,0,0,0)}.modal-nav-tabs .nav-link:not(.active):hover,.modal-nav-tabs .nav-link:not(.active):focus{color:var(--bs-modal-nav-tabs-hover-color);background-color:var(--bs-modal-nav-tabs-hover-bg);border-color:rgba(0,0,0,0)}.uu-root-container{width:100%;max-width:var(--bs-uu-container-width);min-height:100vh;margin:0 auto;display:flex;align-items:center;flex-direction:column;padding:0;background:var(--bs-uu-container-bg);color:var(--bs-uu-container-color)}.uu-root-container{--bs-uu-container-width: 100rem;--bs-uu-container-bg: #fff;--bs-uu-container-color: #212529;--bs-uu-container-padding-y: 1rem;--bs-uu-container-padding-x: 1rem;--bs-uu-content-width: 75rem;--bs-uu-border-color: #cecece;--bs-uu-border-color-light: #e9e9e9;--bs-uu-border-color-dark: #343434;--bs-uu-header-padding-y: 0.7rem;--bs-uu-header-font-size: 0.9rem;--bs-uu-header-title-color: #094d8e;--bs-uu-header-border-gap: 1.2rem;--bs-uu-navbar-mobile-height: 3.125rem;--bs-uu-navbar-navlink-padding-x: 0.75rem;--bs-uu-navbar-navlink-padding-y: 0.75rem;--bs-uu-unified-header-height: 4.5rem;--bs-uu-unified-header-mobile-height: 3rem;--bs-uu-unified-header-border-size: 0.0625rem;--bs-uu-unified-header-padding-x: 2rem;--bs-uu-unified-header-padding-mobile-x: 1rem;--bs-uu-unified-header-navlink-indicator-height: 0.3125rem;--bs-uu-unified-header-navlink-mobile-bg: #000;--bs-uu-unified-header-navlink-mobile-color: #fff;--bs-uu-brand-padding-x: 2.5rem;--bs-uu-brand-padding-y: 1rem;--bs-uu-brand-logo-padding-x: 0;--bs-uu-brand-logo-padding-y: 0.5rem;--bs-uu-brand-sender-bg: #ffcd00;--bs-uu-brand-sender-color: #000;--bs-uu-brand-sender-min-width: 220px;--bs-uu-brand-sender-max-width: 300px;--bs-uu-footer-padding-y: 2.5rem;--bs-uu-footer-color: #cecece;--bs-uu-footer-background-color: #262626;--bs-uu-hero-bg: #ffcd00;--bs-uu-hero-color: #000;--bs-uu-hero-padding-y: 1rem;--bs-uu-hero-font-weight: 400;--bs-uu-cover-default-height: 400px;--bs-uu-cover-copyright-padding-x: 0.625rem;--bs-uu-cover-copyright-padding-y: 0.625rem;--bs-uu-cover-copyright-text-size: 0.8rem;--bs-uu-cover-copyright-text-color: #dedede;--bs-uu-cover-copyright-background-color: rgba(0, 0, 0, 0.5);--bs-uu-sidebar-width: 21.875rem;--bs-uu-sidebar-padding-x: 1.25rem;--bs-uu-sidebar-padding-y: 1.25rem;--bs-uu-sidebar-mobile-padding-y: 0.625rem;--bs-uu-sidebar-gap: 6.25rem;--bs-uu-sidebar-background: #e9e9e9;--bs-uu-sidebar-color: #212529;--bs-uu-sidebar-header-font-weight: 200;--bs-uu-sidebar-header-padding-y: 0.625rem;--bs-uu-sidebar-nav-padding-y: 0.4375rem;--bs-uu-sidebar-nav-padding-x: 0;--bs-uu-sidebar-nav-disabled-color: #6c6c6c;--bs-uu-sidebar-nav-active-font-weight: 600;--bs-uu-form-column-gap: 2rem;--bs-uu-form-row-gap: 1.5rem;--bs-uu-form-field-padding-x: 1.5rem;--bs-uu-form-field-padding-y: 1.3rem;--bs-uu-form-field-padding-y-compensation: 0.3125rem;--bs-uu-form-field-bg: #efefef;--bs-uu-form-field-input-group-bg: #f8f8f8;--bs-uu-form-aside-font-size: 0.9rem;--bs-uu-form-aside-color: var(--bs-secondary-color);--bs-uu-form-help-padding-x: 0;--bs-uu-form-help-padding-y: 0.5rem}.uu-root-container .uu-content{width:100%;display:flex;align-items:center;flex:1 1 auto;flex-direction:column;padding:0;margin:0}.uu-root-container .uu-fullwidth-container,.uu-root-container .-uu-spaced-container,.uu-root-container .uu-footer,.uu-root-container .uu-hero,.uu-root-container .uu-cover .uu-cover-hero,.uu-root-container .uu-container,.uu-root-container .uu-inner-container{width:100%;display:flex;flex-wrap:wrap;padding:var(--bs-uu-container-padding-y) var(--bs-uu-container-padding-x)}@media(min-width: 76rem){.uu-root-container .-uu-spaced-container,.uu-root-container .uu-footer,.uu-root-container .uu-hero,.uu-root-container .uu-cover .uu-cover-hero,.uu-root-container .uu-container,.uu-root-container .uu-inner-container{padding-left:calc(50% - var(--bs-uu-content-width)/2);padding-right:calc(50% - var(--bs-uu-content-width)/2)}}.uu-container+.uu-container,.uu-inner-container+.uu-container,.uu-container+.uu-inner-container,.uu-inner-container+.uu-inner-container{padding-top:0}.uu-root-container .uu-header{width:100%;display:flex;align-items:center;flex-direction:column;font-size:var(--bs-uu-header-font-size)}.uu-root-container .uu-header .uu-header-row{display:flex;flex-direction:row;align-items:stretch;width:100%;padding-left:calc(50% - var(--bs-uu-content-width)/2);padding-right:calc(50% - var(--bs-uu-content-width)/2)}@media(max-width: 768px){.uu-root-container .uu-header .uu-header-row{display:none}}.uu-root-container .uu-header .uu-header-row>*{padding-top:var(--bs-uu-header-padding-y);padding-bottom:var(--bs-uu-header-padding-y);align-items:center;display:flex}@media(max-width: 76rem){.uu-root-container .uu-header .uu-header-row{padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x)}}.uu-root-container .uu-header .uu-header-row:not(:last-child){border-bottom:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .border-left{padding-left:var(--bs-uu-header-border-gap);border-left:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .border-right{padding-right:var(--bs-uu-header-border-gap);border-right:.0625rem solid var(--bs-uu-border-color-light)}.uu-root-container .uu-header .uu-header-row .uu-header-title,.uu-root-container .uu-header .uu-header-row .uu-header-title a{color:var(--bs-uu-header-title-color);text-decoration:none;font-size:1.7rem}.uu-root-container .uu-header .uu-header-row .uu-logo img{max-height:3rem}.uu-root-container .uu-header .uu-header-row a,.uu-root-container .uu-header .uu-header-row a:hover,.uu-root-container .uu-header .uu-header-row a:focus,.uu-root-container .uu-header .uu-header-row a:active{text-decoration:none}.uu-root-container .uu-navbar{width:100%;background:#000;flex-wrap:nowrap;justify-content:flex-start}@media(max-width: 768px){.uu-root-container .uu-navbar{background:#fff !important;color:#000 !important;border-bottom:.0625rem solid var(--bs-uu-border-color);flex-wrap:wrap;justify-content:space-between;position:sticky;top:0;z-index:9001;height:var(--bs-uu-navbar-mobile-height)}}.uu-root-container .uu-navbar .uu-navbar-container{width:100%;padding-left:calc( calc(50% - var(--bs-uu-content-width) / 2) - var(--bs-uu-navbar-navlink-padding-x) );padding-right:calc( calc(50% - var(--bs-uu-content-width) / 2) - var(--bs-uu-navbar-navlink-padding-x) );display:flex;justify-content:space-between;align-items:center;flex-wrap:inherit}@media(max-width: 76rem){.uu-root-container .uu-navbar .uu-navbar-container{padding-left:calc(var(--bs-uu-container-padding-x) - var(--bs-uu-navbar-navlink-padding-x));padding-right:calc(var(--bs-uu-container-padding-x) - var(--bs-uu-navbar-navlink-padding-x))}}@media(max-width: 768px){.uu-root-container .uu-navbar .uu-navbar-container{padding-left:0;padding-right:0}}.uu-root-container .uu-navbar .navbar-brand{padding-left:.75rem}@media(min-width: 768px){.uu-root-container .uu-navbar .navbar-brand{display:none}}.uu-root-container .uu-navbar .navbar-brand img{height:1.5rem}@media(min-width: 768px){.uu-root-container .uu-navbar .navbar-toggler{display:none}.uu-root-container .uu-navbar .navbar-collapse{display:flex !important;flex-basis:auto}}.uu-root-container .uu-navbar .navbar-nav{--bs-nav-link-color: #fff;--bs-nav-link-disabled-color: #adadad;--bs-nav-link-hover-color: #ffcd00}@media(min-width: 768px){.uu-root-container .uu-navbar .navbar-nav{flex-direction:row}}.uu-root-container .uu-navbar .navbar-nav .dropdown-menu{--bs-dropdown-bg: #fff;border-top:none}.uu-root-container .uu-navbar .navbar-nav .dropdown-menu[data-bs-popper]{margin-top:0}@media(min-width: 768px){.uu-root-container .uu-navbar .navbar-nav .dropdown-menu{position:absolute}}.uu-root-container .uu-navbar .navbar-nav .dropdown-menu .dropdown-item.active,.uu-root-container .uu-navbar .navbar-nav .dropdown-menu .dropdown-item:active{color:inherit;background:inherit;font-weight:bold}@media(min-width: 768px){.uu-root-container .uu-navbar .navbar-nav .nav-link{padding:var(--bs-uu-navbar-navlink-padding-y) var(--bs-uu-navbar-navlink-padding-x)}}@media(max-width: 768px){.uu-root-container .uu-navbar .navbar-nav .nav-link{background:#000;padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x);border-top:.0625rem solid var(--bs-uu-border-color-dark)}}.uu-root-container .uu-navbar .navbar-nav .nav-link.dropdown-toggle.show::after{transform:rotate(180deg)}.uu-root-container .uu-navbar .navbar-nav .show>.nav-link,.uu-root-container .uu-navbar .navbar-nav .nav-link.active,.uu-root-container .uu-navbar .navbar-nav .nav-link.show{color:var(--bs-nav-link-hover-color)}.uu-root-container .uu-navbar .navbar-toggler{color:#fff;border-color:rgba(0,0,0,0)}.uu-root-container .uu-navbar .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 33, 33, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.uu-root-container .uu-navbar .navbar-text{color:#fff}.uu-root-container .uu-navbar .navbar-text a,.uu-root-container .uu-navbar .navbar-text a:hover,.uu-root-container .uu-navbar .navbar-text a:focus{color:#ffcd00}@media(max-width: 768px){.uu-root-container .uu-navbar .navbar-text{color:#000}}.uu-root-container .uu-fullwidth-unified-header,.uu-root-container .uu-unified-header{width:100%;background:var(--bs-uu-container-bg);display:flex;height:var(--bs-uu-unified-header-height);flex-wrap:nowrap;flex-direction:row;align-items:stretch;justify-content:flex-start;font-size:1rem;padding-left:var(--bs-uu-unified-header-padding-x);padding-right:var(--bs-uu-unified-header-padding-x);border-bottom:var(--bs-uu-unified-header-border-size) solid var(--bs-uu-border-color-light)}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header,.uu-root-container .uu-unified-header{height:var(--bs-uu-unified-header-mobile-height);padding-left:var(--bs-uu-unified-header-padding-mobile-x);padding-right:var(--bs-uu-unified-header-padding-mobile-x);position:sticky;top:0;z-index:9000}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container,.uu-root-container .uu-unified-header .uu-unified-header-container{width:100%;display:flex;justify-content:space-between;align-items:stretch;flex-wrap:inherit}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-text,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-text{padding-top:var(--bs-uu-header-padding-y);padding-bottom:var(--bs-uu-header-padding-y);align-items:center;display:flex;font-size:var(--bs-uu-header-font-size)}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .border-left,.uu-root-container .uu-unified-header .uu-unified-header-container .border-left{padding-left:var(--bs-uu-header-border-gap) !important;border-left:var(--bs-uu-unified-header-border-size) solid var(--bs-uu-border-color-light) !important}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .border-right,.uu-root-container .uu-unified-header .uu-unified-header-container .border-right{padding-right:var(--bs-uu-header-border-gap) !important;border-right:var(--bs-uu-unified-header-border-size) solid var(--bs-uu-border-color-light) !important}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand{flex:1 0 auto;display:grid;grid-template-columns:auto auto;align-items:stretch;padding:0}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand .uu-logo,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand .uu-logo{height:var(--bs-uu-unified-header-height);padding:var(--bs-uu-brand-padding-y) var(--bs-uu-brand-padding-x) var(--bs-uu-brand-padding-y) 0}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand .uu-logo,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand .uu-logo{height:var(--bs-uu-unified-header-mobile-height);padding:var(--bs-uu-brand-logo-padding-y) var(--bs-uu-brand-logo-padding-x)}}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand{grid-template-columns:unset;grid-template-rows:1fr 1fr;margin-left:0}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand .uu-logo img,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand .uu-logo img{height:100%}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand .uu-sender,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand .uu-sender{display:flex;height:var(--bs-uu-unified-header-height);align-items:center;justify-content:center;background:var(--bs-uu-brand-sender-bg);color:var(--bs-uu-brand-sender-color);font-family:"Merriweather",serif;font-weight:bolder;min-width:var(--bs-uu-brand-sender-min-width);max-width:var(--bs-uu-brand-sender-max-width);text-align:center;padding:1rem 2.5rem}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .uu-brand .uu-sender,.uu-root-container .uu-unified-header .uu-unified-header-container .uu-brand .uu-sender{display:none}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container>.uu-logo img,.uu-root-container .uu-unified-header .uu-unified-header-container>.uu-logo img{max-height:calc(var(--bs-uu-unified-header-height) - 2*var(--bs-uu-header-padding-y))}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-toggler,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-toggler{border:none;padding:0;border-radius:0}@media(min-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-toggler,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-toggler{display:none}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-collapse,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-collapse{display:flex;padding:0;height:var(--bs-uu-unified-header-height);align-items:stretch}}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-collapse,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-collapse{position:fixed;top:var(--bs-uu-unified-header-mobile-height);left:0;width:100%}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav{height:var(--bs-uu-unified-header-height);--bs-nav-link-color: #000;--bs-nav-link-disabled-color: #adadad;--bs-nav-link-hover-border-color: #ffcd00}@media(min-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav{flex-direction:row}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu{--bs-dropdown-bg: #fff;border-top:none;margin-top:0 !important;margin-left:0 !important}@media(min-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu{position:absolute}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu .dropdown-item.active,.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu .dropdown-item:active,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu .dropdown-item.active,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .dropdown-menu .dropdown-item:active{color:inherit;background:inherit;font-weight:bold}@media(min-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link{padding:0 var(--bs-uu-navbar-navlink-padding-x);display:flex;align-items:center;height:var(--bs-uu-unified-header-height);border-top:var(--bs-uu-unified-header-navlink-indicator-height) solid rgba(0,0,0,0);border-bottom:var(--bs-uu-unified-header-navlink-indicator-height) solid rgba(0,0,0,0)}}@media(max-width: 768px){.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link{background:var(--bs-uu-unified-header-navlink-mobile-bg);color:var(--bs-uu-unified-header-navlink-mobile-color);padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x);border-top:var(--bs-uu-unified-header-border-size) solid var(--bs-uu-border-color-dark)}}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link.dropdown-toggle.show::after,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link.dropdown-toggle.show::after{transform:rotate(180deg)}.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .show>.nav-link,.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link.active,.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link:hover,.uu-root-container .uu-fullwidth-unified-header .uu-unified-header-container .navbar-nav .nav-link.show,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .show>.nav-link,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link.active,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link:hover,.uu-root-container .uu-unified-header .uu-unified-header-container .navbar-nav .nav-link.show{border-bottom-color:var(--bs-nav-link-hover-border-color)}.uu-root-container .uu-unified-header{padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x)}@media(min-width: 76rem){.uu-root-container .uu-unified-header{padding-left:calc(50% - var(--bs-uu-content-width)/2);padding-right:calc(50% - var(--bs-uu-content-width)/2)}}.uu-root-container .uu-hero,.uu-root-container .uu-cover .uu-cover-hero{background:var(--bs-uu-hero-bg);color:var(--bs-uu-hero-color);padding-top:var(--bs-uu-hero-padding-y);padding-bottom:var(--bs-uu-hero-padding-y);font-weight:var(--bs-uu-hero-font-weight)}.uu-root-container .uu-hero>h1,.uu-root-container .uu-cover .uu-cover-hero>h1,.uu-root-container .uu-hero>.h1,.uu-root-container .uu-cover .uu-cover-hero>.h1{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h2,.uu-root-container .uu-cover .uu-cover-hero>h2,.uu-root-container .uu-hero>.h2,.uu-root-container .uu-cover .uu-cover-hero>.h2{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h3,.uu-root-container .uu-cover .uu-cover-hero>h3,.uu-root-container .uu-hero>.h3,.uu-root-container .uu-cover .uu-cover-hero>.h3{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h4,.uu-root-container .uu-cover .uu-cover-hero>h4,.uu-root-container .uu-hero>.h4,.uu-root-container .uu-cover .uu-cover-hero>.h4{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h5,.uu-root-container .uu-cover .uu-cover-hero>h5,.uu-root-container .uu-hero>.h5,.uu-root-container .uu-cover .uu-cover-hero>.h5{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h6,.uu-root-container .uu-cover .uu-cover-hero>h6,.uu-root-container .uu-hero>.h6,.uu-root-container .uu-cover .uu-cover-hero>.h6{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero>h7,.uu-root-container .uu-cover .uu-cover-hero>h7,.uu-root-container .uu-hero>.h7,.uu-root-container .uu-cover .uu-cover-hero>.h7{font-weight:var(--bs-uu-hero-font-weight);margin:0}.uu-root-container .uu-hero p:last-child,.uu-root-container .uu-cover .uu-cover-hero p:last-child{margin:0;padding:0}.uu-root-container .uu-cover{display:flex;position:relative;justify-content:center;overflow:hidden;width:100%;max-height:var(--bs-uu-cover-default-height)}.uu-root-container .uu-cover.h-200{max-height:200px}.uu-root-container .uu-cover.h-300{max-height:300px}.uu-root-container .uu-cover.h-400{max-height:400px}.uu-root-container .uu-cover.h-500{max-height:500px}@media(max-width: 575.98px){.uu-root-container .uu-cover.h-sm-200{max-height:200px}.uu-root-container .uu-cover.h-sm-300{max-height:300px}.uu-root-container .uu-cover.h-sm-400{max-height:400px}.uu-root-container .uu-cover.h-sm-500{max-height:500px}}@media(max-width: 767.98px){.uu-root-container .uu-cover.h-md-200{max-height:200px}.uu-root-container .uu-cover.h-md-300{max-height:300px}.uu-root-container .uu-cover.h-md-400{max-height:400px}.uu-root-container .uu-cover.h-md-500{max-height:500px}}@media(max-width: 991.98px){.uu-root-container .uu-cover.h-lg-200{max-height:200px}.uu-root-container .uu-cover.h-lg-300{max-height:300px}.uu-root-container .uu-cover.h-lg-400{max-height:400px}.uu-root-container .uu-cover.h-lg-500{max-height:500px}}@media(max-width: 1199.98px){.uu-root-container .uu-cover.h-xl-200{max-height:200px}.uu-root-container .uu-cover.h-xl-300{max-height:300px}.uu-root-container .uu-cover.h-xl-400{max-height:400px}.uu-root-container .uu-cover.h-xl-500{max-height:500px}}@media(max-width: 1399.98px){.uu-root-container .uu-cover.h-xxl-200{max-height:200px}.uu-root-container .uu-cover.h-xxl-300{max-height:300px}.uu-root-container .uu-cover.h-xxl-400{max-height:400px}.uu-root-container .uu-cover.h-xxl-500{max-height:500px}}.uu-root-container .uu-cover .uu-cover-image{display:block;height:100%;width:100%}@media(max-width: 768px){.uu-root-container .uu-cover .uu-cover-image{width:unset}}.uu-root-container .uu-cover .uu-cover-copyright{position:absolute;bottom:0;left:0;padding:var(--bs-uu-cover-copyright-padding-y) var(--bs-uu-cover-copyright-padding-x);background-color:var(--bs-uu-cover-copyright-background-color);color:var(--bs-uu-cover-copyright-text-color);font-size:var(--bs-uu-cover-copyright-text-size)}.uu-root-container .uu-cover .uu-cover-copyright a{color:inherit}.uu-root-container .uu-cover .uu-cover-copyright.uu-cover-copyright-right{right:0;left:unset}.uu-root-container .uu-cover .uu-cover-copyright.uu-cover-copyright-top{top:0;bottom:unset}.uu-root-container .uu-cover .uu-cover-hero{position:absolute;bottom:0;width:calc(100% - calc(var(--bs-uu-sidebar-width) + 50% - var(--bs-uu-content-width) / 2 + var(--bs-uu-sidebar-padding-x)))}@media(max-width: 76rem){.uu-root-container .uu-cover .uu-cover-hero{width:calc(100% - calc(var(--bs-uu-sidebar-width) + var(--bs-uu-sidebar-padding-x) * 2))}}.uu-root-container .uu-cover .uu-cover-hero:not(.uu-cover-hero-left){right:0;padding-left:var(--bs-uu-sidebar-gap)}.uu-root-container .uu-cover .uu-cover-hero.uu-cover-hero-left{left:0;padding-right:var(--bs-uu-sidebar-gap)}@media(max-width: 992px){.uu-root-container .uu-cover .uu-cover-hero{width:100%}.uu-root-container .uu-cover .uu-cover-hero:not(.uu-cover-hero-left),.uu-root-container .uu-cover .uu-cover-hero.uu-cover-hero-left{padding-left:var(--bs-uu-container-padding-x);padding-right:var(--bs-uu-container-padding-x)}}.uu-root-container .uu-sidebar-container{position:relative;width:100%;flex-grow:1;display:flex;flex-direction:row;gap:var(--bs-uu-sidebar-gap)}@media(max-width: 992px){.uu-root-container .uu-sidebar-container{flex-direction:column;gap:0}}.uu-root-container .uu-sidebar-container .uu-sidebar{order:1;background:var(--bs-uu-sidebar-background);color:var(--bs-uu-sidebar-color);flex:0 0 calc(var(--bs-uu-sidebar-width) + 50% - var(--bs-uu-content-width)/2 + var(--bs-uu-sidebar-padding-x));padding:var(--bs-uu-sidebar-padding-y) var(--bs-uu-sidebar-padding-x) var(--bs-uu-sidebar-padding-y) calc(50% - var(--bs-uu-content-width)/2);z-index:100}@media(max-width: 76rem){.uu-root-container .uu-sidebar-container .uu-sidebar{padding-left:var(--bs-uu-sidebar-padding-x);flex-basis:calc(var(--bs-uu-sidebar-width) + var(--bs-uu-sidebar-padding-x)*2)}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar{flex-basis:auto;padding:var(--bs-uu-sidebar-mobile-padding-y) var(--bs-uu-container-padding-x)}}.uu-root-container .uu-sidebar-container .uu-sidebar img,.uu-root-container .uu-sidebar-container .uu-sidebar code,.uu-root-container .uu-sidebar-container .uu-sidebar p,.uu-root-container .uu-sidebar-container .uu-sidebar span,.uu-root-container .uu-sidebar-container .uu-sidebar pre{display:inline-block}.uu-root-container .uu-sidebar-container .uu-sidebar div,.uu-root-container .uu-sidebar-container .uu-sidebar img,.uu-root-container .uu-sidebar-container .uu-sidebar code,.uu-root-container .uu-sidebar-container .uu-sidebar p,.uu-root-container .uu-sidebar-container .uu-sidebar span,.uu-root-container .uu-sidebar-container .uu-sidebar pre{max-width:var(--bs-uu-sidebar-width)}@media(max-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar div,.uu-root-container .uu-sidebar-container .uu-sidebar img,.uu-root-container .uu-sidebar-container .uu-sidebar code,.uu-root-container .uu-sidebar-container .uu-sidebar p,.uu-root-container .uu-sidebar-container .uu-sidebar span,.uu-root-container .uu-sidebar-container .uu-sidebar pre{max-width:100%}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-toggle{font-size:1.1rem;margin:0;border:none;text-align:left;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0;background:rgba(0,0,0,0)}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-toggle:hover{background:none}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-toggle::after{border-bottom:0;border-left:.3em solid rgba(0,0,0,0);border-right:.3em solid rgba(0,0,0,0);border-top:.3em solid;content:"";display:inline-block;transition:transform .3s linear}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-toggle[aria-expanded=true]::after{transform:rotate(180deg)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-toggle{display:none}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse{padding-top:var(--bs-uu-container-padding-y)}}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse{display:block}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h1,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h1{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h1.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h2,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h2{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h2.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h3,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h3{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h3.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h4,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h4{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h4.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h5,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h5{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h5.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h6,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h6{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h6.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h7,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h7{border-bottom:.1875rem solid var(--bs-uu-border-color);padding-bottom:var(--bs-uu-sidebar-header-padding-y);margin-bottom:0;font-weight:var(--bs-uu-sidebar-header-font-weight)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .h7.uu-sidebar-header-linked{margin-right:calc(-1*var(--bs-uu-sidebar-padding-x))}}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav{flex-direction:column}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav{padding-left:1.5rem}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link{color:var(--bs-body-color);border-bottom:.0625rem solid var(--bs-uu-border-color);padding:var(--bs-uu-sidebar-nav-padding-y) var(--bs-uu-sidebar-nav-padding-y)}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link.is-active{font-weight:bold}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link:hover,.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link:focus{text-decoration:underline}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link.disabled{color:var(--bs-uu-sidebar-nav-disabled-color);cursor:not-allowed}.uu-root-container .uu-sidebar-container .uu-sidebar .uu-sidebar-collapse .nav .nav-link.active{font-weight:var(--bs-uu-sidebar-nav-active-font-weight)}.uu-root-container .uu-sidebar-container .uu-sidebar-content{order:2;flex:1 1 auto;min-width:0;padding:var(--bs-uu-sidebar-padding-y) var(--bs-uu-container-padding-x) var(--bs-uu-sidebar-padding-y)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content{padding-right:max( calc(50% - var(--bs-uu-content-width) / 2), var(--bs-uu-container-padding-x) - );padding-left:0;padding-top:var(--bs-uu-sidebar-padding-y)}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h1.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h1.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h2.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h2.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h3.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h3.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h4.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h4.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h5.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h5.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h6.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h6.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h7.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h7.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}@media(min-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-sticky .uu-sidebar>*{position:sticky;top:var(--bs-uu-sidebar-padding-y)}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky .uu-sidebar{position:sticky;top:0}.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky.uu-sidebar-mobile-bottom .uu-sidebar{top:unset;bottom:0}}@media(max-width: 768px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky .uu-sidebar{position:sticky;top:var(--bs-uu-navbar-mobile-height)}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-bottom .uu-sidebar{order:2}.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-bottom .uu-sidebar-content{order:1}}@media(min-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar{order:2;padding-left:var(--bs-uu-sidebar-padding-x);padding-right:calc(50% - var(--bs-uu-content-width)/2)}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h1.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h2.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h3.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h4.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h5.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h6.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h7.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content{order:1;padding-right:0;padding-left:calc(50% - var(--bs-uu-content-width)/2)}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h1.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h2.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h3.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h4.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h5.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h6.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h7.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}}@media(min-width: 992px)and (max-width: 76rem){.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content{padding-left:var(--bs-uu-sidebar-padding-x)}}.uu-root-container .uu-form .uu-form-text-row .uu-form-text-aside,.uu-root-container .uu-form .uu-form-row .uu-form-help{color:var(--bs-uu-form-aside-color);font-size:var(--bs-uu-form-aside-font-size)}.uu-root-container .uu-form .uu-form-text-row .uu-form-text-aside p:last-child,.uu-root-container .uu-form .uu-form-row .uu-form-help p:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-row,.uu-root-container .uu-form .uu-form-text-row{display:grid;margin-bottom:var(--bs-uu-form-row-gap);grid-template-rows:auto auto}@media(min-width: 992px){.uu-root-container .uu-form .uu-form-row,.uu-root-container .uu-form .uu-form-text-row{grid-template-rows:unset;grid-template-columns:2fr 1fr;gap:var(--bs-uu-form-column-gap)}}.uu-root-container .uu-form .uu-form-row .uu-form-field{background-color:var(--bs-uu-form-field-bg);padding:calc(var(--bs-uu-form-field-padding-y) - var(--bs-uu-form-field-padding-y-compensation)) var(--bs-uu-form-field-padding-y) var(--bs-uu-form-field-padding-y)}.uu-root-container .uu-form .uu-form-row .uu-form-field .input-group-text,.uu-root-container .uu-form .uu-form-row .uu-form-field .form-control::file-selector-button{background:var(--bs-uu-form-field-input-group-bg)}.uu-root-container .uu-form .uu-form-row .uu-form-help{padding:var(--bs-uu-form-help-padding-y) var(--bs-uu-form-help-padding-x)}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h1:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h1:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h2:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h2:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h3:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h3:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h4:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h4:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h5:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h5:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h6:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h6:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h7:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h7:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text p:last-child{margin-bottom:0}.uu-root-container .uu-form.uu-form-no-gap .uu-form-row{margin-bottom:0}.uu-root-container .uu-form.uu-form-no-gap .uu-form-row+.uu-form-row .uu-form-field{padding-top:0}.uu-root-container .uu-form .uu-form-row.uu-form-no-gap{margin-bottom:0;padding-bottom:0}.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside{grid-template-rows:1fr}@media(min-width: 992px){.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside{grid-template-rows:unset;grid-template-columns:1fr}}.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row .uu-form-text-aside,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside .uu-form-text-aside{display:none}.uu-root-container .uu-form.uu-form-no-help .uu-form-row,.uu-root-container .uu-form .uu-form-row.uu-form-no-help{grid-template-rows:1fr}@media(min-width: 992px){.uu-root-container .uu-form.uu-form-no-help .uu-form-row,.uu-root-container .uu-form .uu-form-row.uu-form-no-help{grid-template-rows:unset;grid-template-columns:1fr}}.uu-root-container .uu-form.uu-form-no-help .uu-form-row .uu-form-help,.uu-root-container .uu-form .uu-form-row.uu-form-no-help .uu-form-help{display:none}.uu-root-container .uu-footer{flex-wrap:wrap;background:var(--bs-uu-footer-background-color);color:var(--bs-uu-footer-color);align-items:center;padding-top:var(--bs-uu-footer-padding-y);padding-bottom:var(--bs-uu-footer-padding-y)}@media(max-width: 768px){.uu-root-container .uu-footer{gap:1.25rem}}.uu-root-container .uu-footer p:last-child{margin:0;padding:0}.uu-root-container .uu-footer a,.uu-root-container .uu-footer a:hover,.uu-root-container .uu-footer a:focus,.uu-root-container .uu-footer a:active{color:var(--bs-uu-footer-color)}.uu-root-container .table,.uu-root-container .dt,.uu-root-container .datatables{--bs-table-bg: var(--bs-uu-container-bg)}@font-face{font-family:"icomoon";src:url("../fonts/IcoMoon-Free.ttf") format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:"icomoon-additional";src:url("../fonts/icomoon.ttf") format("truetype");font-weight:normal;font-style:normal}[class^=icon-],[class*=" icon-"]{font-family:"icomoon" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}[class^=icon-additional-],[class*=" icon-additional-"]{font-family:"icomoon-additional" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}[class^=icon-]:hover,[class*=" icon-"]:hover{text-decoration:none}.select2-container{display:block}select+.select2-container{z-index:1}.select2-container *:focus{outline:0}.select2-container .select2-selection{width:100%;min-height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2));padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);background-color:#fff;border:var(--bs-border-width) solid #dedede;border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.select2-container .select2-selection{transition:none}}.select2-container.select2-container--focus .select2-selection,.select2-container.select2-container--open .select2-selection{border-color:#000;box-shadow:none}.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0);border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2-search{width:100%}.select2-container .select2-search--inline .select2-search__field{vertical-align:top}.select2-container .select2-selection--single .select2-selection__clear,.select2-container .select2-selection--multiple .select2-selection__clear{position:absolute;top:50%;right:2.25rem;width:.75rem;height:.75rem;padding:.25em .25em;overflow:hidden;text-indent:100%;white-space:nowrap;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.75rem auto no-repeat;transform:translateY(-50%)}.select2-container .select2-selection--single .select2-selection__clear:hover,.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.75rem auto no-repeat}.select2-container .select2-selection--single .select2-selection__clear>span,.select2-container .select2-selection--multiple .select2-selection__clear>span{display:none}.select2-container+.select2-container{z-index:9003}.select2-container .select2-dropdown{z-index:9003;overflow:hidden;color:var(--bs-body-color);background-color:#fff;border-color:#000;border-radius:0 !important}.select2-container .select2-dropdown.select2-dropdown--below{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2-dropdown.select2-dropdown--above{border-bottom:0 solid rgba(0,0,0,0);border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2-dropdown .select2-search{padding:.375rem .75rem}.select2-container .select2-dropdown .select2-search .select2-search__field{display:block;width:100%;padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);background-color:#fff;background-clip:padding-box;border:var(--bs-border-width) solid #dedede;appearance:none;border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.select2-container .select2-dropdown .select2-search .select2-search__field{transition:none}}.select2-container .select2-dropdown .select2-search .select2-search__field:focus{border-color:#000;box-shadow:none}.select2-container .select2-dropdown .select2-results__options:not(.select2-results__options--nested){max-height:15rem;overflow-y:auto}.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__message{color:var(--bs-secondary-color)}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted{color:#000;background-color:#e9e9e9}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,.select2-container .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted){color:#000;background-color:#ffcd00}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled,.select2-container .select2-dropdown .select2-results__options .select2-results__option[aria-disabled=true]{color:var(--bs-secondary-color)}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group]{padding:0}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.375rem .375rem;font-weight:500;line-height:1.6;color:#000}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.375rem .75rem}.select2-container .select2-selection--single{padding:.375rem 2.25rem .375rem .75rem;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='%23343434' 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 .75rem center;background-size:16px 12px}.select2-container .select2-selection--single .select2-selection__rendered{padding:0;font-weight:400;line-height:1.6;color:var(--bs-body-color)}.select2-container .select2-selection--single .select2-selection__rendered .select2-selection__placeholder{font-weight:400;line-height:1.6;color:var(--bs-secondary-color)}.select2-container .select2-selection--single .select2-selection__arrow{display:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:flex;flex-direction:row;flex-wrap:wrap;padding-left:0;margin:0;list-style:none}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{display:flex;flex-direction:row;align-items:center;padding:.35em .65em;margin-right:.375rem;margin-bottom:.375rem;font-size:1rem;color:var(--bs-body-color);cursor:auto;border:var(--bs-border-width) solid #dedede;border-radius:0 !important}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.75rem;height:.75rem;padding:.25em .25em;margin-right:.25rem;overflow:hidden;text-indent:100%;white-space:nowrap;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.75rem auto no-repeat;border:0}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.75rem auto no-repeat}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove>span{display:none}.select2-container .select2-selection--multiple .select2-search{display:block;width:100%;height:1.6rem}.select2-container .select2-selection--multiple .select2-search .select2-search__field{width:100%;height:1.6rem;margin-top:0;margin-left:0;font-family:inherit;line-height:1.6;background-color:rgba(0,0,0,0)}.select2-container .select2-selection--multiple .select2-selection__clear{right:.75rem}.select2-container.select2-container--disabled .select2-selection,.select2-container.select2-container--disabled.select2-container--focus .select2-selection{color:var(--bs-secondary-color);cursor:not-allowed;background-color:var(--bs-secondary-bg);border-color:#dedede;box-shadow:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__clear,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__clear{display:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__choice,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice{cursor:not-allowed}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{display:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty),.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty){padding-bottom:0}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search{display:none}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu).select2-container .select2-selection{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).select2-container .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-text~.select2-container--bootstrap-5 .select2-selection,.input-group>.btn~.select2-container--bootstrap-5 .select2-selection,.input-group>.dropdown-menu~.select2-container .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .select2-container{flex-grow:1}.input-group .select2-container .select2-selection{height:100%}.is-valid+.select2-container .select2-selection,.was-validated select:valid+.select2-container .select2-selection{border-color:#2db83d}.is-valid+.select2-container.select2-container--focus .select2-selection,.is-valid+.select2-container.select2-container--open .select2-selection,.was-validated select:valid+.select2-container.select2-container--focus .select2-selection,.was-validated select:valid+.select2-container.select2-container--open .select2-selection{border-color:#2db83d;box-shadow:0 0 0 0 rgba(45,184,61,.25)}.is-valid+.select2-container.select2-container--open.select2-container--below .select2-selection,.was-validated select:valid+.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0)}.is-valid+.select2-container.select2-container--open.select2-container--above .select2-selection,.was-validated select:valid+.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.is-invalid+.select2-container .select2-selection,.was-validated select:invalid+.select2-container .select2-selection{border-color:#c00a35}.is-invalid+.select2-container.select2-container--focus .select2-selection,.is-invalid+.select2-container.select2-container--open .select2-selection,.was-validated select:invalid+.select2-container.select2-container--focus .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open .select2-selection{border-color:#c00a35;box-shadow:0 0 0 0 rgba(192,10,53,.25)}.is-invalid+.select2-container.select2-container--open.select2-container--below .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0)}.is-invalid+.select2-container.select2-container--open.select2-container--above .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--small.select2-selection{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:0 !important}.select2-container .select2--small.select2-selection--single .select2-selection__clear,.select2-container .select2--small.select2-selection--multiple .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--single .select2-selection__clear:hover,.select2-container .select2--small.select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--single .select2-search,.select2-container .select2--small.select2-selection--single .select2-search .select2-search__field,.select2-container .select2--small.select2-selection--multiple .select2-search,.select2-container .select2--small.select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.select2-container .select2--small.select2-dropdown{border-radius:0 !important}.select2-container .select2--small.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--small.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2--small.select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:0.875rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option{padding:.25rem .5rem;font-size:0.875rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem .25rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.select2-container .select2--small.select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:0.875rem}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--multiple .select2-selection__clear{right:.5rem}.select2-container .select2--large.select2-selection{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:0 !important}.select2-container .select2--large.select2-selection--single .select2-selection__clear,.select2-container .select2--large.select2-selection--multiple .select2-selection__clear{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--single .select2-selection__clear:hover,.select2-container .select2--large.select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--single .select2-search,.select2-container .select2--large.select2-selection--single .select2-search .select2-search__field,.select2-container .select2--large.select2-selection--multiple .select2-search,.select2-container .select2--large.select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.select2-container .select2--large.select2-dropdown{border-radius:0 !important}.select2-container .select2--large.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--large.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2--large.select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option{padding:.5rem 1rem;font-size:1.25rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem .5rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.select2-container .select2--large.select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--multiple .select2-selection__clear{right:1rem}.form-select-sm~.select2-container .select2-selection{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:0 !important}.form-select-sm~.select2-container .select2-selection--single .select2-selection__clear,.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--single .select2-selection__clear:hover,.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--single .select2-search,.form-select-sm~.select2-container .select2-selection--single .select2-search .select2-search__field,.form-select-sm~.select2-container .select2-selection--multiple .select2-search,.form-select-sm~.select2-container .select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.form-select-sm~.select2-container .select2-dropdown{border-radius:0 !important}.form-select-sm~.select2-container .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-sm~.select2-container .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-sm~.select2-container .select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:0.875rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.25rem .5rem;font-size:0.875rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem .25rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.form-select-sm~.select2-container .select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:0.875rem}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear{right:.5rem}.form-select-lg~.select2-container .select2-selection{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:0 !important}.form-select-lg~.select2-container .select2-selection--single .select2-selection__clear,.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--single .select2-selection__clear:hover,.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--single .select2-search,.form-select-lg~.select2-container .select2-selection--single .select2-search .select2-search__field,.form-select-lg~.select2-container .select2-selection--multiple .select2-search,.form-select-lg~.select2-container .select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.form-select-lg~.select2-container .select2-dropdown{border-radius:0 !important}.form-select-lg~.select2-container .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-lg~.select2-container .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-lg~.select2-container .select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.5rem 1rem;font-size:1.25rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem .5rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.form-select-lg~.select2-container .select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear{right:1rem}.uu-header .uu-header-row .language-form button,.uu-unified-header-container button,.language-form button{background:none;text-transform:uppercase;border:none;font-weight:400;color:#6c6c6c}.uu-navbar .icon-additional-home:before,.uu-unified-header-container .icon-additional-home:before{content:"H"}.input-group~.invalid-feedback,.input-group~.valid-feedback{display:block}/*# sourceMappingURL=bootstrap.css.map */ + );padding-left:0;padding-top:var(--bs-uu-sidebar-padding-y)}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h1.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h1.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h2.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h2.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h3.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h3.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h4.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h4.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h5.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h5.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h6.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h6.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}.uu-root-container .uu-sidebar-container .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h7.uu-sidebar-header-linked{border-bottom:.0625rem solid var(--bs-uu-border-color);padding-bottom:calc(var(--bs-uu-sidebar-header-padding-y) + .0625rem)}@media(min-width: 992px){.uu-root-container .uu-sidebar-container .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container .uu-sidebar-content .h7.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-gap);margin-left:calc(-1*var(--bs-uu-sidebar-gap))}}@media(min-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-sticky .uu-sidebar>*{position:sticky;top:var(--bs-uu-sidebar-padding-y)}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky .uu-sidebar{position:sticky;top:0}.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky.uu-sidebar-mobile-bottom .uu-sidebar{top:unset;bottom:0}}@media(max-width: 768px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-sticky .uu-sidebar{position:sticky;top:var(--bs-uu-navbar-mobile-height)}}@media(max-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-bottom .uu-sidebar{order:2}.uu-root-container .uu-sidebar-container.uu-sidebar-mobile-bottom .uu-sidebar-content{order:1}}@media(min-width: 992px){.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar{order:2;padding-left:var(--bs-uu-sidebar-padding-x);padding-right:calc(50% - var(--bs-uu-content-width)/2)}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h1.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h2.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h3.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h4.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h5.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h6.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar .uu-sidebar-collapse .h7.uu-sidebar-header-linked{padding-left:var(--bs-uu-sidebar-padding-x);margin-right:0;margin-left:calc(-1*var(--bs-uu-sidebar-padding-x))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content{order:1;padding-right:0;padding-left:calc(50% - var(--bs-uu-content-width)/2)}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h1.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h1.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h2.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h2.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h3.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h3.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h4.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h4.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h5.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h5.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h6.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h6.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content h7.uu-sidebar-header-linked,.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content .h7.uu-sidebar-header-linked{padding-left:0;padding-right:var(--bs-uu-sidebar-gap);margin-left:0;margin-right:calc(-1*var(--bs-uu-sidebar-gap))}}@media(min-width: 992px)and (max-width: 76rem){.uu-root-container .uu-sidebar-container.uu-sidebar-right .uu-sidebar-content{padding-left:var(--bs-uu-sidebar-padding-x)}}.uu-root-container .uu-form .uu-form-text-row .uu-form-text-aside,.uu-root-container .uu-form .uu-form-row .uu-form-help{color:var(--bs-uu-form-aside-color);font-size:var(--bs-uu-form-aside-font-size)}.uu-root-container .uu-form .uu-form-text-row .uu-form-text-aside p:last-child,.uu-root-container .uu-form .uu-form-row .uu-form-help p:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-row,.uu-root-container .uu-form .uu-form-text-row{display:grid;margin-bottom:var(--bs-uu-form-row-gap);grid-template-rows:auto auto}@media(min-width: 992px){.uu-root-container .uu-form .uu-form-row,.uu-root-container .uu-form .uu-form-text-row{grid-template-rows:unset;grid-template-columns:2fr 1fr;gap:var(--bs-uu-form-column-gap)}}.uu-root-container .uu-form .uu-form-row .uu-form-field{background-color:var(--bs-uu-form-field-bg);padding:calc(var(--bs-uu-form-field-padding-y) - var(--bs-uu-form-field-padding-y-compensation)) var(--bs-uu-form-field-padding-y) var(--bs-uu-form-field-padding-y)}.uu-root-container .uu-form .uu-form-row .uu-form-field .input-group-text,.uu-root-container .uu-form .uu-form-row .uu-form-field .form-control::file-selector-button{background:var(--bs-uu-form-field-input-group-bg)}.uu-root-container .uu-form .uu-form-row .uu-form-help{padding:var(--bs-uu-form-help-padding-y) var(--bs-uu-form-help-padding-x)}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h1:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h1:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h2:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h2:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h3:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h3:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h4:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h4:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h5:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h5:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h6:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h6:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text .h7:last-child,.uu-root-container .uu-form .uu-form-text-row .uu-form-text h7:last-child{margin-bottom:0}.uu-root-container .uu-form .uu-form-text-row .uu-form-text p:last-child{margin-bottom:0}.uu-root-container .uu-form.uu-form-no-gap .uu-form-row{margin-bottom:0}.uu-root-container .uu-form.uu-form-no-gap .uu-form-row+.uu-form-row .uu-form-field{padding-top:0}.uu-root-container .uu-form .uu-form-row.uu-form-no-gap{margin-bottom:0;padding-bottom:0}.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside{grid-template-rows:1fr}@media(min-width: 992px){.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside{grid-template-rows:unset;grid-template-columns:1fr}}.uu-root-container .uu-form.uu-form-no-aside .uu-form-text-row .uu-form-text-aside,.uu-root-container .uu-form .uu-form-text-row.uu-form-no-aside .uu-form-text-aside{display:none}.uu-root-container .uu-form.uu-form-no-help .uu-form-row,.uu-root-container .uu-form .uu-form-row.uu-form-no-help{grid-template-rows:1fr}@media(min-width: 992px){.uu-root-container .uu-form.uu-form-no-help .uu-form-row,.uu-root-container .uu-form .uu-form-row.uu-form-no-help{grid-template-rows:unset;grid-template-columns:1fr}}.uu-root-container .uu-form.uu-form-no-help .uu-form-row .uu-form-help,.uu-root-container .uu-form .uu-form-row.uu-form-no-help .uu-form-help{display:none}.uu-root-container .uu-footer{flex-wrap:wrap;background:var(--bs-uu-footer-background-color);color:var(--bs-uu-footer-color);align-items:center;padding-top:var(--bs-uu-footer-padding-y);padding-bottom:var(--bs-uu-footer-padding-y)}@media(max-width: 768px){.uu-root-container .uu-footer{gap:1.25rem}}.uu-root-container .uu-footer p:last-child{margin:0;padding:0}.uu-root-container .uu-footer a,.uu-root-container .uu-footer a:hover,.uu-root-container .uu-footer a:focus,.uu-root-container .uu-footer a:active{color:var(--bs-uu-footer-color)}.uu-root-container .table,.uu-root-container .dt,.uu-root-container .datatables{--bs-table-bg: var(--bs-uu-container-bg)}.uu-list,.uu-list-sidebar{--bs-uu-list-gap-y: 1rem;--bs-uu-list-gap-x: 1.5rem;--bs-uu-list-controls-bg: #efefef;--bs-uu-list-controls-padding-x: 1rem;--bs-uu-list-controls-padding-y: 1rem;--bs-uu-list-controls-gap: 1rem;--bs-uu-list-controls-search-width: 17rem;--bs-uu-list-filters-width: 18rem;--bs-uu-list-filters-gap: 1rem;--bs-uu-list-filters-padding-x: 1rem;--bs-uu-list-filters-padding-y: 0.5rem;--bs-uu-list-filters-label-gap: 1rem 1rem 0.5rem 1rem;--bs-uu-list-filters-border-color: #cecece;--bs-uu-list-filters-border-width: 0.0625rem}[data-bs-theme=dark] .uu-list,[data-bs-theme=dark] .uu-list-sidebar{--bs-uu-list-controls-bg: #343434;--bs-uu-list-filters-border-color: #6c6c6c}.uu-list{display:grid;width:100%;gap:var(--bs-uu-list-gap-y) var(--bs-uu-list-gap-x);grid-template-columns:var(--bs-uu-list-filters-width) auto;grid-template-rows:auto auto;grid-template-areas:"controls controls" "filters content"}.uu-list .uu-list-controls{grid-area:controls;width:100%;background:var(--bs-uu-list-controls-bg);display:grid;grid-template-columns:max-content auto max-content max-content;grid-template-areas:"search searchText order pageSize";align-items:center;padding:var(--bs-uu-list-controls-padding-y) var(--bs-uu-list-controls-padding-x);gap:var(--bs-uu-list-controls-gap)}.uu-list .uu-list-controls .uu-list-search-control{grid-area:search;width:var(--bs-uu-list-controls-search-width)}.uu-list .uu-list-controls .uu-list-search-text-control{grid-area:searchText}.uu-list .uu-list-controls .uu-list-order-control{grid-area:order}.uu-list .uu-list-controls .uu-list-page-size-control{grid-area:pageSize}.uu-list .uu-list-filters{grid-area:filters;background:var(--bs-uu-list-controls-bg)}.uu-list .uu-list-content{grid-column-start:filters;grid-column-end:content}.uu-list .uu-list-filters~.uu-list-content{grid-area:content}.uu-list-sidebar{--bs-uu-sidebar-width: var(--bs-uu-list-filters-width)}.uu-list-filter{--bs-border-color: var(--bs-uu-list-filters-border-color);margin-bottom:var(--bs-uu-list-filters-gap)}.uu-list-filter .uu-list-filter-label{border-bottom:var(--bs-uu-list-filters-border-width) solid var(--bs-uu-list-filters-border-color);padding:var(--bs-uu-list-filters-label-gap);font-weight:500}.uu-list-filter .uu-list-filter-field{padding:var(--bs-uu-list-filters-padding-y) var(--bs-uu-list-filters-padding-x)}.uu-list-filter .form-check{border-bottom:var(--bs-uu-list-filters-border-width) solid var(--bs-uu-list-filters-border-color);display:flex;width:100%;padding:var(--bs-uu-list-filters-padding-y) var(--bs-uu-list-filters-padding-x);gap:.75rem;align-items:center}.uu-list-filter .form-check .form-check-input{flex:0 0 auto;margin:0}.uu-list-filter .form-check .form-check-label{flex:1 1 auto}@font-face{font-family:"icomoon";src:url("../fonts/IcoMoon-Free.ttf") format("truetype");font-weight:normal;font-style:normal}@font-face{font-family:"icomoon-additional";src:url("../fonts/icomoon.ttf") format("truetype");font-weight:normal;font-style:normal}[class^=icon-],[class*=" icon-"]{font-family:"icomoon" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}[class^=icon-additional-],[class*=" icon-additional-"]{font-family:"icomoon-additional" !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none}[class^=icon-]:hover,[class*=" icon-"]:hover{text-decoration:none}.select2-container{display:block}select+.select2-container{z-index:1}.select2-container *:focus{outline:0}.select2-container .select2-selection{width:100%;min-height:calc(1.6em + 0.75rem + calc(var(--bs-border-width) * 2));padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);background-color:#fff;border:var(--bs-border-width) solid #dedede;border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media(prefers-reduced-motion: reduce){.select2-container .select2-selection{transition:none}}.select2-container.select2-container--focus .select2-selection,.select2-container.select2-container--open .select2-selection{border-color:#000;box-shadow:none}.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0);border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2-search{width:100%}.select2-container .select2-search--inline .select2-search__field{vertical-align:top}.select2-container .select2-selection--single .select2-selection__clear,.select2-container .select2-selection--multiple .select2-selection__clear{position:absolute;top:50%;right:2.25rem;width:.75rem;height:.75rem;padding:.25em .25em;overflow:hidden;text-indent:100%;white-space:nowrap;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.75rem auto no-repeat;transform:translateY(-50%)}.select2-container .select2-selection--single .select2-selection__clear:hover,.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.75rem auto no-repeat}.select2-container .select2-selection--single .select2-selection__clear>span,.select2-container .select2-selection--multiple .select2-selection__clear>span{display:none}.select2-container+.select2-container{z-index:9003}.select2-container .select2-dropdown{z-index:9003;overflow:hidden;color:var(--bs-body-color);background-color:#fff;border-color:#000;border-radius:0 !important}.select2-container .select2-dropdown.select2-dropdown--below{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2-dropdown.select2-dropdown--above{border-bottom:0 solid rgba(0,0,0,0);border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2-dropdown .select2-search{padding:.375rem .75rem}.select2-container .select2-dropdown .select2-search .select2-search__field{display:block;width:100%;padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.6;color:var(--bs-body-color);background-color:#fff;background-clip:padding-box;border:var(--bs-border-width) solid #dedede;appearance:none;border-radius:0 !important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.select2-container .select2-dropdown .select2-search .select2-search__field{transition:none}}.select2-container .select2-dropdown .select2-search .select2-search__field:focus{border-color:#000;box-shadow:none}.select2-container .select2-dropdown .select2-results__options:not(.select2-results__options--nested){max-height:15rem;overflow-y:auto}.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__message{color:var(--bs-secondary-color)}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted{color:#000;background-color:#e9e9e9}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,.select2-container .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted){color:#000;background-color:#ffcd00}.select2-container .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled,.select2-container .select2-dropdown .select2-results__options .select2-results__option[aria-disabled=true]{color:var(--bs-secondary-color)}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group]{padding:0}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.375rem .375rem;font-weight:500;line-height:1.6;color:#000}.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.375rem .75rem}.select2-container .select2-selection--single{padding:.375rem 2.25rem .375rem .75rem;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='%23343434' 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 .75rem center;background-size:16px 12px}.select2-container .select2-selection--single .select2-selection__rendered{padding:0;font-weight:400;line-height:1.6;color:var(--bs-body-color)}.select2-container .select2-selection--single .select2-selection__rendered .select2-selection__placeholder{font-weight:400;line-height:1.6;color:var(--bs-secondary-color)}.select2-container .select2-selection--single .select2-selection__arrow{display:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:flex;flex-direction:row;flex-wrap:wrap;padding-left:0;margin:0;list-style:none}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{display:flex;flex-direction:row;align-items:center;padding:.35em .65em;margin-right:.375rem;margin-bottom:.375rem;font-size:1rem;color:var(--bs-body-color);cursor:auto;border:var(--bs-border-width) solid #dedede;border-radius:0 !important}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.75rem;height:.75rem;padding:.25em .25em;margin-right:.25rem;overflow:hidden;text-indent:100%;white-space:nowrap;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.75rem auto no-repeat;border:0}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.75rem auto no-repeat}.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove>span{display:none}.select2-container .select2-selection--multiple .select2-search{display:block;width:100%;height:1.6rem}.select2-container .select2-selection--multiple .select2-search .select2-search__field{width:100%;height:1.6rem;margin-top:0;margin-left:0;font-family:inherit;line-height:1.6;background-color:rgba(0,0,0,0)}.select2-container .select2-selection--multiple .select2-selection__clear{right:.75rem}.select2-container.select2-container--disabled .select2-selection,.select2-container.select2-container--disabled.select2-container--focus .select2-selection{color:var(--bs-secondary-color);cursor:not-allowed;background-color:var(--bs-secondary-bg);border-color:#dedede;box-shadow:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__clear,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__clear{display:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__choice,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice{cursor:not-allowed}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{display:none}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty),.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty){padding-bottom:0}.select2-container.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search,.select2-container.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search{display:none}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu).select2-container .select2-selection{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).select2-container .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-text~.select2-container--bootstrap-5 .select2-selection,.input-group>.btn~.select2-container--bootstrap-5 .select2-selection,.input-group>.dropdown-menu~.select2-container .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .select2-container{flex-grow:1}.input-group .select2-container .select2-selection{height:100%}.is-valid+.select2-container .select2-selection,.was-validated select:valid+.select2-container .select2-selection{border-color:#2db83d}.is-valid+.select2-container.select2-container--focus .select2-selection,.is-valid+.select2-container.select2-container--open .select2-selection,.was-validated select:valid+.select2-container.select2-container--focus .select2-selection,.was-validated select:valid+.select2-container.select2-container--open .select2-selection{border-color:#2db83d;box-shadow:0 0 0 0 rgba(45,184,61,.25)}.is-valid+.select2-container.select2-container--open.select2-container--below .select2-selection,.was-validated select:valid+.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0)}.is-valid+.select2-container.select2-container--open.select2-container--above .select2-selection,.was-validated select:valid+.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.is-invalid+.select2-container .select2-selection,.was-validated select:invalid+.select2-container .select2-selection{border-color:#c00a35}.is-invalid+.select2-container.select2-container--focus .select2-selection,.is-invalid+.select2-container.select2-container--open .select2-selection,.was-validated select:invalid+.select2-container.select2-container--focus .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open .select2-selection{border-color:#c00a35;box-shadow:0 0 0 0 rgba(192,10,53,.25)}.is-invalid+.select2-container.select2-container--open.select2-container--below .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid rgba(0,0,0,0)}.is-invalid+.select2-container.select2-container--open.select2-container--above .select2-selection,.was-validated select:invalid+.select2-container.select2-container--open.select2-container--above .select2-selection{border-top:0 solid rgba(0,0,0,0);border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--small.select2-selection{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:0 !important}.select2-container .select2--small.select2-selection--single .select2-selection__clear,.select2-container .select2--small.select2-selection--multiple .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--single .select2-selection__clear:hover,.select2-container .select2--small.select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--single .select2-search,.select2-container .select2--small.select2-selection--single .select2-search .select2-search__field,.select2-container .select2--small.select2-selection--multiple .select2-search,.select2-container .select2--small.select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.select2-container .select2--small.select2-dropdown{border-radius:0 !important}.select2-container .select2--small.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--small.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2--small.select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:0.875rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option{padding:.25rem .5rem;font-size:0.875rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem .25rem}.select2-container .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.select2-container .select2--small.select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:0.875rem}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.select2-container .select2--small.select2-selection--multiple .select2-selection__clear{right:.5rem}.select2-container .select2--large.select2-selection{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:0 !important}.select2-container .select2--large.select2-selection--single .select2-selection__clear,.select2-container .select2--large.select2-selection--multiple .select2-selection__clear{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--single .select2-selection__clear:hover,.select2-container .select2--large.select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--single .select2-search,.select2-container .select2--large.select2-selection--single .select2-search .select2-search__field,.select2-container .select2--large.select2-selection--multiple .select2-search,.select2-container .select2--large.select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.select2-container .select2--large.select2-dropdown{border-radius:0 !important}.select2-container .select2--large.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container .select2--large.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container .select2--large.select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option{padding:.5rem 1rem;font-size:1.25rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem .5rem}.select2-container .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.select2-container .select2--large.select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.select2-container .select2--large.select2-selection--multiple .select2-selection__clear{right:1rem}.form-select-sm~.select2-container .select2-selection{min-height:calc(1.6em + 0.5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:0.875rem;border-radius:0 !important}.form-select-sm~.select2-container .select2-selection--single .select2-selection__clear,.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--single .select2-selection__clear:hover,.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--single .select2-search,.form-select-sm~.select2-container .select2-selection--single .select2-search .select2-search__field,.form-select-sm~.select2-container .select2-selection--multiple .select2-search,.form-select-sm~.select2-container .select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.form-select-sm~.select2-container .select2-dropdown{border-radius:0 !important}.form-select-sm~.select2-container .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-sm~.select2-container .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-sm~.select2-container .select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:0.875rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.25rem .5rem;font-size:0.875rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem .25rem}.form-select-sm~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.form-select-sm~.select2-container .select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:0.875rem}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem .125rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/0.5rem auto no-repeat}.form-select-sm~.select2-container .select2-selection--multiple .select2-selection__clear{right:.5rem}.form-select-lg~.select2-container .select2-selection{min-height:calc(1.6em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:0 !important}.form-select-lg~.select2-container .select2-selection--single .select2-selection__clear,.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--single .select2-selection__clear:hover,.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--single .select2-search,.form-select-lg~.select2-container .select2-selection--single .select2-search .select2-search__field,.form-select-lg~.select2-container .select2-selection--multiple .select2-search,.form-select-lg~.select2-container .select2-selection--multiple .select2-search .select2-search__field{height:1.6em}.form-select-lg~.select2-container .select2-dropdown{border-radius:0 !important}.form-select-lg~.select2-container .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-lg~.select2-container .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-lg~.select2-container .select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option{padding:.5rem 1rem;font-size:1.25rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem .5rem}.form-select-lg~.select2-container .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.form-select-lg~.select2-container .select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem .5rem;background:rgba(0,0,0,0) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236f6f6f'%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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:rgba(0,0,0,0) 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/1rem auto no-repeat}.form-select-lg~.select2-container .select2-selection--multiple .select2-selection__clear{right:1rem}.uu-header .uu-header-row .language-form button,.uu-unified-header-container button,.language-form button{background:none;text-transform:uppercase;border:none;font-weight:400;color:#6c6c6c}.uu-navbar .icon-additional-home:before,.uu-unified-header-container .icon-additional-home:before{content:"H"}.input-group~.invalid-feedback,.input-group~.valid-feedback{display:block}/*# sourceMappingURL=bootstrap.css.map */ diff --git a/src/cdh/core/static/cdh.core/css/bootstrap.css.map b/src/cdh/core/static/cdh.core/css/bootstrap.css.map index 179a6b11..849d3357 100644 --- a/src/cdh/core/static/cdh.core/css/bootstrap.css.map +++ b/src/cdh/core/static/cdh.core/css/bootstrap.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../../../node_modules/uu-bootstrap/scss/fonts/_open-sans.scss","../../../../../../node_modules/uu-bootstrap/scss/fonts/_merriweather.scss","../../../../../../node_modules/bootstrap/scss/mixins/_clearfix.scss","../../../../../../node_modules/bootstrap/scss/helpers/_color-bg.scss","../../../../../../node_modules/bootstrap/scss/helpers/_colored-links.scss","../../../../../../node_modules/bootstrap/scss/helpers/_focus-ring.scss","../../../../../../node_modules/bootstrap/scss/helpers/_icon-link.scss","../../../../../../node_modules/bootstrap/scss/_variables.scss","../../../../../../node_modules/bootstrap/scss/mixins/_transition.scss","../../../../../../node_modules/bootstrap/scss/helpers/_ratio.scss","../../../../../../node_modules/bootstrap/scss/helpers/_position.scss","../../../../../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../../../../../node_modules/bootstrap/scss/helpers/_stacks.scss","../../../../../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../../../../../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../../../../../../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../../../../../../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../../../../../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../../../../../node_modules/bootstrap/scss/helpers/_vr.scss","../../../../../../node_modules/bootstrap/scss/mixins/_utilities.scss","../../../../../../node_modules/bootstrap/scss/utilities/_api.scss","../../../../../../node_modules/bootstrap/scss/_root.scss","../../../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../../../node_modules/bootstrap/scss/_type.scss","../../../../../../node_modules/bootstrap/scss/mixins/_lists.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_colors.scss","../../../../../../node_modules/bootstrap/scss/_images.scss","../../../../../../node_modules/bootstrap/scss/mixins/_image.scss","../../../../../../node_modules/bootstrap/scss/_containers.scss","../../../../../../node_modules/bootstrap/scss/mixins/_container.scss","../../../../../../node_modules/bootstrap/scss/_grid.scss","../../../../../../node_modules/bootstrap/scss/mixins/_grid.scss","../../../../../../node_modules/bootstrap/scss/_tables.scss","../../../../../../node_modules/bootstrap/scss/mixins/_table-variants.scss","../../../../../../node_modules/bootstrap/scss/forms/_labels.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/bootstrap/_form.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/bootstrap/_misc.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-text.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-control.scss","../../../../../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-select.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-check.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-range.scss","../../../../../../node_modules/bootstrap/scss/forms/_floating-labels.scss","../../../../../../node_modules/bootstrap/scss/forms/_input-group.scss","../../../../../../node_modules/bootstrap/scss/mixins/_forms.scss","../../../../../../node_modules/bootstrap/scss/_buttons.scss","../../../../../../node_modules/bootstrap/scss/mixins/_buttons.scss","../../../../../../node_modules/bootstrap/scss/_transitions.scss","../../../../../../node_modules/bootstrap/scss/_dropdown.scss","../../../../../../node_modules/bootstrap/scss/mixins/_caret.scss","../../../../../../node_modules/bootstrap/scss/_button-group.scss","../../../../../../node_modules/bootstrap/scss/_nav.scss","../../../../../../node_modules/bootstrap/scss/_navbar.scss","../../../../../../node_modules/bootstrap/scss/_card.scss","../../../../../../node_modules/bootstrap/scss/_accordion.scss","../../../../../../node_modules/bootstrap/scss/_breadcrumb.scss","../../../../../../node_modules/bootstrap/scss/_pagination.scss","../../../../../../node_modules/bootstrap/scss/mixins/_pagination.scss","../../../../../../node_modules/bootstrap/scss/_badge.scss","../../../../../../node_modules/bootstrap/scss/_alert.scss","../../../../../../node_modules/bootstrap/scss/_progress.scss","../../../../../../node_modules/bootstrap/scss/_list-group.scss","../../../../../../node_modules/bootstrap/scss/_close.scss","../../../../../../node_modules/bootstrap/scss/_toasts.scss","../../../../../../node_modules/bootstrap/scss/_modal.scss","../../../../../../node_modules/bootstrap/scss/mixins/_backdrop.scss","../../../../../../node_modules/bootstrap/scss/_tooltip.scss","../../../../../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../../../../../node_modules/bootstrap/scss/_popover.scss","../../../../../../node_modules/bootstrap/scss/_carousel.scss","../../../../../../node_modules/bootstrap/scss/_spinners.scss","../../../../../../node_modules/bootstrap/scss/_offcanvas.scss","../../../../../../node_modules/bootstrap/scss/_placeholders.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_accordion.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_alert.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_background.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_button.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_pagination.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_modal.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_table.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_index.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_text.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_uu-layout.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_code.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_stepper.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_stepper.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_tiles.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_modal-nav-tabs.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_index.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_css_variables.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_containers.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_header.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_fonts.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_navbar.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_unified_header.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_hero.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_cover.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_sidebar.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_form.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_footer.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_table.scss","../../../../../../assets/scss/icomoon.scss","../../../../../../assets/scss/select2-bootstrap/_layout.scss","../../../../../../assets/scss/select2-bootstrap/_variables.scss","../../../../../../assets/scss/select2-bootstrap/_dropdown.scss","../../../../../../assets/scss/select2-bootstrap/_single.scss","../../../../../../assets/scss/select2-bootstrap/_multiple.scss","../../../../../../assets/scss/select2-bootstrap/_disabled.scss","../../../../../../assets/scss/select2-bootstrap/_input-group.scss","../../../../../../assets/scss/select2-bootstrap/_validation.scss","../../../../../../assets/scss/select2-bootstrap/_sizing.scss","../../../../../../assets/scss/bootstrap.scss"],"names":[],"mappings":"CACE;AAAA;AAAA;AAAA;AAAA,GCEF,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,sFACA,IACI,mhBAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,qFACA,IACI,8gBAeR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBCjPR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBAeR,WACI,2BACA,kBACA,gBACA,kFACA,IACI,mgBAeR,WACI,2BACA,kBACA,gBACA,iFACA,IACI,8fAeR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBAeR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBC1JN,iBACE,cACA,WACA,WCHF,iBACE,sBACA,iFAFF,mBACE,sBACA,mFAFF,iBACE,sBACA,iFAFF,cACE,sBACA,8EAFF,iBACE,sBACA,iFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,cACE,sBACA,8EAFF,mBACE,sBACA,mFAFF,gBACE,sBACA,gFAFF,gBACE,sBACA,gFAFF,cACE,sBACA,8EAFF,aACE,sBACA,6EAFF,sBACE,sBACA,sFAFF,eACE,sBACA,+EAFF,eACE,sBACA,+EAFF,gBACE,sBACA,gFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,cACE,sBACA,8EAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,mBACE,sBACA,mFCFF,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,gBACE,0EACA,oGAGE,4CAGE,0DACA,oFATN,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,cACE,wEACA,kGAGE,wCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,gBACE,0EACA,oGAGE,4CAGE,4DACA,sFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,UACE,oEACA,8FAGE,gCAGE,6DACA,uFATN,mBACE,6EACA,uGAGE,kDAGE,8DACA,wFATN,YACE,sEACA,gGAGE,oCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,+DACA,yFATN,YACE,sEACA,gGAGE,oCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFATN,gBACE,0EACA,oGAGE,4CAGE,6DACA,uFAOR,oBACE,+EACA,yGAGE,oDAEE,kFACA,4GC1BN,kBACE,UAEA,kJCHF,WACE,oBACA,IC6c4B,QD5c5B,mBACA,kFACA,sBC2c4B,MD1c5B,2BAEA,eACE,cACA,MCuc0B,IDtc1B,OCsc0B,IDrc1B,kBEIE,WFHF,0BEOE,uCFZJ,eEaM,iBFDJ,8DACE,mEGnBN,OACE,kBACA,WAEA,eACE,cACA,mCACA,WAGF,SACE,kBACA,MACA,OACA,WACA,YAKF,WACE,wBADF,WACE,uBADF,YACE,0BADF,YACE,kCCrBJ,WACE,eACA,MACA,QACA,OACA,QHqmCkC,KGlmCpC,cACE,eACA,QACA,SACA,OACA,QH6lCkC,KGrlChC,YACE,gBACA,MACA,QHilC8B,KG9kChC,eACE,gBACA,SACA,QH2kC8B,KI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,0BDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,0BDxCA,gBACE,gBACA,MACA,QHilC8B,KG9kChC,mBACE,gBACA,SACA,QH2kC8B,MK1mCpC,QACE,aACA,mBACA,mBACA,mBAGF,QACE,aACA,cACA,sBACA,mBCRF,2ECIE,qBACA,sBACA,qBACA,uBACA,2BACA,iCACA,8BACA,oBAGA,qGACE,6BCdF,uBACE,kBACA,MACA,QACA,SACA,OACA,QRgcsC,EQ/btC,WCRJ,+BCCE,uBACA,mBCNF,IACE,qBACA,mBACA,MXisB4B,uBWhsB5B,eACA,8BACA,QX2rB4B,IY/nBtB,gBAOI,mCAPJ,WAOI,8BAPJ,cAOI,iCAPJ,cAOI,iCAPJ,mBAOI,sCAPJ,gBAOI,mCAPJ,aAOI,sBAPJ,WAOI,uBAPJ,YAOI,sBAPJ,oBAOI,8BAPJ,kBAOI,4BAPJ,iBAOI,2BAPJ,kBAOI,iCAPJ,iBAOI,2BAPJ,WAOI,qBAPJ,YAOI,uBAPJ,YAOI,sBAPJ,YAOI,uBAPJ,aAOI,qBAPJ,eAOI,yBAPJ,iBAOI,2BAPJ,kBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,2BAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,mBAOI,6BAPJ,iBAOI,2BAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,mBAOI,6BAPJ,UAOI,0BAPJ,gBAOI,gCAPJ,SAOI,yBAPJ,QAOI,wBAPJ,eAOI,+BAPJ,SAOI,yBAPJ,aAOI,6BAPJ,cAOI,8BAPJ,QAOI,wBAPJ,eAOI,+BAPJ,QAOI,wBAPJ,QAOI,mDAPJ,WAOI,wDAPJ,WAOI,mDAPJ,aAOI,2BAjBJ,oBACE,iFADF,sBACE,mFADF,oBACE,iFADF,iBACE,8EADF,oBACE,iFADF,mBACE,gFADF,kBACE,+EADF,kBACE,+EADF,iBACE,8EADF,iBACE,8EADF,sBACE,mFADF,mBACE,gFADF,mBACE,gFADF,iBACE,8EADF,gBACE,6EADF,yBACE,sFADF,kBACE,+EADF,kBACE,+EADF,mBACE,gFADF,mBACE,gFADF,kBACE,+EADF,iBACE,8EADF,iBACE,8EADF,kBACE,+EADF,iBACE,8EADF,sBACE,mFASF,iBAOI,2BAPJ,mBAOI,6BAPJ,mBAOI,6BAPJ,gBAOI,0BAPJ,iBAOI,2BAPJ,OAOI,iBAPJ,QAOI,mBAPJ,SAOI,oBAPJ,UAOI,oBAPJ,WAOI,sBAPJ,YAOI,uBAPJ,SAOI,kBAPJ,UAOI,oBAPJ,WAOI,qBAPJ,OAOI,mBAPJ,QAOI,qBAPJ,SAOI,sBAPJ,kBAOI,2CAPJ,oBAOI,sCAPJ,oBAOI,sCAPJ,QAOI,uFAPJ,UAOI,oBAPJ,YAOI,2FAPJ,cAOI,wBAPJ,YAOI,6FAPJ,cAOI,0BAPJ,eAOI,8FAPJ,iBAOI,2BAPJ,cAOI,4FAPJ,gBAOI,yBAPJ,gBAIQ,uBAGJ,8EAPJ,kBAIQ,uBAGJ,gFAPJ,gBAIQ,uBAGJ,8EAPJ,aAIQ,uBAGJ,2EAPJ,gBAIQ,uBAGJ,8EAPJ,eAIQ,uBAGJ,6EAPJ,cAIQ,uBAGJ,4EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,aAIQ,uBAGJ,2EAPJ,kBAIQ,uBAGJ,gFAPJ,eAIQ,uBAGJ,6EAPJ,eAIQ,uBAGJ,6EAPJ,aAIQ,uBAGJ,2EAPJ,YAIQ,uBAGJ,0EAPJ,qBAIQ,uBAGJ,mFAPJ,cAIQ,uBAGJ,4EAPJ,cAIQ,uBAGJ,4EAPJ,eAIQ,uBAGJ,6EAPJ,eAIQ,uBAGJ,6EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,aAIQ,uBAGJ,2EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,kBAIQ,uBAGJ,gFAPJ,cAIQ,uBAGJ,4EAPJ,uBAOI,wDAPJ,yBAOI,0DAPJ,uBAOI,wDAPJ,oBAOI,qDAPJ,uBAOI,wDAPJ,sBAOI,uDAPJ,qBAOI,sDAPJ,oBAOI,qDAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAjBJ,mBACE,yBADF,mBACE,0BADF,mBACE,yBADF,mBACE,0BADF,oBACE,uBASF,MAOI,qBAPJ,MAOI,qBAPJ,MAOI,qBAPJ,OAOI,sBAPJ,QAOI,sBAPJ,QAOI,0BAPJ,QAOI,uBAPJ,YAOI,2BAPJ,MAOI,sBAPJ,MAOI,sBAPJ,MAOI,sBAPJ,OAOI,uBAPJ,QAOI,uBAPJ,QAOI,2BAPJ,QAOI,wBAPJ,YAOI,4BAPJ,WAOI,yBAPJ,UAOI,8BAPJ,aAOI,iCAPJ,kBAOI,sCAPJ,qBAOI,yCAPJ,aAOI,uBAPJ,aAOI,uBAPJ,eAOI,yBAPJ,eAOI,yBAPJ,WAOI,0BAPJ,aAOI,4BAPJ,mBAOI,kCAPJ,uBAOI,sCAPJ,qBAOI,oCAPJ,wBAOI,kCAPJ,yBAOI,yCAPJ,wBAOI,wCAPJ,wBAOI,wCAPJ,mBAOI,kCAPJ,iBAOI,gCAPJ,oBAOI,8BAPJ,sBAOI,gCAPJ,qBAOI,+BAPJ,qBAOI,oCAPJ,mBAOI,kCAPJ,sBAOI,gCAPJ,uBAOI,uCAPJ,sBAOI,sCAPJ,uBAOI,iCAPJ,iBAOI,2BAPJ,kBAOI,iCAPJ,gBAOI,+BAPJ,mBAOI,6BAPJ,qBAOI,+BAPJ,oBAOI,8BAPJ,aAOI,oBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,YAOI,mBAPJ,KAOI,oBAPJ,KAOI,yBAPJ,KAOI,wBAPJ,KAOI,uBAPJ,KAOI,yBAPJ,KAOI,uBAPJ,QAOI,uBAPJ,MAOI,mDAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,yDAPJ,MAOI,6DAPJ,MAOI,yDAPJ,SAOI,yDAPJ,MAOI,mDAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,yDAPJ,MAOI,6DAPJ,MAOI,yDAPJ,SAOI,yDAPJ,MAOI,wBAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,2BAPJ,MAOI,6BAPJ,MAOI,2BAPJ,SAOI,2BAPJ,MAOI,0BAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,+BAPJ,MAOI,6BAPJ,SAOI,6BAPJ,MAOI,2BAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,gCAPJ,MAOI,8BAPJ,SAOI,8BAPJ,MAOI,yBAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,8BAPJ,MAOI,4BAPJ,SAOI,4BAPJ,KAOI,qBAPJ,KAOI,0BAPJ,KAOI,yBAPJ,KAOI,wBAPJ,KAOI,0BAPJ,KAOI,wBAPJ,MAOI,qDAPJ,MAOI,+DAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,+DAPJ,MAOI,2DAPJ,MAOI,qDAPJ,MAOI,+DAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,+DAPJ,MAOI,2DAPJ,MAOI,yBAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,8BAPJ,MAOI,4BAPJ,MAOI,2BAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,gCAPJ,MAOI,8BAPJ,MAOI,4BAPJ,MAOI,iCAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,iCAPJ,MAOI,+BAPJ,MAOI,0BAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,+BAPJ,MAOI,6BAPJ,OAOI,iBAPJ,OAOI,sBAPJ,OAOI,qBAPJ,OAOI,oBAPJ,OAOI,sBAPJ,OAOI,oBAPJ,WAOI,qBAPJ,WAOI,0BAPJ,WAOI,yBAPJ,WAOI,wBAPJ,WAOI,0BAPJ,WAOI,wBAPJ,cAOI,wBAPJ,cAOI,6BAPJ,cAOI,4BAPJ,cAOI,2BAPJ,cAOI,6BAPJ,cAOI,2BAPJ,gBAOI,gDAPJ,MAOI,4CAPJ,MAOI,6CAPJ,MAOI,6CAPJ,MAOI,4BAPJ,MAOI,4BAPJ,MAOI,0BAPJ,YAOI,6BAPJ,YAOI,6BAPJ,YAOI,+BAPJ,UAOI,2BAPJ,WAOI,2BAPJ,WAOI,2BAPJ,aAOI,2BAPJ,SAOI,2BAPJ,WAOI,8BAPJ,MAOI,yBAPJ,OAOI,2BAPJ,SAOI,2BAPJ,OAOI,2BAPJ,YAOI,2BAPJ,UAOI,4BAPJ,aAOI,6BAPJ,sBAOI,gCAPJ,2BAOI,qCAPJ,8BAOI,wCAPJ,gBAOI,oCAPJ,gBAOI,oCAPJ,iBAOI,qCAPJ,WAOI,8BAPJ,aAOI,8BAPJ,YAOI,iEAPJ,cAIQ,qBAGJ,qEAPJ,gBAIQ,qBAGJ,uEAPJ,cAIQ,qBAGJ,qEAPJ,WAIQ,qBAGJ,kEAPJ,cAIQ,qBAGJ,qEAPJ,aAIQ,qBAGJ,oEAPJ,YAIQ,qBAGJ,mEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,WAIQ,qBAGJ,kEAPJ,gBAIQ,qBAGJ,uEAPJ,aAIQ,qBAGJ,oEAPJ,aAIQ,qBAGJ,oEAPJ,WAIQ,qBAGJ,kEAPJ,UAIQ,qBAGJ,iEAPJ,mBAIQ,qBAGJ,0EAPJ,YAIQ,qBAGJ,mEAPJ,YAIQ,qBAGJ,mEAPJ,aAIQ,qBAGJ,oEAPJ,aAIQ,qBAGJ,oEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,WAIQ,qBAGJ,kEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,gBAIQ,qBAGJ,uEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,wEAPJ,YAIQ,qBAGJ,2CAPJ,eAIQ,qBAGJ,gCAPJ,eAIQ,qBAGJ,sCAPJ,qBAIQ,qBAGJ,2CAPJ,oBAIQ,qBAGJ,0CAPJ,oBAIQ,qBAGJ,0CAPJ,YAIQ,qBAGJ,yBAjBJ,iBACE,wBADF,iBACE,uBADF,iBACE,wBADF,kBACE,qBASF,uBAOI,iDAPJ,yBAOI,mDAPJ,uBAOI,iDAPJ,oBAOI,8CAPJ,uBAOI,iDAPJ,sBAOI,gDAPJ,qBAOI,+CAPJ,oBAOI,8CAjBJ,iBACE,uBAIA,6BACE,uBANJ,iBACE,wBAIA,6BACE,wBANJ,iBACE,uBAIA,6BACE,uBANJ,iBACE,wBAIA,6BACE,wBANJ,kBACE,qBAIA,8BACE,qBAIJ,eAOI,wCAKF,2BAOI,wCAnBN,eAOI,uCAKF,2BAOI,uCAnBN,eAOI,wCAKF,2BAOI,wCAnBN,wBAIQ,+BAGJ,+FAPJ,0BAIQ,+BAGJ,iGAPJ,wBAIQ,+BAGJ,+FAPJ,qBAIQ,+BAGJ,4FAPJ,wBAIQ,+BAGJ,+FAPJ,uBAIQ,+BAGJ,8FAPJ,sBAIQ,+BAGJ,6FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,qBAIQ,+BAGJ,4FAPJ,0BAIQ,+BAGJ,iGAPJ,uBAIQ,+BAGJ,8FAPJ,uBAIQ,+BAGJ,8FAPJ,qBAIQ,+BAGJ,4FAPJ,oBAIQ,+BAGJ,2FAPJ,6BAIQ,+BAGJ,oGAPJ,sBAIQ,+BAGJ,6FAPJ,sBAIQ,+BAGJ,6FAPJ,uBAIQ,+BAGJ,8FAPJ,uBAIQ,+BAGJ,8FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,qBAIQ,+BAGJ,4FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,0BAIQ,+BAGJ,iGAPJ,gBAIQ,+BAGJ,qGAjBJ,0BACE,+BAIA,sCACE,+BANJ,2BACE,iCAIA,uCACE,iCANJ,2BACE,kCAIA,uCACE,kCANJ,2BACE,iCAIA,uCACE,iCANJ,2BACE,kCAIA,uCACE,kCANJ,4BACE,+BAIA,wCACE,+BAIJ,YAIQ,mBAGJ,8EAPJ,cAIQ,mBAGJ,gFAPJ,YAIQ,mBAGJ,8EAPJ,SAIQ,mBAGJ,2EAPJ,YAIQ,mBAGJ,8EAPJ,WAIQ,mBAGJ,6EAPJ,UAIQ,mBAGJ,4EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,SAIQ,mBAGJ,2EAPJ,cAIQ,mBAGJ,gFAPJ,WAIQ,mBAGJ,6EAPJ,WAIQ,mBAGJ,6EAPJ,SAIQ,mBAGJ,2EAPJ,QAIQ,mBAGJ,0EAPJ,iBAIQ,mBAGJ,mFAPJ,UAIQ,mBAGJ,4EAPJ,UAIQ,mBAGJ,4EAPJ,WAIQ,mBAGJ,6EAPJ,WAIQ,mBAGJ,6EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,SAIQ,mBAGJ,2EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,cAIQ,mBAGJ,gFAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,8EAPJ,gBAIQ,mBAGJ,0CAPJ,mBAIQ,mBAGJ,mFAPJ,kBAIQ,mBAGJ,kFAjBJ,eACE,qBADF,eACE,sBADF,eACE,qBADF,eACE,sBADF,gBACE,mBASF,mBAOI,wDAPJ,qBAOI,0DAPJ,mBAOI,wDAPJ,gBAOI,qDAPJ,mBAOI,wDAPJ,kBAOI,uDAPJ,iBAOI,sDAPJ,gBAOI,qDAPJ,aAOI,+CAPJ,iBAOI,2BAPJ,kBAOI,4BAPJ,kBAOI,4BAPJ,SAOI,+BAPJ,SAOI,+BAPJ,SAOI,iDAPJ,WAOI,2BAPJ,WAOI,oDAPJ,WAOI,iDAPJ,WAOI,oDAPJ,WAOI,oDAPJ,WAOI,qDAPJ,gBAOI,6BAPJ,cAOI,sDAPJ,aAOI,qHAPJ,eAOI,yEAPJ,eAOI,2HAPJ,eAOI,qHAPJ,eAOI,2HAPJ,eAOI,2HAPJ,eAOI,6HAPJ,oBAOI,6EAPJ,kBAOI,+HAPJ,aAOI,yHAPJ,eAOI,6EAPJ,eAOI,+HAPJ,eAOI,yHAPJ,eAOI,+HAPJ,eAOI,+HAPJ,eAOI,iIAPJ,oBAOI,iFAPJ,kBAOI,mIAPJ,gBAOI,2HAPJ,kBAOI,+EAPJ,kBAOI,iIAPJ,kBAOI,2HAPJ,kBAOI,iIAPJ,kBAOI,iIAPJ,kBAOI,mIAPJ,uBAOI,mFAPJ,qBAOI,qIAPJ,eAOI,uHAPJ,iBAOI,2EAPJ,iBAOI,6HAPJ,iBAOI,uHAPJ,iBAOI,6HAPJ,iBAOI,6HAPJ,iBAOI,+HAPJ,sBAOI,+EAPJ,oBAOI,iIAPJ,SAOI,8BAPJ,WAOI,6BAPJ,MAOI,sBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,aAOI,uBAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,aAOI,uBAPJ,aAOI,uBAPJ,aAOI,uBAPJ,oBAOI,8BAPJ,iBAOI,2BAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,iBAOI,2BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,0BQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,0BQGI,iBAOI,sBAPJ,eAOI,uBAPJ,gBAOI,sBAPJ,wBAOI,8BAPJ,sBAOI,4BAPJ,qBAOI,2BAPJ,sBAOI,iCAPJ,qBAOI,2BAPJ,cAOI,0BAPJ,oBAOI,gCAPJ,aAOI,yBAPJ,YAOI,wBAPJ,mBAOI,+BAPJ,aAOI,yBAPJ,iBAOI,6BAPJ,kBAOI,8BAPJ,YAOI,wBAPJ,mBAOI,+BAPJ,YAOI,wBAPJ,eAOI,yBAPJ,cAOI,8BAPJ,iBAOI,iCAPJ,sBAOI,sCAPJ,yBAOI,yCAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,mBAOI,yBAPJ,mBAOI,yBAPJ,eAOI,0BAPJ,iBAOI,4BAPJ,uBAOI,kCAPJ,2BAOI,sCAPJ,yBAOI,oCAPJ,4BAOI,kCAPJ,6BAOI,yCAPJ,4BAOI,wCAPJ,4BAOI,wCAPJ,uBAOI,kCAPJ,qBAOI,gCAPJ,wBAOI,8BAPJ,0BAOI,gCAPJ,yBAOI,+BAPJ,yBAOI,oCAPJ,uBAOI,kCAPJ,0BAOI,gCAPJ,2BAOI,uCAPJ,0BAOI,sCAPJ,2BAOI,iCAPJ,qBAOI,2BAPJ,sBAOI,iCAPJ,oBAOI,+BAPJ,uBAOI,6BAPJ,yBAOI,+BAPJ,wBAOI,8BAPJ,iBAOI,oBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,gBAOI,mBAPJ,SAOI,oBAPJ,SAOI,yBAPJ,SAOI,wBAPJ,SAOI,uBAPJ,SAOI,yBAPJ,SAOI,uBAPJ,YAOI,uBAPJ,UAOI,mDAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,yDAPJ,UAOI,6DAPJ,UAOI,yDAPJ,aAOI,yDAPJ,UAOI,mDAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,yDAPJ,UAOI,6DAPJ,UAOI,yDAPJ,aAOI,yDAPJ,UAOI,wBAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,2BAPJ,UAOI,6BAPJ,UAOI,2BAPJ,aAOI,2BAPJ,UAOI,0BAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,+BAPJ,UAOI,6BAPJ,aAOI,6BAPJ,UAOI,2BAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,gCAPJ,UAOI,8BAPJ,aAOI,8BAPJ,UAOI,yBAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,8BAPJ,UAOI,4BAPJ,aAOI,4BAPJ,SAOI,qBAPJ,SAOI,0BAPJ,SAOI,yBAPJ,SAOI,wBAPJ,SAOI,0BAPJ,SAOI,wBAPJ,UAOI,qDAPJ,UAOI,+DAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,+DAPJ,UAOI,2DAPJ,UAOI,qDAPJ,UAOI,+DAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,+DAPJ,UAOI,2DAPJ,UAOI,yBAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,8BAPJ,UAOI,4BAPJ,UAOI,2BAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,gCAPJ,UAOI,8BAPJ,UAOI,4BAPJ,UAOI,iCAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,iCAPJ,UAOI,+BAPJ,UAOI,0BAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,+BAPJ,UAOI,6BAPJ,WAOI,iBAPJ,WAOI,sBAPJ,WAOI,qBAPJ,WAOI,oBAPJ,WAOI,sBAPJ,WAOI,oBAPJ,eAOI,qBAPJ,eAOI,0BAPJ,eAOI,yBAPJ,eAOI,wBAPJ,eAOI,0BAPJ,eAOI,wBAPJ,kBAOI,wBAPJ,kBAOI,6BAPJ,kBAOI,4BAPJ,kBAOI,2BAPJ,kBAOI,6BAPJ,kBAOI,2BAPJ,gBAOI,2BAPJ,cAOI,4BAPJ,iBAOI,6BAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,wBAOI,8BAPJ,qBAOI,2BAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,qBAOI,4BCtDZ,0BD+CQ,MAOI,0BAPJ,MAOI,4BAPJ,MAOI,6BCnCZ,aD4BQ,gBAOI,0BAPJ,sBAOI,gCAPJ,eAOI,yBAPJ,cAOI,wBAPJ,qBAOI,+BAPJ,eAOI,yBAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,cAOI,wBAPJ,qBAOI,+BAPJ,cAOI,yBEzEZ,4BASI,6VAIA,+MAIA,uhBAIA,qvBAIA,uRAIA,yPAIA,yRAGF,8BACA,wBAMA,mOACA,0GACA,0FAOA,iDC2OI,oBALI,KDpOR,2BACA,2BAKA,yBACA,gCACA,mBACA,gCAEA,0BACA,iCAEA,6CACA,qCACA,2BACA,qCAEA,2CACA,oCACA,0BACA,oCAGA,4BAEA,sBACA,6BACA,gCAEA,6BACA,mCAMA,sBACA,2BAGA,uBACA,yBACA,2BACA,oDAEA,sBACA,yBACA,yBACA,4BACA,6BACA,oDACA,+BAGA,mDACA,4DACA,qDACA,4DAIA,+BACA,8BACA,+CAIA,+BACA,sCACA,iCACA,wCE/GF,qBAGE,sBAeE,8CANJ,MAOM,wBAcN,KACE,SACA,uCD6OI,UALI,yBCtOR,uCACA,uCACA,2BACA,qCACA,mCACA,8BACA,0CASF,GACE,cACA,MhBmnB4B,QgBlnB5B,SACA,wCACA,QhBynB4B,IgB/mB9B,0CACE,aACA,chBwjB4B,MgBrjB5B,YhBwjB4B,IgBvjB5B,YhBwjB4B,IgBvjB5B,8BAGF,ODuMQ,iCA5JJ,0BC3CJ,OD8MQ,gBCzMR,ODkMQ,kCA5JJ,0BCtCJ,ODyMQ,kBCpMR,OD6LQ,kCA5JJ,0BCjCJ,ODoMQ,kBC/LR,ODoLM,UALI,OC1KV,OD+KM,UALI,OCrKV,OD0KM,UALI,KC1JV,EACE,aACA,chBwV0B,KgB9U5B,YACE,iCACA,YACA,8BAMF,QACE,mBACA,kBACA,oBAMF,MAEE,kBAGF,SAGE,aACA,mBAGF,wBAIE,gBAGF,GACE,YhB6b4B,IgBxb9B,GACE,oBACA,cAMF,WACE,gBAQF,SAEE,YhBsa4B,OgB9Z9B,aD6EM,UALI,QCjEV,WACE,QhBqf4B,QgBpf5B,wCASF,QAEE,kBDyDI,UALI,OClDR,cACA,wBAGF,mBACA,eAKA,EACE,gEACA,gBhBiNwC,UgB/MxC,QACE,oDAWF,4DAEE,cACA,qBAOJ,kBAIE,YhBiV4B,yBelUxB,UALI,ICFV,IACE,cACA,aACA,mBACA,cDGI,UALI,OCOR,SDFI,UALI,QCSN,cACA,kBAIJ,KDTM,UALI,OCgBR,2BACA,qBAGA,OACE,cAIJ,IACE,yBDrBI,UALI,OC4BR,MhBs5CkC,kBgBr5ClC,iBhBs5CkC,qBiB1rDhC,gBDuSF,QACE,UD5BE,UALI,IC4CV,OACE,gBAMF,QAEE,sBAQF,MACE,oBACA,yBAGF,QACE,YhB4X4B,MgB3X5B,ehB2X4B,MgB1X5B,MhB4Z4B,0BgB3Z5B,gBAOF,GAEE,mBACA,gCAGF,2BAME,qBACA,mBACA,eAQF,MACE,qBAMF,OAEE,gBAQF,iCACE,UAKF,sCAKE,SACA,oBD3HI,UALI,QCkIR,oBAIF,cAEE,oBAKF,cACE,eAGF,OAGE,iBAGA,gBACE,UAOJ,0IACE,wBAQF,gDAIE,0BAGE,4GACE,eAON,mBACE,UACA,kBAKF,SACE,gBAUF,SACE,YACA,UACA,SACA,SAQF,OACE,WACA,WACA,UACA,chBoN4B,MepatB,iCCmNN,oBD/WE,0BCwWJ,ODrMQ,kBC8MN,SACE,WAOJ,+OAOE,UAGF,4BACE,YASF,cACE,6BACA,oBAmBF,4BACE,wBAKF,+BACE,UAOF,uBACE,aACA,0BAKF,OACE,qBAKF,OACE,SAOF,QACE,kBACA,eAQF,SACE,wBAQF,SACE,wBEpkBF,MHmQM,UALI,QG5PR,YlBwoB4B,IkBnoB5B,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,gBGvQN,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,kBGvQN,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,gBGvQN,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,kBGvQN,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,gBGvQN,WHgQM,iCG5PJ,YlBynBkB,IkBxnBlB,YlBwmB0B,IezgB1B,0BGpGF,WHuQM,kBG/OR,eCvDE,eACA,gBD2DF,aC5DE,eACA,gBD8DF,kBACE,qBAEA,mCACE,alBsoB0B,MkB5nB9B,YH8MM,UALI,QGvMR,yBAIF,YACE,clBiUO,Ke1HH,UALI,QG/LR,wBACE,gBAIJ,mBACE,iBACA,clBuTO,Ke1HH,UALI,QGtLR,ME5ES,QF8ET,2BACE,aGhGJ,WCIE,eAGA,YDDF,eACE,QrB2jDkC,OqB1jDlC,iBrB2jDkC,kBqB1jDlC,2DJGE,sCKRF,eAGA,YDcF,QAEE,qBAGF,YACE,oBACA,cAGF,gBNyPM,UALI,QMlPR,MrB8iDkC,0BuBhlDlC,mGCHA,iBACA,iBACA,WACA,0CACA,yCACA,kBACA,iBpBsDE,yBmB5CE,yBACE,UvBkee,OIvbnB,yBmB5CE,uCACE,UvBkee,OIvbnB,yBmB5CE,qDACE,UvBkee,OIvbnB,0BmB5CE,mEACE,UvBkee,QIvbnB,0BmB5CE,kFACE,UvBkee,QyBlfvB,MAEI,2JAKF,KCNA,iBACA,iBACA,aACA,eAEA,uCACA,2CACA,0CDEE,OCOF,cACA,WACA,eACA,0CACA,yCACA,8BA+CI,KACE,YAGF,iBApCJ,cACA,WAcA,cACE,cACA,WAFF,cACE,cACA,UAFF,cACE,cACA,qBAFF,cACE,cACA,UAFF,cACE,cACA,UAFF,cACE,cACA,qBA+BE,UAhDJ,cACA,WAqDQ,OAhEN,cACA,kBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,WAuEQ,UAxDV,wBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,WAxDV,yBAwDU,WAxDV,yBAmEM,WAEE,iBAGF,WAEE,iBAPF,WAEE,uBAGF,WAEE,uBAPF,WAEE,sBAGF,WAEE,sBAPF,WAEE,oBAGF,WAEE,oBAPF,WAEE,sBAGF,WAEE,sBAPF,WAEE,oBAGF,WAEE,oBtB1DN,yBsBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBtB1DN,yBsBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBtB1DN,yBsBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBtB1DN,0BsBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBtB1DN,0BsBUE,SACE,YAGF,qBApCJ,cACA,WAcA,kBACE,cACA,WAFF,kBACE,cACA,UAFF,kBACE,cACA,qBAFF,kBACE,cACA,UAFF,kBACE,cACA,UAFF,kBACE,cACA,qBA+BE,cAhDJ,cACA,WAqDQ,WAhEN,cACA,kBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,WAuEQ,cAxDV,cAwDU,cAxDV,wBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,eAxDV,yBAwDU,eAxDV,yBAmEM,mBAEE,iBAGF,mBAEE,iBAPF,mBAEE,uBAGF,mBAEE,uBAPF,mBAEE,sBAGF,mBAEE,sBAPF,mBAEE,oBAGF,mBAEE,oBAPF,mBAEE,sBAGF,mBAEE,sBAPF,mBAEE,oBAGF,mBAEE,qBCrHV,uBAEE,+BACA,4BACA,gCACA,6BAEA,uCACA,iCACA,gDACA,kCACA,+CACA,2CACA,8CACA,yCACA,6CACA,yCAEA,WACA,c3BkYO,K2BjYP,e3BssB4B,I2BrsB5B,0CAOA,6EACE,oBAEA,qFACA,oCACA,oB3B8sB0B,uB2B7sB1B,2GAGF,yCACE,uBAGF,yCACE,sBAIJ,qBACE,+DAOF,aACE,iBAUA,4BACE,sBAeF,gCACE,sCAGA,kCACE,sCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,qDACA,+CAMF,yDACE,qDACA,+CAQJ,cACE,qDACA,+CAQA,8BACE,oDACA,8CC5IF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,iBAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,cAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,aAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CDiJA,kBACE,gBACA,iCvB3FF,4BuByFA,qBACE,gBACA,kCvB3FF,4BuByFA,qBACE,gBACA,kCvB3FF,4BuByFA,qBACE,gBACA,kCvB3FF,6BuByFA,qBACE,gBACA,kCvB3FF,6BuByFA,sBACE,gBACA,kCEnKN,YACE,c7Bq2BsC,M6Bl2BtC,YCJuB,IDKvB,MTmBS,QSdX,gBACE,oDACA,uDACA,gBd8QI,UALI,QctQR,YChBuB,IDiBvB,YEfiB,IFgBjB,MTMS,QSHX,mBACE,kDACA,qDdoQI,UALI,Qc3PV,mBACE,mDACA,sDd8PI,UALI,SiBtRV,WACE,WhC61BsC,OenkBlC,UALI,QiBjRR,MhC61BsC,0BiCl2BxC,cACE,cACA,WACA,uBlBwRI,UALI,KkBhRR,YjCkmB4B,IiCjmB5B,YFLiB,IEMjB,MjC03BsC,qBiCz3BtC,gBACA,iBbGM,KaFN,4BACA,2DhBGE,sChBHE,WgCMJ,0DhCFI,uCgChBN,chCiBQ,iBgCGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MjCo2BoC,qBiCn2BpC,iBblBI,KamBJ,abJI,KaKJ,UAKE,WHlCmB,KGsCvB,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MjC00BoC,0BiCx0BpC,UAQF,uBAEE,iBjC4yBoC,uBiCzyBpC,UAIF,oCACE,uBACA,0BACA,kBjCmrB0B,OiClrB1B,MjCoyBoC,qBkCl4BtC,iBlCmiCgC,sBiCn8B9B,oBACA,qBACA,mBACA,eACA,wBjC+rB0B,uBiC9rB1B,gBhCzFE,WgC0FF,mHhCtFE,uCgC0EJ,oChCzEM,iBgCwFN,yEACE,iBjC07B8B,uBiCj7BlC,wBACE,cACA,WACA,kBACA,gBACA,YFtHiB,IEuHjB,MjCyxBsC,qBiCxxBtC,+BACA,2BACA,sCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WjC0wBsC,wDiCzwBtC,qBlByII,UALI,SEvQN,yCgBuIF,uCACE,qBACA,wBACA,kBjCmoB0B,MiC/nB9B,iBACE,WjC8vBsC,sDiC7vBtC,mBlB4HI,UALI,QEvQN,yCgBoJF,uCACE,mBACA,qBACA,kBjC0nB0B,KiClnB5B,sBACE,WjC2uBoC,yDiCxuBtC,yBACE,WjCwuBoC,wDiCruBtC,yBACE,WjCquBoC,sDiChuBxC,oBACE,MjCmuBsC,KiCluBtC,OjC4tBsC,yDiC3tBtC,QjCglB4B,QiC9kB5B,mDACE,eAGF,uCACE,oBhBvLA,sCgB2LF,0CACE,oBhB5LA,sCgBgMF,2CjC4sBsC,wDiC3sBtC,2CjC4sBsC,sDmC35BxC,aACE,yPAEA,cACA,WACA,uCpBqRI,UALI,KoB7QR,YnC+lB4B,ImC9lB5B,YJRiB,IISjB,MnCu3BsC,qBmCt3BtC,gBACA,sBACA,kFACA,4BACA,oBnC69BkC,oBmC59BlC,gBnC69BkC,UmC59BlC,2DlBHE,2BhBHE,WkCSJ,0DlCLI,uCkCfN,alCgBQ,iBkCMN,mBACE,afII,KeHJ,UAKE,WLxByB,KK4B7B,0DAEE,cnC4uB0B,OmC3uB1B,sBAGF,sBAEE,iBnCq1BoC,uBmCh1BtC,4BACE,oBACA,uCAIJ,gBACE,YnCquB4B,OmCpuB5B,enCouB4B,OmCnuB5B,anCouB4B,MejgBxB,UALI,SEvQN,2BkB8CJ,gBACE,YnCiuB4B,MmChuB5B,enCguB4B,MmC/tB5B,anCguB4B,KergBxB,UALI,QEvQN,2BmBfJ,YACE,cACA,WpCm6BwC,OoCl6BxC,apCm6BwC,MoCl6BxC,cpCm6BwC,QoCj6BxC,8BACE,WACA,mBAIJ,oBACE,cpCy5BwC,MoCx5BxC,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,yBAEA,MpCy4BwC,IoCx4BxC,OpCw4BwC,IoCv4BxC,gBACA,mBACA,gBACA,yCACA,+CACA,4BACA,2BACA,wBACA,OpC04BwC,oDoCz4BxC,yBAGA,iCnB1BE,oBmB8BF,8BAEE,cpCk4BsC,IoC/3BxC,yBACE,OpCy3BsC,gBoCt3BxC,wBACE,ahB3BI,KgB4BJ,UACA,WpC+foB,iCoC5ftB,0BACE,iBhBrDG,QgBsDH,ahBtDG,QgBwDH,yCAII,wPAIJ,sCAII,gKAKN,+CACE,iBhBlFK,QgBmFL,ahBnFK,QgBwFH,kPAIJ,2BACE,oBACA,YACA,QpCi2BuC,GoC11BvC,2FACE,eACA,QpCw1BqC,GoC10B3C,aACE,apCm1BgC,MoCj1BhC,+BACE,4KAEA,MpC60B8B,IoC50B9B,mBACA,0CACA,gCnBhHA,kBhBHE,WmCqHF,qCnCjHE,uCmCyGJ,+BnCxGM,iBmCkHJ,qCACE,2JAGF,uCACE,oBpC40B4B,aoCv0B1B,2JAKN,gCACE,cpCuzB8B,MoCtzB9B,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,apCqyBgC,KoClyBlC,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QpCspBwB,IqCh0B9B,YACE,WACA,YACA,UACA,gBACA,+BAEA,kBACE,UAIA,mDrC4gCuC,oBqC3gCvC,+CrC2gCuC,oBqCxgCzC,8BACE,SAGF,kCACE,MrC6/BuC,KqC5/BvC,OrC4/BuC,KqC3/BvC,oBACA,gBH1BF,yBG4BE,OrC2/BuC,EiBxgCvC,mBhBHE,WoCmBF,4FpCfE,uCoCMJ,kCpCLM,iBoCgBJ,yCHjCF,iBlC4hCyC,QqCt/BzC,2CACE,MrCs+B8B,KqCr+B9B,OrCs+B8B,MqCr+B9B,oBACA,OrCq+B8B,QqCp+B9B,iBrCq+B8B,sBqCp+B9B,2BpB7BA,mBoBkCF,8BACE,MrCk+BuC,KqCj+BvC,OrCi+BuC,KqCh+BvC,gBHpDF,yBGsDE,OrCi+BuC,EiBxgCvC,mBhBHE,WoC6CF,4FpCzCE,uCoCiCJ,8BpChCM,iBoC0CJ,qCH3DF,iBlC4hCyC,QqC59BzC,8BACE,MrC48B8B,KqC38B9B,OrC48B8B,MqC38B9B,oBACA,OrC28B8B,QqC18B9B,iBrC28B8B,sBqC18B9B,2BpBvDA,mBoB4DF,qBACE,oBAEA,2CACE,iBrC88BqC,0BqC38BvC,uCACE,iBrC08BqC,0BsCjiC3C,eACE,kBAEA,gGAGE,OtCsiCoC,gDsCriCpC,WtCqiCoC,gDsCpiCpC,YtCqiCoC,KsCliCtC,qBACE,kBACA,MACA,OACA,UACA,YACA,oBACA,gBACA,iBACA,uBACA,mBACA,oBACA,kDACA,qBrCRE,WqCSF,kDrCLE,uCqCTJ,qBrCUM,iBqCON,oEAEE,oBAEA,8FACE,oBAGF,oMAEE,YtC0gCkC,SsCzgClC,etC0gCkC,QsCvgCpC,sGACE,YtCqgCkC,SsCpgClC,etCqgCkC,QsCjgCtC,4BACE,YtC+/BoC,SsC9/BpC,etC+/BoC,QsCx/BpC,mLACE,2CACA,UtCy/BkC,oDsCv/BlC,+MACE,kBACA,mBACA,WACA,OtCi/BgC,MsCh/BhC,WACA,iBlBlDA,KHEJ,sCqBuDA,oDACE,2CACA,UtCw+BkC,oDsCn+BpC,6CACE,sCAIJ,2EAEE,MlBhEO,QkBkEP,yFACE,iBtCwyBkC,uBuC/3BxC,aACE,kBACA,aACA,eACA,oBACA,WAEA,iFAGE,kBACA,cACA,SACA,YAIF,0GAGE,UAMF,kBACE,kBACA,UAEA,wBACE,UAWN,kBACE,aACA,mBACA,uBxB8OI,UALI,KwBvOR,YvCyjB4B,IuCxjB5B,YR9CiB,IQ+CjB,MvCi1BsC,qBuCh1BtC,kBACA,mBACA,iBvCw6BsC,sBuCv6BtC,2DtBtCE,sCsBgDJ,kHAIE,mBxBwNI,UALI,QEvQN,yCsByDJ,kHAIE,qBxB+MI,UALI,SEvQN,yCsBkEJ,0DAEE,mBAaE,wVtBjEA,0BACA,6BsByEA,yUtB1EA,0BACA,6BsBsFF,0IACE,8CtB1EA,yBACA,4BsB6EF,uHtB9EE,yBACA,4BuBxBF,gBACE,aACA,WACA,WxCq0BoC,OenkBlC,UALI,QyB1PN,MxCgjCqB,2BwC7iCvB,eACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iBzBqPE,UALI,SyB7ON,MxCmiCqB,KwCliCrB,iBxCkiCqB,kBiB7jCrB,sCuBgCA,8HAEE,cA/CF,0DAqDE,axCqhCmB,kCwClhCjB,cxC41BgC,sBwC31BhC,2PACA,4BACA,yDACA,8DAGF,sEACE,axC0gCiB,kCwCzgCjB,WxCygCiB,0CwC1kCrB,0EA0EI,cxC00BgC,sBwCz0BhC,8EA3EJ,wDAkFE,axCw/BmB,kCwCr/BjB,4NAEE,oQACA,cxCw5B8B,SwCv5B9B,6DACA,wEAIJ,oEACE,axC2+BiB,kCwC1+BjB,WxC0+BiB,0CwC1kCrB,sEAwGI,yCAxGJ,kEA+GE,axC29BmB,kCwCz9BnB,kFACE,iBxCw9BiB,2BwCr9BnB,8EACE,WxCo9BiB,0CwCj9BnB,sGACE,MxCg9BiB,2BwC38BrB,qDACE,iBAhIF,kVA0IM,UAtHR,kBACE,aACA,WACA,WxCq0BoC,OenkBlC,UALI,QyB1PN,MxCgjCqB,6BwC7iCvB,iBACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iBzBqPE,UALI,SyB7ON,MxCmiCqB,KwCliCrB,iBxCkiCqB,iBiB7jCrB,sCuBgCA,8IAEE,cA/CF,8DAqDE,axCqhCmB,oCwClhCjB,cxC41BgC,sBwC31BhC,4UACA,4BACA,yDACA,8DAGF,0EACE,axC0gCiB,oCwCzgCjB,WxCygCiB,yCwC1kCrB,8EA0EI,cxC00BgC,sBwCz0BhC,8EA3EJ,4DAkFE,axCw/BmB,oCwCr/BjB,oOAEE,qVACA,cxCw5B8B,SwCv5B9B,6DACA,wEAIJ,wEACE,axC2+BiB,oCwC1+BjB,WxC0+BiB,yCwC1kCrB,0EAwGI,yCAxGJ,sEA+GE,axC29BmB,oCwCz9BnB,sFACE,iBxCw9BiB,6BwCr9BnB,kFACE,WxCo9BiB,yCwCj9BnB,0GACE,MxCg9BiB,6BwC38BrB,uDACE,iBAhIF,8VA4IM,UC9IV,KAEE,yBACA,2BACA,uB1BuRI,mBALI,K0BhRR,0BACA,0BACA,qCACA,yBACA,8CACA,mCACA,gCACA,yCACA,0BACA,gCACA,4EAGA,qBACA,wDACA,sC1BsQI,UALI,wB0B/PR,sCACA,sCACA,0BACA,kBACA,qBAEA,sBACA,eACA,iBACA,mExBjBE,0CiBfF,iBOkCqB,iBxCtBjB,WwCwBJ,mHxCpBI,uCwChBN,KxCiBQ,iBwCqBN,WACE,gCAEA,wCACA,8CAGF,sBAEE,0BACA,kCACA,wCAGF,mBACE,gCPrDF,iBOsDuB,uBACrB,8CACA,UAKE,0CAIJ,8BACE,8CACA,UAKE,0CAIJ,mGAKE,iCACA,yCAGA,+CAGA,yKAKI,0CAKN,mDAGE,mCACA,oBACA,2CAEA,iDACA,uCAYF,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,sCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qCDyFA,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,SCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,kBCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,yCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDmHA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,qBACA,4BACA,2BACA,wBACA,kCACA,mCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oBD0FA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,qCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,iBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,0BCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,qBACA,4BACA,2BACA,wBACA,kCACA,yCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBDsGF,UACE,0BACA,qCACA,yBACA,mCACA,iDACA,yCACA,kDACA,0CACA,iCACA,4CACA,gCACA,sCAEA,gBzCuRwC,UyC7QxC,wBACE,0BAGF,gBACE,gCAWJ,2BCxIE,2BACA,yB3B8NI,mBALI,Q2BvNR,gCDyIF,2BC5IE,4BACA,2B3B8NI,mBALI,S2BvNR,gCCnEF,M1CgBM,W0CfJ,oB1CmBI,uC0CpBN,M1CqBQ,iB0ClBN,iBACE,UAMF,qBACE,aAIJ,YACE,SACA,gB1CDI,W0CEJ,iB1CEI,uC0CLN,Y1CMQ,iB0CDN,gCACE,QACA,Y1CNE,W0COF,gB1CHE,uEACE,iB2CpBR,sEAME,kBAGF,iBACE,mBCwBE,wBACE,qBACA,Y7C6hBwB,O6C5hBxB,e7C2hBwB,O6C1hBxB,WArCJ,sBACA,sCACA,gBACA,qCA0DE,8BACE,cD9CN,eAEE,2BACA,+BACA,2BACA,gCACA,+B7BuQI,wBALI,K6BhQR,0CACA,oCACA,+DACA,qDACA,mDACA,0FACA,6DACA,uCACA,4DACA,+CACA,qDACA,mDACA,sCACA,sCACA,4DACA,mCACA,sCACA,oCACA,qCACA,uCAGA,kBACA,kCACA,aACA,uCACA,kEACA,S7B0OI,UALI,6B6BnOR,+BACA,gBACA,gBACA,uCACA,4BACA,6E3BzCE,+C2B6CF,+BACE,SACA,OACA,qCAwBA,qBACE,qBAEA,qCACE,WACA,OAIJ,mBACE,mBAEA,mCACE,QACA,UxC1CJ,yBwC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WxC1CJ,yBwC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WxC1CJ,yBwC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WxC1CJ,0BwC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WxC1CJ,0BwC4BA,yBACE,qBAEA,yCACE,WACA,OAIJ,uBACE,mBAEA,uCACE,QACA,WAUN,uCACE,SACA,YACA,aACA,wCCpFA,gCACE,qBACA,Y7C6hBwB,O6C5hBxB,e7C2hBwB,O6C1hBxB,WA9BJ,aACA,sCACA,yBACA,qCAmDE,sCACE,cDgEJ,wCACE,MACA,WACA,UACA,aACA,sCClGA,iCACE,qBACA,Y7C6hBwB,O6C5hBxB,e7C2hBwB,O6C1hBxB,WAvBJ,oCACA,eACA,uCACA,uBA4CE,uCACE,cD0EF,iCACE,iBAMJ,0CACE,MACA,WACA,UACA,aACA,uCCnHA,mCACE,qBACA,Y7C6hBwB,O6C5hBxB,e7C2hBwB,O6C1hBxB,WAWA,mCACE,aAGF,oCACE,qBACA,a7C0gBsB,O6CzgBtB,e7CwgBsB,O6CvgBtB,WAnCN,oCACA,wBACA,uCAsCE,yCACE,cD2FF,oCACE,iBAON,kBACE,SACA,6CACA,gBACA,mDACA,UAMF,eACE,cACA,WACA,4EACA,WACA,Y5Cyb4B,I4Cxb5B,oCACA,mBACA,qBACA,mBACA,+BACA,S3BtKE,uD2ByKF,0CAEE,0CV1LF,iBU4LuB,iCAGvB,4CAEE,2CACA,qBVlMF,iBUmMuB,kCAGvB,gDAEE,6CACA,oBACA,+BAMJ,oBACE,cAIF,iBACE,cACA,gFACA,gB7BmEI,UALI,S6B5DR,sCACA,mBAIF,oBACE,cACA,4EACA,oCAIF,oBAEE,6BACA,0BACA,+DACA,2BACA,kCACA,qCACA,6DACA,uDACA,sCACA,sCACA,2CACA,oCEtPF,+BAEE,kBACA,oBACA,sBAEA,yCACE,kBACA,cAKF,kXAME,UAKJ,aACE,aACA,eACA,2BAEA,0BACE,WAIJ,W7BhBI,qB6BoBF,qFAEE,8CAIF,qJ7BVE,0BACA,6B6BmBF,6G7BNE,yBACA,4B6BwBJ,uBACE,qBACA,oBAEA,2GAGE,cAGF,0CACE,eAIJ,yEACE,sBACA,qBAGF,yEACE,qBACA,oBAoBF,oBACE,sBACA,uBACA,uBAEA,wDAEE,WAGF,4FAEE,6CAIF,qH7B1FE,6BACA,4B6B8FF,oF7B7GE,yBACA,0B8BxBJ,KAEE,8BACA,gCAEA,4BACA,0CACA,sDACA,wDAGA,aACA,eACA,eACA,gBACA,gBAGF,UACE,cACA,kEhCsQI,UALI,6BgC/PR,2CACA,+BACA,qBACA,gBACA,S9CfI,W8CgBJ,uF9CZI,uC8CGN,U9CFQ,iB8CaN,gCAEE,qCAIF,wBACE,UACA,W/CkhBoB,iC+C9gBtB,sCAEE,wCACA,oBACA,eAQJ,UAEE,mDACA,oCACA,qDACA,6FACA,sCACA,mCACA,6DAGA,oFAEA,oBACE,uDACA,2D9B7CA,wDACA,yD8B+CA,oDAGE,kBACA,wDAIJ,8DAEE,2CACA,mDACA,yDAGF,yBAEE,oD9BjEA,yBACA,0B8B2EJ,WAEE,sDACA,uCACA,uCAGA,qB9B5FE,gD8BgGF,uDAEE,4CbjHF,iBakHuB,mCASzB,eAEE,6BACA,0CACA,+DAGA,gCAEA,yBACE,gBACA,eACA,uEAEA,8DAEE,iCAIJ,+DAEE,Y/C0d0B,I+Czd1B,gDACA,iCAUF,wCAEE,cACA,kBAKF,kDAEE,aACA,YACA,kBAMF,iEACE,WAUF,uBACE,aAEF,qBACE,cC7LJ,QAEE,yBACA,yBACA,4DACA,iEACA,oEACA,gEACA,oCACA,mCACA,kCACA,+DACA,qEACA,uCACA,uCACA,uCACA,uCACA,4QACA,2EACA,2CACA,mCACA,6DAGA,kBACA,aACA,eACA,mBACA,8BACA,8DAMA,2JACE,aACA,kBACA,mBACA,8BAoBJ,cACE,6CACA,gDACA,+CjC4NI,UALI,iCiCrNR,mCACA,qBACA,mBAEA,wCAEE,yCAUJ,YAEE,2BACA,gCAEA,4BACA,4CACA,wDACA,8DAGA,aACA,sBACA,eACA,gBACA,gBAGE,wDAEE,oCAIJ,2BACE,gBASJ,aACE,YhD4gCkC,MgD3gClC,ehD2gCkC,MgD1gClC,6BAEA,yDAGE,oCAaJ,iBACE,gBACA,YAGA,mBAIF,gBACE,8EjCyII,UALI,mCiClIR,cACA,6BACA,+BACA,0E/BxIE,qDhBHE,W+C6IJ,oC/CzII,uC+CiIN,gB/ChIQ,iB+C0IN,sBACE,qBAGF,sBACE,qBACA,UACA,sDAMJ,qBACE,qBACA,YACA,aACA,sBACA,kDACA,4BACA,2BACA,qBAGF,mBACE,yCACA,gB5C1HE,yB4CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB5C5LR,yB4CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB5C5LR,yB4CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB5C5LR,0B4CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB5C5LR,0B4CsIA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,kDACA,iDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,kDACA,iDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B/C9NJ,W+CgOI,KAGA,4CACE,aAGF,0CACE,aACA,YACA,UACA,mBAiBZ,yCAGE,6CACA,mDACA,sDACA,+BACA,8BACA,oCACA,2DACA,+QClRF,MAEE,yBACA,yBACA,iCACA,wBACA,2BACA,+CACA,2DACA,iDACA,uBACA,wFACA,gCACA,8BACA,uDACA,sBACA,mBACA,kBACA,gCACA,oCACA,0BAGA,kBACA,aACA,sBACA,YACA,6BACA,2BACA,qBACA,mCACA,2BACA,qEhCjBE,2CgCqBF,SACE,eACA,cAGF,kBACE,mBACA,sBAEA,8BACE,mBhCtBF,0DACA,2DgCyBA,6BACE,sBhCbF,8DACA,6DgCmBF,8DAEE,aAIJ,WAGE,cACA,wDACA,2BAGF,YACE,4CACA,iCAGF,eACE,oDACA,gBACA,oCAGF,sBACE,gBAQA,sBACE,oCAQJ,aACE,kEACA,gBACA,+BACA,uCACA,4EAEA,yBhC7FE,wFgCkGJ,aACE,kEACA,+BACA,uCACA,yEAEA,wBhCxGE,wFgCkHJ,kBACE,qDACA,oDACA,oDACA,gBAEA,mCACE,mCACA,sCAIJ,mBACE,qDACA,oDAIF,kBACE,kBACA,MACA,QACA,SACA,OACA,2ChC1IE,iDgC8IJ,yCAGE,WAGF,wBhC3II,0DACA,2DgC+IJ,2BhClII,8DACA,6DgC8IF,kBACE,0C7C3HA,yB6CuHJ,YAQI,aACA,mBAGA,kBAEE,YACA,gBAEA,wBACE,cACA,cAKA,mChC3KJ,0BACA,6BgC6KM,iGAGE,0BAEF,oGAGE,6BAIJ,oChC5KJ,yBACA,4BgC8KM,mGAGE,yBAEF,sGAGE,6BCpOZ,WAEE,2CACA,qCACA,+KACA,oDACA,+BACA,sDACA,sEACA,sCACA,mCACA,+BACA,+BACA,ySACA,uCACA,mDACA,+DACA,gTACA,4CACA,0CACA,uCACA,oCACA,kCACA,kCAIF,kBACE,kBACA,aACA,mBACA,WACA,4EnC2PI,UALI,KmCpPR,oCACA,gBACA,4CACA,SjCtBE,gBiCwBF,qBjD3BI,WiD4BJ,+BjDxBI,uCiDWN,kBjDVQ,iBiDyBN,kCACE,uCACA,+CACA,gGAEA,yCACE,qDACA,iDAKJ,yBACE,cACA,yCACA,0CACA,iBACA,WACA,8CACA,4BACA,mDjDlDE,WiDmDF,wCjD/CE,uCiDsCJ,yBjDrCM,iBiDiDN,wBACE,UAGF,wBACE,UACA,wDACA,UACA,oDAIJ,kBACE,gBAGF,gBACE,gCACA,wCACA,+EAEA,8BjC/DE,yDACA,0DiCiEA,gDjClEA,+DACA,gEiCsEF,oCACE,aAIF,6BjC9DE,6DACA,4DiCiEE,yDjClEF,mEACA,kEiCsEA,iDjCvEA,6DACA,4DiC4EJ,gBACE,8EASA,qCACE,eAGF,iCACE,eACA,cjCpHA,gBiCuHA,0DACA,4DAGE,gHjC3HF,gBkCnBJ,YAEE,6BACA,6BACA,oCAEA,qBACA,gCACA,yDACA,uCACA,6DAGA,aACA,eACA,sEACA,iDpC+QI,UALI,+BoCxQR,gBACA,0FAMA,kCACE,iDAEA,0CACE,WACA,kDACA,yCACA,uFAIJ,wBACE,6CCrCJ,YAEE,mCACA,oCrC4RI,0BALI,KqCrRR,4BACA,4BACA,gCACA,qDACA,uCACA,kCACA,kCACA,2DACA,kCACA,kCACA,wEACA,mCACA,mCACA,6CACA,wCACA,qCACA,8DAGA,ajCpBA,eACA,gBiCuBF,WACE,kBACA,cACA,sErCgQI,UALI,+BqCzPR,iCACA,qBACA,yCACA,iFnDpBI,WmDqBJ,mHnDjBI,uCmDQN,WnDPQ,iBmDkBN,iBACE,UACA,uCAEA,+CACA,qDAGF,iBACE,UACA,uCACA,+CACA,QpDyuCgC,EoDxuChC,iDAGF,qCAEE,UACA,wClBtDF,iBkBuDuB,+BACrB,sDAGF,yCAEE,0CACA,oBACA,kDACA,wDAKF,wCACE,YpD4sCgC,aoDvsC9B,kCnC9BF,0DACA,6DmCmCE,iCnClDF,2DACA,8DmCkEJ,eClGE,kCACA,mCtC0RI,0BALI,QsCnRR,0DDmGF,eCtGE,kCACA,mCtC0RI,0BALI,SsCnRR,0DCFF,OAEE,6BACA,6BvCuRI,qBALI,OuChRR,4BACA,uBACA,kDAGA,qBACA,4DvC+QI,UALI,0BuCxQR,wCACA,cACA,4BACA,kBACA,mBACA,wBrCJE,4CqCSF,aACE,aAKJ,YACE,kBACA,SChCF,OAEE,2BACA,2BACA,6BACA,iCACA,0BACA,qCACA,wDACA,kDACA,+BAGA,kBACA,4DACA,4CACA,4BACA,oCACA,8BtCHE,4CsCQJ,eAEE,cAIF,YACE,YvD6kB4B,IuD5kB5B,iCAQF,mBACE,cvDk+C8B,KuD/9C9B,8BACE,kBACA,MACA,QACA,UACA,qBAQF,eACE,kDACA,2CACA,yDACA,uDAJF,iBACE,oDACA,6CACA,2DACA,yDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,iBACE,oDACA,6CACA,2DACA,yDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,WACE,8CACA,uCACA,qDACA,mDAJF,oBACE,uDACA,gDACA,8DACA,4DAJF,aACE,gDACA,yCACA,uDACA,qDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,iBACE,oDACA,6CACA,2DACA,yDC5DF,gCACE,yBxDqhDgC,MwDhhDpC,4BAGE,2BzCkRI,wBALI,QyC3QR,yCACA,qDACA,qDACA,8BACA,8BACA,8CAGA,aACA,iCACA,gBzCsQI,UALI,6ByC/PR,uCvCRE,+CuCaJ,cACE,aACA,sBACA,uBACA,gBACA,mCACA,kBACA,mBACA,2CvDxBI,WuDyBJ,kCvDrBI,uCuDYN,cvDXQ,iBuDuBR,2NAEE,oEAGF,4BACE,iBAGF,0CACE,WAIA,uBACE,kDAGE,uCAJJ,uBAKM,gBC3DR,YAEE,4CACA,sCACA,qDACA,qDACA,uDACA,qCACA,uCACA,wDACA,6DACA,uDACA,0DACA,yDACA,0DACA,+CACA,mCACA,mCACA,6CAGA,aACA,sBAGA,eACA,gBxCXE,iDwCeJ,qBACE,qBACA,sBAEA,8CAEE,oCACA,0BASJ,wBACE,WACA,wCACA,mBAGA,4DAEE,UACA,8CACA,qBACA,sDAGF,+BACE,+CACA,uDAQJ,iBACE,kBACA,cACA,gFACA,iCACA,qBACA,yCACA,iFAEA,6BxCvDE,+BACA,gCwC0DF,4BxC7CE,mCACA,kCwCgDF,oDAEE,0CACA,oBACA,kDAIF,wBACE,UACA,wCACA,gDACA,sDAIF,kCACE,mBAEA,yCACE,sDACA,mDAaF,uBACE,mBAGE,qExCvDJ,6DAZA,0BwCwEI,qExCxEJ,2DAYA,4BwCiEI,+CACE,aAGF,yDACE,mDACA,oBAEA,gEACE,uDACA,oDrDtFR,yBqD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDrDtFR,yBqD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDrDtFR,yBqD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDrDtFR,0BqD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDrDtFR,0BqD8DA,2BACE,mBAGE,yExCvDJ,6DAZA,0BwCwEI,yExCxEJ,2DAYA,4BwCiEI,mDACE,aAGF,6DACE,mDACA,oBAEA,oEACE,uDACA,qDAcZ,kBxChJI,gBwCmJF,mCACE,mDAEA,8CACE,sBAaJ,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,qBACE,mDACA,4CACA,0DACA,6DACA,6DACA,8DACA,8DACA,sDACA,uDACA,iEAVF,8BACE,4DACA,qDACA,mEACA,6DACA,sEACA,8DACA,uEACA,+DACA,gEACA,0EAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEC5LJ,WAEE,2BACA,qVACA,4BACA,mCACA,mEACA,gCACA,sCACA,wEAGA,uBACA,M1DipD2B,I0DhpD3B,O1DgpD2B,I0D/oD3B,oBACA,gCACA,0EACA,SzCJE,gByCMF,oCAGA,iBACE,gCACA,qBACA,0CAGF,iBACE,UACA,4CACA,0CAGF,wCAEE,oBACA,iBACA,6CAQJ,iBAHE,wCCjDF,OAEE,wBACA,8BACA,6BACA,sBACA,4B5CyRI,qBALI,S4ClRR,mBACA,iDACA,gDACA,4DACA,kDACA,4CACA,mDACA,wDACA,mEAGA,gCACA,e5C2QI,UALI,0B4CpQR,4BACA,oBACA,oCACA,4BACA,uEACA,sC1CRE,4C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,wBAEA,kBACA,+BACA,kBACA,eACA,oBAEA,mCACE,sCAIJ,cACE,aACA,mBACA,4DACA,mCACA,2CACA,4BACA,qF1ChCE,0FACA,2F0CkCF,yBACE,kDACA,sCAIJ,YACE,kCACA,qBC9DF,OAEE,wBACA,wBACA,yBACA,0BACA,0BACA,oBACA,4DACA,gDACA,4BACA,+DACA,kCACA,kCACA,kCACA,qCACA,uDACA,kCACA,kCACA,8BACA,uBACA,uDACA,0CAGA,eACA,MACA,OACA,+BACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,8BAEA,oBAGA,0B3D5CI,W2D6CF,uBACA,U5D87CgC,oBCx+C9B,uC2DwCJ,0B3DvCM,iB2D2CN,0BACE,U5D47CgC,K4Dx7ClC,kCACE,U5Dy7CgC,Y4Dr7CpC,yBACE,6CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,iDAIF,eACE,kBACA,aACA,sBACA,WAEA,4BACA,oBACA,oCACA,4BACA,uE3CrFE,4C2CyFF,UAIF,gBAEE,2BACA,uBACA,2BClHA,eACA,MACA,OACA,QDkH0B,0BCjH1B,YACA,aACA,iBD+G4D,sBC5G5D,+BACA,6BD2G0F,2BAK5F,cACE,aACA,cACA,mBACA,8BACA,uCACA,4F3CtGE,2DACA,4D2CwGF,yBACE,4FACA,gJAKJ,aACE,gBACA,8CAKF,YACE,kBAGA,cACA,gCAIF,cACE,aACA,cACA,eACA,mBACA,yBACA,sEACA,2CACA,yF3C1HE,+DACA,8D2C+HF,gBACE,2CxD5GA,yBwDkHF,OACE,2BACA,yDAIF,cACE,gCACA,kBACA,iBAGF,UACE,yBxD/HA,yBwDoIF,oBAEE,yBxDtIA,0BwD2IF,UACE,0BAUA,kBACE,YACA,eACA,YACA,SAEA,iCACE,YACA,S3C1MJ,gB2C8ME,gE3C9MF,gB2CmNE,8BACE,gBxD3JJ,4BwDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBxD3JJ,4BwDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBxD3JJ,4BwDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBxD3JJ,6BwDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBxD3JJ,6BwDyIA,2BACE,YACA,eACA,YACA,SAEA,0CACE,YACA,S3C1MJ,gB2C8ME,kF3C9MF,gB2CmNE,uCACE,iBEtOR,SAEE,0BACA,8BACA,+BACA,gCACA,sB/CwRI,uBALI,S+CjRR,sCACA,0CACA,oDACA,0BACA,iCACA,kCAGA,iCACA,cACA,gCClBA,Y/D+lB4B,0B+D7lB5B,kBACA,Y/DwmB4B,I+DvmB5B,YhCCiB,oBgCCjB,iBACA,qBACA,iBACA,oBACA,sBACA,kBACA,mBACA,oBACA,gBhDgRI,UALI,4B+ChQR,qBACA,UAEA,gDAEA,wBACE,cACA,oCACA,sCAEA,gCACE,kBACA,WACA,2BACA,mBAKN,2FACE,+CAEA,2GACE,SACA,qFACA,sCAKJ,6FACE,6CACA,qCACA,qCAEA,6GACE,WACA,4HACA,wCAMJ,iGACE,4CAEA,iHACE,YACA,qFACA,yCAKJ,8FACE,8CACA,qCACA,qCAEA,8GACE,UACA,4HACA,uCAsBJ,eACE,sCACA,gEACA,8BACA,kBACA,sC7CjGE,8C+CnBJ,SAEE,0BACA,8BjD4RI,uBALI,SiDrRR,mCACA,kDACA,8DACA,uDACA,4FACA,2DACA,oCACA,sCjDmRI,8BALI,KiD5QR,mCACA,+CACA,kCACA,kCACA,8CACA,+BACA,kCACA,0DAGA,iCACA,cACA,sCDzBA,Y/D+lB4B,0B+D7lB5B,kBACA,Y/DwmB4B,I+DvmB5B,YhCCiB,oBgCCjB,iBACA,qBACA,iBACA,oBACA,sBACA,kBACA,mBACA,oBACA,gBhDgRI,UALI,4BiD1PR,qBACA,sCACA,4BACA,2E/ChBE,8C+CoBF,wBACE,cACA,oCACA,sCAEA,+DAEE,kBACA,cACA,WACA,2BACA,mBACA,eAMJ,2FACE,kFAEA,oNAEE,qFAGF,2GACE,SACA,gDAGF,yGACE,sCACA,sCAOJ,6FACE,gFACA,qCACA,qCAEA,wNAEE,4HAGF,6GACE,OACA,kDAGF,2GACE,oCACA,wCAQJ,iGACE,+EAEA,gOAEE,qFAGF,iHACE,MACA,mDAGF,+GACE,mCACA,yCAKJ,mHACE,kBACA,MACA,SACA,cACA,oCACA,qDACA,WACA,+EAMF,8FACE,iFACA,qCACA,qCAEA,0NAEE,4HAGF,8GACE,QACA,iDAGF,4GACE,qCACA,uCAuBN,gBACE,8EACA,gBjD2GI,UALI,mCiDpGR,qCACA,6CACA,kF/C5JE,6DACA,8D+C8JF,sBACE,aAIJ,cACE,0EACA,mCCrLF,UACE,kBAGF,wBACE,mBAGF,gBACE,kBACA,WACA,gBtEtBA,uBACE,cACA,WACA,WsEuBJ,eACE,kBACA,aACA,WACA,WACA,mBACA,2BhElBI,WgEmBJ,0BhEfI,uCgEQN,ehEPQ,iBgEiBR,8DAGE,cAGF,wEAEE,2BAGF,wEAEE,4BASA,8BACE,UACA,4BACA,eAGF,iJAGE,UACA,UAGF,oFAEE,UACA,UhE5DE,WgE6DF,ehEzDE,uCgEqDJ,oFhEpDM,iBgEiER,8CAEE,kBACA,MACA,SACA,UAEA,aACA,mBACA,uBACA,MjE8gDmC,IiE7gDnC,UACA,M7CjFM,K6CkFN,kBACA,gBACA,SACA,QjEygDmC,GC/lD/B,WgEuFJ,kBhEnFI,uCgEkEN,8ChEjEQ,iBgEqFN,oHAEE,M7C3FI,K6C4FJ,qBACA,UACA,QjEigDiC,GiE9/CrC,uBACE,OAGF,uBACE,QAKF,wDAEE,qBACA,MjEkgDmC,KiEjgDnC,OjEigDmC,KiEhgDnC,4BACA,wBACA,0BAWF,4BACE,yQAEF,4BACE,0QAQF,qBACE,kBACA,QACA,SACA,OACA,UACA,aACA,uBACA,UAEA,ajE08CmC,IiEz8CnC,mBACA,YjEw8CmC,IiEt8CnC,sCACE,uBACA,cACA,MjEw8CiC,KiEv8CjC,OjEw8CiC,IiEv8CjC,UACA,ajEw8CiC,IiEv8CjC,YjEu8CiC,IiEt8CjC,mBACA,eACA,iB7CjKI,K6CkKJ,4BACA,SAEA,oCACA,uCACA,QjE+7CiC,GCvmD/B,WgEyKF,iBhErKE,uCgEoJJ,sChEnJM,iBgEuKN,6BACE,QjE47CiC,EiEn7CrC,kBACE,kBACA,UACA,OjEs7CmC,QiEr7CnC,SACA,YjEm7CmC,QiEl7CnC,ejEk7CmC,QiEj7CnC,M7C5LM,K6C6LN,kBAMA,sFAEE,OjEu7CiC,yBiEp7CnC,qDACE,iB7C1LI,K6C6LN,iCACE,M7C9LI,K8C5BR,8BAEE,qBACA,8BACA,gCACA,gDAEA,kBACA,6FAIF,0BACE,8CAIF,gBAEE,yBACA,0BACA,sCACA,kCACA,oCACA,4CAGA,yDACA,iCAGF,mBAEE,yBACA,0BACA,iCASF,wBACE,GACE,mBAEF,IACE,UACA,gBAKJ,cAEE,yBACA,0BACA,sCACA,oCACA,0CAGA,8BACA,UAGF,iBACE,yBACA,0BAIA,uCACE,8BAEE,oCC/EN,kFAEE,4BACA,4BACA,4BACA,+BACA,+BACA,2CACA,qCACA,oDACA,gEACA,mEACA,sDACA,sC/D6DE,4B+D5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,gClE1BA,gEkEYJ,clEXM,iBGuDJ,4B+D5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB/D5BJ,yB+D/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C/DnCN,4B+D5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,gClE1BA,gEkEYJ,clEXM,iBGuDJ,4B+D5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB/D5BJ,yB+D/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C/DnCN,4B+D5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,gClE1BA,gEkEYJ,clEXM,iBGuDJ,4B+D5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB/D5BJ,yB+D/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C/DnCN,6B+D5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,gClE1BA,iEkEYJ,clEXM,iBGuDJ,6B+D5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB/D5BJ,0B+D/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C/DnCN,6B+D5CF,eAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,gClE1BA,iEkEYJ,elEXM,iBGuDJ,6B+D5BE,+BACE,MACA,OACA,gCACA,qFACA,4BAGF,6BACE,MACA,QACA,gCACA,oFACA,2BAGF,6BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,gCACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,wDAEE,eAGF,iEAGE,oB/D5BJ,0B+D/BF,eAiEM,4BACA,+BACA,0CAEA,iCACE,aAGF,+BACE,aACA,YACA,UACA,mBAEA,2CA/ER,WAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UlE5BA,WkE8BA,+BlE1BA,uCkEYJ,WlEXM,iBkE2BF,2BACE,MACA,OACA,gCACA,qFACA,4BAGF,yBACE,MACA,QACA,gCACA,oFACA,2BAGF,yBACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,4BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,gDAEE,eAGF,qDAGE,mBA2BR,oBNpHE,eACA,MACA,OACA,Q7DwmCkC,K6DvmClC,YACA,aACA,iBzCwBM,KyCrBN,mCACA,iC7D+9CkC,GmEj3CpC,kBACE,aACA,mBACA,8BACA,oEAEA,6BACE,sFACA,oDACA,sDACA,uDAIJ,iBACE,gBACA,kDAGF,gBACE,YACA,oEACA,gBChJF,aACE,qBACA,eACA,sBACA,YACA,8BACA,QpE8yCkC,GoE5yClC,yBACE,qBACA,WAKJ,gBACE,gBAGF,gBACE,gBAGF,gBACE,iBAKA,+BACE,mDAIJ,4BACE,IACE,QpEixCgC,IoE7wCpC,kBACE,+EACA,oBACA,8CAGF,4BACE,KACE,wBChDJ,gBACI,mBCGA,eACI,uBACA,uBACA,iCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAJJ,eACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,eACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,WACI,uBACA,uBACA,iCACA,4BAJJ,oBACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,qBACA,+BACA,4BAJJ,YACI,uBACA,uBACA,mCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAKJ,oBACI,gBCZJ,6BACI,sBACA,uEAFJ,+BACI,sBACA,mEAFJ,6BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,6BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,2BACI,sBACA,yEAFJ,0BACI,sBACA,sEAFJ,0BACI,sBACA,wEAFJ,+BACI,sBACA,qEAFJ,4BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,yBACI,sBACA,uEAFJ,kCACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,2BACI,sBACA,yEAFJ,4BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,0BACI,sBACA,wEAFJ,2BACI,sBACA,yEAFJ,0BACI,sBACA,yEAFJ,+BACI,sBACA,sECJR,KACI,iBAII,uJAGI,yBACA,wDACA,0DAIA,wVAGI,yBACA,0DACA,2DAKJ,wVAGI,yBACA,wDACA,0DAIR,gHAEI,qBACA,gBACA,oCvErBN,WuEsBM,mHvElBN,uCuEaE,gHvEZA,iBuEoBA,wIAEI,qCACA,6BACA,kBAIR,4BACI,YACA,0HAEA,oJAIA,oDACA,uDAGJ,4BACI,YACA,0HAEA,oJAIA,mDACA,sDAGJ,iBACI,kBACA,oBAEA,2BACI,oBAGJ,wBACI,0BACA,uBACA,0CACA,WACA,cACA,WACA,UACA,kBACA,sBACA,qBACA,6CAIS,oCACL,kBADK,sCACL,kBADK,oCACL,kBADK,iCACL,kBADK,oCACL,kBADK,mCACL,kBADK,kCACL,kBADK,kCACL,kBADK,iCACL,kBADK,iCACL,kBADK,sCACL,kBADK,mCACL,kBADK,mCACL,kBADK,iCACL,kBADK,gCACL,kBADK,yCACL,kBADK,kCACL,kBADK,kCACL,kBADK,mCACL,kBADK,mCACL,kBADK,kCACL,kBADK,iCACL,kBADK,iCACL,kBADK,kCACL,kBADK,iCACL,kBADK,sCACL,kBAMhB,WACI,IzCpGY,MyCwGZ,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,sCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,qBACA,4BACA,2BACA,wBACA,kCACA,mCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oB8BkDE,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,qCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,+E9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,+FAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iG9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iHAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,yCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,qBACA,4BACA,2BACA,wBACA,kCACA,yCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB+B1DF,YAEI,8BACA,6BACA,gCACA,mCACA,wCAEA,6BAEA,uBACI,YACA,kCACI,eACA,iCACA,sCACA,cACA,iBACA,kBAGJ,qGACI,gCACA,UAGJ,mCACI,iBACA,iBAEA,8CACI,gDACA,wCAGJ,4CACI,mBAEA,uDACI,kDACA,0CAKZ,8BACI,iBAGJ,gDACI,yBACA,eACA,YACA,uDACI,eACA,0CACA,YCxDhB,OACI,8BACA,8BACA,mCAEA,qBACI,2CACA,mCACA,+CCJA,qGACI,gBACA,MAIA,mLACI,iBAMR,qGACI,gBACA,SAKZ,yBAEQ,8JACI,uCCeZ,WAEI,YC5CJ,YACI,iCAIA,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,kBACI,qCACA,eCuEsB,QC9E9B,cAEI,sBACA,sBACA,+BACA,2BACA,2BACA,4BACA,6BACA,2BACA,0DACA,SACA,mCACA,2CAGJ,SACI,cCfJ,SAEI,4BACA,uDACA,kCACA,kCACA,oCACA,oCACA,kCACA,kCACA,kCACA,gCACA,kCAEA,kBACA,UACA,sCAEA,WACI,qBACA,8BAGJ,oBACI,WACA,cACA,kBACA,0BACA,SACA,yBACA,mCACA,yCACA,WAGJ,YACI,gBACA,eACA,SAEA,eACI,iBAEA,6BACI,aACA,mBACA,mBACA,SAEA,oCACI,gBAGJ,sCACI,uCACA,kBAGJ,wNAII,yCACA,uCAGJ,gHAEI,2CACA,yCAGJ,4GAEI,kBAGJ,6CACI,yCACA,cACA,uCACA,iBACA,YC1DM,KD2DN,gBACA,qBACA,mBACA,kBAGI,oEAUI,MATc,KAUd,OAVc,KAWd,YARU,KASV,kBACA,YAbc,KADlB,kEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,oBACA,YAbc,QADlB,mEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,qBACA,YAbc,QADlB,mEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,qBACA,YAbc,QADlB,kEAUI,MATc,OAUd,OAVc,OAWd,YARU,OASV,qBACA,YAbc,OADlB,qEAUI,MATc,OAUd,OAVc,OAWd,YARU,OASV,qBACA,YAbc,OAmB9B,kCACI,2CAGJ,kBACI,wCEpHhB,OAEI,yBACA,yBACA,uBACA,uBACA,6BACA,6BAGI,mBAEI,mCAFJ,4EAMJ,WACA,aACA,wBACA,qD9E4CA,yB8E/DJ,OAYY,oC9EmDR,yB8E/DJ,OAYY,oC9EmDR,yB8E/DJ,OAYY,oC9EmDR,0B8E/DJ,OAYY,oCASR,aACI,aACA,sBACA,uBACA,mBAEA,gCACA,iBAEA,8BACA,4BAEA,mBACI,oCACA,kCAGJ,0BACI,SAIR,6BAEI,eACA,qBAOQ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,kBACI,4BADJ,kBACI,4BADJ,kBACI,4B9EShB,yB8EVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6B9EShB,yB8EVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6B9EShB,yB8EVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6B9EShB,0B8EVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6B9EShB,0B8EVY,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,sBACI,4BADJ,sBACI,4BADJ,sBACI,6BCtDpB,gBACI,kCACA,mCACA,6BACA,wDACA,kDACA,sCACA,sCAEA,2DACA,gBACA,iCACA,gBACA,kBACA,iBACA,eAEA,0BACI,6CACA,qCACA,mBAGJ,iCACI,4CACA,oDACA,2BAGJ,0FAEI,2CACA,mDACA,2BC/BR,mBAEI,WACA,uCACA,iBACA,cACA,aACA,mBACA,sBACA,UACA,qCACA,mCCZJ,mBACI,gCACA,2BACA,iCACA,kCACA,kCACA,6BACA,8BACA,oCACA,mCAEA,iCACA,iCACA,oCACA,kCAEA,uCACA,0CACA,0CAEA,sCACA,2CACA,8CACA,uCACA,8CACA,2DACA,+CACA,kDACA,gCACA,8BACA,gCACA,qCACA,iCACA,iCACA,sCACA,sCAEA,iCACA,8BACA,yCAEA,yBACA,yBACA,6BACA,8BAEA,oCACA,4CACA,4CACA,0CACA,4CACA,6DAEA,iCACA,mCACA,mCACA,2CACA,6BACA,oCACA,+BACA,wCACA,2CACA,yCACA,iCACA,4CACA,4CAEA,8BACA,6BACA,qCACA,qCACA,qDACA,+BACA,2CACA,qCACA,oDACA,+BACA,oCC9EJ,+BACI,WACA,aACA,mBACA,cACA,sBACA,UACA,SAGJ,kQACI,WACA,aACA,eACA,0EAOA,yBAFJ,uNAGQ,aRoFuB,yCQnFvB,cRmFuB,0CQzEtB,wIACL,cChCJ,8BACI,WAEA,aACA,mBACA,sBACA,wCAEA,6CACI,aACA,mBACA,oBACA,WACA,aT2FuB,yCS1FvB,cT0FuB,yCSxFvB,yBARJ,6CASQ,cAIJ,+CACI,0CACA,6CACA,mBACA,aAGJ,yBApBJ,6CAqBQ,8CACA,gDAGJ,8DACI,6DAIA,0DACI,4CACA,2DAFJ,2DACI,6CACA,4DAIR,8HAEI,sCACA,qBACA,UChCG,ODmCP,0DACI,gBAGJ,+MAII,qBE3DZ,8BACI,WACA,WrE4BI,KqE3BJ,iBACA,2BAEA,yBANJ,8BAOQ,2BACA,sBACA,uDACA,eACA,8BACA,gBACA,MACA,aACA,0CAGJ,mDACI,WAKA,aAHoB;AAAA;AAAA,UAIpB,cAJoB;AAAA;AAAA,UAKpB,aACA,8BACA,mBACA,kBAEA,yBAbJ,mDAoBQ,aALa,+EAMb,cANa,gFASjB,yBAxBJ,mDAyBQ,eACA,iBAIR,4CACI,oBAEA,yBAHJ,4CAIQ,cAGJ,gDACI,cAIR,yBACI,8CACI,aAEJ,+CACI,wBACA,iBAIR,0CACI,0BACA,sCACA,mCAEA,yBALJ,0CAMQ,oBAGJ,yDACI,uBACA,gBAEA,yEAEI,aAGJ,yBATJ,yDAUQ,mBAGJ,8JAEI,cACA,mBACA,iBAKJ,yBADJ,oDAEQ,qFAIJ,yBANJ,oDAOQ,WrE7ER,KqE8EQ,8CACA,+CACA,0DAGJ,gFACI,yBAIR,8KAGI,qCAIR,8CACI,MrE/GA,KqEgHA,2BAGJ,mDACI,gQAGJ,2CACI,MrExHA,KqE0HA,mJAGI,MrE1IH,QqE6ID,yBATJ,2CAUQ,MrElHJ,MsE9BR,sFAEI,WAEA,qCAEA,aACA,0CACA,iBACA,mBACA,oBACA,2BACA,eACA,mDACA,oDACA,4FAGA,yBAlBJ,sFAmBQ,iDACA,0DACA,2DAEA,gBACA,MACA,cAGJ,gJACI,WACA,aACA,8BACA,oBACA,kBAEA,0KACI,0CACA,6CACA,mBACA,aACA,wCAIA,0KACI,uDACA,qGAFJ,4KACI,wDACA,sGAMR,oKACI,cACA,aACA,gCACA,oBACA,UAEA,sLACI,0CACA,iGAIA,yBANJ,sLAOQ,iDACA,6EAKR,yBApBJ,oKAqBQ,4BACA,2BACA,eAIA,8LACI,YAIR,0LACI,aACA,0CACA,mBACA,uBACA,wCACA,sCACA,iCACA,mBACA,8CACA,8CACA,kBACA,oBAEA,yBAdJ,0LAeQ,cAKZ,0KACI,sFAOJ,gLACI,YACA,UACA,gBAGJ,yBACI,gLACI,aAEJ,kLACI,aACA,UACA,0CACA,qBAIR,yBACI,kLACI,eACA,8CACA,OACA,YAIR,wKACI,0CAEA,0BACA,sCACA,0CAEA,yBAPJ,wKAQQ,oBAGJ,sMACI,uBACA,gBAGA,wBACA,yBAEA,yBARJ,sMASQ,mBAGJ,oeAEI,cACA,mBACA,iBAKJ,yBADJ,4LAEQ,gDAEA,aACA,mBACA,0CACA,oFAEA,wFAIJ,yBAbJ,4LAcQ,yDACA,uDACA,8CACA,+CACA,yFAIJ,oPACI,yBAIR,gyBAII,0DAMhB,sCACI,8CACA,+CAEA,yBAJJ,sCAKQ,aZ5GuB,yCY6GvB,cZ7GuB,0CaxG/B,wEAGI,gCACA,8BACA,wCACA,2CACA,0CAGI,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAIR,kGACI,SACA,UCnBR,6BACI,aACA,kBACA,uBACA,gBACA,WACA,6CAMY,mCACI,iBADJ,mCACI,iBADJ,mCACI,iBADJ,mCACI,iBxF6DhB,4BwF9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kBxF6DhB,4BwF9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kBxF6DhB,4BwF9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kBxF6DhB,6BwF9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kBxF6DhB,6BwF9DY,uCACI,iBADJ,uCACI,iBADJ,uCACI,iBADJ,uCACI,kBAMhB,6CACI,cACA,YACA,WACA,yBAJJ,6CAKQ,aAIR,iDACI,kBACA,SACA,OAEA,sFAEA,+DACA,8CACA,iDAEA,mDACI,cAGJ,0EACI,QACA,WAGJ,wEACI,MACA,aAKR,4CAEI,kBACA,SACA,4HAEA,yBANJ,4CAOQ,0FAIJ,qEACI,QACA,sCAIJ,+DACI,OACA,uCAGJ,yBAtBJ,4CAuBQ,WAGA,oIAEI,8CACA,gDCpFhB,yCACI,kBACA,WACA,YACA,aACA,mBACA,6BAEA,yBARJ,yCASQ,sBACA,OAGJ,qDACI,QACA,2CACA,iCACA,gHACA,8IAEA,YAEA,yBATJ,qDAUQ,4CAEA,WfuFyB,qEepF7B,yBAfJ,qDAgBQ,gBACA,gFAIJ,6RAKI,qBAGJ,sVAMI,qCACA,yBAPJ,sVAQQ,gBAIR,wEACI,ULpCG,OKqCH,SACA,YACA,gBACA,WACA,aACA,mBACA,8BACA,UACA,yBAEA,8EACI,gBAGJ,+EACI,gBACA,qCACA,sCACA,sBACA,WACA,qBACA,gCAGJ,mGACI,yBAGJ,yBA9BJ,wEA+BQ,cAKJ,yBADJ,0EAEQ,8CAGJ,yBALJ,0EAMQ,eAIA,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDAMhB,+EACI,sBAEA,oFACI,oBAGJ,yFACI,2BACA,uDACA,8EAGA,mGACI,iBAGJ,8LAEI,0BAGJ,kGACI,8CACA,mBAGJ,gGACI,wDAOpB,6DACI,QACA,cAEA,YACA,uGAGA,yBARJ,6DAUQ;AAAA;AAAA;AAAA,cAIA,eACA,4CAIA,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAShB,yBAEQ,yEACI,gBACA,oCAMZ,yBAEQ,8EACI,gBACA,MAIJ,uGACI,UACA,UAKZ,yBAEQ,8EACI,gBACA,uCAMZ,yBAEQ,8EACI,QAGJ,sFACI,SAMZ,yBAEQ,sEACI,QACA,4CACA,cfrIe,yCe2IH,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAOpB,8EACI,QACA,gBACA,afxJe,yCe2JX,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,gDAIR,+CAfJ,8EAgBQ,6CC9QhB,yHACI,oCACA,4CAEA,mJACI,gBAIR,uFAEI,aACA,wCAEA,6B1FgDJ,yB0FrDA,uFAQQ,yBACA,8BACA,kCAKJ,wDACI,4CAGA,qKAQA,sKAEI,kDAIR,uDAEI,0EAQI,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAIR,yEACI,gBAeR,wDACI,gBAIA,oFACI,cAIZ,wDACI,gBACA,iBAIJ,8HAEI,uB1F9BJ,yB0F4BA,8HAKQ,yBACA,2BAGJ,sKACI,aAKR,kHAEI,uB1F7CJ,yB0F2CA,kHAKQ,yBACA,2BAGJ,8IACI,aClHZ,8BAGI,eACA,gDACA,gCACA,mBACA,0CACA,6CAEA,yBAVJ,8BAWQ,aAGJ,2CACI,SACA,UAGJ,mJAII,gCCzBR,gFAGI,yCCDJ,WACI,sBACA,wDACA,mBACA,kBAGJ,WACI,iCACA,mDACA,mBACA,kBAGJ,iCAEI,iCACA,WACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCACA,qBAGJ,uDAEI,4CACA,WACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCACA,qBAGJ,6CACI,qBChDJ,mBACI,cAES,0BACL,UAGJ,2BACI,UAIJ,sCACI,WACA,WlG+4BgC,yDkG94BhC,uBACA,YCLyB,QpFmR3B,UALI,KmFvQF,YlGylBsB,IkGxlBtB,YnEdW,ImEeX,MlGi3BgC,qBkGh3BhC,iB9ELA,K8EMA,4CjFJJ,2BhBHE,WiGUE,0DACA,gBjGPF,uCiGPF,sCjGQI,iBiGYA,6HACI,a9EFJ,K8EGI,WpEzBmB,KoE8B3B,uFACI,oCjFCJ,6BACA,4BiFGA,uFACI,iCjFnBJ,yBACA,0BiFuBA,mCACI,WAIA,kEACI,mBAOJ,kJACI,kBACA,QACA,MlGq6BwB,QkGp6BxB,MCIqB,ODHrB,OCIqB,ODHrB,oBACA,gBACA,iBACA,mBACA,WCGqB,iXDFrB,2BAGA,8JACI,WCDiB,8WDKrB,4JACI,aEpFZ,sCACI,QDGyB,KCC7B,qCACI,QDFyB,KCGzB,gBACA,MpG63BgC,qBoG53BhC,iBhFOA,KgFNA,ahFqBA,KHbJ,2BmFJI,6DACI,iCnFYR,yBACA,0BmFRI,6DACI,oCnFoBR,6BACA,4BmFhBI,qDACI,uBAGA,4EACI,cACA,WACA,uBACA,YDvBiB,QpFmR3B,UALI,KqFrPM,YpGukBc,IoGtkBd,YrEhCG,IqEiCH,MpG+1BwB,qBoG91BxB,iBhFvBR,KgFwBQ,4BACA,4CACA,gBnFxBZ,2BhBHE,WmG+BU,0DnG3BV,uCmGWM,4EnGVJ,iBmG4BQ,kFACI,ahFlBZ,KgFmBY,WtEzCW,KsEgDnB,sGACI,WDWiB,MCVjB,gBAIJ,wFACI,uBrF8NV,UALI,KqFvNM,YpGyiBc,IoGxiBd,YrE9DG,IqEiEH,iHACI,MpG60BoB,0BoGz0BxB,6HACI,WACA,iBhF1DT,QgF8DK,iRAEI,WACA,iBhFjFX,QgFqFO,sOAEI,MpGklBU,0BoG9kBd,oGACI,UAGA,4HACI,wBACA,YpG0iBM,IoGziBN,YrEhGL,IqEiGK,MhFvEhB,KgF4EgB,+JACI,uBC5GxB,8CACI,uCACA,iPACA,4BACA,oBrG4+B4B,oBqG3+B5B,gBrG4+B4B,UqGz+B5B,2EACI,UACA,YrGimBkB,IqGhmBlB,YtENO,IsEOP,MrGy3B4B,qBqGt3B5B,2GACI,YrG2lBc,IqG1lBd,YtEZG,IsEaH,MrGk4BwB,0BqG73BhC,wEACI,aCtBJ,6EACI,aACA,mBACA,eACA,eACA,SACA,gBAGA,wGACI,aACA,mBACA,mBACA,oBACA,qBACA,sBvF6QV,UALI,KuFtQM,MtGk3BwB,qBsGj3BxB,YACA,4CrFHZ,2BqFOY,2IACI,MH8Ca,OG7Cb,OH8Ca,OG7Cb,oBACA,oBACA,gBACA,iBACA,mBACA,WH4Ca,iXG3Cb,SAEA,iJACI,WHyCS,8WGrCb,gJACI,aAOhB,gEACI,cACA,WACA,OHnDqB,OGsDrB,uFACI,WACA,OHxDiB,OGyDjB,aACA,cACA,YHjDiB,QGkDjB,YvExDG,IuEyDH,+BAKR,0EACI,MtG+sBkB,OuGhxBtB,6JACI,MvGwqBkB,0BuGvqBlB,mBACA,iBvG43B4B,uBuG33B5B,anFaD,QmFZC,gBAKA,qOACI,aAIJ,uOACI,mBACA,6SACI,aAKR,mQACI,iBAEA,mSACI,aC1BJ,mIvF8BZ,0BACA,6BuFrBY,gIvFoBZ,0BACA,6BuFXI,yNvFwBJ,yBACA,4BuFnBA,gCACI,YACA,mDACI,YC7BJ,kHACI,arF8BJ,QqFxBI,sUACI,arFuBR,QqFtBQ,WN4BiB,4BMtBrB,oNACI,oCAIJ,oNACI,iCxFEZ,yBACA,0BwFOI,sHACI,arFhCN,QqFsCM,8UACI,arFvCV,QqFwCU,WNCiB,4BMKrB,wNACI,oCAIJ,wNACI,iCxF7BZ,yBACA,0ByF3BA,qDACI,mEACA,qB3F2RF,UALI,SEvQN,2ByFRI,gLACI,YACA,aACA,wBACA,2XAEA,4LACI,wXAKJ,sWAEI,aAMZ,oDzFZA,2ByFgBI,4EzFPJ,yBACA,0ByFWI,4EzFEJ,6BACA,4ByFEQ,2FACI,qB3FiPV,UALI,S2FtOE,uGACI,qB3F0OV,UALI,S2FjOU,2IACI,sBAIA,8KACI,qBASxB,6DACI,oCAMI,uHACI,oB3F+MV,UALI,S2FvMM,0JACI,YACA,aACA,wBACA,2XAEA,gKACI,wXAMhB,yFACI,YA/FR,qDACI,iEACA,mB3F2RF,UALI,QEvQN,2ByFRI,gLACI,WACA,YACA,oBACA,yXAEA,4LACI,sXAKJ,sWAEI,aAMZ,oDzFZA,2ByFgBI,4EzFPJ,yBACA,0ByFWI,4EzFEJ,6BACA,4ByFEQ,2FACI,mB3FiPV,UALI,Q2FtOE,uGACI,mB3F0OV,UALI,Q2FjOU,2IACI,oBAIA,8KACI,mBASxB,6DACI,iCAMI,uHACI,oB3F+MV,UALI,Q2FvMM,0JACI,WACA,YACA,oBACA,yXAEA,gKACI,sXAMhB,yFACI,WA/FI,sDACR,mEACA,qB3F2RF,UALI,SEvQN,2ByFRI,kLACI,YACA,aACA,wBACA,2XAEA,8LACI,wXAKJ,0WAEI,aAMA,qDzFZZ,2ByFgBI,6EzFPJ,yBACA,0ByFWI,6EzFEJ,6BACA,4ByFEQ,4FACI,qB3FiPV,UALI,S2FtOE,wGACI,qB3F0OV,UALI,S2FjOU,4IACI,sBAIA,+KACI,qBASZ,8DACR,oCAMI,wHACI,oB3F+MV,UALI,S2FvMM,2JACI,YACA,aACA,wBACA,2XAEA,iKACI,wXAMhB,0FACI,YA/FI,sDACR,iEACA,mB3F2RF,UALI,QEvQN,2ByFRI,kLACI,WACA,YACA,oBACA,yXAEA,8LACI,sXAKJ,0WAEI,aAMA,qDzFZZ,2ByFgBI,6EzFPJ,yBACA,0ByFWI,6EzFEJ,6BACA,4ByFEQ,4FACI,mB3FiPV,UALI,Q2FtOE,wGACI,mB3F0OV,UALI,Q2FjOU,4IACI,oBAIA,+KACI,mBASZ,8DACR,iCAMI,wHACI,oB3F+MV,UALI,Q2FvMM,2JACI,WACA,YACA,oBACA,yXAEA,iKACI,sXAMhB,0FACI,WCzFR,0GACI,gBACA,yBACA,YACA,gBACA,MvFWG,QuFNP,kGACI,YAaJ,4DACI","file":"bootstrap.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../../../../../node_modules/bootstrap/scss/mixins/_banner.scss","../../../../../../node_modules/uu-bootstrap/scss/fonts/_open-sans.scss","../../../../../../node_modules/uu-bootstrap/scss/fonts/_merriweather.scss","../../../../../../node_modules/bootstrap/scss/mixins/_clearfix.scss","../../../../../../node_modules/bootstrap/scss/helpers/_color-bg.scss","../../../../../../node_modules/bootstrap/scss/helpers/_colored-links.scss","../../../../../../node_modules/bootstrap/scss/helpers/_focus-ring.scss","../../../../../../node_modules/bootstrap/scss/helpers/_icon-link.scss","../../../../../../node_modules/bootstrap/scss/_variables.scss","../../../../../../node_modules/bootstrap/scss/mixins/_transition.scss","../../../../../../node_modules/bootstrap/scss/helpers/_ratio.scss","../../../../../../node_modules/bootstrap/scss/helpers/_position.scss","../../../../../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../../../../../node_modules/bootstrap/scss/helpers/_stacks.scss","../../../../../../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../../../../../../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../../../../../../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../../../../../../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../../../../../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../../../../../node_modules/bootstrap/scss/helpers/_vr.scss","../../../../../../node_modules/bootstrap/scss/mixins/_utilities.scss","../../../../../../node_modules/bootstrap/scss/utilities/_api.scss","../../../../../../node_modules/bootstrap/scss/_root.scss","../../../../../../node_modules/bootstrap/scss/vendor/_rfs.scss","../../../../../../node_modules/bootstrap/scss/mixins/_color-mode.scss","../../../../../../node_modules/bootstrap/scss/_reboot.scss","../../../../../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../../../../../node_modules/bootstrap/scss/_type.scss","../../../../../../node_modules/bootstrap/scss/mixins/_lists.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_colors.scss","../../../../../../node_modules/bootstrap/scss/_images.scss","../../../../../../node_modules/bootstrap/scss/mixins/_image.scss","../../../../../../node_modules/bootstrap/scss/_containers.scss","../../../../../../node_modules/bootstrap/scss/mixins/_container.scss","../../../../../../node_modules/bootstrap/scss/_grid.scss","../../../../../../node_modules/bootstrap/scss/mixins/_grid.scss","../../../../../../node_modules/bootstrap/scss/_tables.scss","../../../../../../node_modules/bootstrap/scss/mixins/_table-variants.scss","../../../../../../node_modules/bootstrap/scss/forms/_labels.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/bootstrap/_form.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/bootstrap/_misc.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-text.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-control.scss","../../../../../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-select.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-check.scss","../../../../../../node_modules/bootstrap/scss/forms/_form-range.scss","../../../../../../node_modules/bootstrap/scss/forms/_floating-labels.scss","../../../../../../node_modules/bootstrap/scss/forms/_input-group.scss","../../../../../../node_modules/bootstrap/scss/mixins/_forms.scss","../../../../../../node_modules/bootstrap/scss/_buttons.scss","../../../../../../node_modules/bootstrap/scss/mixins/_buttons.scss","../../../../../../node_modules/bootstrap/scss/_transitions.scss","../../../../../../node_modules/bootstrap/scss/_dropdown.scss","../../../../../../node_modules/bootstrap/scss/mixins/_caret.scss","../../../../../../node_modules/bootstrap/scss/_button-group.scss","../../../../../../node_modules/bootstrap/scss/_nav.scss","../../../../../../node_modules/bootstrap/scss/_navbar.scss","../../../../../../node_modules/bootstrap/scss/_card.scss","../../../../../../node_modules/bootstrap/scss/_accordion.scss","../../../../../../node_modules/bootstrap/scss/_breadcrumb.scss","../../../../../../node_modules/bootstrap/scss/_pagination.scss","../../../../../../node_modules/bootstrap/scss/mixins/_pagination.scss","../../../../../../node_modules/bootstrap/scss/_badge.scss","../../../../../../node_modules/bootstrap/scss/_alert.scss","../../../../../../node_modules/bootstrap/scss/_progress.scss","../../../../../../node_modules/bootstrap/scss/_list-group.scss","../../../../../../node_modules/bootstrap/scss/_close.scss","../../../../../../node_modules/bootstrap/scss/_toasts.scss","../../../../../../node_modules/bootstrap/scss/_modal.scss","../../../../../../node_modules/bootstrap/scss/mixins/_backdrop.scss","../../../../../../node_modules/bootstrap/scss/_tooltip.scss","../../../../../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../../../../../node_modules/bootstrap/scss/_popover.scss","../../../../../../node_modules/bootstrap/scss/_carousel.scss","../../../../../../node_modules/bootstrap/scss/_spinners.scss","../../../../../../node_modules/bootstrap/scss/_offcanvas.scss","../../../../../../node_modules/bootstrap/scss/_placeholders.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_accordion.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_alert.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_background.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_button.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_pagination.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_modal.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_table.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_form.scss","../../../../../../node_modules/uu-bootstrap/scss/components/bootstrap/_index.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_text.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_uu-layout.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_code.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_stepper.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_stepper.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_tiles.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_modal-nav-tabs.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_index.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_css_variables.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_containers.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_header.scss","../../../../../../node_modules/uu-bootstrap/scss/configuration/_fonts.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_navbar.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_unified_header.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_hero.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_cover.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_sidebar.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_form.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_footer.scss","../../../../../../node_modules/uu-bootstrap/scss/components/uu-layout/_table.scss","../../../../../../node_modules/uu-bootstrap/scss/components/_uu-list.scss","../../../../../../assets/scss/icomoon.scss","../../../../../../assets/scss/select2-bootstrap/_layout.scss","../../../../../../assets/scss/select2-bootstrap/_variables.scss","../../../../../../assets/scss/select2-bootstrap/_dropdown.scss","../../../../../../assets/scss/select2-bootstrap/_single.scss","../../../../../../assets/scss/select2-bootstrap/_multiple.scss","../../../../../../assets/scss/select2-bootstrap/_disabled.scss","../../../../../../assets/scss/select2-bootstrap/_input-group.scss","../../../../../../assets/scss/select2-bootstrap/_validation.scss","../../../../../../assets/scss/select2-bootstrap/_sizing.scss","../../../../../../assets/scss/bootstrap.scss"],"names":[],"mappings":"CACE;AAAA;AAAA;AAAA;AAAA,GCEF,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,sFACA,IACI,mhBAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,kFACA,IACI,+fAeR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,qFACA,IACI,8gBAeR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBAgBR,WACI,wBACA,kBACA,gBACA,wFACA,IACI,6hBCjPR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBAeR,WACI,2BACA,kBACA,gBACA,kFACA,IACI,mgBAeR,WACI,2BACA,kBACA,gBACA,iFACA,IACI,8fAeR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBAeR,WACI,2BACA,kBACA,gBACA,8EACA,IACI,+eAeR,WACI,2BACA,kBACA,gBACA,oFACA,IACI,6gBC1JN,iBACE,cACA,WACA,WCHF,iBACE,sBACA,iFAFF,mBACE,sBACA,mFAFF,iBACE,sBACA,iFAFF,cACE,sBACA,8EAFF,iBACE,sBACA,iFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,cACE,sBACA,8EAFF,mBACE,sBACA,mFAFF,gBACE,sBACA,gFAFF,gBACE,sBACA,gFAFF,cACE,sBACA,8EAFF,aACE,sBACA,6EAFF,sBACE,sBACA,sFAFF,eACE,sBACA,+EAFF,eACE,sBACA,+EAFF,gBACE,sBACA,gFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,cACE,sBACA,8EAFF,eACE,sBACA,+EAFF,cACE,sBACA,8EAFF,mBACE,sBACA,mFCFF,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,gBACE,0EACA,oGAGE,4CAGE,0DACA,oFATN,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,cACE,wEACA,kGAGE,wCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,gBACE,0EACA,oGAGE,4CAGE,4DACA,sFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,UACE,oEACA,8FAGE,gCAGE,6DACA,uFATN,mBACE,6EACA,uGAGE,kDAGE,8DACA,wFATN,YACE,sEACA,gGAGE,oCAGE,6DACA,uFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,gEACA,0FATN,aACE,uEACA,iGAGE,sCAGE,+DACA,yFATN,YACE,sEACA,gGAGE,oCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFATN,gBACE,0EACA,oGAGE,4CAGE,6DACA,uFAOR,oBACE,+EACA,yGAGE,oDAEE,kFACA,4GC1BN,kBACE,UAEA,kJCHF,WACE,oBACA,IC6c4B,QD5c5B,mBACA,kFACA,sBC2c4B,MD1c5B,2BAEA,eACE,cACA,MCuc0B,IDtc1B,OCsc0B,IDrc1B,kBEIE,WFHF,0BEOE,uCFZJ,eEaM,iBFDJ,8DACE,mEGnBN,OACE,kBACA,WAEA,eACE,cACA,mCACA,WAGF,SACE,kBACA,MACA,OACA,WACA,YAKF,WACE,wBADF,WACE,uBADF,YACE,0BADF,YACE,kCCrBJ,WACE,eACA,MACA,QACA,OACA,QHqmCkC,KGlmCpC,cACE,eACA,QACA,SACA,OACA,QH6lCkC,KGrlChC,YACE,gBACA,MACA,QHilC8B,KG9kChC,eACE,gBACA,SACA,QH2kC8B,KI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,yBDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,0BDxCA,eACE,gBACA,MACA,QHilC8B,KG9kChC,kBACE,gBACA,SACA,QH2kC8B,MI5iChC,0BDxCA,gBACE,gBACA,MACA,QHilC8B,KG9kChC,mBACE,gBACA,SACA,QH2kC8B,MK1mCpC,QACE,aACA,mBACA,mBACA,mBAGF,QACE,aACA,cACA,sBACA,mBCRF,2ECIE,qBACA,sBACA,qBACA,uBACA,2BACA,iCACA,8BACA,oBAGA,qGACE,6BCdF,uBACE,kBACA,MACA,QACA,SACA,OACA,QRgcsC,EQ/btC,WCRJ,+BCCE,uBACA,mBCNF,IACE,qBACA,mBACA,MXisB4B,uBWhsB5B,eACA,8BACA,QX2rB4B,IY/nBtB,gBAOI,mCAPJ,WAOI,8BAPJ,cAOI,iCAPJ,cAOI,iCAPJ,mBAOI,sCAPJ,gBAOI,mCAPJ,aAOI,sBAPJ,WAOI,uBAPJ,YAOI,sBAPJ,oBAOI,8BAPJ,kBAOI,4BAPJ,iBAOI,2BAPJ,kBAOI,iCAPJ,iBAOI,2BAPJ,WAOI,qBAPJ,YAOI,uBAPJ,YAOI,sBAPJ,YAOI,uBAPJ,aAOI,qBAPJ,eAOI,yBAPJ,iBAOI,2BAPJ,kBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,2BAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,mBAOI,6BAPJ,iBAOI,2BAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,mBAOI,6BAPJ,UAOI,0BAPJ,gBAOI,gCAPJ,SAOI,yBAPJ,QAOI,wBAPJ,eAOI,+BAPJ,SAOI,yBAPJ,aAOI,6BAPJ,cAOI,8BAPJ,QAOI,wBAPJ,eAOI,+BAPJ,QAOI,wBAPJ,QAOI,mDAPJ,WAOI,wDAPJ,WAOI,mDAPJ,aAOI,2BAjBJ,oBACE,iFADF,sBACE,mFADF,oBACE,iFADF,iBACE,8EADF,oBACE,iFADF,mBACE,gFADF,kBACE,+EADF,kBACE,+EADF,iBACE,8EADF,iBACE,8EADF,sBACE,mFADF,mBACE,gFADF,mBACE,gFADF,iBACE,8EADF,gBACE,6EADF,yBACE,sFADF,kBACE,+EADF,kBACE,+EADF,mBACE,gFADF,mBACE,gFADF,kBACE,+EADF,iBACE,8EADF,iBACE,8EADF,kBACE,+EADF,iBACE,8EADF,sBACE,mFASF,iBAOI,2BAPJ,mBAOI,6BAPJ,mBAOI,6BAPJ,gBAOI,0BAPJ,iBAOI,2BAPJ,OAOI,iBAPJ,QAOI,mBAPJ,SAOI,oBAPJ,UAOI,oBAPJ,WAOI,sBAPJ,YAOI,uBAPJ,SAOI,kBAPJ,UAOI,oBAPJ,WAOI,qBAPJ,OAOI,mBAPJ,QAOI,qBAPJ,SAOI,sBAPJ,kBAOI,2CAPJ,oBAOI,sCAPJ,oBAOI,sCAPJ,QAOI,uFAPJ,UAOI,oBAPJ,YAOI,2FAPJ,cAOI,wBAPJ,YAOI,6FAPJ,cAOI,0BAPJ,eAOI,8FAPJ,iBAOI,2BAPJ,cAOI,4FAPJ,gBAOI,yBAPJ,gBAIQ,uBAGJ,8EAPJ,kBAIQ,uBAGJ,gFAPJ,gBAIQ,uBAGJ,8EAPJ,aAIQ,uBAGJ,2EAPJ,gBAIQ,uBAGJ,8EAPJ,eAIQ,uBAGJ,6EAPJ,cAIQ,uBAGJ,4EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,aAIQ,uBAGJ,2EAPJ,kBAIQ,uBAGJ,gFAPJ,eAIQ,uBAGJ,6EAPJ,eAIQ,uBAGJ,6EAPJ,aAIQ,uBAGJ,2EAPJ,YAIQ,uBAGJ,0EAPJ,qBAIQ,uBAGJ,mFAPJ,cAIQ,uBAGJ,4EAPJ,cAIQ,uBAGJ,4EAPJ,eAIQ,uBAGJ,6EAPJ,eAIQ,uBAGJ,6EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,aAIQ,uBAGJ,2EAPJ,cAIQ,uBAGJ,4EAPJ,aAIQ,uBAGJ,2EAPJ,kBAIQ,uBAGJ,gFAPJ,cAIQ,uBAGJ,4EAPJ,uBAOI,wDAPJ,yBAOI,0DAPJ,uBAOI,wDAPJ,oBAOI,qDAPJ,uBAOI,wDAPJ,sBAOI,uDAPJ,qBAOI,sDAPJ,oBAOI,qDAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAPJ,UAOI,4BAjBJ,mBACE,yBADF,mBACE,0BADF,mBACE,yBADF,mBACE,0BADF,oBACE,uBASF,MAOI,qBAPJ,MAOI,qBAPJ,MAOI,qBAPJ,OAOI,sBAPJ,QAOI,sBAPJ,QAOI,0BAPJ,QAOI,uBAPJ,YAOI,2BAPJ,MAOI,sBAPJ,MAOI,sBAPJ,MAOI,sBAPJ,OAOI,uBAPJ,QAOI,uBAPJ,QAOI,2BAPJ,QAOI,wBAPJ,YAOI,4BAPJ,WAOI,yBAPJ,UAOI,8BAPJ,aAOI,iCAPJ,kBAOI,sCAPJ,qBAOI,yCAPJ,aAOI,uBAPJ,aAOI,uBAPJ,eAOI,yBAPJ,eAOI,yBAPJ,WAOI,0BAPJ,aAOI,4BAPJ,mBAOI,kCAPJ,uBAOI,sCAPJ,qBAOI,oCAPJ,wBAOI,kCAPJ,yBAOI,yCAPJ,wBAOI,wCAPJ,wBAOI,wCAPJ,mBAOI,kCAPJ,iBAOI,gCAPJ,oBAOI,8BAPJ,sBAOI,gCAPJ,qBAOI,+BAPJ,qBAOI,oCAPJ,mBAOI,kCAPJ,sBAOI,gCAPJ,uBAOI,uCAPJ,sBAOI,sCAPJ,uBAOI,iCAPJ,iBAOI,2BAPJ,kBAOI,iCAPJ,gBAOI,+BAPJ,mBAOI,6BAPJ,qBAOI,+BAPJ,oBAOI,8BAPJ,aAOI,oBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,SAOI,mBAPJ,YAOI,mBAPJ,KAOI,oBAPJ,KAOI,yBAPJ,KAOI,wBAPJ,KAOI,uBAPJ,KAOI,yBAPJ,KAOI,uBAPJ,QAOI,uBAPJ,MAOI,mDAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,yDAPJ,MAOI,6DAPJ,MAOI,yDAPJ,SAOI,yDAPJ,MAOI,mDAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,yDAPJ,MAOI,6DAPJ,MAOI,yDAPJ,SAOI,yDAPJ,MAOI,wBAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,2BAPJ,MAOI,6BAPJ,MAOI,2BAPJ,SAOI,2BAPJ,MAOI,0BAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,+BAPJ,MAOI,6BAPJ,SAOI,6BAPJ,MAOI,2BAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,gCAPJ,MAOI,8BAPJ,SAOI,8BAPJ,MAOI,yBAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,8BAPJ,MAOI,4BAPJ,SAOI,4BAPJ,KAOI,qBAPJ,KAOI,0BAPJ,KAOI,yBAPJ,KAOI,wBAPJ,KAOI,0BAPJ,KAOI,wBAPJ,MAOI,qDAPJ,MAOI,+DAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,+DAPJ,MAOI,2DAPJ,MAOI,qDAPJ,MAOI,+DAPJ,MAOI,6DAPJ,MAOI,2DAPJ,MAOI,+DAPJ,MAOI,2DAPJ,MAOI,yBAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,4BAPJ,MAOI,8BAPJ,MAOI,4BAPJ,MAOI,2BAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,gCAPJ,MAOI,8BAPJ,MAOI,4BAPJ,MAOI,iCAPJ,MAOI,gCAPJ,MAOI,+BAPJ,MAOI,iCAPJ,MAOI,+BAPJ,MAOI,0BAPJ,MAOI,+BAPJ,MAOI,8BAPJ,MAOI,6BAPJ,MAOI,+BAPJ,MAOI,6BAPJ,OAOI,iBAPJ,OAOI,sBAPJ,OAOI,qBAPJ,OAOI,oBAPJ,OAOI,sBAPJ,OAOI,oBAPJ,WAOI,qBAPJ,WAOI,0BAPJ,WAOI,yBAPJ,WAOI,wBAPJ,WAOI,0BAPJ,WAOI,wBAPJ,cAOI,wBAPJ,cAOI,6BAPJ,cAOI,4BAPJ,cAOI,2BAPJ,cAOI,6BAPJ,cAOI,2BAPJ,gBAOI,gDAPJ,MAOI,4CAPJ,MAOI,6CAPJ,MAOI,6CAPJ,MAOI,4BAPJ,MAOI,4BAPJ,MAOI,0BAPJ,YAOI,6BAPJ,YAOI,6BAPJ,YAOI,+BAPJ,UAOI,2BAPJ,WAOI,2BAPJ,WAOI,2BAPJ,aAOI,2BAPJ,SAOI,2BAPJ,WAOI,8BAPJ,MAOI,yBAPJ,OAOI,2BAPJ,SAOI,2BAPJ,OAOI,2BAPJ,YAOI,2BAPJ,UAOI,4BAPJ,aAOI,6BAPJ,sBAOI,gCAPJ,2BAOI,qCAPJ,8BAOI,wCAPJ,gBAOI,oCAPJ,gBAOI,oCAPJ,iBAOI,qCAPJ,WAOI,8BAPJ,aAOI,8BAPJ,YAOI,iEAPJ,cAIQ,qBAGJ,qEAPJ,gBAIQ,qBAGJ,uEAPJ,cAIQ,qBAGJ,qEAPJ,WAIQ,qBAGJ,kEAPJ,cAIQ,qBAGJ,qEAPJ,aAIQ,qBAGJ,oEAPJ,YAIQ,qBAGJ,mEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,WAIQ,qBAGJ,kEAPJ,gBAIQ,qBAGJ,uEAPJ,aAIQ,qBAGJ,oEAPJ,aAIQ,qBAGJ,oEAPJ,WAIQ,qBAGJ,kEAPJ,UAIQ,qBAGJ,iEAPJ,mBAIQ,qBAGJ,0EAPJ,YAIQ,qBAGJ,mEAPJ,YAIQ,qBAGJ,mEAPJ,aAIQ,qBAGJ,oEAPJ,aAIQ,qBAGJ,oEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,WAIQ,qBAGJ,kEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,kEAPJ,gBAIQ,qBAGJ,uEAPJ,YAIQ,qBAGJ,mEAPJ,WAIQ,qBAGJ,wEAPJ,YAIQ,qBAGJ,2CAPJ,eAIQ,qBAGJ,gCAPJ,eAIQ,qBAGJ,sCAPJ,qBAIQ,qBAGJ,2CAPJ,oBAIQ,qBAGJ,0CAPJ,oBAIQ,qBAGJ,0CAPJ,YAIQ,qBAGJ,yBAjBJ,iBACE,wBADF,iBACE,uBADF,iBACE,wBADF,kBACE,qBASF,uBAOI,iDAPJ,yBAOI,mDAPJ,uBAOI,iDAPJ,oBAOI,8CAPJ,uBAOI,iDAPJ,sBAOI,gDAPJ,qBAOI,+CAPJ,oBAOI,8CAjBJ,iBACE,uBAIA,6BACE,uBANJ,iBACE,wBAIA,6BACE,wBANJ,iBACE,uBAIA,6BACE,uBANJ,iBACE,wBAIA,6BACE,wBANJ,kBACE,qBAIA,8BACE,qBAIJ,eAOI,wCAKF,2BAOI,wCAnBN,eAOI,uCAKF,2BAOI,uCAnBN,eAOI,wCAKF,2BAOI,wCAnBN,wBAIQ,+BAGJ,+FAPJ,0BAIQ,+BAGJ,iGAPJ,wBAIQ,+BAGJ,+FAPJ,qBAIQ,+BAGJ,4FAPJ,wBAIQ,+BAGJ,+FAPJ,uBAIQ,+BAGJ,8FAPJ,sBAIQ,+BAGJ,6FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,qBAIQ,+BAGJ,4FAPJ,0BAIQ,+BAGJ,iGAPJ,uBAIQ,+BAGJ,8FAPJ,uBAIQ,+BAGJ,8FAPJ,qBAIQ,+BAGJ,4FAPJ,oBAIQ,+BAGJ,2FAPJ,6BAIQ,+BAGJ,oGAPJ,sBAIQ,+BAGJ,6FAPJ,sBAIQ,+BAGJ,6FAPJ,uBAIQ,+BAGJ,8FAPJ,uBAIQ,+BAGJ,8FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,qBAIQ,+BAGJ,4FAPJ,sBAIQ,+BAGJ,6FAPJ,qBAIQ,+BAGJ,4FAPJ,0BAIQ,+BAGJ,iGAPJ,gBAIQ,+BAGJ,qGAjBJ,0BACE,+BAIA,sCACE,+BANJ,2BACE,iCAIA,uCACE,iCANJ,2BACE,kCAIA,uCACE,kCANJ,2BACE,iCAIA,uCACE,iCANJ,2BACE,kCAIA,uCACE,kCANJ,4BACE,+BAIA,wCACE,+BAIJ,YAIQ,mBAGJ,8EAPJ,cAIQ,mBAGJ,gFAPJ,YAIQ,mBAGJ,8EAPJ,SAIQ,mBAGJ,2EAPJ,YAIQ,mBAGJ,8EAPJ,WAIQ,mBAGJ,6EAPJ,UAIQ,mBAGJ,4EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,SAIQ,mBAGJ,2EAPJ,cAIQ,mBAGJ,gFAPJ,WAIQ,mBAGJ,6EAPJ,WAIQ,mBAGJ,6EAPJ,SAIQ,mBAGJ,2EAPJ,QAIQ,mBAGJ,0EAPJ,iBAIQ,mBAGJ,mFAPJ,UAIQ,mBAGJ,4EAPJ,UAIQ,mBAGJ,4EAPJ,WAIQ,mBAGJ,6EAPJ,WAIQ,mBAGJ,6EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,SAIQ,mBAGJ,2EAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,2EAPJ,cAIQ,mBAGJ,gFAPJ,UAIQ,mBAGJ,4EAPJ,SAIQ,mBAGJ,8EAPJ,gBAIQ,mBAGJ,0CAPJ,mBAIQ,mBAGJ,mFAPJ,kBAIQ,mBAGJ,kFAjBJ,eACE,qBADF,eACE,sBADF,eACE,qBADF,eACE,sBADF,gBACE,mBASF,mBAOI,wDAPJ,qBAOI,0DAPJ,mBAOI,wDAPJ,gBAOI,qDAPJ,mBAOI,wDAPJ,kBAOI,uDAPJ,iBAOI,sDAPJ,gBAOI,qDAPJ,aAOI,+CAPJ,iBAOI,2BAPJ,kBAOI,4BAPJ,kBAOI,4BAPJ,SAOI,+BAPJ,SAOI,+BAPJ,SAOI,iDAPJ,WAOI,2BAPJ,WAOI,oDAPJ,WAOI,iDAPJ,WAOI,oDAPJ,WAOI,oDAPJ,WAOI,qDAPJ,gBAOI,6BAPJ,cAOI,sDAPJ,aAOI,qHAPJ,eAOI,yEAPJ,eAOI,2HAPJ,eAOI,qHAPJ,eAOI,2HAPJ,eAOI,2HAPJ,eAOI,6HAPJ,oBAOI,6EAPJ,kBAOI,+HAPJ,aAOI,yHAPJ,eAOI,6EAPJ,eAOI,+HAPJ,eAOI,yHAPJ,eAOI,+HAPJ,eAOI,+HAPJ,eAOI,iIAPJ,oBAOI,iFAPJ,kBAOI,mIAPJ,gBAOI,2HAPJ,kBAOI,+EAPJ,kBAOI,iIAPJ,kBAOI,2HAPJ,kBAOI,iIAPJ,kBAOI,iIAPJ,kBAOI,mIAPJ,uBAOI,mFAPJ,qBAOI,qIAPJ,eAOI,uHAPJ,iBAOI,2EAPJ,iBAOI,6HAPJ,iBAOI,uHAPJ,iBAOI,6HAPJ,iBAOI,6HAPJ,iBAOI,+HAPJ,sBAOI,+EAPJ,oBAOI,iIAPJ,SAOI,8BAPJ,WAOI,6BAPJ,MAOI,sBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,KAOI,qBAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,aAOI,uBAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,aAOI,uBAPJ,aAOI,uBAPJ,aAOI,uBAPJ,oBAOI,8BAPJ,iBAOI,2BAPJ,aAOI,uBAPJ,gBAOI,0BAPJ,iBAOI,2BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,yBQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,0BQGI,gBAOI,sBAPJ,cAOI,uBAPJ,eAOI,sBAPJ,uBAOI,8BAPJ,qBAOI,4BAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,oBAOI,2BAPJ,aAOI,0BAPJ,mBAOI,gCAPJ,YAOI,yBAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,YAOI,yBAPJ,gBAOI,6BAPJ,iBAOI,8BAPJ,WAOI,wBAPJ,kBAOI,+BAPJ,WAOI,wBAPJ,cAOI,yBAPJ,aAOI,8BAPJ,gBAOI,iCAPJ,qBAOI,sCAPJ,wBAOI,yCAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,kBAOI,yBAPJ,kBAOI,yBAPJ,cAOI,0BAPJ,gBAOI,4BAPJ,sBAOI,kCAPJ,0BAOI,sCAPJ,wBAOI,oCAPJ,2BAOI,kCAPJ,4BAOI,yCAPJ,2BAOI,wCAPJ,2BAOI,wCAPJ,sBAOI,kCAPJ,oBAOI,gCAPJ,uBAOI,8BAPJ,yBAOI,gCAPJ,wBAOI,+BAPJ,wBAOI,oCAPJ,sBAOI,kCAPJ,yBAOI,gCAPJ,0BAOI,uCAPJ,yBAOI,sCAPJ,0BAOI,iCAPJ,oBAOI,2BAPJ,qBAOI,iCAPJ,mBAOI,+BAPJ,sBAOI,6BAPJ,wBAOI,+BAPJ,uBAOI,8BAPJ,gBAOI,oBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,YAOI,mBAPJ,eAOI,mBAPJ,QAOI,oBAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,uBAPJ,QAOI,yBAPJ,QAOI,uBAPJ,WAOI,uBAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,mDAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,yDAPJ,SAOI,6DAPJ,SAOI,yDAPJ,YAOI,yDAPJ,SAOI,wBAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,6BAPJ,SAOI,2BAPJ,YAOI,2BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,YAOI,6BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,YAOI,8BAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,YAOI,4BAPJ,QAOI,qBAPJ,QAOI,0BAPJ,QAOI,yBAPJ,QAOI,wBAPJ,QAOI,0BAPJ,QAOI,wBAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,qDAPJ,SAOI,+DAPJ,SAOI,6DAPJ,SAOI,2DAPJ,SAOI,+DAPJ,SAOI,2DAPJ,SAOI,yBAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,4BAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,2BAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,gCAPJ,SAOI,8BAPJ,SAOI,4BAPJ,SAOI,iCAPJ,SAOI,gCAPJ,SAOI,+BAPJ,SAOI,iCAPJ,SAOI,+BAPJ,SAOI,0BAPJ,SAOI,+BAPJ,SAOI,8BAPJ,SAOI,6BAPJ,SAOI,+BAPJ,SAOI,6BAPJ,UAOI,iBAPJ,UAOI,sBAPJ,UAOI,qBAPJ,UAOI,oBAPJ,UAOI,sBAPJ,UAOI,oBAPJ,cAOI,qBAPJ,cAOI,0BAPJ,cAOI,yBAPJ,cAOI,wBAPJ,cAOI,0BAPJ,cAOI,wBAPJ,iBAOI,wBAPJ,iBAOI,6BAPJ,iBAOI,4BAPJ,iBAOI,2BAPJ,iBAOI,6BAPJ,iBAOI,2BAPJ,eAOI,2BAPJ,aAOI,4BAPJ,gBAOI,6BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,gBAOI,uBAPJ,uBAOI,8BAPJ,oBAOI,2BAPJ,gBAOI,uBAPJ,mBAOI,0BAPJ,oBAOI,4BRVR,0BQGI,iBAOI,sBAPJ,eAOI,uBAPJ,gBAOI,sBAPJ,wBAOI,8BAPJ,sBAOI,4BAPJ,qBAOI,2BAPJ,sBAOI,iCAPJ,qBAOI,2BAPJ,cAOI,0BAPJ,oBAOI,gCAPJ,aAOI,yBAPJ,YAOI,wBAPJ,mBAOI,+BAPJ,aAOI,yBAPJ,iBAOI,6BAPJ,kBAOI,8BAPJ,YAOI,wBAPJ,mBAOI,+BAPJ,YAOI,wBAPJ,eAOI,yBAPJ,cAOI,8BAPJ,iBAOI,iCAPJ,sBAOI,sCAPJ,yBAOI,yCAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,mBAOI,yBAPJ,mBAOI,yBAPJ,eAOI,0BAPJ,iBAOI,4BAPJ,uBAOI,kCAPJ,2BAOI,sCAPJ,yBAOI,oCAPJ,4BAOI,kCAPJ,6BAOI,yCAPJ,4BAOI,wCAPJ,4BAOI,wCAPJ,uBAOI,kCAPJ,qBAOI,gCAPJ,wBAOI,8BAPJ,0BAOI,gCAPJ,yBAOI,+BAPJ,yBAOI,oCAPJ,uBAOI,kCAPJ,0BAOI,gCAPJ,2BAOI,uCAPJ,0BAOI,sCAPJ,2BAOI,iCAPJ,qBAOI,2BAPJ,sBAOI,iCAPJ,oBAOI,+BAPJ,uBAOI,6BAPJ,yBAOI,+BAPJ,wBAOI,8BAPJ,iBAOI,oBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,aAOI,mBAPJ,gBAOI,mBAPJ,SAOI,oBAPJ,SAOI,yBAPJ,SAOI,wBAPJ,SAOI,uBAPJ,SAOI,yBAPJ,SAOI,uBAPJ,YAOI,uBAPJ,UAOI,mDAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,yDAPJ,UAOI,6DAPJ,UAOI,yDAPJ,aAOI,yDAPJ,UAOI,mDAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,yDAPJ,UAOI,6DAPJ,UAOI,yDAPJ,aAOI,yDAPJ,UAOI,wBAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,2BAPJ,UAOI,6BAPJ,UAOI,2BAPJ,aAOI,2BAPJ,UAOI,0BAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,+BAPJ,UAOI,6BAPJ,aAOI,6BAPJ,UAOI,2BAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,gCAPJ,UAOI,8BAPJ,aAOI,8BAPJ,UAOI,yBAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,8BAPJ,UAOI,4BAPJ,aAOI,4BAPJ,SAOI,qBAPJ,SAOI,0BAPJ,SAOI,yBAPJ,SAOI,wBAPJ,SAOI,0BAPJ,SAOI,wBAPJ,UAOI,qDAPJ,UAOI,+DAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,+DAPJ,UAOI,2DAPJ,UAOI,qDAPJ,UAOI,+DAPJ,UAOI,6DAPJ,UAOI,2DAPJ,UAOI,+DAPJ,UAOI,2DAPJ,UAOI,yBAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,4BAPJ,UAOI,8BAPJ,UAOI,4BAPJ,UAOI,2BAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,gCAPJ,UAOI,8BAPJ,UAOI,4BAPJ,UAOI,iCAPJ,UAOI,gCAPJ,UAOI,+BAPJ,UAOI,iCAPJ,UAOI,+BAPJ,UAOI,0BAPJ,UAOI,+BAPJ,UAOI,8BAPJ,UAOI,6BAPJ,UAOI,+BAPJ,UAOI,6BAPJ,WAOI,iBAPJ,WAOI,sBAPJ,WAOI,qBAPJ,WAOI,oBAPJ,WAOI,sBAPJ,WAOI,oBAPJ,eAOI,qBAPJ,eAOI,0BAPJ,eAOI,yBAPJ,eAOI,wBAPJ,eAOI,0BAPJ,eAOI,wBAPJ,kBAOI,wBAPJ,kBAOI,6BAPJ,kBAOI,4BAPJ,kBAOI,2BAPJ,kBAOI,6BAPJ,kBAOI,2BAPJ,gBAOI,2BAPJ,cAOI,4BAPJ,iBAOI,6BAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,iBAOI,uBAPJ,wBAOI,8BAPJ,qBAOI,2BAPJ,iBAOI,uBAPJ,oBAOI,0BAPJ,qBAOI,4BCtDZ,0BD+CQ,MAOI,0BAPJ,MAOI,4BAPJ,MAOI,6BCnCZ,aD4BQ,gBAOI,0BAPJ,sBAOI,gCAPJ,eAOI,yBAPJ,cAOI,wBAPJ,qBAOI,+BAPJ,eAOI,yBAPJ,mBAOI,6BAPJ,oBAOI,8BAPJ,cAOI,wBAPJ,qBAOI,+BAPJ,cAOI,yBEzEZ,4BASI,6VAIA,+MAIA,uhBAIA,qvBAIA,uRAIA,yPAIA,yRAGF,8BACA,wBAMA,mOACA,0GACA,0FAOA,iDC2OI,oBALI,KDpOR,2BACA,2BAKA,yBACA,gCACA,sBACA,gCAEA,0BACA,iCAEA,6CACA,qCACA,2BACA,qCAEA,2CACA,oCACA,0BACA,oCAGA,4BAEA,sBACA,6BACA,gCAEA,6BACA,mCAMA,sBACA,2BAGA,uBACA,yBACA,2BACA,oDAEA,sBACA,yBACA,yBACA,4BACA,6BACA,oDACA,+BAGA,mDACA,4DACA,qDACA,4DAIA,+BACA,8BACA,+CAIA,+BACA,sCACA,iCACA,wCE/GE,qBFqHA,kBAGA,yBACA,mCACA,sBACA,6BAEA,0BACA,uCAEA,gDACA,wCACA,2BACA,kCAEA,8CACA,uCACA,0BACA,iCAGE,yRAIA,uPAIA,uRAGF,4BAEA,yBACA,+BACA,mCACA,yCAEA,sBAEA,2BACA,yDAEA,+BACA,sCACA,iCACA,wCGrKJ,qBAGE,sBAeE,8CANJ,MAOM,wBAcN,KACE,SACA,uCF6OI,UALI,yBEtOR,uCACA,uCACA,2BACA,qCACA,mCACA,8BACA,0CASF,GACE,cACA,MjBmnB4B,QiBlnB5B,SACA,wCACA,QjBynB4B,IiB/mB9B,0CACE,aACA,cjBwjB4B,MiBrjB5B,YjBwjB4B,IiBvjB5B,YjBwjB4B,IiBvjB5B,8BAGF,OFuMQ,iCA5JJ,0BE3CJ,OF8MQ,gBEzMR,OFkMQ,kCA5JJ,0BEtCJ,OFyMQ,kBEpMR,OF6LQ,kCA5JJ,0BEjCJ,OFoMQ,kBE/LR,OFoLM,UALI,OE1KV,OF+KM,UALI,OErKV,OF0KM,UALI,KE1JV,EACE,aACA,cjBwV0B,KiB9U5B,YACE,iCACA,YACA,8BAMF,QACE,mBACA,kBACA,oBAMF,MAEE,kBAGF,SAGE,aACA,mBAGF,wBAIE,gBAGF,GACE,YjB6b4B,IiBxb9B,GACE,oBACA,cAMF,WACE,gBAQF,SAEE,YjBsa4B,OiB9Z9B,aF6EM,UALI,QEjEV,WACE,QjBqf4B,QiBpf5B,wCASF,QAEE,kBFyDI,UALI,OElDR,cACA,wBAGF,mBACA,eAKA,EACE,gEACA,gBjBiNwC,UiB/MxC,QACE,oDAWF,4DAEE,cACA,qBAOJ,kBAIE,YjBiV4B,yBelUxB,UALI,IEFV,IACE,cACA,aACA,mBACA,cFGI,UALI,OEOR,SFFI,UALI,QESN,cACA,kBAIJ,KFTM,UALI,OEgBR,2BACA,qBAGA,OACE,cAIJ,IACE,yBFrBI,UALI,OE4BR,MjBs5CkC,kBiBr5ClC,iBjBs5CkC,qBkB1rDhC,gBDuSF,QACE,UF5BE,UALI,IE4CV,OACE,gBAMF,QAEE,sBAQF,MACE,oBACA,yBAGF,QACE,YjB4X4B,MiB3X5B,ejB2X4B,MiB1X5B,MjB4Z4B,0BiB3Z5B,gBAOF,GAEE,mBACA,gCAGF,2BAME,qBACA,mBACA,eAQF,MACE,qBAMF,OAEE,gBAQF,iCACE,UAKF,sCAKE,SACA,oBF3HI,UALI,QEkIR,oBAIF,cAEE,oBAKF,cACE,eAGF,OAGE,iBAGA,gBACE,UAOJ,0IACE,wBAQF,gDAIE,0BAGE,4GACE,eAON,mBACE,UACA,kBAKF,SACE,gBAUF,SACE,YACA,UACA,SACA,SAQF,OACE,WACA,WACA,UACA,cjBoN4B,MepatB,iCEmNN,oBF/WE,0BEwWJ,OFrMQ,kBE8MN,SACE,WAOJ,+OAOE,UAGF,4BACE,YASF,cACE,6BACA,oBAmBF,4BACE,wBAKF,+BACE,UAOF,uBACE,aACA,0BAKF,OACE,qBAKF,OACE,SAOF,QACE,kBACA,eAQF,SACE,wBAQF,SACE,wBEpkBF,MJmQM,UALI,QI5PR,YnBwoB4B,ImBnoB5B,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,gBIvQN,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,kBIvQN,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,gBIvQN,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,kBIvQN,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,gBIvQN,WJgQM,iCI5PJ,YnBynBkB,ImBxnBlB,YnBwmB0B,IezgB1B,0BIpGF,WJuQM,kBI/OR,eCvDE,eACA,gBD2DF,aC5DE,eACA,gBD8DF,kBACE,qBAEA,mCACE,anBsoB0B,MmB5nB9B,YJ8MM,UALI,QIvMR,yBAIF,YACE,cnBiUO,Ke1HH,UALI,QI/LR,wBACE,gBAIJ,mBACE,iBACA,cnBuTO,Ke1HH,UALI,QItLR,ME5ES,QF8ET,2BACE,aGhGJ,WCIE,eAGA,YDDF,eACE,QtB2jDkC,OsB1jDlC,iBtB2jDkC,kBsB1jDlC,2DJGE,sCKRF,eAGA,YDcF,QAEE,qBAGF,YACE,oBACA,cAGF,gBPyPM,UALI,QOlPR,MtB8iDkC,0BwBhlDlC,mGCHA,iBACA,iBACA,WACA,0CACA,yCACA,kBACA,iBrBsDE,yBoB5CE,yBACE,UxBkee,OIvbnB,yBoB5CE,uCACE,UxBkee,OIvbnB,yBoB5CE,qDACE,UxBkee,OIvbnB,0BoB5CE,mEACE,UxBkee,QIvbnB,0BoB5CE,kFACE,UxBkee,Q0BlfvB,MAEI,2JAKF,KCNA,iBACA,iBACA,aACA,eAEA,uCACA,2CACA,0CDEE,OCOF,cACA,WACA,eACA,0CACA,yCACA,8BA+CI,KACE,YAGF,iBApCJ,cACA,WAcA,cACE,cACA,WAFF,cACE,cACA,UAFF,cACE,cACA,qBAFF,cACE,cACA,UAFF,cACE,cACA,UAFF,cACE,cACA,qBA+BE,UAhDJ,cACA,WAqDQ,OAhEN,cACA,kBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,WAuEQ,UAxDV,wBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,WAxDV,yBAwDU,WAxDV,yBAmEM,WAEE,iBAGF,WAEE,iBAPF,WAEE,uBAGF,WAEE,uBAPF,WAEE,sBAGF,WAEE,sBAPF,WAEE,oBAGF,WAEE,oBAPF,WAEE,sBAGF,WAEE,sBAPF,WAEE,oBAGF,WAEE,oBvB1DN,yBuBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBvB1DN,yBuBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBvB1DN,yBuBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBvB1DN,0BuBUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,qBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,qBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,oBAGF,iBAEE,qBvB1DN,0BuBUE,SACE,YAGF,qBApCJ,cACA,WAcA,kBACE,cACA,WAFF,kBACE,cACA,UAFF,kBACE,cACA,qBAFF,kBACE,cACA,UAFF,kBACE,cACA,UAFF,kBACE,cACA,qBA+BE,cAhDJ,cACA,WAqDQ,WAhEN,cACA,kBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,WAuEQ,cAxDV,cAwDU,cAxDV,wBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,eAxDV,yBAwDU,eAxDV,yBAmEM,mBAEE,iBAGF,mBAEE,iBAPF,mBAEE,uBAGF,mBAEE,uBAPF,mBAEE,sBAGF,mBAEE,sBAPF,mBAEE,oBAGF,mBAEE,oBAPF,mBAEE,sBAGF,mBAEE,sBAPF,mBAEE,oBAGF,mBAEE,qBCrHV,uBAEE,+BACA,4BACA,gCACA,6BAEA,uCACA,iCACA,gDACA,kCACA,+CACA,2CACA,8CACA,yCACA,6CACA,yCAEA,WACA,c5BkYO,K4BjYP,e5BssB4B,I4BrsB5B,0CAOA,6EACE,oBAEA,qFACA,oCACA,oB5B8sB0B,uB4B7sB1B,2GAGF,yCACE,uBAGF,yCACE,sBAIJ,qBACE,+DAOF,aACE,iBAUA,4BACE,sBAeF,gCACE,sCAGA,kCACE,sCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,qDACA,+CAMF,yDACE,qDACA,+CAQJ,cACE,qDACA,+CAQA,8BACE,oDACA,8CC5IF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,iBAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,cAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,aAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,iCACA,+BACA,+BACA,8BACA,8BACA,6BACA,6BAEA,4BACA,0CDiJA,kBACE,gBACA,iCxB3FF,4BwByFA,qBACE,gBACA,kCxB3FF,4BwByFA,qBACE,gBACA,kCxB3FF,4BwByFA,qBACE,gBACA,kCxB3FF,6BwByFA,qBACE,gBACA,kCxB3FF,6BwByFA,sBACE,gBACA,kCEnKN,YACE,c9Bq2BsC,M8Bl2BtC,YCJuB,IDKvB,MTmBS,QSdX,gBACE,oDACA,uDACA,gBf8QI,UALI,QetQR,YChBuB,IDiBvB,YEfiB,IFgBjB,MTMS,QSHX,mBACE,kDACA,qDfoQI,UALI,Qe3PV,mBACE,mDACA,sDf8PI,UALI,SkBtRV,WACE,WjC61BsC,OenkBlC,UALI,QkBjRR,MjC61BsC,0BkCl2BxC,cACE,cACA,WACA,uBnBwRI,UALI,KmBhRR,YlCkmB4B,IkCjmB5B,YFLiB,IEMjB,MlC03BsC,qBkCz3BtC,gBACA,iBbGM,KaFN,4BACA,2DhBGE,sCjBHE,WiCMJ,0DjCFI,uCiChBN,cjCiBQ,iBiCGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MlCo2BoC,qBkCn2BpC,iBblBI,KamBJ,abJI,KaKJ,UAKE,WHlCmB,KGsCvB,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MlC00BoC,0BkCx0BpC,UAQF,uBAEE,iBlC4yBoC,uBkCzyBpC,UAIF,oCACE,uBACA,0BACA,kBlCmrB0B,OkClrB1B,MlCoyBoC,qBmCl4BtC,iBnCmiCgC,sBkCn8B9B,oBACA,qBACA,mBACA,eACA,wBlC+rB0B,uBkC9rB1B,gBjCzFE,WiC0FF,mHjCtFE,uCiC0EJ,oCjCzEM,iBiCwFN,yEACE,iBlC07B8B,uBkCj7BlC,wBACE,cACA,WACA,kBACA,gBACA,YFtHiB,IEuHjB,MlCyxBsC,qBkCxxBtC,+BACA,2BACA,sCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WlC0wBsC,wDkCzwBtC,qBnByII,UALI,SGvQN,yCgBuIF,uCACE,qBACA,wBACA,kBlCmoB0B,MkC/nB9B,iBACE,WlC8vBsC,sDkC7vBtC,mBnB4HI,UALI,QGvQN,yCgBoJF,uCACE,mBACA,qBACA,kBlC0nB0B,KkClnB5B,sBACE,WlC2uBoC,yDkCxuBtC,yBACE,WlCwuBoC,wDkCruBtC,yBACE,WlCquBoC,sDkChuBxC,oBACE,MlCmuBsC,KkCluBtC,OlC4tBsC,yDkC3tBtC,QlCglB4B,QkC9kB5B,mDACE,eAGF,uCACE,oBhBvLA,sCgB2LF,0CACE,oBhB5LA,sCgBgMF,2ClC4sBsC,wDkC3sBtC,2ClC4sBsC,sDoC35BxC,aACE,yPAEA,cACA,WACA,uCrBqRI,UALI,KqB7QR,YpC+lB4B,IoC9lB5B,YJRiB,IISjB,MpCu3BsC,qBoCt3BtC,gBACA,sBACA,kFACA,4BACA,oBpC69BkC,oBoC59BlC,gBpC69BkC,UoC59BlC,2DlBHE,2BjBHE,WmCSJ,0DnCLI,uCmCfN,anCgBQ,iBmCMN,mBACE,afII,KeHJ,UAKE,WLxByB,KK4B7B,0DAEE,cpC4uB0B,OoC3uB1B,sBAGF,sBAEE,iBpCq1BoC,uBoCh1BtC,4BACE,oBACA,uCAIJ,gBACE,YpCquB4B,OoCpuB5B,epCouB4B,OoCnuB5B,apCouB4B,MejgBxB,UALI,SGvQN,2BkB8CJ,gBACE,YpCiuB4B,MoChuB5B,epCguB4B,MoC/tB5B,apCguB4B,KergBxB,UALI,QGvQN,2BkBwDA,kCACE,yPCxEN,YACE,cACA,WrCm6BwC,OqCl6BxC,arCm6BwC,MqCl6BxC,crCm6BwC,QqCj6BxC,8BACE,WACA,mBAIJ,oBACE,crCy5BwC,MqCx5BxC,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,yBAEA,MrCy4BwC,IqCx4BxC,OrCw4BwC,IqCv4BxC,gBACA,mBACA,gBACA,yCACA,+CACA,4BACA,2BACA,wBACA,OrC04BwC,oDqCz4BxC,yBAGA,iCnB1BE,oBmB8BF,8BAEE,crCk4BsC,IqC/3BxC,yBACE,OrCy3BsC,gBqCt3BxC,wBACE,ahB3BI,KgB4BJ,UACA,WrC+foB,iCqC5ftB,0BACE,iBhBrDG,QgBsDH,ahBtDG,QgBwDH,yCAII,wPAIJ,sCAII,gKAKN,+CACE,iBhBlFK,QgBmFL,ahBnFK,QgBwFH,kPAIJ,2BACE,oBACA,YACA,QrCi2BuC,GqC11BvC,2FACE,eACA,QrCw1BqC,GqC10B3C,aACE,arCm1BgC,MqCj1BhC,+BACE,4KAEA,MrC60B8B,IqC50B9B,mBACA,0CACA,gCnBhHA,kBjBHE,WoCqHF,qCpCjHE,uCoCyGJ,+BpCxGM,iBoCkHJ,qCACE,2JAGF,uCACE,oBrC40B4B,aqCv0B1B,2JAKN,gCACE,crCuzB8B,MqCtzB9B,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,arCqyBgC,KqClyBlC,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QrCspBwB,IqC/oB1B,8EACE,kLClLN,YACE,WACA,YACA,UACA,gBACA,+BAEA,kBACE,UAIA,mDtC4gCuC,uBsC3gCvC,+CtC2gCuC,uBsCxgCzC,8BACE,SAGF,kCACE,MtC6/BuC,KsC5/BvC,OtC4/BuC,KsC3/BvC,oBACA,gBH1BF,yBG4BE,OtC2/BuC,EkBxgCvC,mBjBHE,WqCmBF,4FrCfE,uCqCMJ,kCrCLM,iBqCgBJ,yCHjCF,iBnC4hCyC,QsCt/BzC,2CACE,MtCs+B8B,KsCr+B9B,OtCs+B8B,MsCr+B9B,oBACA,OtCq+B8B,QsCp+B9B,iBtCq+B8B,sBsCp+B9B,2BpB7BA,mBoBkCF,8BACE,MtCk+BuC,KsCj+BvC,OtCi+BuC,KsCh+BvC,gBHpDF,yBGsDE,OtCi+BuC,EkBxgCvC,mBjBHE,WqC6CF,4FrCzCE,uCqCiCJ,8BrChCM,iBqC0CJ,qCH3DF,iBnC4hCyC,QsC59BzC,8BACE,MtC48B8B,KsC38B9B,OtC48B8B,MsC38B9B,oBACA,OtC28B8B,QsC18B9B,iBtC28B8B,sBsC18B9B,2BpBvDA,mBoB4DF,qBACE,oBAEA,2CACE,iBtC88BqC,0BsC38BvC,uCACE,iBtC08BqC,0BuCjiC3C,eACE,kBAEA,gGAGE,OvCsiCoC,gDuCriCpC,WvCqiCoC,gDuCpiCpC,YvCqiCoC,KuCliCtC,qBACE,kBACA,MACA,OACA,UACA,YACA,oBACA,gBACA,iBACA,uBACA,mBACA,oBACA,kDACA,qBtCRE,WsCSF,kDtCLE,uCsCTJ,qBtCUM,iBsCON,oEAEE,oBAEA,8FACE,oBAGF,oMAEE,YvC0gCkC,SuCzgClC,evC0gCkC,QuCvgCpC,sGACE,YvCqgCkC,SuCpgClC,evCqgCkC,QuCjgCtC,4BACE,YvC+/BoC,SuC9/BpC,evC+/BoC,QuCx/BpC,mLACE,2CACA,UvCy/BkC,oDuCv/BlC,+MACE,kBACA,mBACA,WACA,OvCi/BgC,MuCh/BhC,WACA,iBlBlDA,KHEJ,sCqBuDA,oDACE,2CACA,UvCw+BkC,oDuCn+BpC,6CACE,sCAIJ,2EAEE,MlBhEO,QkBkEP,yFACE,iBvCwyBkC,uBwC/3BxC,aACE,kBACA,aACA,eACA,oBACA,WAEA,iFAGE,kBACA,cACA,SACA,YAIF,0GAGE,UAMF,kBACE,kBACA,UAEA,wBACE,UAWN,kBACE,aACA,mBACA,uBzB8OI,UALI,KyBvOR,YxCyjB4B,IwCxjB5B,YR9CiB,IQ+CjB,MxCi1BsC,qBwCh1BtC,kBACA,mBACA,iBxCw6BsC,sBwCv6BtC,2DtBtCE,sCsBgDJ,kHAIE,mBzBwNI,UALI,QGvQN,yCsByDJ,kHAIE,qBzB+MI,UALI,SGvQN,yCsBkEJ,0DAEE,mBAaE,wVtBjEA,0BACA,6BsByEA,yUtB1EA,0BACA,6BsBsFF,0IACE,8CtB1EA,yBACA,4BsB6EF,uHtB9EE,yBACA,4BuBxBF,gBACE,aACA,WACA,WzCq0BoC,OenkBlC,UALI,Q0B1PN,MzCgjCqB,2ByC7iCvB,eACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB1BqPE,UALI,S0B7ON,MzCmiCqB,KyCliCrB,iBzCkiCqB,kBkB7jCrB,sCuBgCA,8HAEE,cA/CF,0DAqDE,azCqhCmB,kCyClhCjB,czC41BgC,sByC31BhC,2PACA,4BACA,yDACA,8DAGF,sEACE,azC0gCiB,kCyCzgCjB,WzCygCiB,0CyC1kCrB,0EA0EI,czC00BgC,sByCz0BhC,8EA3EJ,wDAkFE,azCw/BmB,kCyCr/BjB,4NAEE,oQACA,czCw5B8B,SyCv5B9B,6DACA,wEAIJ,oEACE,azC2+BiB,kCyC1+BjB,WzC0+BiB,0CyC1kCrB,sEAwGI,yCAxGJ,kEA+GE,azC29BmB,kCyCz9BnB,kFACE,iBzCw9BiB,2ByCr9BnB,8EACE,WzCo9BiB,0CyCj9BnB,sGACE,MzCg9BiB,2ByC38BrB,qDACE,iBAhIF,kVA0IM,UAtHR,kBACE,aACA,WACA,WzCq0BoC,OenkBlC,UALI,Q0B1PN,MzCgjCqB,6ByC7iCvB,iBACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB1BqPE,UALI,S0B7ON,MzCmiCqB,KyCliCrB,iBzCkiCqB,iBkB7jCrB,sCuBgCA,8IAEE,cA/CF,8DAqDE,azCqhCmB,oCyClhCjB,czC41BgC,sByC31BhC,4UACA,4BACA,yDACA,8DAGF,0EACE,azC0gCiB,oCyCzgCjB,WzCygCiB,yCyC1kCrB,8EA0EI,czC00BgC,sByCz0BhC,8EA3EJ,4DAkFE,azCw/BmB,oCyCr/BjB,oOAEE,qVACA,czCw5B8B,SyCv5B9B,6DACA,wEAIJ,wEACE,azC2+BiB,oCyC1+BjB,WzC0+BiB,yCyC1kCrB,0EAwGI,yCAxGJ,sEA+GE,azC29BmB,oCyCz9BnB,sFACE,iBzCw9BiB,6ByCr9BnB,kFACE,WzCo9BiB,yCyCj9BnB,0GACE,MzCg9BiB,6ByC38BrB,uDACE,iBAhIF,8VA4IM,UC9IV,KAEE,yBACA,2BACA,uB3BuRI,mBALI,K2BhRR,0BACA,0BACA,qCACA,yBACA,8CACA,mCACA,gCACA,yCACA,0BACA,gCACA,4EAGA,qBACA,wDACA,sC3BsQI,UALI,wB2B/PR,sCACA,sCACA,0BACA,kBACA,qBAEA,sBACA,eACA,iBACA,mExBjBE,0CiBfF,iBOkCqB,iBzCtBjB,WyCwBJ,mHzCpBI,uCyChBN,KzCiBQ,iByCqBN,WACE,gCAEA,wCACA,8CAGF,sBAEE,0BACA,kCACA,wCAGF,mBACE,gCPrDF,iBOsDuB,uBACrB,8CACA,UAKE,0CAIJ,8BACE,8CACA,UAKE,0CAIJ,mGAKE,iCACA,yCAGA,+CAGA,yKAKI,0CAKN,mDAGE,mCACA,oBACA,2CAEA,iDACA,uCAYF,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,sCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qCDyFA,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,aCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,SCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,kBCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,YCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,WCtGA,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,yCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qCDyFA,UCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDyFA,eCtGA,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wCDmHA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,qBACA,4BACA,2BACA,wBACA,kCACA,mCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oBD0FA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,qBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,qCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,iBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,0BCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,oBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,mBCvGA,qBACA,4BACA,2BACA,wBACA,kCACA,yCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oBD0FA,kBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBD0FA,uBCvGA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oBDsGF,UACE,0BACA,qCACA,yBACA,mCACA,iDACA,yCACA,kDACA,0CACA,iCACA,4CACA,gCACA,sCAEA,gB1CuRwC,U0C7QxC,wBACE,0BAGF,gBACE,gCAWJ,2BCxIE,2BACA,yB5B8NI,mBALI,Q4BvNR,gCDyIF,2BC5IE,4BACA,2B5B8NI,mBALI,S4BvNR,gCCnEF,M3CgBM,W2CfJ,oB3CmBI,uC2CpBN,M3CqBQ,iB2ClBN,iBACE,UAMF,qBACE,aAIJ,YACE,SACA,gB3CDI,W2CEJ,iB3CEI,uC2CLN,Y3CMQ,iB2CDN,gCACE,QACA,Y3CNE,W2COF,gB3CHE,uEACE,iB4CpBR,sEAME,kBAGF,iBACE,mBCwBE,wBACE,qBACA,Y9C6hBwB,O8C5hBxB,e9C2hBwB,O8C1hBxB,WArCJ,sBACA,sCACA,gBACA,qCA0DE,8BACE,cD9CN,eAEE,2BACA,+BACA,2BACA,gCACA,+B9BuQI,wBALI,K8BhQR,0CACA,oCACA,+DACA,qDACA,mDACA,0FACA,6DACA,uCACA,4DACA,+CACA,qDACA,mDACA,sCACA,sCACA,4DACA,mCACA,sCACA,oCACA,qCACA,uCAGA,kBACA,kCACA,aACA,uCACA,kEACA,S9B0OI,UALI,6B8BnOR,+BACA,gBACA,gBACA,uCACA,4BACA,6E3BzCE,+C2B6CF,+BACE,SACA,OACA,qCAwBA,qBACE,qBAEA,qCACE,WACA,OAIJ,mBACE,mBAEA,mCACE,QACA,UzC1CJ,yByC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WzC1CJ,yByC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WzC1CJ,yByC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WzC1CJ,0ByC4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WzC1CJ,0ByC4BA,yBACE,qBAEA,yCACE,WACA,OAIJ,uBACE,mBAEA,uCACE,QACA,WAUN,uCACE,SACA,YACA,aACA,wCCpFA,gCACE,qBACA,Y9C6hBwB,O8C5hBxB,e9C2hBwB,O8C1hBxB,WA9BJ,aACA,sCACA,yBACA,qCAmDE,sCACE,cDgEJ,wCACE,MACA,WACA,UACA,aACA,sCClGA,iCACE,qBACA,Y9C6hBwB,O8C5hBxB,e9C2hBwB,O8C1hBxB,WAvBJ,oCACA,eACA,uCACA,uBA4CE,uCACE,cD0EF,iCACE,iBAMJ,0CACE,MACA,WACA,UACA,aACA,uCCnHA,mCACE,qBACA,Y9C6hBwB,O8C5hBxB,e9C2hBwB,O8C1hBxB,WAWA,mCACE,aAGF,oCACE,qBACA,a9C0gBsB,O8CzgBtB,e9CwgBsB,O8CvgBtB,WAnCN,oCACA,wBACA,uCAsCE,yCACE,cD2FF,oCACE,iBAON,kBACE,SACA,6CACA,gBACA,mDACA,UAMF,eACE,cACA,WACA,4EACA,WACA,Y7Cyb4B,I6Cxb5B,oCACA,mBACA,qBACA,mBACA,+BACA,S3BtKE,uD2ByKF,0CAEE,0CV1LF,iBU4LuB,iCAGvB,4CAEE,2CACA,qBVlMF,iBUmMuB,kCAGvB,gDAEE,6CACA,oBACA,+BAMJ,oBACE,cAIF,iBACE,cACA,gFACA,gB9BmEI,UALI,S8B5DR,sCACA,mBAIF,oBACE,cACA,4EACA,oCAIF,oBAEE,6BACA,0BACA,+DACA,2BACA,kCACA,qCACA,6DACA,uDACA,sCACA,sCACA,2CACA,oCEtPF,+BAEE,kBACA,oBACA,sBAEA,yCACE,kBACA,cAKF,kXAME,UAKJ,aACE,aACA,eACA,2BAEA,0BACE,WAIJ,W7BhBI,qB6BoBF,qFAEE,8CAIF,qJ7BVE,0BACA,6B6BmBF,6G7BNE,yBACA,4B6BwBJ,uBACE,qBACA,oBAEA,2GAGE,cAGF,0CACE,eAIJ,yEACE,sBACA,qBAGF,yEACE,qBACA,oBAoBF,oBACE,sBACA,uBACA,uBAEA,wDAEE,WAGF,4FAEE,6CAIF,qH7B1FE,6BACA,4B6B8FF,oF7B7GE,yBACA,0B8BxBJ,KAEE,8BACA,gCAEA,4BACA,0CACA,sDACA,wDAGA,aACA,eACA,eACA,gBACA,gBAGF,UACE,cACA,kEjCsQI,UALI,6BiC/PR,2CACA,+BACA,qBACA,gBACA,S/CfI,W+CgBJ,uF/CZI,uC+CGN,U/CFQ,iB+CaN,gCAEE,qCAIF,wBACE,UACA,WhDkhBoB,iCgD9gBtB,sCAEE,wCACA,oBACA,eAQJ,UAEE,mDACA,oCACA,qDACA,6FACA,sCACA,mCACA,6DAGA,oFAEA,oBACE,uDACA,2D9B7CA,wDACA,yD8B+CA,oDAGE,kBACA,wDAIJ,8DAEE,2CACA,mDACA,yDAGF,yBAEE,oD9BjEA,yBACA,0B8B2EJ,WAEE,sDACA,uCACA,uCAGA,qB9B5FE,gD8BgGF,uDAEE,4CbjHF,iBakHuB,mCASzB,eAEE,6BACA,0CACA,+DAGA,gCAEA,yBACE,gBACA,eACA,uEAEA,8DAEE,iCAIJ,+DAEE,YhD0d0B,IgDzd1B,gDACA,iCAUF,wCAEE,cACA,kBAKF,kDAEE,aACA,YACA,kBAMF,iEACE,WAUF,uBACE,aAEF,qBACE,cC7LJ,QAEE,yBACA,yBACA,4DACA,iEACA,oEACA,gEACA,oCACA,mCACA,kCACA,+DACA,qEACA,uCACA,uCACA,uCACA,uCACA,4QACA,2EACA,2CACA,mCACA,6DAGA,kBACA,aACA,eACA,mBACA,8BACA,8DAMA,2JACE,aACA,kBACA,mBACA,8BAoBJ,cACE,6CACA,gDACA,+ClC4NI,UALI,iCkCrNR,mCACA,qBACA,mBAEA,wCAEE,yCAUJ,YAEE,2BACA,gCAEA,4BACA,4CACA,wDACA,8DAGA,aACA,sBACA,eACA,gBACA,gBAGE,wDAEE,oCAIJ,2BACE,gBASJ,aACE,YjD4gCkC,MiD3gClC,ejD2gCkC,MiD1gClC,6BAEA,yDAGE,oCAaJ,iBACE,gBACA,YAGA,mBAIF,gBACE,8ElCyII,UALI,mCkClIR,cACA,6BACA,+BACA,0E/BxIE,qDjBHE,WgD6IJ,oChDzII,uCgDiIN,gBhDhIQ,iBgD0IN,sBACE,qBAGF,sBACE,qBACA,UACA,sDAMJ,qBACE,qBACA,YACA,aACA,sBACA,kDACA,4BACA,2BACA,qBAGF,mBACE,yCACA,gB7C1HE,yB6CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB7C5LR,yB6CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB7C5LR,yB6CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB7C5LR,0B6CsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oB7C5LR,0B6CsIA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,kDACA,iDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,kDACA,iDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0BhD9NJ,WgDgOI,KAGA,4CACE,aAGF,0CACE,aACA,YACA,UACA,mBAiBZ,yCAGE,6CACA,mDACA,sDACA,+BACA,8BACA,oCACA,2DACA,+QAME,0CACE,+QCzRN,MAEE,yBACA,yBACA,iCACA,wBACA,2BACA,+CACA,2DACA,iDACA,uBACA,wFACA,gCACA,8BACA,uDACA,sBACA,mBACA,kBACA,gCACA,oCACA,0BAGA,kBACA,aACA,sBACA,YACA,6BACA,2BACA,qBACA,mCACA,2BACA,qEhCjBE,2CgCqBF,SACE,eACA,cAGF,kBACE,mBACA,sBAEA,8BACE,mBhCtBF,0DACA,2DgCyBA,6BACE,sBhCbF,8DACA,6DgCmBF,8DAEE,aAIJ,WAGE,cACA,wDACA,2BAGF,YACE,4CACA,iCAGF,eACE,oDACA,gBACA,oCAGF,sBACE,gBAQA,sBACE,oCAQJ,aACE,kEACA,gBACA,+BACA,uCACA,4EAEA,yBhC7FE,wFgCkGJ,aACE,kEACA,+BACA,uCACA,yEAEA,wBhCxGE,wFgCkHJ,kBACE,qDACA,oDACA,oDACA,gBAEA,mCACE,mCACA,sCAIJ,mBACE,qDACA,oDAIF,kBACE,kBACA,MACA,QACA,SACA,OACA,2ChC1IE,iDgC8IJ,yCAGE,WAGF,wBhC3II,0DACA,2DgC+IJ,2BhClII,8DACA,6DgC8IF,kBACE,0C9C3HA,yB8CuHJ,YAQI,aACA,mBAGA,kBAEE,YACA,gBAEA,wBACE,cACA,cAKA,mChC3KJ,0BACA,6BgC6KM,iGAGE,0BAEF,oGAGE,6BAIJ,oChC5KJ,yBACA,4BgC8KM,mGAGE,yBAEF,sGAGE,6BCpOZ,WAEE,2CACA,qCACA,+KACA,oDACA,+BACA,sDACA,sEACA,sCACA,mCACA,+BACA,+BACA,ySACA,uCACA,mDACA,+DACA,gTACA,4CACA,0CACA,uCACA,oCACA,kCACA,kCAIF,kBACE,kBACA,aACA,mBACA,WACA,4EpC2PI,UALI,KoCpPR,oCACA,gBACA,4CACA,SjCtBE,gBiCwBF,qBlD3BI,WkD4BJ,+BlDxBI,uCkDWN,kBlDVQ,iBkDyBN,kCACE,uCACA,+CACA,gGAEA,yCACE,qDACA,iDAKJ,yBACE,cACA,yCACA,0CACA,iBACA,WACA,8CACA,4BACA,mDlDlDE,WkDmDF,wClD/CE,uCkDsCJ,yBlDrCM,iBkDiDN,wBACE,UAGF,wBACE,UACA,wDACA,UACA,oDAIJ,kBACE,gBAGF,gBACE,gCACA,wCACA,+EAEA,8BjC/DE,yDACA,0DiCiEA,gDjClEA,+DACA,gEiCsEF,oCACE,aAIF,6BjC9DE,6DACA,4DiCiEE,yDjClEF,mEACA,kEiCsEA,iDjCvEA,6DACA,4DiC4EJ,gBACE,8EASA,qCACE,eAGF,iCACE,eACA,cjCpHA,gBiCuHA,0DACA,4DAGE,gHjC3HF,gBiCqIA,8CACE,ySACA,gTC1JN,YAEE,6BACA,6BACA,oCAEA,qBACA,gCACA,yDACA,uCACA,6DAGA,aACA,eACA,sEACA,iDrC+QI,UALI,+BqCxQR,gBACA,0FAMA,kCACE,iDAEA,0CACE,WACA,kDACA,yCACA,uFAIJ,wBACE,6CCrCJ,YAEE,mCACA,oCtC4RI,0BALI,KsCrRR,4BACA,4BACA,gCACA,qDACA,uCACA,kCACA,kCACA,2DACA,kCACA,kCACA,wEACA,mCACA,mCACA,6CACA,wCACA,qCACA,8DAGA,ajCpBA,eACA,gBiCuBF,WACE,kBACA,cACA,sEtCgQI,UALI,+BsCzPR,iCACA,qBACA,yCACA,iFpDpBI,WoDqBJ,mHpDjBI,uCoDQN,WpDPQ,iBoDkBN,iBACE,UACA,uCAEA,+CACA,qDAGF,iBACE,UACA,uCACA,+CACA,QrDyuCgC,EqDxuChC,iDAGF,qCAEE,UACA,wClBtDF,iBkBuDuB,+BACrB,sDAGF,yCAEE,0CACA,oBACA,kDACA,wDAKF,wCACE,YrD4sCgC,aqDvsC9B,kCnC9BF,0DACA,6DmCmCE,iCnClDF,2DACA,8DmCkEJ,eClGE,kCACA,mCvC0RI,0BALI,QuCnRR,0DDmGF,eCtGE,kCACA,mCvC0RI,0BALI,SuCnRR,0DCFF,OAEE,6BACA,6BxCuRI,qBALI,OwChRR,4BACA,uBACA,kDAGA,qBACA,4DxC+QI,UALI,0BwCxQR,wCACA,cACA,4BACA,kBACA,mBACA,wBrCJE,4CqCSF,aACE,aAKJ,YACE,kBACA,SChCF,OAEE,2BACA,2BACA,6BACA,iCACA,0BACA,qCACA,wDACA,kDACA,+BAGA,kBACA,4DACA,4CACA,4BACA,oCACA,8BtCHE,4CsCQJ,eAEE,cAIF,YACE,YxD6kB4B,IwD5kB5B,iCAQF,mBACE,cxDk+C8B,KwD/9C9B,8BACE,kBACA,MACA,QACA,UACA,qBAQF,eACE,kDACA,2CACA,yDACA,uDAJF,iBACE,oDACA,6CACA,2DACA,yDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,iBACE,oDACA,6CACA,2DACA,yDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,WACE,8CACA,uCACA,qDACA,mDAJF,oBACE,uDACA,gDACA,8DACA,4DAJF,aACE,gDACA,yCACA,uDACA,qDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,iBACE,oDACA,6CACA,2DACA,yDC5DF,gCACE,yBzDqhDgC,MyDhhDpC,4BAGE,2B1CkRI,wBALI,Q0C3QR,yCACA,qDACA,qDACA,8BACA,8BACA,8CAGA,aACA,iCACA,gB1CsQI,UALI,6B0C/PR,uCvCRE,+CuCaJ,cACE,aACA,sBACA,uBACA,gBACA,mCACA,kBACA,mBACA,2CxDxBI,WwDyBJ,kCxDrBI,uCwDYN,cxDXQ,iBwDuBR,2NAEE,oEAGF,4BACE,iBAGF,0CACE,WAIA,uBACE,kDAGE,uCAJJ,uBAKM,gBC3DR,YAEE,4CACA,sCACA,qDACA,qDACA,uDACA,qCACA,uCACA,wDACA,6DACA,uDACA,0DACA,yDACA,0DACA,+CACA,mCACA,mCACA,6CAGA,aACA,sBAGA,eACA,gBxCXE,iDwCeJ,qBACE,qBACA,sBAEA,8CAEE,oCACA,0BASJ,wBACE,WACA,wCACA,mBAGA,4DAEE,UACA,8CACA,qBACA,sDAGF,+BACE,+CACA,uDAQJ,iBACE,kBACA,cACA,gFACA,iCACA,qBACA,yCACA,iFAEA,6BxCvDE,+BACA,gCwC0DF,4BxC7CE,mCACA,kCwCgDF,oDAEE,0CACA,oBACA,kDAIF,wBACE,UACA,wCACA,gDACA,sDAIF,kCACE,mBAEA,yCACE,sDACA,mDAaF,uBACE,mBAGE,qExCvDJ,6DAZA,0BwCwEI,qExCxEJ,2DAYA,4BwCiEI,+CACE,aAGF,yDACE,mDACA,oBAEA,gEACE,uDACA,oDtDtFR,yBsD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDtDtFR,yBsD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDtDtFR,yBsD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDtDtFR,0BsD8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDtDtFR,0BsD8DA,2BACE,mBAGE,yExCvDJ,6DAZA,0BwCwEI,yExCxEJ,2DAYA,4BwCiEI,mDACE,aAGF,6DACE,mDACA,oBAEA,oEACE,uDACA,qDAcZ,kBxChJI,gBwCmJF,mCACE,mDAEA,8CACE,sBAaJ,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,qBACE,mDACA,4CACA,0DACA,6DACA,6DACA,8DACA,8DACA,sDACA,uDACA,iEAVF,8BACE,4DACA,qDACA,mEACA,6DACA,sEACA,8DACA,uEACA,+DACA,gEACA,0EAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEC5LJ,WAEE,2BACA,qVACA,4BACA,mCACA,mEACA,gCACA,sCACA,wEAGA,uBACA,M3DipD2B,I2DhpD3B,O3DgpD2B,I2D/oD3B,oBACA,gCACA,0EACA,SzCJE,gByCMF,oCAGA,iBACE,gCACA,qBACA,0CAGF,iBACE,UACA,4CACA,0CAGF,wCAEE,oBACA,iBACA,6CAQJ,iBAHE,wCASE,gCATF,wCCjDF,OAEE,wBACA,8BACA,6BACA,sBACA,4B7CyRI,qBALI,S6ClRR,mBACA,iDACA,gDACA,4DACA,kDACA,4CACA,mDACA,wDACA,mEAGA,gCACA,e7C2QI,UALI,0B6CpQR,4BACA,oBACA,oCACA,4BACA,uEACA,sC1CRE,4C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,wBAEA,kBACA,+BACA,kBACA,eACA,oBAEA,mCACE,sCAIJ,cACE,aACA,mBACA,4DACA,mCACA,2CACA,4BACA,qF1ChCE,0FACA,2F0CkCF,yBACE,kDACA,sCAIJ,YACE,kCACA,qBC9DF,OAEE,wBACA,wBACA,yBACA,0BACA,0BACA,oBACA,4DACA,gDACA,4BACA,+DACA,kCACA,kCACA,kCACA,qCACA,uDACA,kCACA,kCACA,8BACA,uBACA,uDACA,0CAGA,eACA,MACA,OACA,+BACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,8BAEA,oBAGA,0B5D5CI,W4D6CF,uBACA,U7D87CgC,oBCx+C9B,uC4DwCJ,0B5DvCM,iB4D2CN,0BACE,U7D47CgC,K6Dx7ClC,kCACE,U7Dy7CgC,Y6Dr7CpC,yBACE,6CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,iDAIF,eACE,kBACA,aACA,sBACA,WAEA,4BACA,oBACA,oCACA,4BACA,uE3CrFE,4C2CyFF,UAIF,gBAEE,2BACA,uBACA,2BClHA,eACA,MACA,OACA,QDkH0B,0BCjH1B,YACA,aACA,iBD+G4D,sBC5G5D,+BACA,6BD2G0F,2BAK5F,cACE,aACA,cACA,mBACA,8BACA,uCACA,4F3CtGE,2DACA,4D2CwGF,yBACE,4FACA,gJAKJ,aACE,gBACA,8CAKF,YACE,kBAGA,cACA,gCAIF,cACE,aACA,cACA,eACA,mBACA,yBACA,sEACA,2CACA,yF3C1HE,+DACA,8D2C+HF,gBACE,2CzD5GA,yByDkHF,OACE,2BACA,yDAIF,cACE,gCACA,kBACA,iBAGF,UACE,yBzD/HA,yByDoIF,oBAEE,yBzDtIA,0ByD2IF,UACE,0BAUA,kBACE,YACA,eACA,YACA,SAEA,iCACE,YACA,S3C1MJ,gB2C8ME,gE3C9MF,gB2CmNE,8BACE,gBzD3JJ,4ByDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBzD3JJ,4ByDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBzD3JJ,4ByDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBzD3JJ,6ByDyIA,0BACE,YACA,eACA,YACA,SAEA,yCACE,YACA,S3C1MJ,gB2C8ME,gF3C9MF,gB2CmNE,sCACE,iBzD3JJ,6ByDyIA,2BACE,YACA,eACA,YACA,SAEA,0CACE,YACA,S3C1MJ,gB2C8ME,kF3C9MF,gB2CmNE,uCACE,iBEtOR,SAEE,0BACA,8BACA,+BACA,gCACA,sBhDwRI,uBALI,SgDjRR,sCACA,0CACA,oDACA,0BACA,iCACA,kCAGA,iCACA,cACA,gCClBA,YhE+lB4B,0BgE7lB5B,kBACA,YhEwmB4B,IgEvmB5B,YhCCiB,oBgCCjB,iBACA,qBACA,iBACA,oBACA,sBACA,kBACA,mBACA,oBACA,gBjDgRI,UALI,4BgDhQR,qBACA,UAEA,gDAEA,wBACE,cACA,oCACA,sCAEA,gCACE,kBACA,WACA,2BACA,mBAKN,2FACE,+CAEA,2GACE,SACA,qFACA,sCAKJ,6FACE,6CACA,qCACA,qCAEA,6GACE,WACA,4HACA,wCAMJ,iGACE,4CAEA,iHACE,YACA,qFACA,yCAKJ,8FACE,8CACA,qCACA,qCAEA,8GACE,UACA,4HACA,uCAsBJ,eACE,sCACA,gEACA,8BACA,kBACA,sC7CjGE,8C+CnBJ,SAEE,0BACA,8BlD4RI,uBALI,SkDrRR,mCACA,kDACA,8DACA,uDACA,4FACA,2DACA,oCACA,sClDmRI,8BALI,KkD5QR,mCACA,+CACA,kCACA,kCACA,8CACA,+BACA,kCACA,0DAGA,iCACA,cACA,sCDzBA,YhE+lB4B,0BgE7lB5B,kBACA,YhEwmB4B,IgEvmB5B,YhCCiB,oBgCCjB,iBACA,qBACA,iBACA,oBACA,sBACA,kBACA,mBACA,oBACA,gBjDgRI,UALI,4BkD1PR,qBACA,sCACA,4BACA,2E/ChBE,8C+CoBF,wBACE,cACA,oCACA,sCAEA,+DAEE,kBACA,cACA,WACA,2BACA,mBACA,eAMJ,2FACE,kFAEA,oNAEE,qFAGF,2GACE,SACA,gDAGF,yGACE,sCACA,sCAOJ,6FACE,gFACA,qCACA,qCAEA,wNAEE,4HAGF,6GACE,OACA,kDAGF,2GACE,oCACA,wCAQJ,iGACE,+EAEA,gOAEE,qFAGF,iHACE,MACA,mDAGF,+GACE,mCACA,yCAKJ,mHACE,kBACA,MACA,SACA,cACA,oCACA,qDACA,WACA,+EAMF,8FACE,iFACA,qCACA,qCAEA,0NAEE,4HAGF,8GACE,QACA,iDAGF,4GACE,qCACA,uCAuBN,gBACE,8EACA,gBlD2GI,UALI,mCkDpGR,qCACA,6CACA,kF/C5JE,6DACA,8D+C8JF,sBACE,aAIJ,cACE,0EACA,mCCrLF,UACE,kBAGF,wBACE,mBAGF,gBACE,kBACA,WACA,gBvEtBA,uBACE,cACA,WACA,WuEuBJ,eACE,kBACA,aACA,WACA,WACA,mBACA,2BjElBI,WiEmBJ,0BjEfI,uCiEQN,ejEPQ,iBiEiBR,8DAGE,cAGF,wEAEE,2BAGF,wEAEE,4BASA,8BACE,UACA,4BACA,eAGF,iJAGE,UACA,UAGF,oFAEE,UACA,UjE5DE,WiE6DF,ejEzDE,uCiEqDJ,oFjEpDM,iBiEiER,8CAEE,kBACA,MACA,SACA,UAEA,aACA,mBACA,uBACA,MlE8gDmC,IkE7gDnC,UACA,M7CjFM,K6CkFN,kBACA,gBACA,SACA,QlEygDmC,GC/lD/B,WiEuFJ,kBjEnFI,uCiEkEN,8CjEjEQ,iBiEqFN,oHAEE,M7C3FI,K6C4FJ,qBACA,UACA,QlEigDiC,GkE9/CrC,uBACE,OAGF,uBACE,QAKF,wDAEE,qBACA,MlEkgDmC,KkEjgDnC,OlEigDmC,KkEhgDnC,4BACA,wBACA,0BAWF,4BACE,yQAEF,4BACE,0QAQF,qBACE,kBACA,QACA,SACA,OACA,UACA,aACA,uBACA,UAEA,alE08CmC,IkEz8CnC,mBACA,YlEw8CmC,IkEt8CnC,sCACE,uBACA,cACA,MlEw8CiC,KkEv8CjC,OlEw8CiC,IkEv8CjC,UACA,alEw8CiC,IkEv8CjC,YlEu8CiC,IkEt8CjC,mBACA,eACA,iB7CjKI,K6CkKJ,4BACA,SAEA,oCACA,uCACA,QlE+7CiC,GCvmD/B,WiEyKF,iBjErKE,uCiEoJJ,sCjEnJM,iBiEuKN,6BACE,QlE47CiC,EkEn7CrC,kBACE,kBACA,UACA,OlEs7CmC,QkEr7CnC,SACA,YlEm7CmC,QkEl7CnC,elEk7CmC,QkEj7CnC,M7C5LM,K6C6LN,kBAMA,sFAEE,OlEu7CiC,yBkEp7CnC,qDACE,iB7C1LI,K6C6LN,iCACE,M7C9LI,K6CoLN,0OAEE,OlEu7CiC,yBkEp7CnC,yIACE,iB7C1LI,K6C6LN,iGACE,M7C9LI,K8C5BR,8BAEE,qBACA,8BACA,gCACA,gDAEA,kBACA,6FAIF,0BACE,8CAIF,gBAEE,yBACA,0BACA,sCACA,kCACA,oCACA,4CAGA,yDACA,iCAGF,mBAEE,yBACA,0BACA,iCASF,wBACE,GACE,mBAEF,IACE,UACA,gBAKJ,cAEE,yBACA,0BACA,sCACA,oCACA,0CAGA,8BACA,UAGF,iBACE,yBACA,0BAIA,uCACE,8BAEE,oCC/EN,kFAEE,4BACA,4BACA,4BACA,+BACA,+BACA,2CACA,qCACA,oDACA,gEACA,mEACA,sDACA,sChE6DE,4BgE5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,gCnE1BA,gEmEYJ,cnEXM,iBGuDJ,4BgE5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oBhE5BJ,yBgE/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2ChEnCN,4BgE5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,gCnE1BA,gEmEYJ,cnEXM,iBGuDJ,4BgE5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oBhE5BJ,yBgE/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2ChEnCN,4BgE5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,gCnE1BA,gEmEYJ,cnEXM,iBGuDJ,4BgE5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oBhE5BJ,yBgE/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2ChEnCN,6BgE5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,gCnE1BA,iEmEYJ,cnEXM,iBGuDJ,6BgE5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oBhE5BJ,0BgE/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2ChEnCN,6BgE5CF,eAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,gCnE1BA,iEmEYJ,enEXM,iBGuDJ,6BgE5BE,+BACE,MACA,OACA,gCACA,qFACA,4BAGF,6BACE,MACA,QACA,gCACA,oFACA,2BAGF,6BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,gCACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,wDAEE,eAGF,iEAGE,oBhE5BJ,0BgE/BF,eAiEM,4BACA,+BACA,0CAEA,iCACE,aAGF,+BACE,aACA,YACA,UACA,mBAEA,2CA/ER,WAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnE5BA,WmE8BA,+BnE1BA,uCmEYJ,WnEXM,iBmE2BF,2BACE,MACA,OACA,gCACA,qFACA,4BAGF,yBACE,MACA,QACA,gCACA,oFACA,2BAGF,yBACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,4BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,gDAEE,eAGF,qDAGE,mBA2BR,oBNpHE,eACA,MACA,OACA,Q9DwmCkC,K8DvmClC,YACA,aACA,iBzCwBM,KyCrBN,mCACA,iC9D+9CkC,GoEj3CpC,kBACE,aACA,mBACA,8BACA,oEAEA,6BACE,sFACA,oDACA,sDACA,uDAIJ,iBACE,gBACA,kDAGF,gBACE,YACA,oEACA,gBChJF,aACE,qBACA,eACA,sBACA,YACA,8BACA,QrE8yCkC,GqE5yClC,yBACE,qBACA,WAKJ,gBACE,gBAGF,gBACE,gBAGF,gBACE,iBAKA,+BACE,mDAIJ,4BACE,IACE,QrEixCgC,IqE7wCpC,kBACE,+EACA,oBACA,8CAGF,4BACE,KACE,wBChDJ,gBACI,mBCGA,eACI,uBACA,uBACA,iCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAJJ,eACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,eACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,WACI,uBACA,uBACA,iCACA,4BAJJ,oBACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,cACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,YACI,uBACA,uBACA,iCACA,4BAJJ,aACI,uBACA,qBACA,+BACA,4BAJJ,YACI,uBACA,uBACA,mCACA,4BAJJ,iBACI,uBACA,uBACA,iCACA,4BAKJ,oBACI,gBCZJ,6BACI,sBACA,uEAFJ,+BACI,sBACA,mEAFJ,6BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,6BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,2BACI,sBACA,yEAFJ,0BACI,sBACA,sEAFJ,0BACI,sBACA,wEAFJ,+BACI,sBACA,qEAFJ,4BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,yBACI,sBACA,uEAFJ,kCACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,2BACI,sBACA,yEAFJ,4BACI,sBACA,wEAFJ,4BACI,sBACA,uEAFJ,2BACI,sBACA,uEAFJ,0BACI,sBACA,wEAFJ,0BACI,sBACA,wEAFJ,2BACI,sBACA,yEAFJ,0BACI,sBACA,yEAFJ,+BACI,sBACA,sECJR,KACI,iBAII,uJAGI,yBACA,wDACA,0DAIA,wVAGI,yBACA,0DACA,2DAKJ,wVAGI,yBACA,wDACA,0DAIR,gHAEI,qBACA,gBACA,oCxErBN,WwEsBM,mHxElBN,uCwEaE,gHxEZA,iBwEoBA,wIAEI,qCACA,6BACA,kBAIR,4BACI,YACA,0HAEA,oJAIA,oDACA,uDAGJ,4BACI,YACA,0HAEA,oJAIA,mDACA,sDAGJ,iBACI,kBACA,oBAEA,2BACI,oBAGJ,wBACI,0BACA,uBACA,0CACA,WACA,cACA,WACA,UACA,kBACA,sBACA,qBACA,6CAIS,oCACL,kBADK,sCACL,kBADK,oCACL,kBADK,iCACL,kBADK,oCACL,kBADK,mCACL,kBADK,kCACL,kBADK,kCACL,kBADK,iCACL,kBADK,iCACL,kBADK,sCACL,kBADK,mCACL,kBADK,mCACL,kBADK,iCACL,kBADK,gCACL,kBADK,yCACL,kBADK,kCACL,kBADK,kCACL,kBADK,mCACL,kBADK,mCACL,kBADK,kCACL,kBADK,iCACL,kBADK,iCACL,kBADK,kCACL,kBADK,iCACL,kBADK,sCACL,kBAMhB,WACI,IzCpGY,MyCwGZ,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,sCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,qBACA,4BACA,2BACA,wBACA,kCACA,mCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oB8BkDE,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,uF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,uGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,qCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,+E9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,+FAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iG9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iHAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,qF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,qGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,mF9BxFF,qBACA,kBACA,4BACA,2BACA,yBACA,mCACA,yCACA,4BACA,0BACA,oCACA,6BACA,8BACA,2BACA,qC8BoGE,mGAGI,0BACA,kCACA,wC9B7FN,qBACA,4BACA,2BACA,wBACA,kCACA,yCACA,4BACA,yBACA,mCACA,6BACA,8BACA,kCACA,qCACA,oB8BkDE,iF9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,iGAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB8BkDE,2F9BxFF,qBACA,qBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,8BACA,8BACA,wC8BoGE,2GAGI,0BACA,kCACA,wC9B7FN,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6BACA,iCACA,kCACA,wCACA,oB+B1DF,YAEI,8BACA,6BACA,gCACA,mCACA,wCAEA,6BAEA,uBACI,YACA,kCACI,eACA,iCACA,sCACA,cACA,iBACA,kBAGJ,qGACI,gCACA,UAGJ,mCACI,iBACA,iBAEA,8CACI,gDACA,wCAGJ,4CACI,mBAEA,uDACI,kDACA,0CAKZ,8BACI,iBAGJ,gDACI,yBACA,eACA,YACA,uDACI,eACA,0CACA,YAQR,iCACI,qCACA,wCACA,4BACA,4BACA,kCACA,kCACA,kCACA,kCACA,mCACA,mCACA,wCACA,qCC5EZ,OACI,8BACA,8BACA,mCAEA,qBACI,2CACA,mCACA,+CAMA,4BACI,uBACA,0BACA,8BACA,8BCdJ,qGACI,gBACA,MAIA,mLACI,iBAMR,qGACI,gBACA,SAIR,iEACI,kBAEA,0EACI,WAIR,mFACI,uCACA,uBACA,0CACA,WACA,cACA,WACA,UACA,kBACA,uBACA,sBACA,6CAIR,yBAEQ,8JACI,uCCjDZ,2BAEI,oBACA,oCAKI,qEAEI,uBCiCZ,WAEI,YC7CJ,YACI,iCAIA,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,qCACI,qCACA,eCuEsB,QDzE1B,kBACI,qCACA,eCuEsB,QC9E9B,cAEI,sBACA,sBACA,+BACA,2BACA,2BACA,4BACA,6BACA,2BACA,0DACA,SACA,mCACA,2CAGJ,SACI,cAKI,wDAEI,sBACA,sBCvBZ,SAEI,4BACA,uDACA,kCACA,kCACA,oCACA,oCACA,kCACA,kCACA,kCACA,gCACA,kCAEA,kBACA,UACA,sCAEA,WACI,qBACA,8BAGJ,oBACI,WACA,cACA,kBACA,0BACA,SACA,yBACA,mCACA,yCACA,WAGJ,YACI,gBACA,eACA,SAEA,eACI,iBAEA,6BACI,aACA,mBACA,mBACA,SAEA,oCACI,gBAGJ,sCACI,uCACA,kBAGJ,wNAII,yCACA,uCAGJ,gHAEI,2CACA,yCAGJ,4GAEI,kBAGJ,6CACI,yCACA,cACA,uCACA,iBACA,YC1DM,KD2DN,gBACA,qBACA,mBACA,kBAGI,oEAUI,MATc,KAUd,OAVc,KAWd,YARU,KASV,kBACA,YAbc,KADlB,kEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,oBACA,YAbc,QADlB,mEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,qBACA,YAbc,QADlB,mEAUI,MATc,QAUd,OAVc,QAWd,YARU,OASV,qBACA,YAbc,QADlB,kEAUI,MATc,OAUd,OAVc,OAWd,YARU,OASV,qBACA,YAbc,OADlB,qEAUI,MATc,OAUd,OAVc,OAWd,YARU,OASV,qBACA,YAbc,OAmB9B,kCACI,2CAGJ,kBACI,wCAQR,8BACI,4BACA,uDACA,kCACA,kCACA,oCACA,oCACA,kCACA,kCEpIZ,OAEI,yBACA,yBACA,uBACA,uBACA,6BACA,6BAGI,mBAEI,mCAFJ,4EAMJ,WACA,aACA,wBACA,qDhF4CA,yBgF/DJ,OAYY,oChFmDR,yBgF/DJ,OAYY,oChFmDR,yBgF/DJ,OAYY,oChFmDR,0BgF/DJ,OAYY,oCASR,aACI,aACA,sBACA,uBACA,mBAEA,gCACA,iBAEA,8BACA,4BAEA,mBACI,oCACA,kCAGJ,0BACI,SAIR,6BAEI,eACA,qBAOQ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,iBACI,2BADJ,kBACI,4BADJ,kBACI,4BADJ,kBACI,4BhFShB,yBgFVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6BhFShB,yBgFVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6BhFShB,yBgFVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6BhFShB,0BgFVY,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,oBACI,2BADJ,qBACI,4BADJ,qBACI,4BADJ,qBACI,6BhFShB,0BgFVY,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,qBACI,2BADJ,sBACI,4BADJ,sBACI,4BADJ,sBACI,6BAQZ,4BACI,uBACA,uBACA,6BACA,6BClEZ,gBACI,kCACA,mCACA,6BACA,wDACA,kDACA,sCACA,sCAEA,2DACA,gBACA,iCACA,gBACA,kBACA,iBACA,eAEA,0BACI,6CACA,qCACA,mBAGJ,iCACI,4CACA,oDACA,2BAGJ,0FAEI,2CACA,mDACA,2BC/BR,mBAEI,WACA,uCACA,iBACA,cACA,aACA,mBACA,sBACA,UACA,qCACA,mCCZJ,mBACI,gCACA,2BACA,iCACA,kCACA,kCACA,6BACA,8BACA,oCACA,mCAEA,iCACA,iCACA,oCACA,kCAEA,uCACA,0CACA,0CAEA,sCACA,2CACA,8CACA,uCACA,8CACA,2DACA,+CACA,kDACA,gCACA,8BACA,gCACA,qCACA,iCACA,iCACA,sCACA,sCAEA,iCACA,8BACA,yCAEA,yBACA,yBACA,6BACA,8BAEA,oCACA,4CACA,4CACA,0CACA,4CACA,6DAEA,iCACA,mCACA,mCACA,2CACA,6BACA,oCACA,+BACA,wCACA,2CACA,yCACA,iCACA,4CACA,4CAEA,8BACA,6BACA,qCACA,qCACA,qDACA,+BACA,2CACA,qCACA,oDACA,+BACA,oCC9EJ,+BACI,WACA,aACA,mBACA,cACA,sBACA,UACA,SAGJ,kQACI,WACA,aACA,eACA,0EAOA,yBAFJ,uNAGQ,aRoFuB,yCQnFvB,cRmFuB,0CQzEtB,wIACL,cChCJ,8BACI,WAEA,aACA,mBACA,sBACA,wCAEA,6CACI,aACA,mBACA,oBACA,WACA,aT2FuB,yCS1FvB,cT0FuB,yCSxFvB,yBARJ,6CASQ,cAIJ,+CACI,0CACA,6CACA,mBACA,aAGJ,yBApBJ,6CAqBQ,8CACA,gDAGJ,8DACI,6DAIA,0DACI,4CACA,2DAFJ,2DACI,6CACA,4DAIR,8HAEI,sCACA,qBACA,UChCG,ODmCP,0DACI,gBAGJ,+MAII,qBE3DZ,8BACI,WACA,WtE4BI,KsE3BJ,iBACA,2BAEA,yBANJ,8BAOQ,2BACA,sBACA,uDACA,eACA,8BACA,gBACA,MACA,aACA,0CAGJ,mDACI,WAKA,aAHoB;AAAA;AAAA,UAIpB,cAJoB;AAAA;AAAA,UAKpB,aACA,8BACA,mBACA,kBAEA,yBAbJ,mDAoBQ,aALa,+EAMb,cANa,gFASjB,yBAxBJ,mDAyBQ,eACA,iBAIR,4CACI,oBAEA,yBAHJ,4CAIQ,cAGJ,gDACI,cAIR,yBACI,8CACI,aAEJ,+CACI,wBACA,iBAIR,0CACI,0BACA,sCACA,mCAEA,yBALJ,0CAMQ,oBAGJ,yDACI,uBACA,gBAEA,yEAEI,aAGJ,yBATJ,yDAUQ,mBAGJ,8JAEI,cACA,mBACA,iBAKJ,yBADJ,oDAEQ,qFAIJ,yBANJ,oDAOQ,WtE7ER,KsE8EQ,8CACA,+CACA,0DAGJ,gFACI,yBAIR,8KAGI,qCAIR,8CACI,MtE/GA,KsEgHA,2BAGJ,mDACI,gQAGJ,2CACI,MtExHA,KsE0HA,mJAGI,MtE1IH,QsE6ID,yBATJ,2CAUQ,MtElHJ,MuE9BR,sFAEI,WAEA,qCAEA,aACA,0CACA,iBACA,mBACA,oBACA,2BACA,eACA,mDACA,oDACA,4FAGA,yBAlBJ,sFAmBQ,iDACA,0DACA,2DAEA,gBACA,MACA,cAGJ,gJACI,WACA,aACA,8BACA,oBACA,kBAEA,0KACI,0CACA,6CACA,mBACA,aACA,wCAIA,0KACI,uDACA,qGAFJ,4KACI,wDACA,sGAMR,oKACI,cACA,aACA,gCACA,oBACA,UAEA,sLACI,0CACA,iGAIA,yBANJ,sLAOQ,iDACA,6EAKR,yBApBJ,oKAqBQ,4BACA,2BACA,eAIA,8LACI,YAIR,0LACI,aACA,0CACA,mBACA,uBACA,wCACA,sCACA,iCACA,mBACA,8CACA,8CACA,kBACA,oBAEA,yBAdJ,0LAeQ,cAKZ,0KACI,sFAOJ,gLACI,YACA,UACA,gBAGJ,yBACI,gLACI,aAEJ,kLACI,aACA,UACA,0CACA,qBAIR,yBACI,kLACI,eACA,8CACA,OACA,YAIR,wKACI,0CAEA,0BACA,sCACA,0CAEA,yBAPJ,wKAQQ,oBAGJ,sMACI,uBACA,gBAGA,wBACA,yBAEA,yBARJ,sMASQ,mBAGJ,oeAEI,cACA,mBACA,iBAKJ,yBADJ,4LAEQ,gDAEA,aACA,mBACA,0CACA,oFAEA,wFAIJ,yBAbJ,4LAcQ,yDACA,uDACA,8CACA,+CACA,yFAIJ,oPACI,yBAIR,gyBAII,0DAMhB,sCACI,8CACA,+CAEA,yBAJJ,sCAKQ,aZ5GuB,yCY6GvB,cZ7GuB,0CaxG/B,wEAGI,gCACA,8BACA,wCACA,2CACA,0CAGI,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAHJ,8JAEI,0CACA,SAIR,kGACI,SACA,UCnBR,6BACI,aACA,kBACA,uBACA,gBACA,WACA,6CAMY,mCACI,iBADJ,mCACI,iBADJ,mCACI,iBADJ,mCACI,iB1F6DhB,4B0F9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kB1F6DhB,4B0F9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kB1F6DhB,4B0F9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kB1F6DhB,6B0F9DY,sCACI,iBADJ,sCACI,iBADJ,sCACI,iBADJ,sCACI,kB1F6DhB,6B0F9DY,uCACI,iBADJ,uCACI,iBADJ,uCACI,iBADJ,uCACI,kBAMhB,6CACI,cACA,YACA,WACA,yBAJJ,6CAKQ,aAIR,iDACI,kBACA,SACA,OAEA,sFAEA,+DACA,8CACA,iDAEA,mDACI,cAGJ,0EACI,QACA,WAGJ,wEACI,MACA,aAKR,4CAEI,kBACA,SACA,4HAEA,yBANJ,4CAOQ,0FAIJ,qEACI,QACA,sCAIJ,+DACI,OACA,uCAGJ,yBAtBJ,4CAuBQ,WAGA,oIAEI,8CACA,gDCpFhB,yCACI,kBACA,WACA,YACA,aACA,mBACA,6BAEA,yBARJ,yCASQ,sBACA,OAGJ,qDACI,QACA,2CACA,iCACA,gHACA,8IAEA,YAEA,yBATJ,qDAUQ,4CAEA,WfuFyB,qEepF7B,yBAfJ,qDAgBQ,gBACA,gFAIJ,6RAKI,qBAGJ,sVAMI,qCACA,yBAPJ,sVAQQ,gBAIR,wEACI,ULpCG,OKqCH,SACA,YACA,gBACA,WACA,aACA,mBACA,8BACA,UACA,yBAEA,8EACI,gBAGJ,+EACI,gBACA,qCACA,sCACA,sBACA,WACA,qBACA,gCAGJ,mGACI,yBAGJ,yBA9BJ,wEA+BQ,cAKJ,yBADJ,0EAEQ,8CAGJ,yBALJ,0EAMQ,eAIA,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDATZ,2JAEI,uDACA,qDACA,gBACA,oDAEA,yBACI,6MACI,sDAMhB,+EACI,sBAEA,oFACI,oBAGJ,yFACI,2BACA,uDACA,8EAGA,mGACI,iBAGJ,8LAEI,0BAGJ,kGACI,8CACA,mBAGJ,gGACI,wDAOpB,6DACI,QACA,cAEA,YACA,uGAGA,yBARJ,6DAUQ;AAAA;AAAA;AAAA,cAIA,eACA,4CAIA,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAPR,mLAEI,uDACA,sEAEA,yBALJ,mLAMQ,sCACA,+CAShB,yBAEQ,yEACI,gBACA,oCAMZ,yBAEQ,8EACI,gBACA,MAIJ,uGACI,UACA,UAKZ,yBAEQ,8EACI,gBACA,uCAMZ,yBAEQ,8EACI,QAGJ,sFACI,SAMZ,yBAEQ,sEACI,QACA,4CACA,cfrIe,yCe2IH,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAHJ,+OACI,4CACA,eACA,oDAOpB,8EACI,QACA,gBACA,afxJe,yCe2JX,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,+CALJ,qNAEI,eACA,uCACA,cACA,gDAIR,+CAfJ,8EAgBQ,6CC9QhB,yHACI,oCACA,4CAEA,mJACI,gBAIR,uFAEI,aACA,wCAEA,6B5FgDJ,yB4FrDA,uFAQQ,yBACA,8BACA,kCAKJ,wDACI,4CAGA,qKAQA,sKAEI,kDAIR,uDAEI,0EAQI,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAFJ,qJAEI,gBAIR,yEACI,gBAeR,wDACI,gBAIA,oFACI,cAIZ,wDACI,gBACA,iBAIJ,8HAEI,uB5F9BJ,yB4F4BA,8HAKQ,yBACA,2BAGJ,sKACI,aAKR,kHAEI,uB5F7CJ,yB4F2CA,kHAKQ,yBACA,2BAGJ,8IACI,aClHZ,8BAGI,eACA,gDACA,gCACA,mBACA,0CACA,6CAEA,yBAVJ,8BAWQ,aAGJ,2CACI,SACA,UAGJ,mJAII,gCCzBR,gFAGI,yCCHJ,0BAEI,yBACA,2BACA,kCACA,sCACA,sCACA,gCACA,0CACA,kCACA,+BACA,qCACA,uCACA,sDACA,2CACA,6CAKI,oEAEI,kCACA,2CAKZ,SACI,aACA,WACA,oDAEA,2DACA,6BACA,oBACI,sCAGJ,2BACI,mBACA,WACA,yCAEA,aACA,+DACA,uDACA,mBAEA,kFAEA,mCAEA,mDACI,iBAEA,8CAEJ,wDACI,qBAEJ,kDACI,gBAEJ,sDACI,mBAIR,0BACI,kBACA,yCAIJ,0BACI,0BACA,wBAEJ,2CACI,kBAIR,iBACI,uDAGJ,gBACI,0DACA,4CAEA,sCACI,kGAEA,4CACA,gBAEJ,sCACI,gFAGJ,4BACI,kGACA,aACA,WACA,gFAEA,WACA,mBAEA,8CACI,cACA,SAGJ,8CACI,cCnHZ,WACI,sBACA,wDACA,mBACA,kBAGJ,WACI,iCACA,mDACA,mBACA,kBAGJ,iCAEI,iCACA,WACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCACA,qBAGJ,uDAEI,4CACA,WACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCACA,qBAGJ,6CACI,qBChDJ,mBACI,cAES,0BACL,UAGJ,2BACI,UAIJ,sCACI,WACA,WrG+4BgC,yDqG94BhC,uBACA,YCLyB,QvFmR3B,UALI,KsFvQF,YrGylBsB,IqGxlBtB,YrEdW,IqEeX,MrGi3BgC,qBqGh3BhC,iBhFLA,KgFMA,4CnFJJ,2BjBHE,WoGUE,0DACA,gBpGPF,uCoGPF,sCpGQI,iBoGYA,6HACI,ahFFJ,KgFGI,WtEzBmB,KsE8B3B,uFACI,oCnFCJ,6BACA,4BmFGA,uFACI,iCnFnBJ,yBACA,0BmFuBA,mCACI,WAIA,kEACI,mBAOJ,kJACI,kBACA,QACA,MrGq6BwB,QqGp6BxB,MCIqB,ODHrB,OCIqB,ODHrB,oBACA,gBACA,iBACA,mBACA,WCGqB,iXDFrB,2BAGA,8JACI,WCDiB,8WDKrB,4JACI,aEpFZ,sCACI,QDGyB,KCC7B,qCACI,QDFyB,KCGzB,gBACA,MvG63BgC,qBuG53BhC,iBlFOA,KkFNA,alFqBA,KHbJ,2BqFJI,6DACI,iCrFYR,yBACA,0BqFRI,6DACI,oCrFoBR,6BACA,4BqFhBI,qDACI,uBAGA,4EACI,cACA,WACA,uBACA,YDvBiB,QvFmR3B,UALI,KwFrPM,YvGukBc,IuGtkBd,YvEhCG,IuEiCH,MvG+1BwB,qBuG91BxB,iBlFvBR,KkFwBQ,4BACA,4CACA,gBrFxBZ,2BjBHE,WsG+BU,0DtG3BV,uCsGWM,4EtGVJ,iBsG4BQ,kFACI,alFlBZ,KkFmBY,WxEzCW,KwEgDnB,sGACI,WDWiB,MCVjB,gBAIJ,wFACI,uBxF8NV,UALI,KwFvNM,YvGyiBc,IuGxiBd,YvE9DG,IuEiEH,iHACI,MvG60BoB,0BuGz0BxB,6HACI,WACA,iBlF1DT,QkF8DK,iRAEI,WACA,iBlFjFX,QkFqFO,sOAEI,MvGklBU,0BuG9kBd,oGACI,UAGA,4HACI,wBACA,YvG0iBM,IuGziBN,YvEhGL,IuEiGK,MlFvEhB,KkF4EgB,+JACI,uBC5GxB,8CACI,uCACA,iPACA,4BACA,oBxG4+B4B,oBwG3+B5B,gBxG4+B4B,UwGz+B5B,2EACI,UACA,YxGimBkB,IwGhmBlB,YxENO,IwEOP,MxGy3B4B,qBwGt3B5B,2GACI,YxG2lBc,IwG1lBd,YxEZG,IwEaH,MxGk4BwB,0BwG73BhC,wEACI,aCtBJ,6EACI,aACA,mBACA,eACA,eACA,SACA,gBAGA,wGACI,aACA,mBACA,mBACA,oBACA,qBACA,sB1F6QV,UALI,K0FtQM,MzGk3BwB,qByGj3BxB,YACA,4CvFHZ,2BuFOY,2IACI,MH8Ca,OG7Cb,OH8Ca,OG7Cb,oBACA,oBACA,gBACA,iBACA,mBACA,WH4Ca,iXG3Cb,SAEA,iJACI,WHyCS,8WGrCb,gJACI,aAOhB,gEACI,cACA,WACA,OHnDqB,OGsDrB,uFACI,WACA,OHxDiB,OGyDjB,aACA,cACA,YHjDiB,QGkDjB,YzExDG,IyEyDH,+BAKR,0EACI,MzG+sBkB,O0GhxBtB,6JACI,M1GwqBkB,0B0GvqBlB,mBACA,iB1G43B4B,uB0G33B5B,arFaD,QqFZC,gBAKA,qOACI,aAIJ,uOACI,mBACA,6SACI,aAKR,mQACI,iBAEA,mSACI,aC1BJ,mIzF8BZ,0BACA,6ByFrBY,gIzFoBZ,0BACA,6ByFXI,yNzFwBJ,yBACA,4ByFnBA,gCACI,YACA,mDACI,YC7BJ,kHACI,avF8BJ,QuFxBI,sUACI,avFuBR,QuFtBQ,WN4BiB,4BMtBrB,oNACI,oCAIJ,oNACI,iC1FEZ,yBACA,0B0FOI,sHACI,avFhCN,QuFsCM,8UACI,avFvCV,QuFwCU,WNCiB,4BMKrB,wNACI,oCAIJ,wNACI,iC1F7BZ,yBACA,0B2F3BA,qDACI,mEACA,qB9F2RF,UALI,SGvQN,2B2FRI,gLACI,YACA,aACA,wBACA,2XAEA,4LACI,wXAKJ,sWAEI,aAMZ,oD3FZA,2B2FgBI,4E3FPJ,yBACA,0B2FWI,4E3FEJ,6BACA,4B2FEQ,2FACI,qB9FiPV,UALI,S8FtOE,uGACI,qB9F0OV,UALI,S8FjOU,2IACI,sBAIA,8KACI,qBASxB,6DACI,oCAMI,uHACI,oB9F+MV,UALI,S8FvMM,0JACI,YACA,aACA,wBACA,2XAEA,gKACI,wXAMhB,yFACI,YA/FR,qDACI,iEACA,mB9F2RF,UALI,QGvQN,2B2FRI,gLACI,WACA,YACA,oBACA,yXAEA,4LACI,sXAKJ,sWAEI,aAMZ,oD3FZA,2B2FgBI,4E3FPJ,yBACA,0B2FWI,4E3FEJ,6BACA,4B2FEQ,2FACI,mB9FiPV,UALI,Q8FtOE,uGACI,mB9F0OV,UALI,Q8FjOU,2IACI,oBAIA,8KACI,mBASxB,6DACI,iCAMI,uHACI,oB9F+MV,UALI,Q8FvMM,0JACI,WACA,YACA,oBACA,yXAEA,gKACI,sXAMhB,yFACI,WA/FI,sDACR,mEACA,qB9F2RF,UALI,SGvQN,2B2FRI,kLACI,YACA,aACA,wBACA,2XAEA,8LACI,wXAKJ,0WAEI,aAMA,qD3FZZ,2B2FgBI,6E3FPJ,yBACA,0B2FWI,6E3FEJ,6BACA,4B2FEQ,4FACI,qB9FiPV,UALI,S8FtOE,wGACI,qB9F0OV,UALI,S8FjOU,4IACI,sBAIA,+KACI,qBASZ,8DACR,oCAMI,wHACI,oB9F+MV,UALI,S8FvMM,2JACI,YACA,aACA,wBACA,2XAEA,iKACI,wXAMhB,0FACI,YA/FI,sDACR,iEACA,mB9F2RF,UALI,QGvQN,2B2FRI,kLACI,WACA,YACA,oBACA,yXAEA,8LACI,sXAKJ,0WAEI,aAMA,qD3FZZ,2B2FgBI,6E3FPJ,yBACA,0B2FWI,6E3FEJ,6BACA,4B2FEQ,4FACI,mB9FiPV,UALI,Q8FtOE,wGACI,mB9F0OV,UALI,Q8FjOU,4IACI,oBAIA,+KACI,mBASZ,8DACR,iCAMI,wHACI,oB9F+MV,UALI,Q8FvMM,2JACI,WACA,YACA,oBACA,yXAEA,iKACI,sXAMhB,0FACI,WCzFR,0GACI,gBACA,yBACA,YACA,gBACA,MzFWG,QyFNP,kGACI,YAaJ,4DACI","file":"bootstrap.css"} \ No newline at end of file diff --git a/src/cdh/core/templates/base/minimal.html b/src/cdh/core/templates/base/minimal.html index 87cc52a9..92387175 100644 --- a/src/cdh/core/templates/base/minimal.html +++ b/src/cdh/core/templates/base/minimal.html @@ -13,21 +13,26 @@ </title> <!-- - _.---. - |\---/| / ) ca| - ------------; |-/ /|foo|--- - ) (' / `---' - ===========( ,'========== - || _ | | - || o/ ) | | o - || ( ( / ; - || \ `._/ / - || `._ /| - || |\ _/|| - __||_____.' ) |__||____________ - ________\ | |_________________ - \ \ `-. - `-`---' hjw + * * + __ * + ,db' * * + ,d8/ * * * + 888 + `db\ * * + `o`_ ** + * * * _ * + * / ) + * (\__/) * ( ( * + ,-.,-.,) (.,-.,-.,-.) ).,-.,-. + | @| ={ }= | @| / / | @|o | + _j__j__j_) `-------/ /__j__j__j_ + ________( /___________ + | | @| \ || o|O | @| + |o | |,'\ , ,'"| | | | hjw + vV\|/vV|`-'\ ,---\ | \Vv\hjwVv\//v + _) ) `. \ / + (__/ ) ) + (_/ Miauw! --> @@ -63,6 +68,10 @@ <script src="{{ js_file }}" nonce="{{ request.csp_nonce }}"></script> {% endfor %} + {% if form %} + {{ form.media }} + {% endif %} + <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body class="{% block body-classes %}{% endblock %}"> diff --git a/src/cdh/files/apps.py b/src/cdh/files/apps.py index d1214c55..de534d4e 100644 --- a/src/cdh/files/apps.py +++ b/src/cdh/files/apps.py @@ -1,7 +1,5 @@ from django.apps import AppConfig -from cdh.core.file_loading import add_css_file, add_js_file - class FilesConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' @@ -10,6 +8,3 @@ class FilesConfig(AppConfig): def ready(self): import cdh.files.checks # noQA, the import has side effects, linter! import cdh.files.signals # noQA, same story - - add_js_file('cdh.files/widgets.js') - add_css_file('cdh.files/widgets.css') diff --git a/src/cdh/files/forms/widgets.py b/src/cdh/files/forms/widgets.py index 2f1b5523..8e5a31df 100644 --- a/src/cdh/files/forms/widgets.py +++ b/src/cdh/files/forms/widgets.py @@ -3,6 +3,12 @@ class SimpleFileInput(FileInput): + class Media: + js = ['cdh.files/widgets.js'] + css = { + 'screen': ['cdh.files/widgets.css'] + } + clear_checkbox_label = _('Clear') initial_text = _('Currently') input_text = _('Change') @@ -59,6 +65,12 @@ def value_omitted_from_data(self, data, files, name): class TrackedFileInput(SimpleFileInput): + class Media: + js = ['cdh.files/widgets.js'] + css = { + 'screen': ['cdh.files/widgets.css'] + } + template_name = 'cdh.files/widgets/tracked_file.html' # Strings used in the template diff --git a/src/cdh/integration_platform/digital_identity_api/forms/widgets.py b/src/cdh/integration_platform/digital_identity_api/forms/widgets.py index fcdba504..91f79085 100644 --- a/src/cdh/integration_platform/digital_identity_api/forms/widgets.py +++ b/src/cdh/integration_platform/digital_identity_api/forms/widgets.py @@ -4,17 +4,13 @@ class SingleUserWidget(widgets.Input): + class Media: + js = [ + 'cdh.integration_platform/digital_identity_api/single_user_widget.js' + ] input_type = 'hidden' template_name = "cdh.integration_platform/digital_identity_api/single_user_widget.html" - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - add_js_file( - 'cdh.integration_platform/digital_identity_api/single_user_widget' - '.js' - ) - @property def is_hidden(self): return False diff --git a/src/cdh/vue3/components/__init__.py b/src/cdh/vue3/components/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/cdh/vue3/components/uu_list/__init__.py b/src/cdh/vue3/components/uu_list/__init__.py new file mode 100644 index 00000000..775df459 --- /dev/null +++ b/src/cdh/vue3/components/uu_list/__init__.py @@ -0,0 +1,32 @@ +"""UU-List is a Vue component implementing a UU-designed list view +with filtering, searching, ordering and pagination support. + +The base UU-List component (from cdh-vue-lib) is UI only, requiring +any user to implement data fetching on their own. + +In addition, the UU-List does not, by default, have any way of +visualizing the data. Instead, this is left to a 'Visualizer' +component. It does, however, provide the Data-Defined Visualizer +(DDV) as a pre-written visualizer that can be used. + +This package provides a pre-compiled implementation of UU-List using +the DDV, already setup to fetch and process data from Django. +It also provides the necessary backend code to easily provide the +required views for this pre-compiled version of UU-List. + +Any implementer should be able to use both to quickly set up a page +using UU-List, without any custom JS required. An example of a complete +setup can be found in the DSC dev project. +The source code of this pre-compiled version can be found in assets/vue/uu-list. + +However, the DDV is limited in its configurability. If you need to +implement more advanced visualisation, you will need to compile +your own version of UU-List. The assets dir in the DSC project +provides an example to get you started. This example already +contains all the hooks needed to tap into the provided backend classes, +you will only eed to write a custom visualizer. +""" +from .columns import * +from .paginator import * +from .serializers import * +from .views import * diff --git a/src/cdh/vue3/components/uu_list/columns.py b/src/cdh/vue3/components/uu_list/columns.py new file mode 100644 index 00000000..c4b890e8 --- /dev/null +++ b/src/cdh/vue3/components/uu_list/columns.py @@ -0,0 +1,151 @@ +"""A collection of column definition classes used by the Data-Defined +Visualizer variant of the UU-List. +""" +from typing import Optional, Union + +from django.utils.translation import get_language + + +class _DDVColumn: + """Base class for all DDV columns, should not be used directly""" + + type: str = None + + def __init__(self, field: str, label: str, css_classes: Optional[str] = None): + """ + :param field: The key of the field used in the serializer to pull + data from.If you are unsure, view the output of your + API view and copy the key. + :param label: The text shown as the table header for this column + :param css_classes: Any CSS classes to add to the item in the table cell + """ + self.field = field + self.label = label + self.classes = css_classes + + def get_config(self): + return { + "type": self.type, + "field": self.field, + "label": self.label, + "classes": self.classes, + } + + +class DDVString(_DDVColumn): + """Will simply display the contents of the given field as a string. + + Note: HTML will be escaped! If you really want HTML, use DDVHtml. + Or, you know, use a custom UU-List implementation. + """ + + type = "string" + + +class DDVHtml(_DDVColumn): + """Will display the contents of the given field without escaping HTML + + NOTE: THIS IS POTENTIALLY UNSAFE! ALWAYS SANITIZE USER INPUT YOURSELF + Note 2: If you end up using this column a lot, it's probably better to + create a custom UU-List implementation over using the default DDV + implementation. + """ + + type = "html" + + +class DDVDate(_DDVColumn): + """Will format a ISO 8601 formatted date(time) into a localized date(time). + + Use DRF's Date(Time)Field in your serializer. (THis will be automatically + be the case if you use a ModelSerializer with the `fields` option) + """ + + type = "date" + + def __init__( + self, + field: str, + label: str, + css_classes: Optional[str] = None, + format: Optional[Union[str, dict]] = None, + # Default to NL, even for EN languages to be consistent in format + language: Optional[str] = "nl", + ): + super().__init__(field, label, css_classes) + self.format = format + self.language = language + + def get_config(self): + config = super().get_config() + config["format"] = self.format + + # if locale is none, retrieve the current activated language + language = self.language or get_language() + + config["language"] = language + return config + + +class DDVLink(_DDVColumn): + """Will display a simple link in the table. + + Use DDVLinkField in your serializer to populate the field that will be used + + Note: this will display only a link. If you need a link inside a larger + text, use DDVHtml or create a custom UU-List implementation + """ + + type = "link" + + +class DDVActions(_DDVColumn): + """Will display a list of actions inside a dropdown + + Use DDVActionsField in your serializer to populate the field that will be used + """ + + type = "actions" + + +class DDVButton(_DDVColumn): + """Will display a button in the table. + + Use DDVLinkField in your serializer to populate the field that will be used + """ + + type = "button" + + def __init__( + self, + field: str, + label: str, + variant: Optional[str] = None, + size: Optional[str] = None, + ): + """ + + :param field: The key of the field used in the serializer to pull + data from.If you are unsure, view the output of your + API view and copy the key. + :param label: The text shown as the table header for this column + :param variant: The BS button variant to use. See UU-Bootstrap for + info on the options. Defaults to 'primary'. + :param size: small, normal or large. Defaults to 'normal' + """ + super().__init__(field, label) + self.variant = variant + self.size = size + + def get_config(self): + config = { + "type": self.type, + "field": self.field, + "label": self.label, + } + if self.variant: + config["variant"] = self.variant + if self.size: + config["size"] = self.size + + return config diff --git a/src/cdh/vue3/components/uu_list/paginator.py b/src/cdh/vue3/components/uu_list/paginator.py new file mode 100644 index 00000000..cc874692 --- /dev/null +++ b/src/cdh/vue3/components/uu_list/paginator.py @@ -0,0 +1,38 @@ +from collections import OrderedDict + +from rest_framework.pagination import PageNumberPagination + + +class StandardResultsSetPagination(PageNumberPagination): + page_size = 25 + page_size_query_param = "page_size" + max_page_size = 1000 + + def get_paginated_response(self, data): + return OrderedDict( + [ + ("count", self.page.paginator.count), + ("page_size", self.page.paginator.per_page), + ("pages", self.page.paginator.num_pages), + ("results", data), + ] + ) + + def get_paginated_response_schema(self, schema): + schema["properties"].extend( + { + "count": { + "type": "integer", + "example": 123, + }, + "page_size": { + "type": "integer", + "example": 123, + }, + "pages": { + "type": "integer", + "example": 123, + }, + } + ) + return schema diff --git a/src/cdh/vue3/components/uu_list/serializers.py b/src/cdh/vue3/components/uu_list/serializers.py new file mode 100644 index 00000000..89d6728d --- /dev/null +++ b/src/cdh/vue3/components/uu_list/serializers.py @@ -0,0 +1,152 @@ +"""A collection of serializer fields needed for the proper operation of some +columns in the Data-Defined Visualizer variant of the UU-List. +""" +from typing import List, Optional, Union + +from django.shortcuts import resolve_url +from rest_framework import serializers + + +class DDVLinkField(serializers.Field): + """DDVLinkField is a custom DRF serializer, which will format its + output for use in DDVLink, DDVButton and DDVAction DDV columns. + + When using this field for DDVLink or DDVButton, you can use this class as + the serializer. + DDVAction columns should use the DDVActionsField serializer instead. + + Note: classes is ignored when using DDVLink; use the column classes + argument instead + """ + + def __init__( + self, + *, + text: Union[str, callable], + link: Union[str, callable], + link_attr: Optional[str] = None, + new_tab: bool = False, + check: Optional[callable] = None, + classes: Optional[str] = None, + **kwargs, + ): + """Init + + 'The object' will refer to 'the object currently being serialized'. + + :param text: The text on the action. Either a (trans)string or a + callable, which accepts the object as a param and returns + a string. + :type text: str | callable + :param link: The link the user should be navigated to when clicking + the action. Either a string (both full urls as django + named urls are supported) or a callable returning said + string. + :type link: str | callable + :param link_attr: If supplied, the attribute given will be retrieved + from the object and passed to the link resolver. + Use this to supply things like the 'pk' to django + named urls. + :type link_attr: str + :param check: If supplied, this callable will be used to check if + this action should be displayed for the current object. + The callable should accept one parameter, the object. + :type check: callable + :param classes: Any CSS classes to be applied to the action root-element + :type classes: str + :param kwargs: see DRF Field + """ + self.text = text + self.link = link + self.link_attr = link_attr + self.new_tab = new_tab + self.check = check + self.classes = classes + kwargs["source"] = "*" + kwargs["read_only"] = True + super().__init__(**kwargs) + + def to_representation(self, value): + if self.check is not None: + if not self.check(value): + return None + + args = [] + if self.link_attr is not None: + args.append(getattr(value, self.link_attr, None)) + + text = self.text + if callable(text): + text = text(value) + + link = resolve_url(self.link, *args) + return { + "link": link, + "text": text, + "classes": self.classes, + "new_tab": self.new_tab, + } + + +class DDVActionDividerField(serializers.Field): + """This is a simple class to add dividers between actions in + DDVActionsField""" + + def __init__(self, check: Optional[callable] = None, **kwargs): + """ + 'The object' will refer to 'the object currently being serialized'. + + :param check: If supplied, this callable will be used to check if + this action should be displayed for the current object. + The callable should accept one parameter, the object. + :type check: callable + """ + self.check = check + kwargs["source"] = "*" + kwargs["read_only"] = True + super().__init__(**kwargs) + + def to_representation(self, value): + if self.check is not None: + if not self.check(value): + return None + + return { + "divider": True, + } + + +class DDVActionsField(serializers.Field): + """A custom serializer to use for the DDVActions column.""" + + def __init__( + self, actions: List[Union[DDVLinkField, DDVActionDividerField]], **kwargs + ): + """ + :param actions: a list of items to add to the actions dropdown. If no + actions are defined (after checks are run), the column + will automagically hide itself for this object. + :type actions: DDVLinkField | DDVActionDividerField + :param kwargs: see DRF Field + """ + self.actions = actions + kwargs["source"] = "*" + kwargs["read_only"] = True + super().__init__(**kwargs) + + def bind(self, field_name, parent): + for action in self.actions: + action.bind(field_name, parent) + super().bind(field_name, parent) + + def to_representation(self, value): + values = [] + + for action in self.actions: + if action_representation := action.to_representation(value): + values.append(action_representation) + + if len(values) == 0: + return None + + return values diff --git a/src/cdh/vue3/components/uu_list/views.py b/src/cdh/vue3/components/uu_list/views.py new file mode 100644 index 00000000..badd1eb8 --- /dev/null +++ b/src/cdh/vue3/components/uu_list/views.py @@ -0,0 +1,269 @@ +from django.core.exceptions import ImproperlyConfigured +from django.utils.translation import get_language +from django.views import generic +from django_filters import rest_framework as filters +from rest_framework import generics +from rest_framework.filters import SearchFilter, OrderingFilter +from rest_framework.response import Response + +from .paginator import StandardResultsSetPagination + + +class UUListAPIView(generics.ListAPIView): + """This is the API view, used by UU-List to retrieve its data + + This class can be used by both the default DDV UU-List, and a custom UU-List + implementation. + """ + + # These filter backends determine what functionality is available + # The DDVListView and UUListView classes will automagically enable the + # frontend features depending on what filter types are enabled. + # There three are the only ones supported, but any (or all) may be omitted + # Note: there are two similarly named mechanisms at play here; In the docs + # we mostly use 'filters' to refer to django-filters; but this var refers + # to DRF's filter system. (And we enable django-filters here) + # OrderingFilter: enables sorting support + # SearchFilter: Enables the search bar + # filters.DjangoFilterBackend: enables advanced filters using django-filters + filter_backends = [OrderingFilter, SearchFilter, filters.DjangoFilterBackend] + # The Django-filters filterset class to use. Can be left None if + # django-filters is not enabled + filterset_class = None + # The fields on the QS that can be used to sort + # Labels will be taken from the fields verbose_name, unless overriden in + # UUListView/DDVListView + ordering = ["id"] + # Leave this alone unless you know what to do with it + # This overrides to pagination class to one that produces the format + # expected by UU-List + pagination_class = StandardResultsSetPagination + + def get_paginated_response(self, data): + data = super().get_paginated_response(data) + data["ordering"] = self.request.query_params.get('ordering', self.ordering) + + return Response(data) + + +class UUListView(generic.TemplateView): + """A base class for _custom_ UU-List pages. + + This custom view generates the initial configuration used by all UU-List + implementations. + + Your template can then initiate the component in the template using: + {% vue UUList :config=uu_list_config %} + + Is extended by DDVListView, thus the variables here also apply to that + class. + + This class has multiple methods that may be overriden to modify the + automagical config generation. + """ + + # Page size options, should contain 25 + page_size_options = [10, 25, 50, 100] + # The model viewed, should be exactly the same one as used in + # UUListApiView's serializer + # May also be set by overriding the get_model method + model = None + # The URL of the UUListApiView to retrieve actual data from + # Note: you should use reverse_lazy! + # May also be set by overriding the get_data_uri method + data_uri = None + # Should be a direct reference to the class that handles the url + # set in `data_uri`. This is used to probe what capabilities that + # class has enabled + data_view = None + # The name of the template context variable used to store the initial config + # If you change this, make sure to modify your template accordingly + context_config_var = "uu_list_config" + # Determines the visual layout used; default is the newer design. + # Alternatively, use 'sidebar' to use a UU-Sidebar based design. + # Note: sidebar only makes sense if the django-filters backend and/or search + # is enabled. + container = "default" + # This will set the initial value for any filter. Key should be the 'field' + # name. + # Multiple-choice filters need the value to be in list-form, others a plain + # value + # Single-choice filters without a defined initial value will use the + # first option available. + initial_filter_values = {} + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if self.get_model() is None: + raise ImproperlyConfigured( + "UUListView classes must define the (root) model as " + "<class>.model or override <class>.get_model()" + ) + if self.get_data_uri() is None: + raise ImproperlyConfigured( + "UUListView classes must define the uri of the API view as " + "<class>.data_uri. (Preferably using reverse_lazy) " + "Alternatively, override <class>.get_data_uri()." + ) + if self.get_data_view() is None: + raise ImproperlyConfigured( + "UUListView classes must define the used API view as " + "<class>.data_view. " + ) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + + context[self.context_config_var] = { + "dataUri": self.get_data_uri(), + "filtersEnabled": self.get_filters_enabled(), + "filters": self.get_filters(), + "pageSize": self.get_page_size(), + "pageSizeOptions": self.get_page_size_options(), + "sortEnabled": self.get_sort_enabled(), + "sortOptions": self.get_sort_options(), + "searchEnabled": self.get_search_enabled(), + "locale": self.get_locale(), + "container": self.get_container(), + } + + return context + + def get_locale(self): + """Modify this method to return 'en'|'nl' if your app does not use + those labels for the languages. (In other words, if your app uses + 'en-US' instead of 'en', etc). + """ + return get_language() + + def get_model(self): + return self.model + + def get_data_view(self): + return self.data_view + + def get_data_uri(self): + # Cast to string, as it's probably a lazy value and the vue tag + # DOES NOT like lazy values.... Ugh + return str(self.data_uri) + + def get_page_size(self): + return self.get_data_view().pagination_class.page_size + + def get_page_size_options(self): + return self.page_size_options + + def get_search_enabled(self): + return SearchFilter in self.get_data_view().filter_backends + + def get_sort_enabled(self): + return OrderingFilter in self.get_data_view().filter_backends + + def get_filters_enabled(self): + return filters.DjangoFilterBackend in self.get_data_view().filter_backends + + def get_initial_filter_values(self): + return self.initial_filter_values + + def get_filters(self): + if not self.get_filters_enabled(): + return [] + + from django_filters.rest_framework import ( + ChoiceFilter, + MultipleChoiceFilter, + DateFilter, + ) + + initial_filter_values = self.get_initial_filter_values() + + filter_map = { + ChoiceFilter: "radio", + MultipleChoiceFilter: "checkbox", + DateFilter: "date", + } + filter_defs = [] + dataview_filters = self.get_data_view().filterset_class.get_filters().items() + for field, filter_object in dataview_filters: + if type(filter_object) not in filter_map: + continue + + filter_def = { + "field": field, + "label": filter_object.label, + "type": filter_map.get(type(filter_object)), + } + + if filter_def["type"] in ["checkbox", "radio"]: + filter_def["options"] = filter_object.extra["choices"] + + if field in initial_filter_values: + filter_def["initial"] = initial_filter_values[field] + + filter_defs.append(filter_def) + + return filter_defs + + def get_sort_options(self): + """Override this method if you want to customize the labels used for + the sorting options. + """ + if not self.get_sort_enabled(): + return [] + + def get_field_name(field): + return self.get_model()._meta.get_field(field).verbose_name + + options = [] + + for field in self.get_data_view().ordering_fields: + options.append({"field": field, "label": f"{get_field_name(field)} ↑"}) + options.append( + {"field": f"-{field}", "label": f"{get_field_name(field)} ↓"} + ) + + return options + + def get_container(self): + return self.container + + +class DDVListView(UUListView): + """Extension of UUListView which will also add DDV configuration. + + The DDV, or Data-Defined Visualizer variant of UU-List is the default + UU-List implementation of DSC, and allows for fully-backend defined usage + of UU-List. (Read: no custom JS required). + + It uses a preset defined list of 'columns' to build a table. The order + of 'self.columns' will also be the order of the columns in the table. + + See ./columns.py for information on what columns are available. + + Some columns need a custom serializer field to be used, which is documented + on the relevant column classes. + """ + + columns = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if self.get_columns() is None: + raise ImproperlyConfigured( + "UUListView classes must define columns as " + "<class>.columns or override <class>.get_columns" + ) + + def get_columns(self): + return self.columns + + def get_columns_config(self): + return [column.get_config() for column in self.get_columns()] + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + + context[self.context_config_var]["columns"] = self.get_columns_config() + + return context diff --git a/src/cdh/vue3/static/cdh.vue3/components/uu-list/UUList.iife.js b/src/cdh/vue3/static/cdh.vue3/components/uu-list/UUList.iife.js new file mode 100644 index 00000000..3718d933 --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/components/uu-list/UUList.iife.js @@ -0,0 +1,5687 @@ +var UUList = function(vue) { + "use strict"; + let getRandomValues; + const rnds8 = new Uint8Array(16); + function rng() { + if (!getRandomValues) { + getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto); + if (!getRandomValues) { + throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + } + } + return getRandomValues(rnds8); + } + const byteToHex = []; + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).slice(1)); + } + function unsafeStringify(arr, offset = 0) { + return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); + } + const randomUUID = typeof crypto !== "undefined" && crypto.randomUUID && crypto.randomUUID.bind(crypto); + const native = { + randomUUID + }; + function v4(options, buf, offset) { + if (native.randomUUID && !buf && !options) { + return native.randomUUID(); + } + options = options || {}; + const rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return unsafeStringify(rnds); + } + /*! + * shared v9.6.2 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ + const inBrowser = typeof window !== "undefined"; + let mark; + let measure; + if ({}.NODE_ENV !== "production") { + const perf = inBrowser && window.performance; + if (perf && perf.mark && perf.measure && perf.clearMarks && // @ts-ignore browser compat + perf.clearMeasures) { + mark = (tag) => { + perf.mark(tag); + }; + measure = (name, startTag, endTag) => { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + }; + } + } + const RE_ARGS$1 = /\{([0-9a-zA-Z]+)\}/g; + function format$2(message, ...args) { + if (args.length === 1 && isObject$1(args[0])) { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + return message.replace(RE_ARGS$1, (match, identifier) => { + return args.hasOwnProperty(identifier) ? args[identifier] : ""; + }); + } + const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); + const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source }); + const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027"); + const isNumber = (val) => typeof val === "number" && isFinite(val); + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; + const assign$1 = Object.assign; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + function escapeHtml(rawText) { + return rawText.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); + } + const hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + const isArray = Array.isArray; + const isFunction = (val) => typeof val === "function"; + const isString$1 = (val) => typeof val === "string"; + const isBoolean = (val) => typeof val === "boolean"; + const isObject$1 = (val) => val !== null && typeof val === "object"; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const isPlainObject = (val) => { + if (!isObject$1(val)) + return false; + const proto = Object.getPrototypeOf(val); + return proto === null || proto.constructor === Object; + }; + const toDisplayString = (val) => { + return val == null ? "" : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val); + }; + function join$1(items, separator = "") { + return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, ""); + } + const RANGE = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + const lines = source.split(/\r?\n/); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (let j2 = i - RANGE; j2 <= i + RANGE || end > count; j2++) { + if (j2 < 0 || j2 >= lines.length) + continue; + const line = j2 + 1; + res.push(`${line}${" ".repeat(3 - String(line).length)}| ${lines[j2]}`); + const lineLength = lines[j2].length; + if (j2 === i) { + const pad = start - (count - lineLength) + 1; + const length = Math.max(1, end > count ? lineLength - pad : end - start); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j2 > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + 1; + } + } + break; + } + } + return res.join("\n"); + } + function incrementer(code2) { + let current = code2; + return () => ++current; + } + function warn(msg, err) { + if (typeof console !== "undefined") { + console.warn(`[intlify] ` + msg); + if (err) { + console.warn(err.stack); + } + } + } + const hasWarned = {}; + function warnOnce(msg) { + if (!hasWarned[msg]) { + hasWarned[msg] = true; + warn(msg); + } + } + function createEmitter() { + const events = /* @__PURE__ */ new Map(); + const emitter = { + events, + on(event, handler) { + const handlers = events.get(event); + const added = handlers && handlers.push(handler); + if (!added) { + events.set(event, [handler]); + } + }, + off(event, handler) { + const handlers = events.get(event); + if (handlers) { + handlers.splice(handlers.indexOf(handler) >>> 0, 1); + } + }, + emit(event, payload) { + (events.get(event) || []).slice().map((handler) => handler(payload)); + (events.get("*") || []).slice().map((handler) => handler(event, payload)); + } + }; + return emitter; + } + /*! + * message-compiler v9.6.2 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ + function createPosition(line, column, offset) { + return { line, column, offset }; + } + function createLocation(start, end, source) { + const loc = { start, end }; + if (source != null) { + loc.source = source; + } + return loc; + } + const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g; + function format$1(message, ...args) { + if (args.length === 1 && isObject(args[0])) { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + return message.replace(RE_ARGS, (match, identifier) => { + return args.hasOwnProperty(identifier) ? args[identifier] : ""; + }); + } + const assign = Object.assign; + const isString = (val) => typeof val === "string"; + const isObject = (val) => val !== null && typeof val === "object"; + function join(items, separator = "") { + return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, ""); + } + const CompileErrorCodes = { + // tokenizer error codes + EXPECTED_TOKEN: 1, + INVALID_TOKEN_IN_PLACEHOLDER: 2, + UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, + UNKNOWN_ESCAPE_SEQUENCE: 4, + INVALID_UNICODE_ESCAPE_SEQUENCE: 5, + UNBALANCED_CLOSING_BRACE: 6, + UNTERMINATED_CLOSING_BRACE: 7, + EMPTY_PLACEHOLDER: 8, + NOT_ALLOW_NEST_PLACEHOLDER: 9, + INVALID_LINKED_FORMAT: 10, + // parser error codes + MUST_HAVE_MESSAGES_IN_PLURAL: 11, + UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, + UNEXPECTED_EMPTY_LINKED_KEY: 13, + UNEXPECTED_LEXICAL_ANALYSIS: 14, + // generator error codes + UNHANDLED_CODEGEN_NODE_TYPE: 15, + // minifier error codes + UNHANDLED_MINIFIER_NODE_TYPE: 16, + // Special value for higher-order compilers to pick up the last code + // to avoid collision of error codes. This should always be kept as the last + // item. + __EXTEND_POINT__: 17 + }; + const errorMessages$2 = { + // tokenizer error messages + [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`, + [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`, + [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`, + [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`, + [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`, + [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`, + [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`, + [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`, + [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`, + [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`, + // parser error messages + [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`, + [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`, + // generator error messages + [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`, + // minimizer error messages + [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'` + }; + function createCompileError(code2, loc, options = {}) { + const { domain, messages, args } = options; + const msg = format$1((messages || errorMessages$2)[code2] || "", ...args || []); + const error = new SyntaxError(String(msg)); + error.code = code2; + if (loc) { + error.location = loc; + } + error.domain = domain; + return error; + } + function defaultOnError(error) { + throw error; + } + const RE_HTML_TAG = /<\/?[\w\s="/.':;#-\/]+>/; + const detectHtmlTag = (source) => RE_HTML_TAG.test(source); + const CHAR_SP = " "; + const CHAR_CR = "\r"; + const CHAR_LF = "\n"; + const CHAR_LS = String.fromCharCode(8232); + const CHAR_PS = String.fromCharCode(8233); + function createScanner(str) { + const _buf = str; + let _index = 0; + let _line = 1; + let _column = 1; + let _peekOffset = 0; + const isCRLF = (index2) => _buf[index2] === CHAR_CR && _buf[index2 + 1] === CHAR_LF; + const isLF = (index2) => _buf[index2] === CHAR_LF; + const isPS = (index2) => _buf[index2] === CHAR_PS; + const isLS = (index2) => _buf[index2] === CHAR_LS; + const isLineEnd = (index2) => isCRLF(index2) || isLF(index2) || isPS(index2) || isLS(index2); + const index = () => _index; + const line = () => _line; + const column = () => _column; + const peekOffset = () => _peekOffset; + const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset]; + const currentChar = () => charAt(_index); + const currentPeek = () => charAt(_index + _peekOffset); + function next() { + _peekOffset = 0; + if (isLineEnd(_index)) { + _line++; + _column = 0; + } + if (isCRLF(_index)) { + _index++; + } + _index++; + _column++; + return _buf[_index]; + } + function peek() { + if (isCRLF(_index + _peekOffset)) { + _peekOffset++; + } + _peekOffset++; + return _buf[_index + _peekOffset]; + } + function reset() { + _index = 0; + _line = 1; + _column = 1; + _peekOffset = 0; + } + function resetPeek(offset = 0) { + _peekOffset = offset; + } + function skipToPeek() { + const target = _index + _peekOffset; + while (target !== _index) { + next(); + } + _peekOffset = 0; + } + return { + index, + line, + column, + peekOffset, + charAt, + currentChar, + currentPeek, + next, + peek, + reset, + resetPeek, + skipToPeek + }; + } + const EOF = void 0; + const DOT = "."; + const LITERAL_DELIMITER = "'"; + const ERROR_DOMAIN$3 = "tokenizer"; + function createTokenizer(source, options = {}) { + const location = options.location !== false; + const _scnr = createScanner(source); + const currentOffset = () => _scnr.index(); + const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); + const _initLoc = currentPosition(); + const _initOffset = currentOffset(); + const _context = { + currentType: 14, + offset: _initOffset, + startLoc: _initLoc, + endLoc: _initLoc, + lastType: 14, + lastOffset: _initOffset, + lastStartLoc: _initLoc, + lastEndLoc: _initLoc, + braceNest: 0, + inLinked: false, + text: "" + }; + const context = () => _context; + const { onError } = options; + function emitError(code2, pos, offset, ...args) { + const ctx = context(); + pos.column += offset; + pos.offset += offset; + if (onError) { + const loc = location ? createLocation(ctx.startLoc, pos) : null; + const err = createCompileError(code2, loc, { + domain: ERROR_DOMAIN$3, + args + }); + onError(err); + } + } + function getToken(context2, type, value) { + context2.endLoc = currentPosition(); + context2.currentType = type; + const token = { type }; + if (location) { + token.loc = createLocation(context2.startLoc, context2.endLoc); + } + if (value != null) { + token.value = value; + } + return token; + } + const getEndToken = (context2) => getToken( + context2, + 14 + /* TokenTypes.EOF */ + ); + function eat(scnr, ch) { + if (scnr.currentChar() === ch) { + scnr.next(); + return ch; + } else { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + return ""; + } + } + function peekSpaces(scnr) { + let buf = ""; + while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { + buf += scnr.currentPeek(); + scnr.peek(); + } + return buf; + } + function skipSpaces(scnr) { + const buf = peekSpaces(scnr); + scnr.skipToPeek(); + return buf; + } + function isIdentifierStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc === 95; + } + function isNumberStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + } + function isNamedIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isListIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ch = scnr.currentPeek() === "-" ? scnr.peek() : scnr.currentPeek(); + const ret = isNumberStart(ch); + scnr.resetPeek(); + return ret; + } + function isLiteralStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === LITERAL_DELIMITER; + scnr.resetPeek(); + return ret; + } + function isLinkedDotStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 8) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === "."; + scnr.resetPeek(); + return ret; + } + function isLinkedModifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 9) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isLinkedDelimiterStart(scnr, context2) { + const { currentType } = context2; + if (!(currentType === 8 || currentType === 12)) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === ":"; + scnr.resetPeek(); + return ret; + } + function isLinkedReferStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 10) { + return false; + } + const fn = () => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return isIdentifierStart(scnr.peek()); + } else if (ch === "@" || ch === "%" || ch === "|" || ch === ":" || ch === "." || ch === CHAR_SP || !ch) { + return false; + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(); + } else { + return isIdentifierStart(ch); + } + }; + const ret = fn(); + scnr.resetPeek(); + return ret; + } + function isPluralStart(scnr) { + peekSpaces(scnr); + const ret = scnr.currentPeek() === "|"; + scnr.resetPeek(); + return ret; + } + function detectModuloStart(scnr) { + const spaces = peekSpaces(scnr); + const ret = scnr.currentPeek() === "%" && scnr.peek() === "{"; + scnr.resetPeek(); + return { + isModulo: ret, + hasSpace: spaces.length > 0 + }; + } + function isTextStart(scnr, reset = true) { + const fn = (hasSpace = false, prev = "", detectModulo = false) => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return prev === "%" ? false : hasSpace; + } else if (ch === "@" || !ch) { + return prev === "%" ? true : hasSpace; + } else if (ch === "%") { + scnr.peek(); + return fn(hasSpace, "%", true); + } else if (ch === "|") { + return prev === "%" || detectModulo ? true : !(prev === CHAR_SP || prev === CHAR_LF); + } else if (ch === CHAR_SP) { + scnr.peek(); + return fn(true, CHAR_SP, detectModulo); + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(true, CHAR_LF, detectModulo); + } else { + return true; + } + }; + const ret = fn(); + reset && scnr.resetPeek(); + return ret; + } + function takeChar(scnr, fn) { + const ch = scnr.currentChar(); + if (ch === EOF) { + return EOF; + } + if (fn(ch)) { + scnr.next(); + return ch; + } + return null; + } + function takeIdentifierChar(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc >= 48 && cc <= 57 || // 0-9 + cc === 95 || // _ + cc === 36; + }; + return takeChar(scnr, closure); + } + function takeDigit(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + }; + return takeChar(scnr, closure); + } + function takeHexDigit(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57 || // 0-9 + cc >= 65 && cc <= 70 || // A-F + cc >= 97 && cc <= 102; + }; + return takeChar(scnr, closure); + } + function getDigits(scnr) { + let ch = ""; + let num = ""; + while (ch = takeDigit(scnr)) { + num += ch; + } + return num; + } + function readModulo(scnr) { + skipSpaces(scnr); + const ch = scnr.currentChar(); + if (ch !== "%") { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + } + scnr.next(); + return "%"; + } + function readText(scnr) { + let buf = ""; + while (true) { + const ch = scnr.currentChar(); + if (ch === "{" || ch === "}" || ch === "@" || ch === "|" || !ch) { + break; + } else if (ch === "%") { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } else { + break; + } + } else if (ch === CHAR_SP || ch === CHAR_LF) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } else if (isPluralStart(scnr)) { + break; + } else { + buf += ch; + scnr.next(); + } + } else { + buf += ch; + scnr.next(); + } + } + return buf; + } + function readNamedIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let name = ""; + while (ch = takeIdentifierChar(scnr)) { + name += ch; + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return name; + } + function readListIdentifier(scnr) { + skipSpaces(scnr); + let value = ""; + if (scnr.currentChar() === "-") { + scnr.next(); + value += `-${getDigits(scnr)}`; + } else { + value += getDigits(scnr); + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return value; + } + function readLiteral(scnr) { + skipSpaces(scnr); + eat(scnr, `'`); + let ch = ""; + let literal = ""; + const fn = (x2) => x2 !== LITERAL_DELIMITER && x2 !== CHAR_LF; + while (ch = takeChar(scnr, fn)) { + if (ch === "\\") { + literal += readEscapeSequence(scnr); + } else { + literal += ch; + } + } + const current = scnr.currentChar(); + if (current === CHAR_LF || current === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); + if (current === CHAR_LF) { + scnr.next(); + eat(scnr, `'`); + } + return literal; + } + eat(scnr, `'`); + return literal; + } + function readEscapeSequence(scnr) { + const ch = scnr.currentChar(); + switch (ch) { + case "\\": + case `'`: + scnr.next(); + return `\\${ch}`; + case "u": + return readUnicodeEscapeSequence(scnr, ch, 4); + case "U": + return readUnicodeEscapeSequence(scnr, ch, 6); + default: + emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); + return ""; + } + } + function readUnicodeEscapeSequence(scnr, unicode, digits) { + eat(scnr, unicode); + let sequence = ""; + for (let i = 0; i < digits; i++) { + const ch = takeHexDigit(scnr); + if (!ch) { + emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); + break; + } + sequence += ch; + } + return `\\${unicode}${sequence}`; + } + function readInvalidIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let identifiers = ""; + const closure = (ch2) => ch2 !== "{" && ch2 !== "}" && ch2 !== CHAR_SP && ch2 !== CHAR_LF; + while (ch = takeChar(scnr, closure)) { + identifiers += ch; + } + return identifiers; + } + function readLinkedModifier(scnr) { + let ch = ""; + let name = ""; + while (ch = takeIdentifierChar(scnr)) { + name += ch; + } + return name; + } + function readLinkedRefer(scnr) { + const fn = (detect = false, buf) => { + const ch = scnr.currentChar(); + if (ch === "{" || ch === "%" || ch === "@" || ch === "|" || ch === "(" || ch === ")" || !ch) { + return buf; + } else if (ch === CHAR_SP) { + return buf; + } else if (ch === CHAR_LF || ch === DOT) { + buf += ch; + scnr.next(); + return fn(detect, buf); + } else { + buf += ch; + scnr.next(); + return fn(true, buf); + } + }; + return fn(false, ""); + } + function readPlural(scnr) { + skipSpaces(scnr); + const plural = eat( + scnr, + "|" + /* TokenChars.Pipe */ + ); + skipSpaces(scnr); + return plural; + } + function readTokenInPlaceholder(scnr, context2) { + let token = null; + const ch = scnr.currentChar(); + switch (ch) { + case "{": + if (context2.braceNest >= 1) { + emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 2, + "{" + /* TokenChars.BraceLeft */ + ); + skipSpaces(scnr); + context2.braceNest++; + return token; + case "}": + if (context2.braceNest > 0 && context2.currentType === 2) { + emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + context2.braceNest--; + context2.braceNest > 0 && skipSpaces(scnr); + if (context2.inLinked && context2.braceNest === 0) { + context2.inLinked = false; + } + return token; + case "@": + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = readTokenInLinked(scnr, context2) || getEndToken(context2); + context2.braceNest = 0; + return token; + default: + let validNamedIdentifier = true; + let validListIdentifier = true; + let validLiteral = true; + if (isPluralStart(scnr)) { + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (context2.braceNest > 0 && (context2.currentType === 5 || context2.currentType === 6 || context2.currentType === 7)) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + context2.braceNest = 0; + return readToken(scnr, context2); + } + if (validNamedIdentifier = isNamedIdentifierStart(scnr, context2)) { + token = getToken(context2, 5, readNamedIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validListIdentifier = isListIdentifierStart(scnr, context2)) { + token = getToken(context2, 6, readListIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validLiteral = isLiteralStart(scnr, context2)) { + token = getToken(context2, 7, readLiteral(scnr)); + skipSpaces(scnr); + return token; + } + if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { + token = getToken(context2, 13, readInvalidIdentifier(scnr)); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value); + skipSpaces(scnr); + return token; + } + break; + } + return token; + } + function readTokenInLinked(scnr, context2) { + const { currentType } = context2; + let token = null; + const ch = scnr.currentChar(); + if ((currentType === 8 || currentType === 9 || currentType === 12 || currentType === 10) && (ch === CHAR_LF || ch === CHAR_SP)) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + switch (ch) { + case "@": + scnr.next(); + token = getToken( + context2, + 8, + "@" + /* TokenChars.LinkedAlias */ + ); + context2.inLinked = true; + return token; + case ".": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 9, + "." + /* TokenChars.LinkedDot */ + ); + case ":": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 10, + ":" + /* TokenChars.LinkedDelimiter */ + ); + default: + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (isLinkedDotStart(scnr, context2) || isLinkedDelimiterStart(scnr, context2)) { + skipSpaces(scnr); + return readTokenInLinked(scnr, context2); + } + if (isLinkedModifierStart(scnr, context2)) { + skipSpaces(scnr); + return getToken(context2, 12, readLinkedModifier(scnr)); + } + if (isLinkedReferStart(scnr, context2)) { + skipSpaces(scnr); + if (ch === "{") { + return readTokenInPlaceholder(scnr, context2) || token; + } else { + return getToken(context2, 11, readLinkedRefer(scnr)); + } + } + if (currentType === 8) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + context2.braceNest = 0; + context2.inLinked = false; + return readToken(scnr, context2); + } + } + function readToken(scnr, context2) { + let token = { + type: 14 + /* TokenTypes.EOF */ + }; + if (context2.braceNest > 0) { + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + } + if (context2.inLinked) { + return readTokenInLinked(scnr, context2) || getEndToken(context2); + } + const ch = scnr.currentChar(); + switch (ch) { + case "{": + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + case "}": + emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); + scnr.next(); + return getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + case "@": + return readTokenInLinked(scnr, context2) || getEndToken(context2); + default: + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + const { isModulo, hasSpace } = detectModuloStart(scnr); + if (isModulo) { + return hasSpace ? getToken(context2, 0, readText(scnr)) : getToken(context2, 4, readModulo(scnr)); + } + if (isTextStart(scnr)) { + return getToken(context2, 0, readText(scnr)); + } + break; + } + return token; + } + function nextToken() { + const { currentType, offset, startLoc, endLoc } = _context; + _context.lastType = currentType; + _context.lastOffset = offset; + _context.lastStartLoc = startLoc; + _context.lastEndLoc = endLoc; + _context.offset = currentOffset(); + _context.startLoc = currentPosition(); + if (_scnr.currentChar() === EOF) { + return getToken( + _context, + 14 + /* TokenTypes.EOF */ + ); + } + return readToken(_scnr, _context); + } + return { + nextToken, + currentOffset, + currentPosition, + context + }; + } + const ERROR_DOMAIN$2 = "parser"; + const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; + function fromEscapeSequence(match, codePoint4, codePoint6) { + switch (match) { + case `\\\\`: + return `\\`; + case `\\'`: + return `'`; + default: { + const codePoint = parseInt(codePoint4 || codePoint6, 16); + if (codePoint <= 55295 || codePoint >= 57344) { + return String.fromCodePoint(codePoint); + } + return "�"; + } + } + } + function createParser(options = {}) { + const location = options.location !== false; + const { onError } = options; + function emitError(tokenzer, code2, start, offset, ...args) { + const end = tokenzer.currentPosition(); + end.offset += offset; + end.column += offset; + if (onError) { + const loc = location ? createLocation(start, end) : null; + const err = createCompileError(code2, loc, { + domain: ERROR_DOMAIN$2, + args + }); + onError(err); + } + } + function startNode(type, offset, loc) { + const node = { type }; + if (location) { + node.start = offset; + node.end = offset; + node.loc = { start: loc, end: loc }; + } + return node; + } + function endNode(node, offset, pos, type) { + if (type) { + node.type = type; + } + if (location) { + node.end = offset; + if (node.loc) { + node.loc.end = pos; + } + } + } + function parseText(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(3, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseList(tokenizer, index) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(5, offset, loc); + node.index = parseInt(index, 10); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseNamed(tokenizer, key) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(4, offset, loc); + node.key = key; + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLiteral(tokenizer, value) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(9, offset, loc); + node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinkedModifier(tokenizer) { + const token = tokenizer.nextToken(); + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(8, offset, loc); + if (token.type !== 12) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); + node.value = ""; + endNode(node, offset, loc); + return { + nextConsumeToken: token, + node + }; + } + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.value = token.value || ""; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node + }; + } + function parseLinkedKey(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(7, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinked(tokenizer) { + const context = tokenizer.context(); + const linkedNode = startNode(6, context.offset, context.startLoc); + let token = tokenizer.nextToken(); + if (token.type === 9) { + const parsed = parseLinkedModifier(tokenizer); + linkedNode.modifier = parsed.node; + token = parsed.nextConsumeToken || tokenizer.nextToken(); + } + if (token.type !== 10) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + token = tokenizer.nextToken(); + if (token.type === 2) { + token = tokenizer.nextToken(); + } + switch (token.type) { + case 11: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLinkedKey(tokenizer, token.value || ""); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseNamed(tokenizer, token.value || ""); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseList(tokenizer, token.value || ""); + break; + case 7: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLiteral(tokenizer, token.value || ""); + break; + default: + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); + const nextContext = tokenizer.context(); + const emptyLinkedKeyNode = startNode(7, nextContext.offset, nextContext.startLoc); + emptyLinkedKeyNode.value = ""; + endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); + linkedNode.key = emptyLinkedKeyNode; + endNode(linkedNode, nextContext.offset, nextContext.startLoc); + return { + nextConsumeToken: token, + node: linkedNode + }; + } + endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node: linkedNode + }; + } + function parseMessage(tokenizer) { + const context = tokenizer.context(); + const startOffset = context.currentType === 1 ? tokenizer.currentOffset() : context.offset; + const startLoc = context.currentType === 1 ? context.endLoc : context.startLoc; + const node = startNode(2, startOffset, startLoc); + node.items = []; + let nextToken = null; + do { + const token = nextToken || tokenizer.nextToken(); + nextToken = null; + switch (token.type) { + case 0: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseText(tokenizer, token.value || "")); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseList(tokenizer, token.value || "")); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseNamed(tokenizer, token.value || "")); + break; + case 7: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseLiteral(tokenizer, token.value || "")); + break; + case 8: + const parsed = parseLinked(tokenizer); + node.items.push(parsed.node); + nextToken = parsed.nextConsumeToken || null; + break; + } + } while (context.currentType !== 14 && context.currentType !== 1); + const endOffset = context.currentType === 1 ? context.lastOffset : tokenizer.currentOffset(); + const endLoc = context.currentType === 1 ? context.lastEndLoc : tokenizer.currentPosition(); + endNode(node, endOffset, endLoc); + return node; + } + function parsePlural(tokenizer, offset, loc, msgNode) { + const context = tokenizer.context(); + let hasEmptyMessage = msgNode.items.length === 0; + const node = startNode(1, offset, loc); + node.cases = []; + node.cases.push(msgNode); + do { + const msg = parseMessage(tokenizer); + if (!hasEmptyMessage) { + hasEmptyMessage = msg.items.length === 0; + } + node.cases.push(msg); + } while (context.currentType !== 14); + if (hasEmptyMessage) { + emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseResource(tokenizer) { + const context = tokenizer.context(); + const { offset, startLoc } = context; + const msgNode = parseMessage(tokenizer); + if (context.currentType === 14) { + return msgNode; + } else { + return parsePlural(tokenizer, offset, startLoc, msgNode); + } + } + function parse2(source) { + const tokenizer = createTokenizer(source, assign({}, options)); + const context = tokenizer.context(); + const node = startNode(0, context.offset, context.startLoc); + if (location && node.loc) { + node.loc.source = source; + } + node.body = parseResource(tokenizer); + if (options.onCacheKey) { + node.cacheKey = options.onCacheKey(source); + } + if (context.currentType !== 14) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ""); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + return { parse: parse2 }; + } + function getTokenCaption(token) { + if (token.type === 14) { + return "EOF"; + } + const name = (token.value || "").replace(/\r?\n/gu, "\\n"); + return name.length > 10 ? name.slice(0, 9) + "…" : name; + } + function createTransformer(ast, options = {}) { + const _context = { + ast, + helpers: /* @__PURE__ */ new Set() + }; + const context = () => _context; + const helper = (name) => { + _context.helpers.add(name); + return name; + }; + return { context, helper }; + } + function traverseNodes(nodes, transformer) { + for (let i = 0; i < nodes.length; i++) { + traverseNode(nodes[i], transformer); + } + } + function traverseNode(node, transformer) { + switch (node.type) { + case 1: + traverseNodes(node.cases, transformer); + transformer.helper( + "plural" + /* HelperNameMap.PLURAL */ + ); + break; + case 2: + traverseNodes(node.items, transformer); + break; + case 6: + const linked = node; + traverseNode(linked.key, transformer); + transformer.helper( + "linked" + /* HelperNameMap.LINKED */ + ); + transformer.helper( + "type" + /* HelperNameMap.TYPE */ + ); + break; + case 5: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "list" + /* HelperNameMap.LIST */ + ); + break; + case 4: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "named" + /* HelperNameMap.NAMED */ + ); + break; + } + } + function transform(ast, options = {}) { + const transformer = createTransformer(ast); + transformer.helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + ); + ast.body && traverseNode(ast.body, transformer); + const context = transformer.context(); + ast.helpers = Array.from(context.helpers); + } + function optimize(ast) { + const body = ast.body; + if (body.type === 2) { + optimizeMessageNode(body); + } else { + body.cases.forEach((c) => optimizeMessageNode(c)); + } + return ast; + } + function optimizeMessageNode(message) { + if (message.items.length === 1) { + const item = message.items[0]; + if (item.type === 3 || item.type === 9) { + message.static = item.value; + delete item.value; + } + } else { + const values = []; + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (!(item.type === 3 || item.type === 9)) { + break; + } + if (item.value == null) { + break; + } + values.push(item.value); + } + if (values.length === message.items.length) { + message.static = join(values); + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (item.type === 3 || item.type === 9) { + delete item.value; + } + } + } + } + } + const ERROR_DOMAIN$1 = "minifier"; + function minify(node) { + node.t = node.type; + switch (node.type) { + case 0: + const resource = node; + minify(resource.body); + resource.b = resource.body; + delete resource.body; + break; + case 1: + const plural = node; + const cases = plural.cases; + for (let i = 0; i < cases.length; i++) { + minify(cases[i]); + } + plural.c = cases; + delete plural.cases; + break; + case 2: + const message = node; + const items = message.items; + for (let i = 0; i < items.length; i++) { + minify(items[i]); + } + message.i = items; + delete message.items; + if (message.static) { + message.s = message.static; + delete message.static; + } + break; + case 3: + case 9: + case 8: + case 7: + const valueNode = node; + if (valueNode.value) { + valueNode.v = valueNode.value; + delete valueNode.value; + } + break; + case 6: + const linked = node; + minify(linked.key); + linked.k = linked.key; + delete linked.key; + if (linked.modifier) { + minify(linked.modifier); + linked.m = linked.modifier; + delete linked.modifier; + } + break; + case 5: + const list = node; + list.i = list.index; + delete list.index; + break; + case 4: + const named = node; + named.k = named.key; + delete named.key; + break; + default: { + throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, { + domain: ERROR_DOMAIN$1, + args: [node.type] + }); + } + } + delete node.type; + } + const ERROR_DOMAIN = "parser"; + function createCodeGenerator(ast, options) { + const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options; + const location = options.location !== false; + const _context = { + filename, + code: "", + column: 1, + line: 1, + offset: 0, + map: void 0, + breakLineCode, + needIndent: _needIndent, + indentLevel: 0 + }; + if (location && ast.loc) { + _context.source = ast.loc.source; + } + const context = () => _context; + function push(code2, node) { + _context.code += code2; + } + function _newline(n, withBreakLine = true) { + const _breakLineCode = withBreakLine ? breakLineCode : ""; + push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode); + } + function indent(withNewLine = true) { + const level = ++_context.indentLevel; + withNewLine && _newline(level); + } + function deindent(withNewLine = true) { + const level = --_context.indentLevel; + withNewLine && _newline(level); + } + function newline() { + _newline(_context.indentLevel); + } + const helper = (key) => `_${key}`; + const needIndent = () => _context.needIndent; + return { + context, + push, + indent, + deindent, + newline, + helper, + needIndent + }; + } + function generateLinkedNode(generator, node) { + const { helper } = generator; + generator.push(`${helper( + "linked" + /* HelperNameMap.LINKED */ + )}(`); + generateNode(generator, node.key); + if (node.modifier) { + generator.push(`, `); + generateNode(generator, node.modifier); + generator.push(`, _type`); + } else { + generator.push(`, undefined, _type`); + } + generator.push(`)`); + } + function generateMessageNode(generator, node) { + const { helper, needIndent } = generator; + generator.push(`${helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + )}([`); + generator.indent(needIndent()); + const length = node.items.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.items[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push("])"); + } + function generatePluralNode(generator, node) { + const { helper, needIndent } = generator; + if (node.cases.length > 1) { + generator.push(`${helper( + "plural" + /* HelperNameMap.PLURAL */ + )}([`); + generator.indent(needIndent()); + const length = node.cases.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.cases[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push(`])`); + } + } + function generateResource(generator, node) { + if (node.body) { + generateNode(generator, node.body); + } else { + generator.push("null"); + } + } + function generateNode(generator, node) { + const { helper } = generator; + switch (node.type) { + case 0: + generateResource(generator, node); + break; + case 1: + generatePluralNode(generator, node); + break; + case 2: + generateMessageNode(generator, node); + break; + case 6: + generateLinkedNode(generator, node); + break; + case 8: + generator.push(JSON.stringify(node.value), node); + break; + case 7: + generator.push(JSON.stringify(node.value), node); + break; + case 5: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "list" + /* HelperNameMap.LIST */ + )}(${node.index}))`, node); + break; + case 4: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "named" + /* HelperNameMap.NAMED */ + )}(${JSON.stringify(node.key)}))`, node); + break; + case 9: + generator.push(JSON.stringify(node.value), node); + break; + case 3: + generator.push(JSON.stringify(node.value), node); + break; + default: { + throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, { + domain: ERROR_DOMAIN, + args: [node.type] + }); + } + } + } + const generate = (ast, options = {}) => { + const mode = isString(options.mode) ? options.mode : "normal"; + const filename = isString(options.filename) ? options.filename : "message.intl"; + const sourceMap = !!options.sourceMap; + const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode === "arrow" ? ";" : "\n"; + const needIndent = options.needIndent ? options.needIndent : mode !== "arrow"; + const helpers = ast.helpers || []; + const generator = createCodeGenerator(ast, { + mode, + filename, + sourceMap, + breakLineCode, + needIndent + }); + generator.push(mode === "normal" ? `function __msg__ (ctx) {` : `(ctx) => {`); + generator.indent(needIndent); + if (helpers.length > 0) { + generator.push(`const { ${join(helpers.map((s) => `${s}: _${s}`), ", ")} } = ctx`); + generator.newline(); + } + generator.push(`return `); + generateNode(generator, ast); + generator.deindent(needIndent); + generator.push(`}`); + delete ast.helpers; + const { code: code2, map } = generator.context(); + return { + ast, + code: code2, + map: map ? map.toJSON() : void 0 + // eslint-disable-line @typescript-eslint/no-explicit-any + }; + }; + function baseCompile$1(source, options = {}) { + const assignedOptions = assign({}, options); + const jit = !!assignedOptions.jit; + const enalbeMinify = !!assignedOptions.minify; + const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; + const parser = createParser(assignedOptions); + const ast = parser.parse(source); + if (!jit) { + transform(ast, assignedOptions); + return generate(ast, assignedOptions); + } else { + enambeOptimize && optimize(ast); + enalbeMinify && minify(ast); + return { ast, code: "" }; + } + } + /*! + * core-base v9.6.2 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ + function initFeatureFlags$1() { + if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") { + getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; + } + if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") { + getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false; + } + if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") { + getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; + } + } + const pathStateMachine = []; + pathStateMachine[ + 0 + /* States.BEFORE_PATH */ + ] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 0 + /* States.BEFORE_PATH */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] + }; + pathStateMachine[ + 1 + /* States.IN_PATH */ + ] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1 + /* States.IN_PATH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] + }; + pathStateMachine[ + 2 + /* States.BEFORE_IDENT */ + ] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ] + }; + pathStateMachine[ + 3 + /* States.IN_IDENT */ + ] = { + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1, + 1 + /* Actions.PUSH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2, + 1 + /* Actions.PUSH */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 1 + /* Actions.PUSH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7, + 1 + /* Actions.PUSH */ + ] + }; + pathStateMachine[ + 4 + /* States.IN_SUB_PATH */ + ] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ], + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ], + [ + "]" + /* PathCharTypes.RIGHT_BRACKET */ + ]: [ + 1, + 3 + /* Actions.PUSH_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ] + }; + pathStateMachine[ + 5 + /* States.IN_SINGLE_QUOTE */ + ] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ] + }; + pathStateMachine[ + 6 + /* States.IN_DOUBLE_QUOTE */ + ] = { + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ] + }; + const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; + function isLiteral(exp) { + return literalValueRE.test(exp); + } + function stripQuotes(str) { + const a = str.charCodeAt(0); + const b = str.charCodeAt(str.length - 1); + return a === b && (a === 34 || a === 39) ? str.slice(1, -1) : str; + } + function getPathCharType(ch) { + if (ch === void 0 || ch === null) { + return "o"; + } + const code2 = ch.charCodeAt(0); + switch (code2) { + case 91: + case 93: + case 46: + case 34: + case 39: + return ch; + case 95: + case 36: + case 45: + return "i"; + case 9: + case 10: + case 13: + case 160: + case 65279: + case 8232: + case 8233: + return "w"; + } + return "i"; + } + function formatSubPath(path) { + const trimmed = path.trim(); + if (path.charAt(0) === "0" && isNaN(parseInt(path))) { + return false; + } + return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed; + } + function parse(path) { + const keys = []; + let index = -1; + let mode = 0; + let subPathDepth = 0; + let c; + let key; + let newChar; + let type; + let transition; + let action; + let typeMap; + const actions = []; + actions[ + 0 + /* Actions.APPEND */ + ] = () => { + if (key === void 0) { + key = newChar; + } else { + key += newChar; + } + }; + actions[ + 1 + /* Actions.PUSH */ + ] = () => { + if (key !== void 0) { + keys.push(key); + key = void 0; + } + }; + actions[ + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ] = () => { + actions[ + 0 + /* Actions.APPEND */ + ](); + subPathDepth++; + }; + actions[ + 3 + /* Actions.PUSH_SUB_PATH */ + ] = () => { + if (subPathDepth > 0) { + subPathDepth--; + mode = 4; + actions[ + 0 + /* Actions.APPEND */ + ](); + } else { + subPathDepth = 0; + if (key === void 0) { + return false; + } + key = formatSubPath(key); + if (key === false) { + return false; + } else { + actions[ + 1 + /* Actions.PUSH */ + ](); + } + } + }; + function maybeUnescapeQuote() { + const nextChar = path[index + 1]; + if (mode === 5 && nextChar === "'" || mode === 6 && nextChar === '"') { + index++; + newChar = "\\" + nextChar; + actions[ + 0 + /* Actions.APPEND */ + ](); + return true; + } + } + while (mode !== null) { + index++; + c = path[index]; + if (c === "\\" && maybeUnescapeQuote()) { + continue; + } + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap[ + "l" + /* PathCharTypes.ELSE */ + ] || 8; + if (transition === 8) { + return; + } + mode = transition[0]; + if (transition[1] !== void 0) { + action = actions[transition[1]]; + if (action) { + newChar = c; + if (action() === false) { + return; + } + } + } + if (mode === 7) { + return keys; + } + } + } + const cache = /* @__PURE__ */ new Map(); + function resolveWithKeyValue(obj, path) { + return isObject$1(obj) ? obj[path] : null; + } + function resolveValue(obj, path) { + if (!isObject$1(obj)) { + return null; + } + let hit = cache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + cache.set(path, hit); + } + } + if (!hit) { + return null; + } + const len = hit.length; + let last = obj; + let i = 0; + while (i < len) { + const val = last[hit[i]]; + if (val === void 0) { + return null; + } + if (isFunction(last)) { + return null; + } + last = val; + i++; + } + return last; + } + const DEFAULT_MODIFIER = (str) => str; + const DEFAULT_MESSAGE = (ctx) => ""; + const DEFAULT_MESSAGE_DATA_TYPE = "text"; + const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join$1(values); + const DEFAULT_INTERPOLATE = toDisplayString; + function pluralDefault(choice, choicesLength) { + choice = Math.abs(choice); + if (choicesLength === 2) { + return choice ? choice > 1 ? 1 : 0 : 1; + } + return choice ? Math.min(choice, 2) : 0; + } + function getPluralIndex(options) { + const index = isNumber(options.pluralIndex) ? options.pluralIndex : -1; + return options.named && (isNumber(options.named.count) || isNumber(options.named.n)) ? isNumber(options.named.count) ? options.named.count : isNumber(options.named.n) ? options.named.n : index : index; + } + function normalizeNamed(pluralIndex, props) { + if (!props.count) { + props.count = pluralIndex; + } + if (!props.n) { + props.n = pluralIndex; + } + } + function createMessageContext(options = {}) { + const locale = options.locale; + const pluralIndex = getPluralIndex(options); + const pluralRule = isObject$1(options.pluralRules) && isString$1(locale) && isFunction(options.pluralRules[locale]) ? options.pluralRules[locale] : pluralDefault; + const orgPluralRule = isObject$1(options.pluralRules) && isString$1(locale) && isFunction(options.pluralRules[locale]) ? pluralDefault : void 0; + const plural = (messages) => { + return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; + }; + const _list = options.list || []; + const list = (index) => _list[index]; + const _named = options.named || {}; + isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named); + const named = (key) => _named[key]; + function message(key) { + const msg = isFunction(options.messages) ? options.messages(key) : isObject$1(options.messages) ? options.messages[key] : false; + return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg; + } + const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER; + const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE; + const interpolate = isPlainObject(options.processor) && isFunction(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE; + const type = isPlainObject(options.processor) && isString$1(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE; + const linked = (key, ...args) => { + const [arg1, arg2] = args; + let type2 = "text"; + let modifier = ""; + if (args.length === 1) { + if (isObject$1(arg1)) { + modifier = arg1.modifier || modifier; + type2 = arg1.type || type2; + } else if (isString$1(arg1)) { + modifier = arg1 || modifier; + } + } else if (args.length === 2) { + if (isString$1(arg1)) { + modifier = arg1 || modifier; + } + if (isString$1(arg2)) { + type2 = arg2 || type2; + } + } + const ret = message(key)(ctx); + const msg = ( + // The message in vnode resolved with linked are returned as an array by processor.nomalize + type2 === "vnode" && isArray(ret) && modifier ? ret[0] : ret + ); + return modifier ? _modifier(modifier)(msg, type2) : msg; + }; + const ctx = { + [ + "list" + /* HelperNameMap.LIST */ + ]: list, + [ + "named" + /* HelperNameMap.NAMED */ + ]: named, + [ + "plural" + /* HelperNameMap.PLURAL */ + ]: plural, + [ + "linked" + /* HelperNameMap.LINKED */ + ]: linked, + [ + "message" + /* HelperNameMap.MESSAGE */ + ]: message, + [ + "type" + /* HelperNameMap.TYPE */ + ]: type, + [ + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ]: interpolate, + [ + "normalize" + /* HelperNameMap.NORMALIZE */ + ]: normalize, + [ + "values" + /* HelperNameMap.VALUES */ + ]: assign$1({}, _list, _named) + }; + return ctx; + } + let devtools = null; + function setDevToolsHook(hook) { + devtools = hook; + } + function initI18nDevTools(i18n, version, meta) { + devtools && devtools.emit("i18n:init", { + timestamp: Date.now(), + i18n, + version, + meta + }); + } + const translateDevTools = /* @__PURE__ */ createDevToolsHook( + "function:translate" + /* IntlifyDevToolsHooks.FunctionTranslate */ + ); + function createDevToolsHook(hook) { + return (payloads) => devtools && devtools.emit(hook, payloads); + } + const CoreWarnCodes = { + NOT_FOUND_KEY: 1, + FALLBACK_TO_TRANSLATE: 2, + CANNOT_FORMAT_NUMBER: 3, + FALLBACK_TO_NUMBER_FORMAT: 4, + CANNOT_FORMAT_DATE: 5, + FALLBACK_TO_DATE_FORMAT: 6, + EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7, + __EXTEND_POINT__: 8 + }; + const warnMessages$1 = { + [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`, + [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`, + [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`, + [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.` + }; + function getWarnMessage$1(code2, ...args) { + return format$2(warnMessages$1[code2], ...args); + } + function getLocale(context, options) { + return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale); + } + let _resolveLocale; + function resolveLocale(locale) { + return isString$1(locale) ? locale : _resolveLocale != null && locale.resolvedOnce ? _resolveLocale : _resolveLocale = locale(); + } + function fallbackWithSimple(ctx, fallback, start) { + return [.../* @__PURE__ */ new Set([ + start, + ...isArray(fallback) ? fallback : isObject$1(fallback) ? Object.keys(fallback) : isString$1(fallback) ? [fallback] : [start] + ])]; + } + function fallbackWithLocaleChain(ctx, fallback, start) { + const startLocale = isString$1(start) ? start : DEFAULT_LOCALE; + const context = ctx; + if (!context.__localeChainCache) { + context.__localeChainCache = /* @__PURE__ */ new Map(); + } + let chain = context.__localeChainCache.get(startLocale); + if (!chain) { + chain = []; + let block = [start]; + while (isArray(block)) { + block = appendBlockToChain(chain, block, fallback); + } + const defaults = isArray(fallback) || !isPlainObject(fallback) ? fallback : fallback["default"] ? fallback["default"] : null; + block = isString$1(defaults) ? [defaults] : defaults; + if (isArray(block)) { + appendBlockToChain(chain, block, false); + } + context.__localeChainCache.set(startLocale, chain); + } + return chain; + } + function appendBlockToChain(chain, block, blocks) { + let follow = true; + for (let i = 0; i < block.length && isBoolean(follow); i++) { + const locale = block[i]; + if (isString$1(locale)) { + follow = appendLocaleToChain(chain, block[i], blocks); + } + } + return follow; + } + function appendLocaleToChain(chain, locale, blocks) { + let follow; + const tokens = locale.split("-"); + do { + const target = tokens.join("-"); + follow = appendItemToChain(chain, target, blocks); + tokens.splice(-1, 1); + } while (tokens.length && follow === true); + return follow; + } + function appendItemToChain(chain, target, blocks) { + let follow = false; + if (!chain.includes(target)) { + follow = true; + if (target) { + follow = target[target.length - 1] !== "!"; + const locale = target.replace(/!/g, ""); + chain.push(locale); + if ((isArray(blocks) || isPlainObject(blocks)) && blocks[locale]) { + follow = blocks[locale]; + } + } + } + return follow; + } + const VERSION$1 = "9.6.2"; + const NOT_REOSLVED = -1; + const DEFAULT_LOCALE = "en-US"; + const MISSING_RESOLVE_VALUE = ""; + const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; + function getDefaultLinkedModifiers() { + return { + upper: (val, type) => { + return type === "text" && isString$1(val) ? val.toUpperCase() : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val; + }, + lower: (val, type) => { + return type === "text" && isString$1(val) ? val.toLowerCase() : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val; + }, + capitalize: (val, type) => { + return type === "text" && isString$1(val) ? capitalize(val) : type === "vnode" && isObject$1(val) && "__v_isVNode" in val ? capitalize(val.children) : val; + } + }; + } + let _compiler; + function registerMessageCompiler(compiler) { + _compiler = compiler; + } + let _resolver; + function registerMessageResolver(resolver) { + _resolver = resolver; + } + let _fallbacker; + function registerLocaleFallbacker(fallbacker) { + _fallbacker = fallbacker; + } + let _additionalMeta = null; + const setAdditionalMeta = (meta) => { + _additionalMeta = meta; + }; + const getAdditionalMeta = () => _additionalMeta; + let _fallbackContext = null; + const setFallbackContext = (context) => { + _fallbackContext = context; + }; + const getFallbackContext = () => _fallbackContext; + let _cid = 0; + function createCoreContext(options = {}) { + const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; + const version = isString$1(options.version) ? options.version : VERSION$1; + const locale = isString$1(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE; + const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale; + const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || isString$1(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale; + const messages = isPlainObject(options.messages) ? options.messages : { [_locale]: {} }; + const datetimeFormats = isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale]: {} }; + const numberFormats = isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale]: {} }; + const modifiers = assign$1({}, options.modifiers || {}, getDefaultLinkedModifiers()); + const pluralRules = options.pluralRules || {}; + const missing = isFunction(options.missing) ? options.missing : null; + const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + const fallbackFormat = !!options.fallbackFormat; + const unresolving = !!options.unresolving; + const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + const processor = isPlainObject(options.processor) ? options.processor : null; + const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + const escapeParameter = !!options.escapeParameter; + const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler; + if ({}.NODE_ENV !== "production" && true && true && isFunction(options.messageCompiler)) { + warnOnce(getWarnMessage$1(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER)); + } + const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue; + const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple; + const fallbackContext = isObject$1(options.fallbackContext) ? options.fallbackContext : void 0; + const internalOptions = options; + const __datetimeFormatters = isObject$1(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map(); + const __numberFormatters = isObject$1(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map(); + const __meta = isObject$1(internalOptions.__meta) ? internalOptions.__meta : {}; + _cid++; + const context = { + version, + cid: _cid, + locale, + fallbackLocale, + messages, + modifiers, + pluralRules, + missing, + missingWarn, + fallbackWarn, + fallbackFormat, + unresolving, + postTranslation, + processor, + warnHtmlMessage, + escapeParameter, + messageCompiler, + messageResolver, + localeFallbacker, + fallbackContext, + onWarn, + __meta + }; + { + context.datetimeFormats = datetimeFormats; + context.numberFormats = numberFormats; + context.__datetimeFormatters = __datetimeFormatters; + context.__numberFormatters = __numberFormatters; + } + if ({}.NODE_ENV !== "production") { + context.__v_emitter = internalOptions.__v_emitter != null ? internalOptions.__v_emitter : void 0; + } + if ({}.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) { + initI18nDevTools(context, version, __meta); + } + return context; + } + function isTranslateFallbackWarn(fallback, key) { + return fallback instanceof RegExp ? fallback.test(key) : fallback; + } + function isTranslateMissingWarn(missing, key) { + return missing instanceof RegExp ? missing.test(key) : missing; + } + function handleMissing(context, key, locale, missingWarn, type) { + const { missing, onWarn } = context; + if ({}.NODE_ENV !== "production") { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("missing", { + locale, + key, + type, + groupId: `${type}:${key}` + }); + } + } + if (missing !== null) { + const ret = missing(context, locale, key, type); + return isString$1(ret) ? ret : key; + } else { + if ({}.NODE_ENV !== "production" && isTranslateMissingWarn(missingWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale })); + } + return key; + } + } + function updateFallbackLocale(ctx, locale, fallback) { + const context = ctx; + context.__localeChainCache = /* @__PURE__ */ new Map(); + ctx.localeFallbacker(ctx, fallback, locale); + } + function format(ast) { + const msg = (ctx) => formatParts(ctx, ast); + return msg; + } + function formatParts(ctx, ast) { + const body = ast.b || ast.body; + if ((body.t || body.type) === 1) { + const plural = body; + const cases = plural.c || plural.cases; + return ctx.plural(cases.reduce((messages, c) => [ + ...messages, + formatMessageParts(ctx, c) + ], [])); + } else { + return formatMessageParts(ctx, body); + } + } + function formatMessageParts(ctx, node) { + const _static = node.s || node.static; + if (_static) { + return ctx.type === "text" ? _static : ctx.normalize([_static]); + } else { + const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []); + return ctx.normalize(messages); + } + } + function formatMessagePart(ctx, node) { + const type = node.t || node.type; + switch (type) { + case 3: + const text = node; + return text.v || text.value; + case 9: + const literal = node; + return literal.v || literal.value; + case 4: + const named = node; + return ctx.interpolate(ctx.named(named.k || named.key)); + case 5: + const list = node; + return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index)); + case 6: + const linked = node; + const modifier = linked.m || linked.modifier; + return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type); + case 7: + const linkedKey = node; + return linkedKey.v || linkedKey.value; + case 8: + const linkedModifier = node; + return linkedModifier.v || linkedModifier.value; + default: + throw new Error(`unhandled node type on format message part: ${type}`); + } + } + const code$2 = CompileErrorCodes.__EXTEND_POINT__; + const inc$2 = incrementer(code$2); + const CoreErrorCodes = { + INVALID_ARGUMENT: code$2, + INVALID_DATE_ARGUMENT: inc$2(), + INVALID_ISO_DATE_ARGUMENT: inc$2(), + NOT_SUPPORT_NON_STRING_MESSAGE: inc$2(), + __EXTEND_POINT__: inc$2() + // 22 + }; + function createCoreError(code2) { + return createCompileError(code2, null, {}.NODE_ENV !== "production" ? { messages: errorMessages$1 } : void 0); + } + const errorMessages$1 = { + [CoreErrorCodes.INVALID_ARGUMENT]: "Invalid arguments", + [CoreErrorCodes.INVALID_DATE_ARGUMENT]: "The date provided is an invalid Date object.Make sure your Date represents a valid date.", + [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: "The argument provided is not a valid ISO date string", + [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: "Not support non-string message" + }; + const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`; + function checkHtmlMessage(source, warnHtmlMessage) { + if (warnHtmlMessage && detectHtmlTag(source)) { + warn(format$2(WARN_MESSAGE, { source })); + } + } + const defaultOnCacheKey = (message) => message; + let compileCache = /* @__PURE__ */ Object.create(null); + const isMessageAST = (val) => isObject$1(val) && (val.t === 0 || val.type === 0) && ("b" in val || "body" in val); + function baseCompile(message, options = {}) { + let detectError = false; + const onError = options.onError || defaultOnError; + options.onError = (err) => { + detectError = true; + onError(err); + }; + return { ...baseCompile$1(message, options), detectError }; + } + const compileToFunction = (message, context) => { + if (!isString$1(message)) { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE); + } + { + const warnHtmlMessage = isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; + ({}).NODE_ENV !== "production" && checkHtmlMessage(message, warnHtmlMessage); + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + const { code: code2, detectError } = baseCompile(message, context); + const msg = new Function(`return ${code2}`)(); + return !detectError ? compileCache[cacheKey] = msg : msg; + } + }; + function compile(message, context) { + if (__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__ && isString$1(message)) { + const warnHtmlMessage = isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; + ({}).NODE_ENV !== "production" && checkHtmlMessage(message, warnHtmlMessage); + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + const { ast, detectError } = baseCompile(message, { + ...context, + location: {}.NODE_ENV !== "production", + jit: true + }); + const msg = format(ast); + return !detectError ? compileCache[cacheKey] = msg : msg; + } else { + if ({}.NODE_ENV !== "production" && !isMessageAST(message)) { + warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`); + return () => message; + } + const cacheKey = message.cacheKey; + if (cacheKey) { + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + return compileCache[cacheKey] = format(message); + } else { + return format(message); + } + } + } + const NOOP_MESSAGE_FUNCTION = () => ""; + const isMessageFunction = (val) => isFunction(val); + function translate(context, ...args) { + const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; + const [key, options] = parseTranslateArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter; + const resolvedMessage = !!options.resolvedMessage; + const defaultMsgOrKey = isString$1(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : ""; + const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== ""; + const locale = getLocale(context, options); + escapeParameter && escapeParams(options); + let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [ + key, + locale, + messages[locale] || {} + ]; + let format2 = formatScope; + let cacheBaseKey = key; + if (!resolvedMessage && !(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2))) { + if (enableDefaultMsg) { + format2 = defaultMsgOrKey; + cacheBaseKey = format2; + } + } + if (!resolvedMessage && (!(isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString$1(targetLocale))) { + return unresolving ? NOT_REOSLVED : key; + } + if ({}.NODE_ENV !== "production" && isString$1(format2) && context.messageCompiler == null) { + warn(`The message format compilation is not supported in this build. Because message compiler isn't included. You need to pre-compilation all message format. So translate function return '${key}'.`); + return key; + } + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2; + if (occurred) { + return format2; + } + const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); + const msgContext = createMessageContext(ctxOptions); + const messaged = evaluateMessage(context, msg, msgContext); + const ret = postTranslation ? postTranslation(messaged, key) : messaged; + if ({}.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) { + const payloads = { + timestamp: Date.now(), + key: isString$1(key) ? key : isMessageFunction(format2) ? format2.key : "", + locale: targetLocale || (isMessageFunction(format2) ? format2.locale : ""), + format: isString$1(format2) ? format2 : isMessageFunction(format2) ? format2.source : "", + message: ret + }; + payloads.meta = assign$1({}, context.__meta, getAdditionalMeta() || {}); + translateDevTools(payloads); + } + return ret; + } + function escapeParams(options) { + if (isArray(options.list)) { + options.list = options.list.map((item) => isString$1(item) ? escapeHtml(item) : item); + } else if (isObject$1(options.named)) { + Object.keys(options.named).forEach((key) => { + if (isString$1(options.named[key])) { + options.named[key] = escapeHtml(options.named[key]); + } + }); + } + } + function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) { + const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context; + const locales = localeFallbacker(context, fallbackLocale, locale); + let message = {}; + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "translate"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ({}.NODE_ENV !== "production" && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, { + key, + target: targetLocale + })); + } + if ({}.NODE_ENV !== "production" && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + message = messages[targetLocale] || {}; + let start = null; + let startTag; + let endTag; + if ({}.NODE_ENV !== "production" && inBrowser) { + start = window.performance.now(); + startTag = "intlify-message-resolve-start"; + endTag = "intlify-message-resolve-end"; + mark && mark(startTag); + } + if ((format2 = resolveValue2(message, key)) === null) { + format2 = message[key]; + } + if ({}.NODE_ENV !== "production" && inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start && format2) { + emitter.emit("message-resolve", { + type: "message-resolve", + key, + message: format2, + time: end - start, + groupId: `${type}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure("intlify message resolve", startTag, endTag); + } + } + if (isString$1(format2) || isMessageAST(format2) || isMessageFunction(format2)) { + break; + } + const missingRet = handleMissing( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + key, + targetLocale, + missingWarn, + type + ); + if (missingRet !== key) { + format2 = missingRet; + } + from = to; + } + return [format2, targetLocale, message]; + } + function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) { + const { messageCompiler, warnHtmlMessage } = context; + if (isMessageFunction(format2)) { + const msg2 = format2; + msg2.locale = msg2.locale || targetLocale; + msg2.key = msg2.key || key; + return msg2; + } + if (messageCompiler == null) { + const msg2 = () => format2; + msg2.locale = targetLocale; + msg2.key = key; + return msg2; + } + let start = null; + let startTag; + let endTag; + if ({}.NODE_ENV !== "production" && inBrowser) { + start = window.performance.now(); + startTag = "intlify-message-compilation-start"; + endTag = "intlify-message-compilation-end"; + mark && mark(startTag); + } + const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError)); + if ({}.NODE_ENV !== "production" && inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start) { + emitter.emit("message-compilation", { + type: "message-compilation", + message: format2, + time: end - start, + groupId: `${"translate"}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure("intlify message compilation", startTag, endTag); + } + } + msg.locale = targetLocale; + msg.key = key; + msg.source = format2; + return msg; + } + function evaluateMessage(context, msg, msgCtx) { + let start = null; + let startTag; + let endTag; + if ({}.NODE_ENV !== "production" && inBrowser) { + start = window.performance.now(); + startTag = "intlify-message-evaluation-start"; + endTag = "intlify-message-evaluation-end"; + mark && mark(startTag); + } + const messaged = msg(msgCtx); + if ({}.NODE_ENV !== "production" && inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start) { + emitter.emit("message-evaluation", { + type: "message-evaluation", + value: messaged, + time: end - start, + groupId: `${"translate"}:${msg.key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure("intlify message evaluation", startTag, endTag); + } + } + return messaged; + } + function parseTranslateArgs(...args) { + const [arg1, arg2, arg3] = args; + const options = {}; + if (!isString$1(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1; + if (isNumber(arg2)) { + options.plural = arg2; + } else if (isString$1(arg2)) { + options.default = arg2; + } else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { + options.named = arg2; + } else if (isArray(arg2)) { + options.list = arg2; + } + if (isNumber(arg3)) { + options.plural = arg3; + } else if (isString$1(arg3)) { + options.default = arg3; + } else if (isPlainObject(arg3)) { + assign$1(options, arg3); + } + return [key, options]; + } + function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) { + return { + locale, + key, + warnHtmlMessage, + onError: (err) => { + onError && onError(err); + if ({}.NODE_ENV !== "production") { + const _source = getSourceForCodeFrame(source); + const message = `Message compilation error: ${err.message}`; + const codeFrame = err.location && _source && generateCodeFrame(_source, err.location.start.offset, err.location.end.offset); + const emitter = context.__v_emitter; + if (emitter && _source) { + emitter.emit("compile-error", { + message: _source, + error: err.message, + start: err.location && err.location.start.offset, + end: err.location && err.location.end.offset, + groupId: `${"translate"}:${key}` + }); + } + console.error(codeFrame ? `${message} +${codeFrame}` : message); + } else { + throw err; + } + }, + onCacheKey: (source2) => generateFormatCacheKey(locale, key, source2) + }; + } + function getSourceForCodeFrame(source) { + var _a; + if (isString$1(source)) + ; + else { + if ((_a = source.loc) == null ? void 0 : _a.source) { + return source.loc.source; + } + } + } + function getMessageContextOptions(context, locale, message, options) { + const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; + const resolveMessage = (key) => { + let val = resolveValue2(message, key); + if (val == null && fallbackContext) { + const [, , message2] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn); + val = resolveValue2(message2, key); + } + if (isString$1(val) || isMessageAST(val)) { + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = compileMessageFormat(context, key, locale, val, key, onError); + return !occurred ? msg : NOOP_MESSAGE_FUNCTION; + } else if (isMessageFunction(val)) { + return val; + } else { + return NOOP_MESSAGE_FUNCTION; + } + }; + const ctxOptions = { + locale, + modifiers, + pluralRules, + messages: resolveMessage + }; + if (context.processor) { + ctxOptions.processor = context.processor; + } + if (options.list) { + ctxOptions.list = options.list; + } + if (options.named) { + ctxOptions.named = options.named; + } + if (isNumber(options.plural)) { + ctxOptions.pluralIndex = options.plural; + } + return ctxOptions; + } + const intlDefined = typeof Intl !== "undefined"; + const Availabilities = { + dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== "undefined", + numberFormat: intlDefined && typeof Intl.NumberFormat !== "undefined" + }; + function datetime(context, ...args) { + const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __datetimeFormatters } = context; + if ({}.NODE_ENV !== "production" && !Availabilities.dateTimeFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE)); + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseDateTimeArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString$1(key) || key === "") { + return new Intl.DateTimeFormat(locale, overrides).format(value); + } + let datetimeFormat = {}; + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "datetime format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ({}.NODE_ENV !== "production" && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, { + key, + target: targetLocale + })); + } + if ({}.NODE_ENV !== "production" && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + datetimeFormat = datetimeFormats[targetLocale] || {}; + format2 = datetimeFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + from = to; + } + if (!isPlainObject(format2) || !isString$1(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __datetimeFormatters.get(id); + if (!formatter) { + formatter = new Intl.DateTimeFormat(targetLocale, assign$1({}, format2, overrides)); + __datetimeFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); + } + const DATETIME_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "weekday", + "era", + "year", + "month", + "day", + "hour", + "minute", + "second", + "timeZoneName", + "formatMatcher", + "hour12", + "timeZone", + "dateStyle", + "timeStyle", + "calendar", + "dayPeriod", + "numberingSystem", + "hourCycle", + "fractionalSecondDigits" + ]; + function parseDateTimeArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = {}; + let overrides = {}; + let value; + if (isString$1(arg1)) { + const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); + if (!matches) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + const dateTime = matches[3] ? matches[3].trim().startsWith("T") ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim(); + value = new Date(dateTime); + try { + value.toISOString(); + } catch (e) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + } else if (isDate(arg1)) { + if (isNaN(arg1.getTime())) { + throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); + } + value = arg1; + } else if (isNumber(arg1)) { + value = arg1; + } else { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + if (isString$1(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString$1(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; + } + function clearDateTimeFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__datetimeFormatters.has(id)) { + continue; + } + context.__datetimeFormatters.delete(id); + } + } + function number(context, ...args) { + const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __numberFormatters } = context; + if ({}.NODE_ENV !== "production" && !Availabilities.numberFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER)); + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseNumberArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString$1(key) || key === "") { + return new Intl.NumberFormat(locale, overrides).format(value); + } + let numberFormat = {}; + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "number format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ({}.NODE_ENV !== "production" && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, { + key, + target: targetLocale + })); + } + if ({}.NODE_ENV !== "production" && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + numberFormat = numberFormats[targetLocale] || {}; + format2 = numberFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + from = to; + } + if (!isPlainObject(format2) || !isString$1(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __numberFormatters.get(id); + if (!formatter) { + formatter = new Intl.NumberFormat(targetLocale, assign$1({}, format2, overrides)); + __numberFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); + } + const NUMBER_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "style", + "currency", + "currencyDisplay", + "currencySign", + "useGrouping", + "minimumIntegerDigits", + "minimumFractionDigits", + "maximumFractionDigits", + "minimumSignificantDigits", + "maximumSignificantDigits", + "compactDisplay", + "notation", + "signDisplay", + "unit", + "unitDisplay", + "roundingMode", + "roundingPriority", + "roundingIncrement", + "trailingZeroDisplay" + ]; + function parseNumberArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = {}; + let overrides = {}; + if (!isNumber(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const value = arg1; + if (isString$1(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString$1(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; + } + function clearNumberFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__numberFormatters.has(id)) { + continue; + } + context.__numberFormatters.delete(id); + } + } + { + initFeatureFlags$1(); + } + /*! + * vue-i18n v9.6.2 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ + const VERSION = "9.6.2"; + function initFeatureFlags() { + if (typeof __VUE_I18N_FULL_INSTALL__ !== "boolean") { + getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true; + } + if (typeof __VUE_I18N_LEGACY_API__ !== "boolean") { + getGlobalThis().__VUE_I18N_LEGACY_API__ = true; + } + if (typeof __INTLIFY_JIT_COMPILATION__ !== "boolean") { + getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false; + } + if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== "boolean") { + getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; + } + if (typeof __INTLIFY_PROD_DEVTOOLS__ !== "boolean") { + getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; + } + } + const code$1 = CoreWarnCodes.__EXTEND_POINT__; + const inc$1 = incrementer(code$1); + const I18nWarnCodes = { + FALLBACK_TO_ROOT: code$1, + NOT_SUPPORTED_PRESERVE: inc$1(), + NOT_SUPPORTED_FORMATTER: inc$1(), + NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), + NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), + COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), + NOT_FOUND_PARENT_SCOPE: inc$1(), + IGNORE_OBJ_FLATTEN: inc$1(), + NOTICE_DROP_ALLOW_COMPOSITION: inc$1() + // 17 + }; + const warnMessages = { + [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`, + [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`, + [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`, + [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`, + [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`, + [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`, + [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`, + [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`, + [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze` + }; + function getWarnMessage(code2, ...args) { + return format$2(warnMessages[code2], ...args); + } + const code = CoreErrorCodes.__EXTEND_POINT__; + const inc = incrementer(code); + const I18nErrorCodes = { + // composer module errors + UNEXPECTED_RETURN_TYPE: code, + // legacy module errors + INVALID_ARGUMENT: inc(), + // i18n module errors + MUST_BE_CALL_SETUP_TOP: inc(), + NOT_INSTALLED: inc(), + NOT_AVAILABLE_IN_LEGACY_MODE: inc(), + // directive module errors + REQUIRED_VALUE: inc(), + INVALID_VALUE: inc(), + // vue-devtools errors + CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), + NOT_INSTALLED_WITH_PROVIDE: inc(), + // unexpected error + UNEXPECTED_ERROR: inc(), + // not compatible legacy vue-i18n constructor + NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), + // bridge support vue 2.x only + BRIDGE_SUPPORT_VUE_2_ONLY: inc(), + // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n`` + MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), + // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly + NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(), + // for enhancement + __EXTEND_POINT__: inc() + // 37 + }; + function createI18nError(code2, ...args) { + return createCompileError(code2, null, {}.NODE_ENV !== "production" ? { messages: errorMessages, args } : void 0); + } + const errorMessages = { + [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: "Unexpected return type in composer", + [I18nErrorCodes.INVALID_ARGUMENT]: "Invalid argument", + [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: "Must be called at the top of a `setup` function", + [I18nErrorCodes.NOT_INSTALLED]: "Need to install with `app.use` function", + [I18nErrorCodes.UNEXPECTED_ERROR]: "Unexpected error", + [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: "Not available in legacy mode", + [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`, + [I18nErrorCodes.INVALID_VALUE]: `Invalid value`, + [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`, + [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: "Need to install with `provide` function", + [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: "Not compatible legacy VueI18n.", + [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: "vue-i18n-bridge support Vue 2.x only", + [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: "Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode", + [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: "Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly" + }; + const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode"); + const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts"); + const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts"); + const EnableEmitter = /* @__PURE__ */ makeSymbol("__enableEmitter"); + const DisableEmitter = /* @__PURE__ */ makeSymbol("__disableEmitter"); + const SetPluralRulesSymbol = makeSymbol("__setPluralRules"); + const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption"); + const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose"); + function handleFlatJson(obj) { + if (!isObject$1(obj)) { + return obj; + } + for (const key in obj) { + if (!hasOwn(obj, key)) { + continue; + } + if (!key.includes(".")) { + if (isObject$1(obj[key])) { + handleFlatJson(obj[key]); + } + } else { + const subKeys = key.split("."); + const lastIndex = subKeys.length - 1; + let currentObj = obj; + let hasStringValue = false; + for (let i = 0; i < lastIndex; i++) { + if (!(subKeys[i] in currentObj)) { + currentObj[subKeys[i]] = {}; + } + if (!isObject$1(currentObj[subKeys[i]])) { + ({}).NODE_ENV !== "production" && warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, { + key: subKeys[i] + })); + hasStringValue = true; + break; + } + currentObj = currentObj[subKeys[i]]; + } + if (!hasStringValue) { + currentObj[subKeys[lastIndex]] = obj[key]; + delete obj[key]; + } + if (isObject$1(currentObj[subKeys[lastIndex]])) { + handleFlatJson(currentObj[subKeys[lastIndex]]); + } + } + } + return obj; + } + function getLocaleMessages(locale, options) { + const { messages, __i18n, messageResolver, flatJson } = options; + const ret = isPlainObject(messages) ? messages : isArray(__i18n) ? {} : { [locale]: {} }; + if (isArray(__i18n)) { + __i18n.forEach((custom) => { + if ("locale" in custom && "resource" in custom) { + const { locale: locale2, resource } = custom; + if (locale2) { + ret[locale2] = ret[locale2] || {}; + deepCopy(resource, ret[locale2]); + } else { + deepCopy(resource, ret); + } + } else { + isString$1(custom) && deepCopy(JSON.parse(custom), ret); + } + }); + } + if (messageResolver == null && flatJson) { + for (const key in ret) { + if (hasOwn(ret, key)) { + handleFlatJson(ret[key]); + } + } + } + return ret; + } + const isNotObjectOrIsArray = (val) => !isObject$1(val) || isArray(val); + function deepCopy(src, des) { + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw createI18nError(I18nErrorCodes.INVALID_VALUE); + } + for (const key in src) { + if (hasOwn(src, key)) { + if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) { + des[key] = src[key]; + } else { + deepCopy(src[key], des[key]); + } + } + } + } + function getComponentOptions(instance) { + return instance.type; + } + function adjustI18nResources(gl, options, componentOptions) { + let messages = isObject$1(options.messages) ? options.messages : {}; + if ("__i18nGlobal" in componentOptions) { + messages = getLocaleMessages(gl.locale.value, { + messages, + __i18n: componentOptions.__i18nGlobal + }); + } + const locales = Object.keys(messages); + if (locales.length) { + locales.forEach((locale) => { + gl.mergeLocaleMessage(locale, messages[locale]); + }); + } + { + if (isObject$1(options.datetimeFormats)) { + const locales2 = Object.keys(options.datetimeFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]); + }); + } + } + if (isObject$1(options.numberFormats)) { + const locales2 = Object.keys(options.numberFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeNumberFormat(locale, options.numberFormats[locale]); + }); + } + } + } + } + function createTextNode(key) { + return vue.createVNode(vue.Text, null, key, 0); + } + const DEVTOOLS_META = "__INTLIFY_META__"; + const NOOP_RETURN_ARRAY = () => []; + const NOOP_RETURN_FALSE = () => false; + let composerID = 0; + function defineCoreMissingHandler(missing) { + return (ctx, locale, key, type) => { + return missing(locale, key, vue.getCurrentInstance() || void 0, type); + }; + } + const getMetaInfo = () => { + const instance = vue.getCurrentInstance(); + let meta = null; + return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null; + }; + function createComposer(options = {}, VueI18nLegacy) { + const { __root, __injectWithOption } = options; + const _isGlobal = __root === void 0; + const flatJson = options.flatJson; + let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true; + const _locale = vue.ref( + // prettier-ignore + __root && _inheritLocale ? __root.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE + ); + const _fallbackLocale = vue.ref( + // prettier-ignore + __root && _inheritLocale ? __root.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value + ); + const _messages = vue.ref(getLocaleMessages(_locale.value, options)); + const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); + const _numberFormats = vue.ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); + let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; + let _fallbackFormat = !!options.fallbackFormat; + let _missing = isFunction(options.missing) ? options.missing : null; + let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null; + let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + let _escapeParameter = !!options.escapeParameter; + const _modifiers = __root ? __root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; + let _pluralRules = options.pluralRules || __root && __root.pluralRules; + let _context; + const getCoreContext = () => { + _isGlobal && setFallbackContext(null); + const ctxOptions = { + version: VERSION, + locale: _locale.value, + fallbackLocale: _fallbackLocale.value, + messages: _messages.value, + modifiers: _modifiers, + pluralRules: _pluralRules, + missing: _runtimeMissing === null ? void 0 : _runtimeMissing, + missingWarn: _missingWarn, + fallbackWarn: _fallbackWarn, + fallbackFormat: _fallbackFormat, + unresolving: true, + postTranslation: _postTranslation === null ? void 0 : _postTranslation, + warnHtmlMessage: _warnHtmlMessage, + escapeParameter: _escapeParameter, + messageResolver: options.messageResolver, + messageCompiler: options.messageCompiler, + __meta: { framework: "vue" } + }; + { + ctxOptions.datetimeFormats = _datetimeFormats.value; + ctxOptions.numberFormats = _numberFormats.value; + ctxOptions.__datetimeFormatters = isPlainObject(_context) ? _context.__datetimeFormatters : void 0; + ctxOptions.__numberFormatters = isPlainObject(_context) ? _context.__numberFormatters : void 0; + } + if ({}.NODE_ENV !== "production") { + ctxOptions.__v_emitter = isPlainObject(_context) ? _context.__v_emitter : void 0; + } + const ctx = createCoreContext(ctxOptions); + _isGlobal && setFallbackContext(ctx); + return ctx; + }; + _context = getCoreContext(); + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ]; + } + const locale = vue.computed({ + get: () => _locale.value, + set: (val) => { + _locale.value = val; + _context.locale = _locale.value; + } + }); + const fallbackLocale = vue.computed({ + get: () => _fallbackLocale.value, + set: (val) => { + _fallbackLocale.value = val; + _context.fallbackLocale = _fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, val); + } + }); + const messages = vue.computed(() => _messages.value); + const datetimeFormats = /* @__PURE__ */ vue.computed(() => _datetimeFormats.value); + const numberFormats = /* @__PURE__ */ vue.computed(() => _numberFormats.value); + function getPostTranslationHandler() { + return isFunction(_postTranslation) ? _postTranslation : null; + } + function setPostTranslationHandler(handler) { + _postTranslation = handler; + _context.postTranslation = handler; + } + function getMissingHandler() { + return _missing; + } + function setMissingHandler(handler) { + if (handler !== null) { + _runtimeMissing = defineCoreMissingHandler(handler); + } + _missing = handler; + _context.missing = _runtimeMissing; + } + function isResolvedTranslateMessage(type, arg) { + return type !== "translate" || !arg.resolvedMessage; + } + const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => { + trackReactivityValues(); + let ret; + try { + if ({}.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) { + setAdditionalMeta(getMetaInfo()); + } + if (!_isGlobal) { + _context.fallbackContext = __root ? getFallbackContext() : void 0; + } + ret = fn(_context); + } finally { + if ({}.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) { + setAdditionalMeta(null); + } + if (!_isGlobal) { + _context.fallbackContext = void 0; + } + } + if (warnType !== "translate exists" && // for not `te` (e.g `t`) + isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) { + const [key, arg2] = argumentParser(); + if ({}.NODE_ENV !== "production" && __root && isString$1(key) && isResolvedTranslateMessage(warnType, arg2)) { + if (_fallbackRoot && (isTranslateFallbackWarn(_fallbackWarn, key) || isTranslateMissingWarn(_missingWarn, key))) { + warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, { + key, + type: warnType + })); + } + if ({}.NODE_ENV !== "production") { + const { __v_emitter: emitter } = _context; + if (emitter && _fallbackRoot) { + emitter.emit("fallback", { + type: warnType, + key, + to: "global", + groupId: `${warnType}:${key}` + }); + } + } + } + return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key); + } else if (successCondition(ret)) { + return ret; + } else { + throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE); + } + }; + function t2(...args) { + return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root) => Reflect.apply(root.t, root, [...args]), (key) => key, (val) => isString$1(val)); + } + function rt2(...args) { + const [arg1, arg2, arg3] = args; + if (arg3 && !isObject$1(arg3)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + return t2(...[arg1, arg2, assign$1({ resolvedMessage: true }, arg3 || {})]); + } + function d(...args) { + return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val)); + } + function n(...args) { + return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString$1(val)); + } + function normalize(values) { + return values.map((val) => isString$1(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val); + } + const interpolate = (val) => val; + const processor = { + normalize, + interpolate, + type: "vnode" + }; + function translateVNode(...args) { + return wrapWithDeps( + (context) => { + let ret; + const _context2 = context; + try { + _context2.processor = processor; + ret = Reflect.apply(translate, null, [_context2, ...args]); + } finally { + _context2.processor = null; + } + return ret; + }, + () => parseTranslateArgs(...args), + "translate", + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (root) => root[TranslateVNodeSymbol](...args), + (key) => [createTextNode(key)], + (val) => isArray(val) + ); + } + function numberParts(...args) { + return wrapWithDeps( + (context) => Reflect.apply(number, null, [context, ...args]), + () => parseNumberArgs(...args), + "number format", + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (root) => root[NumberPartsSymbol](...args), + NOOP_RETURN_ARRAY, + (val) => isString$1(val) || isArray(val) + ); + } + function datetimeParts(...args) { + return wrapWithDeps( + (context) => Reflect.apply(datetime, null, [context, ...args]), + () => parseDateTimeArgs(...args), + "datetime format", + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (root) => root[DatetimePartsSymbol](...args), + NOOP_RETURN_ARRAY, + (val) => isString$1(val) || isArray(val) + ); + } + function setPluralRules(rules) { + _pluralRules = rules; + _context.pluralRules = _pluralRules; + } + function te2(key, locale2) { + return wrapWithDeps(() => { + if (!key) { + return false; + } + const targetLocale = isString$1(locale2) ? locale2 : _locale.value; + const message = getLocaleMessage(targetLocale); + const resolved = _context.messageResolver(message, key); + return isMessageAST(resolved) || isMessageFunction(resolved) || isString$1(resolved); + }, () => [key], "translate exists", (root) => { + return Reflect.apply(root.te, root, [key, locale2]); + }, NOOP_RETURN_FALSE, (val) => isBoolean(val)); + } + function resolveMessages(key) { + let messages2 = null; + const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value); + for (let i = 0; i < locales.length; i++) { + const targetLocaleMessages = _messages.value[locales[i]] || {}; + const messageValue = _context.messageResolver(targetLocaleMessages, key); + if (messageValue != null) { + messages2 = messageValue; + break; + } + } + return messages2; + } + function tm(key) { + const messages2 = resolveMessages(key); + return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {}; + } + function getLocaleMessage(locale2) { + return _messages.value[locale2] || {}; + } + function setLocaleMessage(locale2, message) { + if (flatJson) { + const _message = { [locale2]: message }; + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + message = _message[locale2]; + } + _messages.value[locale2] = message; + _context.messages = _messages.value; + } + function mergeLocaleMessage(locale2, message) { + _messages.value[locale2] = _messages.value[locale2] || {}; + const _message = { [locale2]: message }; + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + message = _message[locale2]; + deepCopy(message, _messages.value[locale2]); + _context.messages = _messages.value; + } + function getDateTimeFormat(locale2) { + return _datetimeFormats.value[locale2] || {}; + } + function setDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = format2; + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function mergeDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = assign$1(_datetimeFormats.value[locale2] || {}, format2); + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function getNumberFormat(locale2) { + return _numberFormats.value[locale2] || {}; + } + function setNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = format2; + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + function mergeNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = assign$1(_numberFormats.value[locale2] || {}, format2); + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + composerID++; + if (__root && inBrowser) { + vue.watch(__root.locale, (val) => { + if (_inheritLocale) { + _locale.value = val; + _context.locale = val; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }); + vue.watch(__root.fallbackLocale, (val) => { + if (_inheritLocale) { + _fallbackLocale.value = val; + _context.fallbackLocale = val; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }); + } + const composer = { + id: composerID, + locale, + fallbackLocale, + get inheritLocale() { + return _inheritLocale; + }, + set inheritLocale(val) { + _inheritLocale = val; + if (val && __root) { + _locale.value = __root.locale.value; + _fallbackLocale.value = __root.fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }, + get availableLocales() { + return Object.keys(_messages.value).sort(); + }, + messages, + get modifiers() { + return _modifiers; + }, + get pluralRules() { + return _pluralRules || {}; + }, + get isGlobal() { + return _isGlobal; + }, + get missingWarn() { + return _missingWarn; + }, + set missingWarn(val) { + _missingWarn = val; + _context.missingWarn = _missingWarn; + }, + get fallbackWarn() { + return _fallbackWarn; + }, + set fallbackWarn(val) { + _fallbackWarn = val; + _context.fallbackWarn = _fallbackWarn; + }, + get fallbackRoot() { + return _fallbackRoot; + }, + set fallbackRoot(val) { + _fallbackRoot = val; + }, + get fallbackFormat() { + return _fallbackFormat; + }, + set fallbackFormat(val) { + _fallbackFormat = val; + _context.fallbackFormat = _fallbackFormat; + }, + get warnHtmlMessage() { + return _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + _warnHtmlMessage = val; + _context.warnHtmlMessage = val; + }, + get escapeParameter() { + return _escapeParameter; + }, + set escapeParameter(val) { + _escapeParameter = val; + _context.escapeParameter = val; + }, + t: t2, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + [SetPluralRulesSymbol]: setPluralRules + }; + { + composer.datetimeFormats = datetimeFormats; + composer.numberFormats = numberFormats; + composer.rt = rt2; + composer.te = te2; + composer.tm = tm; + composer.d = d; + composer.n = n; + composer.getDateTimeFormat = getDateTimeFormat; + composer.setDateTimeFormat = setDateTimeFormat; + composer.mergeDateTimeFormat = mergeDateTimeFormat; + composer.getNumberFormat = getNumberFormat; + composer.setNumberFormat = setNumberFormat; + composer.mergeNumberFormat = mergeNumberFormat; + composer[InejctWithOptionSymbol] = __injectWithOption; + composer[TranslateVNodeSymbol] = translateVNode; + composer[DatetimePartsSymbol] = datetimeParts; + composer[NumberPartsSymbol] = numberParts; + } + if ({}.NODE_ENV !== "production") { + composer[EnableEmitter] = (emitter) => { + _context.__v_emitter = emitter; + }; + composer[DisableEmitter] = () => { + _context.__v_emitter = void 0; + }; + } + return composer; + } + const baseFormatProps = { + tag: { + type: [String, Object] + }, + locale: { + type: String + }, + scope: { + type: String, + // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050 + validator: (val) => val === "parent" || val === "global", + default: "parent" + /* ComponentI18nScope */ + }, + i18n: { + type: Object + } + }; + function getInterpolateArg({ slots }, keys) { + if (keys.length === 1 && keys[0] === "default") { + const ret = slots.default ? slots.default() : []; + return ret.reduce((slot, current) => { + return [ + ...slot, + // prettier-ignore + ...current.type === vue.Fragment ? current.children : [current] + ]; + }, []); + } else { + return keys.reduce((arg, key) => { + const slot = slots[key]; + if (slot) { + arg[key] = slot(); + } + return arg; + }, {}); + } + } + function getFragmentableTag(tag) { + return vue.Fragment; + } + /* @__PURE__ */ vue.defineComponent({ + /* eslint-disable */ + name: "i18n-t", + props: assign$1({ + keypath: { + type: String, + required: true + }, + plural: { + type: [Number, String], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + validator: (val) => isNumber(val) || !isNaN(val) + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const { slots, attrs } = context; + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return () => { + const keys = Object.keys(slots).filter((key) => key !== "_"); + const options = {}; + if (props.locale) { + options.locale = props.locale; + } + if (props.plural !== void 0) { + options.plural = isString$1(props.plural) ? +props.plural : props.plural; + } + const arg = getInterpolateArg(context, keys); + const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options); + const assignedAttrs = assign$1({}, attrs); + const tag = isString$1(props.tag) || isObject$1(props.tag) ? props.tag : getFragmentableTag(); + return vue.h(tag, assignedAttrs, children); + }; + } + }); + function isVNode(target) { + return isArray(target) && !isString$1(target[0]); + } + function renderFormatter(props, context, slotKeys, partFormatter) { + const { slots, attrs } = context; + return () => { + const options = { part: true }; + let overrides = {}; + if (props.locale) { + options.locale = props.locale; + } + if (isString$1(props.format)) { + options.key = props.format; + } else if (isObject$1(props.format)) { + if (isString$1(props.format.key)) { + options.key = props.format.key; + } + overrides = Object.keys(props.format).reduce((options2, prop) => { + return slotKeys.includes(prop) ? assign$1({}, options2, { [prop]: props.format[prop] }) : options2; + }, {}); + } + const parts = partFormatter(...[props.value, options, overrides]); + let children = [options.key]; + if (isArray(parts)) { + children = parts.map((part, index) => { + const slot = slots[part.type]; + const node = slot ? slot({ [part.type]: part.value, index, parts }) : [part.value]; + if (isVNode(node)) { + node[0].key = `${part.type}-${index}`; + } + return node; + }); + } else if (isString$1(parts)) { + children = [parts]; + } + const assignedAttrs = assign$1({}, attrs); + const tag = isString$1(props.tag) || isObject$1(props.tag) ? props.tag : getFragmentableTag(); + return vue.h(tag, assignedAttrs, children); + }; + } + /* @__PURE__ */ vue.defineComponent({ + /* eslint-disable */ + name: "i18n-n", + props: assign$1({ + value: { + type: Number, + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: "parent", + __useComponent: true + }); + return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[NumberPartsSymbol](...args) + )); + } + }); + /* @__PURE__ */ vue.defineComponent({ + /* eslint-disable */ + name: "i18n-d", + props: assign$1({ + value: { + type: [Number, Date], + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: "parent", + __useComponent: true + }); + return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[DatetimePartsSymbol](...args) + )); + } + }); + function addTimelineEvent(event, payload) { + } + const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n"); + function useI18n(options = {}) { + const instance = vue.getCurrentInstance(); + if (instance == null) { + throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP); + } + if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) { + throw createI18nError(I18nErrorCodes.NOT_INSTALLED); + } + const i18n = getI18nInstance(instance); + const gl = getGlobalComposer(i18n); + const componentOptions = getComponentOptions(instance); + const scope = getScope(options, componentOptions); + if (__VUE_I18N_LEGACY_API__) { + if (i18n.mode === "legacy" && !options.__useComponent) { + if (!i18n.allowComposition) { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE); + } + return useI18nForLegacy(instance, scope, gl, options); + } + } + if (scope === "global") { + adjustI18nResources(gl, options, componentOptions); + return gl; + } + if (scope === "parent") { + let composer2 = getComposer(i18n, instance, options.__useComponent); + if (composer2 == null) { + if ({}.NODE_ENV !== "production") { + warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE)); + } + composer2 = gl; + } + return composer2; + } + const i18nInternal = i18n; + let composer = i18nInternal.__getInstance(instance); + if (composer == null) { + const composerOptions = assign$1({}, options); + if ("__i18n" in componentOptions) { + composerOptions.__i18n = componentOptions.__i18n; + } + if (gl) { + composerOptions.__root = gl; + } + composer = createComposer(composerOptions); + if (i18nInternal.__composerExtend) { + composer[DisposeSymbol] = i18nInternal.__composerExtend(composer); + } + setupLifeCycle(i18nInternal, instance, composer); + i18nInternal.__setInstance(instance, composer); + } + return composer; + } + function getI18nInstance(instance) { + { + const i18n = vue.inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey); + if (!i18n) { + throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE); + } + return i18n; + } + } + function getScope(options, componentOptions) { + return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope; + } + function getGlobalComposer(i18n) { + return i18n.mode === "composition" ? i18n.global : i18n.global.__composer; + } + function getComposer(i18n, target, useComponent = false) { + let composer = null; + const root = target.root; + let current = getParentComponentInstance(target, useComponent); + while (current != null) { + const i18nInternal = i18n; + if (i18n.mode === "composition") { + composer = i18nInternal.__getInstance(current); + } else { + if (__VUE_I18N_LEGACY_API__) { + const vueI18n = i18nInternal.__getInstance(current); + if (vueI18n != null) { + composer = vueI18n.__composer; + if (useComponent && composer && !composer[InejctWithOptionSymbol]) { + composer = null; + } + } + } + } + if (composer != null) { + break; + } + if (root === current) { + break; + } + current = current.parent; + } + return composer; + } + function getParentComponentInstance(target, useComponent = false) { + if (target == null) { + return null; + } + { + return !useComponent ? target.parent : target.vnode.ctx || target.parent; + } + } + function setupLifeCycle(i18n, target, composer) { + let emitter = null; + { + vue.onMounted(() => { + if (({}.NODE_ENV !== "production" || false) && true && target.vnode.el) { + target.vnode.el.__VUE_I18N__ = composer; + emitter = createEmitter(); + const _composer = composer; + _composer[EnableEmitter] && _composer[EnableEmitter](emitter); + emitter.on("*", addTimelineEvent); + } + }, target); + vue.onUnmounted(() => { + const _composer = composer; + if (({}.NODE_ENV !== "production" || false) && true && target.vnode.el && target.vnode.el.__VUE_I18N__) { + emitter && emitter.off("*", addTimelineEvent); + _composer[DisableEmitter] && _composer[DisableEmitter](); + delete target.vnode.el.__VUE_I18N__; + } + i18n.__deleteInstance(target); + const dispose = _composer[DisposeSymbol]; + if (dispose) { + dispose(); + delete _composer[DisposeSymbol]; + } + }, target); + } + } + function useI18nForLegacy(instance, scope, root, options = {}) { + const isLocalScope = scope === "local"; + const _composer = vue.shallowRef(null); + if (isLocalScope && instance.proxy && !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) { + throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION); + } + const _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : !isString$1(options.locale); + const _locale = vue.ref( + // prettier-ignore + !isLocalScope || _inheritLocale ? root.locale.value : isString$1(options.locale) ? options.locale : DEFAULT_LOCALE + ); + const _fallbackLocale = vue.ref( + // prettier-ignore + !isLocalScope || _inheritLocale ? root.fallbackLocale.value : isString$1(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value + ); + const _messages = vue.ref(getLocaleMessages(_locale.value, options)); + const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); + const _numberFormats = vue.ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); + const _missingWarn = isLocalScope ? root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + const _fallbackWarn = isLocalScope ? root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + const _fallbackRoot = isLocalScope ? root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; + const _fallbackFormat = !!options.fallbackFormat; + const _missing = isFunction(options.missing) ? options.missing : null; + const _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + const _warnHtmlMessage = isLocalScope ? root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + const _escapeParameter = !!options.escapeParameter; + const _modifiers = isLocalScope ? root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; + const _pluralRules = options.pluralRules || isLocalScope && root.pluralRules; + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ]; + } + const locale = vue.computed({ + get: () => { + return _composer.value ? _composer.value.locale.value : _locale.value; + }, + set: (val) => { + if (_composer.value) { + _composer.value.locale.value = val; + } + _locale.value = val; + } + }); + const fallbackLocale = vue.computed({ + get: () => { + return _composer.value ? _composer.value.fallbackLocale.value : _fallbackLocale.value; + }, + set: (val) => { + if (_composer.value) { + _composer.value.fallbackLocale.value = val; + } + _fallbackLocale.value = val; + } + }); + const messages = vue.computed(() => { + if (_composer.value) { + return _composer.value.messages.value; + } else { + return _messages.value; + } + }); + const datetimeFormats = vue.computed(() => _datetimeFormats.value); + const numberFormats = vue.computed(() => _numberFormats.value); + function getPostTranslationHandler() { + return _composer.value ? _composer.value.getPostTranslationHandler() : _postTranslation; + } + function setPostTranslationHandler(handler) { + if (_composer.value) { + _composer.value.setPostTranslationHandler(handler); + } + } + function getMissingHandler() { + return _composer.value ? _composer.value.getMissingHandler() : _missing; + } + function setMissingHandler(handler) { + if (_composer.value) { + _composer.value.setMissingHandler(handler); + } + } + function warpWithDeps(fn) { + trackReactivityValues(); + return fn(); + } + function t2(...args) { + return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args])) : warpWithDeps(() => ""); + } + function rt2(...args) { + return _composer.value ? Reflect.apply(_composer.value.rt, null, [...args]) : ""; + } + function d(...args) { + return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args])) : warpWithDeps(() => ""); + } + function n(...args) { + return _composer.value ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args])) : warpWithDeps(() => ""); + } + function tm(key) { + return _composer.value ? _composer.value.tm(key) : {}; + } + function te2(key, locale2) { + return _composer.value ? _composer.value.te(key, locale2) : false; + } + function getLocaleMessage(locale2) { + return _composer.value ? _composer.value.getLocaleMessage(locale2) : {}; + } + function setLocaleMessage(locale2, message) { + if (_composer.value) { + _composer.value.setLocaleMessage(locale2, message); + _messages.value[locale2] = message; + } + } + function mergeLocaleMessage(locale2, message) { + if (_composer.value) { + _composer.value.mergeLocaleMessage(locale2, message); + } + } + function getDateTimeFormat(locale2) { + return _composer.value ? _composer.value.getDateTimeFormat(locale2) : {}; + } + function setDateTimeFormat(locale2, format2) { + if (_composer.value) { + _composer.value.setDateTimeFormat(locale2, format2); + _datetimeFormats.value[locale2] = format2; + } + } + function mergeDateTimeFormat(locale2, format2) { + if (_composer.value) { + _composer.value.mergeDateTimeFormat(locale2, format2); + } + } + function getNumberFormat(locale2) { + return _composer.value ? _composer.value.getNumberFormat(locale2) : {}; + } + function setNumberFormat(locale2, format2) { + if (_composer.value) { + _composer.value.setNumberFormat(locale2, format2); + _numberFormats.value[locale2] = format2; + } + } + function mergeNumberFormat(locale2, format2) { + if (_composer.value) { + _composer.value.mergeNumberFormat(locale2, format2); + } + } + const wrapper = { + get id() { + return _composer.value ? _composer.value.id : -1; + }, + locale, + fallbackLocale, + messages, + datetimeFormats, + numberFormats, + get inheritLocale() { + return _composer.value ? _composer.value.inheritLocale : _inheritLocale; + }, + set inheritLocale(val) { + if (_composer.value) { + _composer.value.inheritLocale = val; + } + }, + get availableLocales() { + return _composer.value ? _composer.value.availableLocales : Object.keys(_messages.value); + }, + get modifiers() { + return _composer.value ? _composer.value.modifiers : _modifiers; + }, + get pluralRules() { + return _composer.value ? _composer.value.pluralRules : _pluralRules; + }, + get isGlobal() { + return _composer.value ? _composer.value.isGlobal : false; + }, + get missingWarn() { + return _composer.value ? _composer.value.missingWarn : _missingWarn; + }, + set missingWarn(val) { + if (_composer.value) { + _composer.value.missingWarn = val; + } + }, + get fallbackWarn() { + return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn; + }, + set fallbackWarn(val) { + if (_composer.value) { + _composer.value.missingWarn = val; + } + }, + get fallbackRoot() { + return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot; + }, + set fallbackRoot(val) { + if (_composer.value) { + _composer.value.fallbackRoot = val; + } + }, + get fallbackFormat() { + return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat; + }, + set fallbackFormat(val) { + if (_composer.value) { + _composer.value.fallbackFormat = val; + } + }, + get warnHtmlMessage() { + return _composer.value ? _composer.value.warnHtmlMessage : _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + if (_composer.value) { + _composer.value.warnHtmlMessage = val; + } + }, + get escapeParameter() { + return _composer.value ? _composer.value.escapeParameter : _escapeParameter; + }, + set escapeParameter(val) { + if (_composer.value) { + _composer.value.escapeParameter = val; + } + }, + t: t2, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + rt: rt2, + d, + n, + tm, + te: te2, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getDateTimeFormat, + setDateTimeFormat, + mergeDateTimeFormat, + getNumberFormat, + setNumberFormat, + mergeNumberFormat + }; + function sync(composer) { + composer.locale.value = _locale.value; + composer.fallbackLocale.value = _fallbackLocale.value; + Object.keys(_messages.value).forEach((locale2) => { + composer.mergeLocaleMessage(locale2, _messages.value[locale2]); + }); + Object.keys(_datetimeFormats.value).forEach((locale2) => { + composer.mergeDateTimeFormat(locale2, _datetimeFormats.value[locale2]); + }); + Object.keys(_numberFormats.value).forEach((locale2) => { + composer.mergeNumberFormat(locale2, _numberFormats.value[locale2]); + }); + composer.escapeParameter = _escapeParameter; + composer.fallbackFormat = _fallbackFormat; + composer.fallbackRoot = _fallbackRoot; + composer.fallbackWarn = _fallbackWarn; + composer.missingWarn = _missingWarn; + composer.warnHtmlMessage = _warnHtmlMessage; + } + vue.onBeforeMount(() => { + if (instance.proxy == null || instance.proxy.$i18n == null) { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY); + } + const composer = _composer.value = instance.proxy.$i18n.__composer; + if (scope === "global") { + _locale.value = composer.locale.value; + _fallbackLocale.value = composer.fallbackLocale.value; + _messages.value = composer.messages.value; + _datetimeFormats.value = composer.datetimeFormats.value; + _numberFormats.value = composer.numberFormats.value; + } else if (isLocalScope) { + sync(composer); + } + }); + return wrapper; + } + { + initFeatureFlags(); + } + if (__INTLIFY_JIT_COMPILATION__) { + registerMessageCompiler(compile); + } else { + registerMessageCompiler(compileToFunction); + } + registerMessageResolver(resolveValue); + registerLocaleFallbacker(fallbackWithLocaleChain); + if ({}.NODE_ENV !== "production" || __INTLIFY_PROD_DEVTOOLS__) { + const target = getGlobalThis(); + target.__INTLIFY__ = true; + setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__); + } + /*! + * Copyright 2022, 2023 Utrecht University + * + * Licensed under the EUPL, Version 1.2 only + * You may not use this work except in compliance with the + Licence. + * A copy of the Licence is provided in the 'LICENCE' file in this project. + * You may also obtain a copy of the Licence at: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Unless required by applicable law or agreed to in + writing, software distributed under the Licence is + distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. + * See the Licence for the specific language governing + permissions and limitations under the Licence. + */ + function t(e) { + return e.target.value; + } + /*! + * Copyright 2022, 2023 Utrecht University + * + * Licensed under the EUPL, Version 1.2 only + * You may not use this work except in compliance with the + Licence. + * A copy of the Licence is provided in the 'LICENCE' file in this project. + * You may also obtain a copy of the Licence at: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Unless required by applicable law or agreed to in + writing, software distributed under the Licence is + distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + express or implied. + * See the Licence for the specific language governing + permissions and limitations under the Licence. + */ + const re = ["href", "target"], ie = { class: "btn-text" }, ue = ["type", "name", "disabled"], de = { class: "btn-text" }, X = /* @__PURE__ */ vue.defineComponent({ + __name: "BSButton", + props: { + id: { default: null }, + href: { default: void 0 }, + name: { default: void 0 }, + variant: { default: "dark" }, + size: { default: "normal" }, + outlined: { type: Boolean, default: false }, + active: { type: Boolean, default: false }, + disabled: { type: Boolean, default: false }, + loading: { type: Boolean, default: false }, + input: { default: "button" }, + newTab: { type: Boolean, default: false }, + cssClasses: { default: "" } + }, + setup(i) { + const t2 = i, o = vue.computed(() => { + let n = "btn "; + return t2.size === "large" ? n += "btn-lg " : t2.size === "small" && (n += "btn-sm "), t2.outlined ? n += "btn-outline-" : n += "btn-", n += `${t2.variant} `, t2.loading && (n += "btn-loading "), t2.active && (n += "active "), n; + }); + return (n, e) => n.href ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + href: n.href, + class: vue.normalizeClass(o.value), + target: n.newTab ? "_blank" : "_self" + }, [ + vue.createElementVNode("span", ie, [ + vue.renderSlot(n.$slots, "default") + ]) + ], 10, re)) : (vue.openBlock(), vue.createElementBlock("button", { + key: 1, + type: n.input, + class: vue.normalizeClass(o.value), + name: n.name, + disabled: n.disabled + }, [ + vue.createElementVNode("span", de, [ + vue.renderSlot(n.$slots, "default") + ]) + ], 10, ue)); + } + }); + const Ve = ["id", "value", "checked", "onClick"], De = ["for"], Ue = /* @__PURE__ */ vue.defineComponent({ + __name: "BSMultiSelect", + props: { + options: {}, + modelValue: {}, + containerClasses: { default: "" }, + uniqueId: { default: v4().toString() } + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t2 }) { + const o = i; + function n(e) { + const l = o.modelValue.includes(e); + let a = [...o.modelValue]; + if (!l) + a.push(e); + else { + const u = a.indexOf(e); + u > -1 && a.splice(u, 1); + } + t2("update:modelValue", a); + } + return (e, l) => (vue.openBlock(), vue.createElementBlock("div", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.options, ([a, u]) => (vue.openBlock(), vue.createElementBlock("div", { + key: a, + class: vue.normalizeClass(["form-check", e.containerClasses]) + }, [ + vue.createElementVNode("input", { + id: "id_" + a + "_" + e.uniqueId, + type: "checkbox", + class: "form-check-input", + value: a, + checked: o.modelValue.includes(a), + onClick: (_) => n(a) + }, null, 8, Ve), + vue.createElementVNode("label", { + class: "form-check-label", + for: +"_" + e.uniqueId + }, vue.toDisplayString(u), 9, De) + ], 2))), 128)) + ])); + } + }), Le = { + class: "pagination justify-content-center", + role: "navigation", + "aria-label": "pagination" + }, Oe = ["onClick"], Ie = { + key: 1, + class: "page-link" + }, q = /* @__PURE__ */ vue.defineComponent({ + __name: "BSPagination", + props: { + maxPages: {}, + currentpage: {}, + showButtons: { type: Boolean, default: true }, + numOptions: { default: 2 } + }, + emits: ["change-page"], + setup(i, { emit: t2 }) { + const o = i; + function n(u, _, y) { + return Math.min(Math.max(u, _), y); + } + const e = vue.computed(() => { + const u = o.numOptions, _ = o.currentpage - u, y = o.currentpage + u + 1, P = [], I = []; + let U; + for (let $ = 1; $ <= o.maxPages; $++) + ($ === 1 || $ === o.maxPages || $ >= _ && $ < y) && P.push($); + for (const $ of P) + U && ($ - U === 2 ? I.push(U + 1) : $ - U !== 1 && I.push(-42)), I.push($), U = $; + return I; + }); + function l(u) { + u = n(u, 1, o.maxPages), t2("change-page", u); + } + const { t: a } = useI18n(); + return (u, _) => (vue.openBlock(), vue.createElementBlock("ul", Le, [ + vue.createElementVNode("li", { + class: vue.normalizeClass(["page-item page-button", u.currentpage === 1 ? "disabled" : ""]) + }, [ + u.showButtons ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: _[0] || (_[0] = (y) => l(u.currentpage - 1)) + }, vue.toDisplayString(vue.unref(a)("previous")), 1)) : vue.createCommentVNode("", true) + ], 2), + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.value, (y) => (vue.openBlock(), vue.createElementBlock("li", { + key: y, + class: vue.normalizeClass([ + "page-item", + (y === -42 ? "disabled page-ellipsis " : "") + (y === u.currentpage ? "active" : "") + ]) + }, [ + y !== -42 ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: (P) => l(y) + }, vue.toDisplayString(y), 9, Oe)) : (vue.openBlock(), vue.createElementBlock("span", Ie, "…")) + ], 2))), 128)), + vue.createElementVNode("li", { + class: vue.normalizeClass(["page-item page-button", u.currentpage >= u.maxPages ? "disabled" : ""]) + }, [ + u.showButtons ? (vue.openBlock(), vue.createElementBlock("a", { + key: 0, + class: "page-link", + onClick: _[1] || (_[1] = (y) => l(u.currentpage + 1)) + }, vue.toDisplayString(vue.unref(a)("next")), 1)) : vue.createCommentVNode("", true) + ], 2) + ])); + } + }); + function G(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + next: (o) => { + const { normalize: n } = o; + return n(["Next"]); + }, + previous: (o) => { + const { normalize: n } = o; + return n(["Previous"]); + } + }, + nl: { + next: (o) => { + const { normalize: n } = o; + return n(["Volgende"]); + }, + previous: (o) => { + const { normalize: n } = o; + return n(["Vorige"]); + } + } + } + }); + } + typeof G == "function" && G(q); + const Pe = ["id", "value", "checked", "onClick"], Ee = ["for"], Ne = /* @__PURE__ */ vue.defineComponent({ + __name: "BSRadioSelect", + props: { + options: {}, + modelValue: {}, + containerClasses: { default: "" } + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t2 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.options, ([e, l]) => (vue.openBlock(), vue.createElementBlock("div", { + key: e, + class: vue.normalizeClass(["form-check", o.containerClasses]) + }, [ + vue.createElementVNode("input", { + id: "id_" + e, + type: "radio", + class: "form-check-input", + value: e, + checked: o.modelValue == e, + onClick: (a) => t2("update:model-value", e) + }, null, 8, Pe), + vue.createElementVNode("label", { + class: "form-check-label", + for: "id_" + e + }, vue.toDisplayString(l), 9, Ee) + ], 2))), 128)) + ])); + } + }), Me = { class: "uu-sidebar" }, Te = ["data-bs-target"], qe = ["id"], Re = { class: "uu-sidebar-content" }, je = /* @__PURE__ */ vue.defineComponent({ + __name: "BSSidebar", + props: { + id: { default: null }, + placement: { default: "left" }, + mobilePlacement: { default: "top" }, + stickySidebar: { type: Boolean, default: false }, + mobileStickySidebar: { type: Boolean, default: false } + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.id !== null ? t2.id : "id_" + v4().toString().replace(/-/g, "")), n = vue.computed(() => { + let e = ""; + return t2.placement === "right" && (e += "uu-sidebar-right "), t2.mobilePlacement === "bottom" && (e += "uu-sidebar-mobile-bottom "), t2.stickySidebar && (e += "uu-sidebar-sticky "), t2.mobileStickySidebar && (e += "uu-sidebar-mobile-sticky "), e; + }); + return (e, l) => (vue.openBlock(), vue.createElementBlock("div", { + class: vue.normalizeClass(["uu-sidebar-container", n.value]) + }, [ + vue.createElementVNode("aside", Me, [ + vue.createElementVNode("button", { + class: "uu-sidebar-toggle", + type: "button", + "data-bs-toggle": "collapse", + "data-bs-target": "#" + o.value, + "aria-expanded": "false" + }, [ + vue.renderSlot(e.$slots, "sidebar-button") + ], 8, Te), + vue.createElementVNode("div", { + id: o.value, + class: "uu-sidebar-collapse collapse" + }, [ + vue.renderSlot(e.$slots, "sidebar") + ], 8, qe) + ]), + vue.createElementVNode("div", Re, [ + vue.renderSlot(e.$slots, "default") + ]) + ], 2)); + } + }), Fe = { class: "uu-list-filter" }, Ze = { class: "uu-list-filter-label" }, Ge = { + key: 2, + class: "uu-list-filter-field" + }, Qe = ["value"], We = /* @__PURE__ */ vue.defineComponent({ + __name: "Filter", + props: { + filter: {}, + value: {} + }, + emits: ["update:value"], + setup(i, { emit: t$1 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", Fe, [ + vue.createElementVNode("div", Ze, vue.toDisplayString(o.filter.label), 1), + o.filter.type === "checkbox" ? (vue.openBlock(), vue.createBlock(vue.unref(Ue), { + key: 0, + options: o.filter.options ?? [], + "model-value": o.value ?? [], + "onUpdate:modelValue": n[0] || (n[0] = (e) => t$1("update:value", e)) + }, null, 8, ["options", "model-value"])) : vue.createCommentVNode("", true), + o.filter.type === "radio" ? (vue.openBlock(), vue.createBlock(vue.unref(Ne), { + key: 1, + options: o.filter.options ?? [], + "model-value": o.value ?? "", + "onUpdate:modelValue": n[1] || (n[1] = (e) => t$1("update:value", e)) + }, null, 8, ["options", "model-value"])) : vue.createCommentVNode("", true), + o.filter.type === "date" ? (vue.openBlock(), vue.createElementBlock("div", Ge, [ + vue.createElementVNode("input", { + type: "date", + value: o.value, + class: "form-control", + onInput: n[2] || (n[2] = (e) => t$1("update:value", vue.unref(t)(e))) + }, null, 40, Qe) + ])) : vue.createCommentVNode("", true) + ])); + } + }), Ae = { key: 0 }, Y = /* @__PURE__ */ vue.defineComponent({ + __name: "FilterBar", + props: { + filters: {}, + filterValues: {} + }, + emits: ["update:filter-values"], + setup(i, { emit: t2 }) { + const o = i; + function n(e, l) { + let a = { ...o.filterValues }; + a[e] = l, t2("update:filter-values", a); + } + return (e, l) => e.filters ? (vue.openBlock(), vue.createElementBlock("div", Ae, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.filters, (a) => (vue.openBlock(), vue.createBlock(We, { + key: a.field, + filter: a, + value: e.filterValues[a.field] ?? void 0, + "onUpdate:value": (u) => n(a.field, u) + }, null, 8, ["filter", "value", "onUpdate:value"]))), 128)) + ])) : vue.createCommentVNode("", true); + } + }), He = { class: "search" }, Je = ["value", "placeholder"], R = /* @__PURE__ */ vue.defineComponent({ + __name: "SearchControl", + props: { + modelValue: {} + }, + emits: ["update:modelValue", "update:model-value"], + setup(i, { emit: t$1 }) { + function o(a, u = 500) { + let _; + return (...y) => { + clearTimeout(_), _ = setTimeout(() => { + a.apply(this, y); + }, u); + }; + } + function n(a) { + t$1("update:modelValue", a); + } + const e = o((a) => n(a)), { t: l } = useI18n(); + return (a, u) => (vue.openBlock(), vue.createElementBlock("div", He, [ + vue.createElementVNode("input", { + id: "search", + class: "form-control", + value: a.modelValue, + placeholder: vue.unref(l)("placeholder"), + onInput: u[0] || (u[0] = (_) => vue.unref(e)(vue.unref(t)(_))) + }, null, 40, Je) + ])); + } + }); + function Q(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + placeholder: (o) => { + const { normalize: n } = o; + return n(["Search"]); + } + }, + nl: { + placeholder: (o) => { + const { normalize: n } = o; + return n(["Zoeken"]); + } + } + } + }); + } + typeof Q == "function" && Q(R); + const Ke = ["value"], Xe = ["value"], x = /* @__PURE__ */ vue.defineComponent({ + __name: "PageSizeControl", + props: { + pageSize: {}, + pageSizeOptions: {} + }, + emits: ["update:pageSize", "update:page-size"], + setup(i, { emit: t$1 }) { + const o = i; + function n(e) { + if (typeof e == "string") + try { + e = Number(e); + } catch { + e = o.pageSizeOptions[0] ?? 10; + } + t$1("update:pageSize", e); + } + return (e, l) => (vue.openBlock(), vue.createElementBlock("select", { + value: e.pageSize, + class: "form-select", + onChange: l[0] || (l[0] = (a) => n(vue.unref(t)(a))) + }, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.pageSizeOptions, (a) => (vue.openBlock(), vue.createElementBlock("option", { + key: a, + value: a + }, vue.toDisplayString(a), 9, Xe))), 128)) + ], 40, Ke)); + } + }), Ye = ["value"], xe = ["value"], ee = /* @__PURE__ */ vue.defineComponent({ + __name: "SortControl", + props: { + currentSort: {}, + sortOptions: {} + }, + emits: ["update:current-sort", "update:currentSort"], + setup(i, { emit: t$1 }) { + return (o, n) => (vue.openBlock(), vue.createElementBlock("select", { + value: o.currentSort, + class: "form-select", + onChange: n[0] || (n[0] = (e) => o.$emit("update:current-sort", vue.unref(t)(e).trim())) + }, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.sortOptions, ({ field: e, label: l }) => (vue.openBlock(), vue.createElementBlock("option", { + key: e, + value: e + }, vue.toDisplayString(l), 9, xe))), 128)) + ], 40, Ye)); + } + }), et = { key: 0 }, j = /* @__PURE__ */ vue.defineComponent({ + __name: "SearchResultNum", + props: { + searchQuery: {}, + pageNum: {}, + totalNum: {} + }, + setup(i) { + const { t: t2 } = useI18n(); + return (o, n) => (vue.openBlock(), vue.createElementBlock("div", null, [ + o.searchQuery ? (vue.openBlock(), vue.createElementBlock("span", et, vue.toDisplayString(vue.unref(t2)("search", { query: o.searchQuery })), 1)) : vue.createCommentVNode("", true), + vue.createTextVNode(" " + vue.toDisplayString(vue.unref(t2)("showing", { + pageNum: o.pageNum, + totalNum: Intl.NumberFormat().format(o.totalNum) + })), 1) + ])); + } + }); + function W(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + search: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["Search result: ", e(l("query")), ","]); + }, + showing: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["showing ", e(l("pageNum")), " of ", e(l("totalNum")), " results"]); + } + }, + nl: { + search: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n(["Zoekresultaat: ", e(l("query")), ","]); + }, + showing: (o) => { + const { normalize: n, interpolate: e, named: l } = o; + return n([e(l("pageNum")), " van ", e(l("totalNum")), " getoond"]); + } + } + } + }); + } + typeof W == "function" && W(j); + const tt = { class: "uu-container" }, nt = { class: "uu-list" }, ot = { class: "uu-list-controls" }, at = { + key: 1, + class: "uu-list-order-control" + }, st = { class: "uu-list-page-size-control" }, lt = { + key: 0, + class: "uu-list-filters" + }, rt = { class: "uu-list-content" }, it = /* @__PURE__ */ vue.defineComponent({ + __name: "Default", + props: { + data: {}, + isLoading: { type: Boolean }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean }, + search: {}, + sortEnabled: { type: Boolean }, + currentSort: {}, + sortOptions: {}, + pageSize: {}, + pageSizeOptions: {}, + filtersEnabled: { type: Boolean }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => Math.ceil(o.totalData / o.pageSize)); + return (e, l) => { + var a; + return vue.openBlock(), vue.createElementBlock("div", tt, [ + vue.createElementVNode("div", nt, [ + vue.createElementVNode("div", ot, [ + e.searchEnabled ? (vue.openBlock(), vue.createBlock(R, { + key: 0, + "model-value": e.search, + class: "uu-list-search-control", + "onUpdate:modelValue": l[0] || (l[0] = (u) => e.$emit("update:search", u)) + }, null, 8, ["model-value"])) : vue.createCommentVNode("", true), + vue.createVNode(j, { + "search-query": e.search, + "page-num": ((a = e.data) == null ? void 0 : a.length) ?? 0, + "total-num": e.totalData, + class: "uu-list-search-text-control" + }, null, 8, ["search-query", "page-num", "total-num"]), + e.sortEnabled ? (vue.openBlock(), vue.createElementBlock("div", at, [ + vue.createVNode(ee, { + "current-sort": e.currentSort, + "sort-options": e.sortOptions, + "onUpdate:currentSort": l[1] || (l[1] = (u) => t2("update:current-sort", u)) + }, null, 8, ["current-sort", "sort-options"]) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", st, [ + vue.createVNode(x, { + "page-size-options": e.pageSizeOptions, + "page-size": e.pageSize, + "onUpdate:pageSize": l[2] || (l[2] = (u) => t2("update:page-size", u)) + }, null, 8, ["page-size-options", "page-size"]) + ]) + ]), + e.filtersEnabled ? (vue.openBlock(), vue.createElementBlock("div", lt, [ + vue.renderSlot(e.$slots, "filters-top", { + data: e.data, + isLoading: e.isLoading + }), + vue.createVNode(Y, { + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:filterValues": l[3] || (l[3] = (u) => e.$emit("update:filter-values", u)) + }, null, 8, ["filters", "filter-values"]), + vue.renderSlot(e.$slots, "filters-bottom", { + data: e.data, + isLoading: e.isLoading + }) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", rt, [ + vue.renderSlot(e.$slots, "data", { + data: e.data, + isLoading: e.isLoading + }), + vue.createElementVNode("div", null, [ + e.data ? (vue.openBlock(), vue.createBlock(vue.unref(q), { + key: 0, + "max-pages": n.value, + currentpage: e.currentPage, + onChangePage: l[4] || (l[4] = (u) => e.$emit("update:current-page", u)) + }, null, 8, ["max-pages", "currentpage"])) : vue.createCommentVNode("", true) + ]) + ]) + ]) + ]); + }; + } + }), ut = { class: "w-100 d-flex align-items-center gap-3 uu-list-controls" }, dt = { + key: 0, + class: "ms-auto" + }, te = /* @__PURE__ */ vue.defineComponent({ + __name: "Sidebar", + props: { + data: {}, + isLoading: { type: Boolean }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean }, + search: {}, + sortEnabled: { type: Boolean }, + currentSort: {}, + sortOptions: {}, + pageSize: {}, + pageSizeOptions: {}, + filtersEnabled: { type: Boolean }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => Math.ceil(o.totalData / o.pageSize)); + return (e, l) => (vue.openBlock(), vue.createBlock(vue.unref(je), { class: "uu-list-sidebar" }, { + sidebar: vue.withCtx(() => [ + e.searchEnabled ? (vue.openBlock(), vue.createBlock(R, { + key: 0, + "model-value": e.search, + "onUpdate:modelValue": l[0] || (l[0] = (a) => e.$emit("update:search", a)) + }, null, 8, ["model-value"])) : vue.createCommentVNode("", true), + vue.renderSlot(e.$slots, "filters-top", { + data: e.data, + isLoading: e.isLoading + }), + e.filters ? (vue.openBlock(), vue.createBlock(Y, { + key: 1, + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:filterValues": l[1] || (l[1] = (a) => e.$emit("update:filter-values", a)) + }, null, 8, ["filters", "filter-values"])) : vue.createCommentVNode("", true), + vue.renderSlot(e.$slots, "filters-bottom", { + data: e.data, + isLoading: e.isLoading + }) + ]), + default: vue.withCtx(() => { + var a; + return [ + vue.createElementVNode("div", null, [ + vue.createElementVNode("div", ut, [ + vue.createVNode(j, { + "search-query": e.search, + "page-num": ((a = e.data) == null ? void 0 : a.length) ?? 0, + "total-num": e.totalData + }, null, 8, ["search-query", "page-num", "total-num"]), + e.sortEnabled ? (vue.openBlock(), vue.createElementBlock("div", dt, [ + vue.createVNode(ee, { + "current-sort": e.currentSort, + "sort-options": e.sortOptions, + "onUpdate:currentSort": l[2] || (l[2] = (u) => t2("update:current-sort", u)) + }, null, 8, ["current-sort", "sort-options"]) + ])) : vue.createCommentVNode("", true), + vue.createElementVNode("div", null, [ + vue.createVNode(x, { + "page-size-options": e.pageSizeOptions, + "page-size": e.pageSize, + "onUpdate:pageSize": l[3] || (l[3] = (u) => t2("update:page-size", u)) + }, null, 8, ["page-size-options", "page-size"]) + ]) + ]), + vue.renderSlot(e.$slots, "data", { + data: e.data, + isLoading: e.isLoading + }), + vue.createElementVNode("div", null, [ + e.data ? (vue.openBlock(), vue.createBlock(vue.unref(q), { + key: 0, + "max-pages": n.value, + currentpage: e.currentPage, + onChangePage: l[4] || (l[4] = (u) => e.$emit("update:current-page", u)) + }, null, 8, ["max-pages", "currentpage"])) : vue.createCommentVNode("", true) + ]) + ]) + ]; + }), + _: 3 + })); + } + }); + function A(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + loading: (o) => { + const { normalize: n } = o; + return n(["Loading...."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["No items to display"]); + } + }, + nl: { + loading: (o) => { + const { normalize: n } = o; + return n(["Gegevens worden laden..."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["Geen gegevens om te tonen"]); + } + } + } + }); + } + typeof A == "function" && A(te); + const pt = /* @__PURE__ */ vue.defineComponent({ + __name: "DebugVisualizer", + props: { + data: { default: void 0 }, + isLoading: { type: Boolean, default: false } + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("pre", null, vue.toDisplayString(t2.data), 1)); + } + }), ct = /* @__PURE__ */ vue.defineComponent({ + __name: "UUList", + props: { + container: { default: "default" }, + data: {}, + isLoading: { type: Boolean, default: false }, + totalData: {}, + currentPage: {}, + searchEnabled: { type: Boolean, default: false }, + search: { default: "" }, + sortEnabled: { type: Boolean, default: false }, + currentSort: { default: "" }, + sortOptions: { default: () => [] }, + pageSize: { default: 10 }, + pageSizeOptions: { default: () => [10, 25, 50] }, + filtersEnabled: { type: Boolean, default: false }, + filters: {}, + filterValues: {} + }, + emits: ["update:current-page", "update:search", "update:current-sort", "update:page-size", "update:filter-values"], + setup(i, { emit: t2 }) { + const o = i, n = vue.computed(() => { + switch (o.container) { + case "sidebar": + return te; + default: + return it; + } + }); + return (e, l) => (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(n.value), { + "is-loading": e.isLoading, + data: e.data, + "total-data": e.totalData, + "search-enabled": e.searchEnabled, + search: e.search, + "sort-enabled": e.sortEnabled, + "current-sort": e.currentSort, + "current-page": e.currentPage, + "page-size-options": e.pageSizeOptions, + "sort-options": e.sortOptions, + "page-size": e.pageSize, + "filters-enabled": e.filtersEnabled, + filters: e.filters, + "filter-values": e.filterValues, + "onUpdate:search": l[0] || (l[0] = (a) => t2("update:search", a)), + "onUpdate:currentSort": l[1] || (l[1] = (a) => t2("update:current-sort", a)), + "onUpdate:pageSize": l[2] || (l[2] = (a) => t2("update:page-size", a)), + "onUpdate:currentPage": l[3] || (l[3] = (a) => t2("update:current-page", a)), + "onUpdate:filterValues": l[4] || (l[4] = (a) => t2("update:filter-values", a)) + }, { + data: vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "data", { + data: a, + isLoading: u + }, () => [ + vue.createVNode(pt, { + data: a, + "is-loading": u + }, null, 8, ["data", "is-loading"]) + ]) + ]), + "filters-top": vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "filters-top", { + data: a, + isLoading: u + }) + ]), + "filters-bottom": vue.withCtx(({ data: a, isLoading: u }) => [ + vue.renderSlot(e.$slots, "filters-bottom", { + data: a, + isLoading: u + }) + ]), + _: 3 + }, 40, ["is-loading", "data", "total-data", "search-enabled", "search", "sort-enabled", "current-sort", "current-page", "page-size-options", "sort-options", "page-size", "filters-enabled", "filters", "filter-values"])); + } + }), mt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVString", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("span", { + class: vue.normalizeClass(t2.column.classes) + }, vue.toDisplayString(t2.item[t2.column.field]), 3)); + } + }), ft = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVDate", + props: { + item: {}, + column: {} + }, + setup(i) { + const t2 = i, o = vue.computed(() => { + let n = null; + try { + n = new Date(t2.item[t2.column.field]); + } catch (a) { + return console.error(a), ""; + } + let e; + if (t2.column.language !== void 0 && t2.column.language !== null && (e = t2.column.language), typeof t2.column.format == "string") { + let a = null; + switch (t2.column.format) { + case "date": + a = { + dateStyle: "medium" + }; + break; + case "time": + a = { + timeStyle: "short" + }; + break; + case "datetime": + a = { + dateStyle: "medium", + timeStyle: "short" + }; + break; + } + return new Intl.DateTimeFormat(e, a).format(n); + } + return typeof t2.column.format == "object" && t2.column.format !== null ? new Intl.DateTimeFormat( + e, + t2.column.format + ).format(n) : new Intl.DateTimeFormat(e).format(n); + }); + return (n, e) => (vue.openBlock(), vue.createElementBlock("span", { + class: vue.normalizeClass(n.column.classes) + }, vue.toDisplayString(o.value), 3)); + } + }), gt = { key: 0 }, ht = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVButton", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.item[t2.column.field] ? (vue.openBlock(), vue.createElementBlock("span", gt, [ + vue.createVNode(vue.unref(X), { + href: t2.item[t2.column.field].link, + "css-classes": t2.item[t2.column.field].classes, + "new-tab": t2.item[t2.column.field].new_tab, + size: t2.column.size, + variant: t2.column.variant + }, { + default: vue.withCtx(() => [ + vue.createTextVNode(vue.toDisplayString(t2.item[t2.column.field].text), 1) + ]), + _: 1 + }, 8, ["href", "css-classes", "new-tab", "size", "variant"]) + ])) : vue.createCommentVNode("", true); + } + }), vt = { key: 0 }, bt = ["href", "target"], yt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVLink", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.item[t2.column.field] ? (vue.openBlock(), vue.createElementBlock("span", vt, [ + vue.createElementVNode("a", { + href: t2.item[t2.column.field].link, + class: vue.normalizeClass(t2.column.classes), + target: t2.item[t2.column.field].new_tab ? "_blank" : "_self" + }, vue.toDisplayString(t2.item[t2.column.field].text), 11, bt) + ])) : vue.createCommentVNode("", true); + } + }), _t = ["innerHTML"], $t = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVHTML", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("span", { + innerHTML: t2.item[t2.column.field] + }, null, 8, _t)); + } + }), kt = { + key: 0, + class: "dropdown" + }, zt = /* @__PURE__ */ vue.createStaticVNode('<button class="btn p-1" type="button" data-bs-toggle="dropdown" aria-expanded="false" style="line-height:1rem;"><svg width="16px" height="16px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M12 13.75C12.9665 13.75 13.75 12.9665 13.75 12C13.75 11.0335 12.9665 10.25 12 10.25C11.0335 10.25 10.25 11.0335 10.25 12C10.25 12.9665 11.0335 13.75 12 13.75Z" fill="#000000"></path><path d="M19 13.75C19.9665 13.75 20.75 12.9665 20.75 12C20.75 11.0335 19.9665 10.25 19 10.25C18.0335 10.25 17.25 11.0335 17.25 12C17.25 12.9665 18.0335 13.75 19 13.75Z" fill="#000000"></path><path d="M5 13.75C5.9665 13.75 6.75 12.9665 6.75 12C6.75 11.0335 5.9665 10.25 5 10.25C4.0335 10.25 3.25 11.0335 3.25 12C3.25 12.9665 4.0335 13.75 5 13.75Z" fill="#000000"></path></svg></button>', 1), St = { class: "dropdown-menu" }, wt = { + key: 0, + class: "dropdown-divider" + }, Ct = ["href", "target"], Bt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVActions", + props: { + item: {}, + column: {} + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.item[t2.column.field].entries()); + return (n, e) => o.value ? (vue.openBlock(), vue.createElementBlock("div", kt, [ + zt, + vue.createElementVNode("ul", St, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(o.value, ([l, a]) => (vue.openBlock(), vue.createElementBlock("li", { key: l }, [ + a.divider ? (vue.openBlock(), vue.createElementBlock("hr", wt)) : (vue.openBlock(), vue.createElementBlock("a", { + key: 1, + href: a.link, + class: vue.normalizeClass(["dropdown-item", a.classes ?? ""]), + target: a.new_tab ? "_blank" : "_self" + }, vue.toDisplayString(a.text), 11, Ct)) + ]))), 128)) + ]) + ])) : vue.createCommentVNode("", true); + } + }), Vt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVColumn", + props: { + item: {}, + column: {} + }, + setup(i) { + return (t2, o) => t2.column.type == "string" ? (vue.openBlock(), vue.createBlock(mt, { + key: 0, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "date" ? (vue.openBlock(), vue.createBlock(ft, { + key: 1, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "button" ? (vue.openBlock(), vue.createBlock(ht, { + key: 2, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "link" ? (vue.openBlock(), vue.createBlock(yt, { + key: 3, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "html" ? (vue.openBlock(), vue.createBlock($t, { + key: 4, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : t2.column.type == "actions" ? (vue.openBlock(), vue.createBlock(Bt, { + key: 5, + item: t2.item, + column: t2.column + }, null, 8, ["item", "column"])) : vue.createCommentVNode("", true); + } + }), Dt = /* @__PURE__ */ vue.defineComponent({ + __name: "DDVRow", + props: { + item: {}, + columns: {} + }, + setup(i) { + return (t2, o) => (vue.openBlock(), vue.createElementBlock("tr", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(t2.columns, (n) => (vue.openBlock(), vue.createElementBlock("td", { + key: n.field, + class: "align-middle" + }, [ + vue.createVNode(Vt, { + column: n, + item: t2.item + }, null, 8, ["column", "item"]) + ]))), 128)) + ])); + } + }), Ut = { + key: 0, + class: "alert alert-info w-100" + }, Lt = { key: 0 }, Ot = { key: 1 }, It = ["colspan"], ne = /* @__PURE__ */ vue.defineComponent({ + __name: "DataDefinedVisualizer", + props: { + data: { default: null }, + columns: {}, + isLoading: { type: Boolean, default: false } + }, + setup(i) { + const t2 = i, o = vue.computed(() => t2.data === null || t2.data === void 0 || t2.data.length === 0), { t: n } = useI18n(); + return (e, l) => e.isLoading && o.value ? (vue.openBlock(), vue.createElementBlock("div", Ut, vue.toDisplayString(vue.unref(n)("loading")), 1)) : (vue.openBlock(), vue.createElementBlock("table", { + key: 1, + class: vue.normalizeClass(["table", e.isLoading ? "loading" : ""]) + }, [ + vue.createElementVNode("thead", null, [ + vue.createElementVNode("tr", null, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.columns, (a) => (vue.openBlock(), vue.createElementBlock("th", { + key: a.field + }, vue.toDisplayString(a.label), 1))), 128)) + ]) + ]), + o.value ? (vue.openBlock(), vue.createElementBlock("tbody", Ot, [ + vue.createElementVNode("tr", null, [ + vue.createElementVNode("td", { + colspan: e.columns.length + }, vue.toDisplayString(vue.unref(n)("no_data")), 9, It) + ]) + ])) : (vue.openBlock(), vue.createElementBlock("tbody", Lt, [ + (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(e.data, (a) => (vue.openBlock(), vue.createBlock(Dt, { + key: a.id, + item: a, + columns: e.columns + }, null, 8, ["item", "columns"]))), 128)) + ])) + ], 2)); + } + }); + function H(i) { + const t2 = i; + t2.__i18n = t2.__i18n || [], t2.__i18n.push({ + locale: "", + resource: { + en: { + loading: (o) => { + const { normalize: n } = o; + return n(["Loading...."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["No items to display"]); + } + }, + nl: { + loading: (o) => { + const { normalize: n } = o; + return n(["Gegevens worden laden..."]); + }, + no_data: (o) => { + const { normalize: n } = o; + return n(["Geen gegevens om te tonen"]); + } + } + } + }); + } + typeof H == "function" && H(ne); + const Ft = /* @__PURE__ */ vue.defineComponent({ + __name: "DSCList", + props: { + config: {} + }, + setup(i) { + const t2 = i, o = vue.ref(t2.config.pageSize), n = vue.ref(1), e = vue.ref(""), l = vue.ref("id"), a = vue.ref(true); + function u() { + var m; + let p = {}; + return (m = t2.config.filters) == null || m.forEach((k) => { + var O; + if (k.initial) { + p[k.field] = k.initial; + return; + } + switch (k.type) { + case "date": + p[k.field] = null; + break; + case "checkbox": + p[k.field] = []; + break; + case "radio": + ((O = k.options) == null ? void 0 : O.length) != 0 && k.options && (p[k.field] = k.options[0][0]); + break; + } + }), p; + } + const _ = vue.ref(u()); + let y = vue.ref(null); + const P = vue.computed(() => { + let p = []; + p.push("page_size=" + encodeURIComponent(o.value)); + for (const [m, k] of Object.entries(_.value)) + k != null && (typeof k == "object" ? k.forEach( + (O) => p.push(m + "=" + encodeURIComponent(O)) + ) : p.push(m + "=" + encodeURIComponent(k))); + return e.value && p.push("search=" + encodeURIComponent(e.value)), p.push("ordering=" + encodeURIComponent(l.value)), n.value = 1, p; + }), I = vue.computed(() => { + let p = P.value, m = "page=" + encodeURIComponent(n.value); + return p.length !== 0 && (m = "&" + m), "?" + p.join("&") + m; + }), U = vue.computed(() => { + let p = new URL(window.location.protocol + "//" + window.location.host); + return p.pathname = t2.config.dataUri, p.search = I.value, console.log(p.toString()), p.toString(); + }); + vue.watch(U, () => { + F(); + }); + const $ = vue.ref(null); + function F() { + $.value && $.value.abort(), $.value = new AbortController(), a.value = true, fetch(U.value, { signal: $.value.signal }).then((p) => { + p.json().then((m) => { + y.value = m, a.value = false, m.ordering && (l.value = m.ordering), $.value = null; + }); + }).catch((p) => { + console.log(p); + }); + } + return vue.onMounted(() => { + F(); + }), (p, m) => { + var k, O, Z; + return vue.openBlock(), vue.createBlock(ct, { + "is-loading": a.value, + data: ((k = vue.unref(y)) == null ? void 0 : k.results) ?? void 0, + "total-data": ((O = vue.unref(y)) == null ? void 0 : O.count) ?? 0, + "search-enabled": p.config.searchEnabled, + search: e.value, + "sort-enabled": p.config.sortEnabled, + "current-sort": l.value, + "page-size-options": p.config.pageSizeOptions, + "sort-options": p.config.sortOptions ?? [], + "page-size": ((Z = vue.unref(y)) == null ? void 0 : Z.page_size) ?? 10, + "current-page": n.value, + "filters-enabled": p.config.filtersEnabled, + filters: p.config.filters ?? [], + "filter-values": _.value, + container: p.config.container, + "onUpdate:search": m[0] || (m[0] = (C) => e.value = C), + "onUpdate:currentSort": m[1] || (m[1] = (C) => l.value = C), + "onUpdate:pageSize": m[2] || (m[2] = (C) => o.value = C), + "onUpdate:currentPage": m[3] || (m[3] = (C) => n.value = C), + "onUpdate:filterValues": m[4] || (m[4] = (C) => _.value = C) + }, { + data: vue.withCtx(({ data: C, isLoading: oe }) => [ + vue.createVNode(ne, { + data: C, + columns: p.config.columns, + "is-loading": oe + }, null, 8, ["data", "columns", "is-loading"]) + ]), + _: 1 + }, 8, ["is-loading", "data", "total-data", "search-enabled", "search", "sort-enabled", "current-sort", "page-size-options", "sort-options", "page-size", "current-page", "filters-enabled", "filters", "filter-values", "container"]); + }; + } + }); + const style = ""; + return Ft; +}(Vue); diff --git a/src/cdh/vue3/static/cdh.vue3/components/uu-list/style.css b/src/cdh/vue3/static/cdh.vue3/components/uu-list/style.css new file mode 100644 index 00000000..393f0ebd --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/components/uu-list/style.css @@ -0,0 +1,20 @@ +/*! +* Copyright 2022, 2023 Utrecht University +* +* Licensed under the EUPL, Version 1.2 only +* You may not use this work except in compliance with the +Licence. +* A copy of the Licence is provided in the 'LICENCE' file in this project. +* You may also obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +* +* Unless required by applicable law or agreed to in +writing, software distributed under the Licence is +distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +express or implied. +* See the Licence for the specific language governing +permissions and limitations under the Licence. +*/ +.card-header-icon[data-v-06938a02]{cursor:pointer}.dropdown.dropdown-select .dropdown-menu{padding-top:0}.dropdown.dropdown-select .dropdown-item:hover{background:#ffcd00;color:#000}.dropdown.dropdown-select label{width:100%} diff --git a/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.js b/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.js new file mode 100644 index 00000000..41df02f3 --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.js @@ -0,0 +1,6482 @@ +/*! + * vue-i18n v9.5.0 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ +var VueI18n = (function (exports, vue) { + 'use strict'; + + /** + * Original Utilities + * written by kazuya kawaguchi + */ + const inBrowser = typeof window !== 'undefined'; + let mark; + let measure; + { + const perf = inBrowser && window.performance; + if (perf && + perf.mark && + perf.measure && + perf.clearMarks && + // @ts-ignore browser compat + perf.clearMeasures) { + mark = (tag) => { + perf.mark(tag); + }; + measure = (name, startTag, endTag) => { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + }; + } + } + const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g; + /* eslint-disable */ + function format$1(message, ...args) { + if (args.length === 1 && isObject(args[0])) { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + return message.replace(RE_ARGS, (match, identifier) => { + return args.hasOwnProperty(identifier) ? args[identifier] : ''; + }); + } + const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); + const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source }); + const friendlyJSONstringify = (json) => JSON.stringify(json) + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + .replace(/\u0027/g, '\\u0027'); + const isNumber = (val) => typeof val === 'number' && isFinite(val); + const isDate = (val) => toTypeString(val) === '[object Date]'; + const isRegExp = (val) => toTypeString(val) === '[object RegExp]'; + const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; + const assign = Object.assign; + let _globalThis; + const getGlobalThis = () => { + // prettier-ignore + return (_globalThis || + (_globalThis = + typeof globalThis !== 'undefined' + ? globalThis + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : {})); + }; + function escapeHtml(rawText) { + return rawText + .replace(/</g, '<') + .replace(/>/g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + const hasOwnProperty = Object.prototype.hasOwnProperty; + function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); + } + /* eslint-enable */ + /** + * Useful Utilities By Evan you + * Modified by kazuya kawaguchi + * MIT License + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts + */ + const isArray = Array.isArray; + const isFunction = (val) => typeof val === 'function'; + const isString = (val) => typeof val === 'string'; + const isBoolean = (val) => typeof val === 'boolean'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const isObject = (val) => val !== null && typeof val === 'object'; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const isPlainObject = (val) => { + if (!isObject(val)) + return false; + const proto = Object.getPrototypeOf(val); + return proto === null || proto.constructor === Object; + }; + // for converting list and named values to displayed strings. + const toDisplayString = (val) => { + return val == null + ? '' + : isArray(val) || (isPlainObject(val) && val.toString === objectToString) + ? JSON.stringify(val, null, 2) + : String(val); + }; + function join(items, separator = '') { + return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), ''); + } + const RANGE = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + const lines = source.split(/\r?\n/); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (let j = i - RANGE; j <= i + RANGE || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`); + const lineLength = lines[j].length; + if (j === i) { + // push underline + const pad = start - (count - lineLength) + 1; + const length = Math.max(1, end > count ? lineLength - pad : end - start); + res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length)); + } + else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + '^'.repeat(length)); + } + count += lineLength + 1; + } + } + break; + } + } + return res.join('\n'); + } + function incrementer(code) { + let current = code; + return () => ++current; + } + + function warn(msg, err) { + if (typeof console !== 'undefined') { + console.warn(`[intlify] ` + msg); + /* istanbul ignore if */ + if (err) { + console.warn(err.stack); + } + } + } + + /** + * Event emitter, forked from the below: + * - original repository url: https://github.com/developit/mitt + * - code url: https://github.com/developit/mitt/blob/master/src/index.ts + * - author: Jason Miller (https://github.com/developit) + * - license: MIT + */ + /** + * Create a event emitter + * + * @returns An event emitter + */ + function createEmitter() { + const events = new Map(); + const emitter = { + events, + on(event, handler) { + const handlers = events.get(event); + const added = handlers && handlers.push(handler); + if (!added) { + events.set(event, [handler]); + } + }, + off(event, handler) { + const handlers = events.get(event); + if (handlers) { + handlers.splice(handlers.indexOf(handler) >>> 0, 1); + } + }, + emit(event, payload) { + (events.get(event) || []) + .slice() + .map(handler => handler(payload)); + (events.get('*') || []) + .slice() + .map(handler => handler(event, payload)); + } + }; + return emitter; + } + + function createPosition(line, column, offset) { + return { line, column, offset }; + } + function createLocation(start, end, source) { + const loc = { start, end }; + if (source != null) { + loc.source = source; + } + return loc; + } + + const CompileErrorCodes = { + // tokenizer error codes + EXPECTED_TOKEN: 1, + INVALID_TOKEN_IN_PLACEHOLDER: 2, + UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, + UNKNOWN_ESCAPE_SEQUENCE: 4, + INVALID_UNICODE_ESCAPE_SEQUENCE: 5, + UNBALANCED_CLOSING_BRACE: 6, + UNTERMINATED_CLOSING_BRACE: 7, + EMPTY_PLACEHOLDER: 8, + NOT_ALLOW_NEST_PLACEHOLDER: 9, + INVALID_LINKED_FORMAT: 10, + // parser error codes + MUST_HAVE_MESSAGES_IN_PLURAL: 11, + UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, + UNEXPECTED_EMPTY_LINKED_KEY: 13, + UNEXPECTED_LEXICAL_ANALYSIS: 14, + // generator error codes + UNHANDLED_CODEGEN_NODE_TYPE: 15, + // minifier error codes + UNHANDLED_MINIFIER_NODE_TYPE: 16, + // Special value for higher-order compilers to pick up the last code + // to avoid collision of error codes. This should always be kept as the last + // item. + __EXTEND_POINT__: 17 + }; + /** @internal */ + const errorMessages$2 = { + // tokenizer error messages + [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`, + [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`, + [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`, + [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`, + [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`, + [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`, + [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`, + [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`, + [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`, + [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`, + // parser error messages + [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`, + [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`, + // generator error messages + [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`, + // minimizer error messages + [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'` + }; + function createCompileError(code, loc, options = {}) { + const { domain, messages, args } = options; + const msg = format$1((messages || errorMessages$2)[code] || '', ...(args || [])) + ; + const error = new SyntaxError(String(msg)); + error.code = code; + if (loc) { + error.location = loc; + } + error.domain = domain; + return error; + } + /** @internal */ + function defaultOnError(error) { + throw error; + } + + const RE_HTML_TAG = /<\/?[\w\s="/.':;#-\/]+>/; + const detectHtmlTag = (source) => RE_HTML_TAG.test(source); + + const CHAR_SP = ' '; + const CHAR_CR = '\r'; + const CHAR_LF = '\n'; + const CHAR_LS = String.fromCharCode(0x2028); + const CHAR_PS = String.fromCharCode(0x2029); + function createScanner(str) { + const _buf = str; + let _index = 0; + let _line = 1; + let _column = 1; + let _peekOffset = 0; + const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF; + const isLF = (index) => _buf[index] === CHAR_LF; + const isPS = (index) => _buf[index] === CHAR_PS; + const isLS = (index) => _buf[index] === CHAR_LS; + const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index); + const index = () => _index; + const line = () => _line; + const column = () => _column; + const peekOffset = () => _peekOffset; + const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset]; + const currentChar = () => charAt(_index); + const currentPeek = () => charAt(_index + _peekOffset); + function next() { + _peekOffset = 0; + if (isLineEnd(_index)) { + _line++; + _column = 0; + } + if (isCRLF(_index)) { + _index++; + } + _index++; + _column++; + return _buf[_index]; + } + function peek() { + if (isCRLF(_index + _peekOffset)) { + _peekOffset++; + } + _peekOffset++; + return _buf[_index + _peekOffset]; + } + function reset() { + _index = 0; + _line = 1; + _column = 1; + _peekOffset = 0; + } + function resetPeek(offset = 0) { + _peekOffset = offset; + } + function skipToPeek() { + const target = _index + _peekOffset; + // eslint-disable-next-line no-unmodified-loop-condition + while (target !== _index) { + next(); + } + _peekOffset = 0; + } + return { + index, + line, + column, + peekOffset, + charAt, + currentChar, + currentPeek, + next, + peek, + reset, + resetPeek, + skipToPeek + }; + } + + const EOF = undefined; + const DOT = '.'; + const LITERAL_DELIMITER = "'"; + const ERROR_DOMAIN$3 = 'tokenizer'; + function createTokenizer(source, options = {}) { + const location = options.location !== false; + const _scnr = createScanner(source); + const currentOffset = () => _scnr.index(); + const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); + const _initLoc = currentPosition(); + const _initOffset = currentOffset(); + const _context = { + currentType: 14 /* TokenTypes.EOF */, + offset: _initOffset, + startLoc: _initLoc, + endLoc: _initLoc, + lastType: 14 /* TokenTypes.EOF */, + lastOffset: _initOffset, + lastStartLoc: _initLoc, + lastEndLoc: _initLoc, + braceNest: 0, + inLinked: false, + text: '' + }; + const context = () => _context; + const { onError } = options; + function emitError(code, pos, offset, ...args) { + const ctx = context(); + pos.column += offset; + pos.offset += offset; + if (onError) { + const loc = location ? createLocation(ctx.startLoc, pos) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$3, + args + }); + onError(err); + } + } + function getToken(context, type, value) { + context.endLoc = currentPosition(); + context.currentType = type; + const token = { type }; + if (location) { + token.loc = createLocation(context.startLoc, context.endLoc); + } + if (value != null) { + token.value = value; + } + return token; + } + const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */); + function eat(scnr, ch) { + if (scnr.currentChar() === ch) { + scnr.next(); + return ch; + } + else { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + return ''; + } + } + function peekSpaces(scnr) { + let buf = ''; + while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { + buf += scnr.currentPeek(); + scnr.peek(); + } + return buf; + } + function skipSpaces(scnr) { + const buf = peekSpaces(scnr); + scnr.skipToPeek(); + return buf; + } + function isIdentifierStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return ((cc >= 97 && cc <= 122) || // a-z + (cc >= 65 && cc <= 90) || // A-Z + cc === 95 // _ + ); + } + function isNumberStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; // 0-9 + } + function isNamedIdentifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isListIdentifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek(); + const ret = isNumberStart(ch); + scnr.resetPeek(); + return ret; + } + function isLiteralStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === LITERAL_DELIMITER; + scnr.resetPeek(); + return ret; + } + function isLinkedDotStart(scnr, context) { + const { currentType } = context; + if (currentType !== 8 /* TokenTypes.LinkedAlias */) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */; + scnr.resetPeek(); + return ret; + } + function isLinkedModifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 9 /* TokenTypes.LinkedDot */) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isLinkedDelimiterStart(scnr, context) { + const { currentType } = context; + if (!(currentType === 8 /* TokenTypes.LinkedAlias */ || + currentType === 12 /* TokenTypes.LinkedModifier */)) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */; + scnr.resetPeek(); + return ret; + } + function isLinkedReferStart(scnr, context) { + const { currentType } = context; + if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) { + return false; + } + const fn = () => { + const ch = scnr.currentPeek(); + if (ch === "{" /* TokenChars.BraceLeft */) { + return isIdentifierStart(scnr.peek()); + } + else if (ch === "@" /* TokenChars.LinkedAlias */ || + ch === "%" /* TokenChars.Modulo */ || + ch === "|" /* TokenChars.Pipe */ || + ch === ":" /* TokenChars.LinkedDelimiter */ || + ch === "." /* TokenChars.LinkedDot */ || + ch === CHAR_SP || + !ch) { + return false; + } + else if (ch === CHAR_LF) { + scnr.peek(); + return fn(); + } + else { + // other characters + return isIdentifierStart(ch); + } + }; + const ret = fn(); + scnr.resetPeek(); + return ret; + } + function isPluralStart(scnr) { + peekSpaces(scnr); + const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */; + scnr.resetPeek(); + return ret; + } + function detectModuloStart(scnr) { + const spaces = peekSpaces(scnr); + const ret = scnr.currentPeek() === "%" /* TokenChars.Modulo */ && + scnr.peek() === "{" /* TokenChars.BraceLeft */; + scnr.resetPeek(); + return { + isModulo: ret, + hasSpace: spaces.length > 0 + }; + } + function isTextStart(scnr, reset = true) { + const fn = (hasSpace = false, prev = '', detectModulo = false) => { + const ch = scnr.currentPeek(); + if (ch === "{" /* TokenChars.BraceLeft */) { + return prev === "%" /* TokenChars.Modulo */ ? false : hasSpace; + } + else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) { + return prev === "%" /* TokenChars.Modulo */ ? true : hasSpace; + } + else if (ch === "%" /* TokenChars.Modulo */) { + scnr.peek(); + return fn(hasSpace, "%" /* TokenChars.Modulo */, true); + } + else if (ch === "|" /* TokenChars.Pipe */) { + return prev === "%" /* TokenChars.Modulo */ || detectModulo + ? true + : !(prev === CHAR_SP || prev === CHAR_LF); + } + else if (ch === CHAR_SP) { + scnr.peek(); + return fn(true, CHAR_SP, detectModulo); + } + else if (ch === CHAR_LF) { + scnr.peek(); + return fn(true, CHAR_LF, detectModulo); + } + else { + return true; + } + }; + const ret = fn(); + reset && scnr.resetPeek(); + return ret; + } + function takeChar(scnr, fn) { + const ch = scnr.currentChar(); + if (ch === EOF) { + return EOF; + } + if (fn(ch)) { + scnr.next(); + return ch; + } + return null; + } + function takeIdentifierChar(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return ((cc >= 97 && cc <= 122) || // a-z + (cc >= 65 && cc <= 90) || // A-Z + (cc >= 48 && cc <= 57) || // 0-9 + cc === 95 || // _ + cc === 36 // $ + ); + }; + return takeChar(scnr, closure); + } + function takeDigit(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; // 0-9 + }; + return takeChar(scnr, closure); + } + function takeHexDigit(scnr) { + const closure = (ch) => { + const cc = ch.charCodeAt(0); + return ((cc >= 48 && cc <= 57) || // 0-9 + (cc >= 65 && cc <= 70) || // A-F + (cc >= 97 && cc <= 102)); // a-f + }; + return takeChar(scnr, closure); + } + function getDigits(scnr) { + let ch = ''; + let num = ''; + while ((ch = takeDigit(scnr))) { + num += ch; + } + return num; + } + function readModulo(scnr) { + skipSpaces(scnr); + const ch = scnr.currentChar(); + if (ch !== "%" /* TokenChars.Modulo */) { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + } + scnr.next(); + return "%" /* TokenChars.Modulo */; + } + function readText(scnr) { + let buf = ''; + while (true) { + const ch = scnr.currentChar(); + if (ch === "{" /* TokenChars.BraceLeft */ || + ch === "}" /* TokenChars.BraceRight */ || + ch === "@" /* TokenChars.LinkedAlias */ || + ch === "|" /* TokenChars.Pipe */ || + !ch) { + break; + } + else if (ch === "%" /* TokenChars.Modulo */) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } + else { + break; + } + } + else if (ch === CHAR_SP || ch === CHAR_LF) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } + else if (isPluralStart(scnr)) { + break; + } + else { + buf += ch; + scnr.next(); + } + } + else { + buf += ch; + scnr.next(); + } + } + return buf; + } + function readNamedIdentifier(scnr) { + skipSpaces(scnr); + let ch = ''; + let name = ''; + while ((ch = takeIdentifierChar(scnr))) { + name += ch; + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return name; + } + function readListIdentifier(scnr) { + skipSpaces(scnr); + let value = ''; + if (scnr.currentChar() === '-') { + scnr.next(); + value += `-${getDigits(scnr)}`; + } + else { + value += getDigits(scnr); + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return value; + } + function readLiteral(scnr) { + skipSpaces(scnr); + eat(scnr, `\'`); + let ch = ''; + let literal = ''; + const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF; + while ((ch = takeChar(scnr, fn))) { + if (ch === '\\') { + literal += readEscapeSequence(scnr); + } + else { + literal += ch; + } + } + const current = scnr.currentChar(); + if (current === CHAR_LF || current === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); + // TODO: Is it correct really? + if (current === CHAR_LF) { + scnr.next(); + eat(scnr, `\'`); + } + return literal; + } + eat(scnr, `\'`); + return literal; + } + function readEscapeSequence(scnr) { + const ch = scnr.currentChar(); + switch (ch) { + case '\\': + case `\'`: + scnr.next(); + return `\\${ch}`; + case 'u': + return readUnicodeEscapeSequence(scnr, ch, 4); + case 'U': + return readUnicodeEscapeSequence(scnr, ch, 6); + default: + emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); + return ''; + } + } + function readUnicodeEscapeSequence(scnr, unicode, digits) { + eat(scnr, unicode); + let sequence = ''; + for (let i = 0; i < digits; i++) { + const ch = takeHexDigit(scnr); + if (!ch) { + emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); + break; + } + sequence += ch; + } + return `\\${unicode}${sequence}`; + } + function readInvalidIdentifier(scnr) { + skipSpaces(scnr); + let ch = ''; + let identifiers = ''; + const closure = (ch) => ch !== "{" /* TokenChars.BraceLeft */ && + ch !== "}" /* TokenChars.BraceRight */ && + ch !== CHAR_SP && + ch !== CHAR_LF; + while ((ch = takeChar(scnr, closure))) { + identifiers += ch; + } + return identifiers; + } + function readLinkedModifier(scnr) { + let ch = ''; + let name = ''; + while ((ch = takeIdentifierChar(scnr))) { + name += ch; + } + return name; + } + function readLinkedRefer(scnr) { + const fn = (detect = false, buf) => { + const ch = scnr.currentChar(); + if (ch === "{" /* TokenChars.BraceLeft */ || + ch === "%" /* TokenChars.Modulo */ || + ch === "@" /* TokenChars.LinkedAlias */ || + ch === "|" /* TokenChars.Pipe */ || + ch === "(" /* TokenChars.ParenLeft */ || + ch === ")" /* TokenChars.ParenRight */ || + !ch) { + return buf; + } + else if (ch === CHAR_SP) { + return buf; + } + else if (ch === CHAR_LF || ch === DOT) { + buf += ch; + scnr.next(); + return fn(detect, buf); + } + else { + buf += ch; + scnr.next(); + return fn(true, buf); + } + }; + return fn(false, ''); + } + function readPlural(scnr) { + skipSpaces(scnr); + const plural = eat(scnr, "|" /* TokenChars.Pipe */); + skipSpaces(scnr); + return plural; + } + // TODO: We need refactoring of token parsing ... + function readTokenInPlaceholder(scnr, context) { + let token = null; + const ch = scnr.currentChar(); + switch (ch) { + case "{" /* TokenChars.BraceLeft */: + if (context.braceNest >= 1) { + emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */); + skipSpaces(scnr); + context.braceNest++; + return token; + case "}" /* TokenChars.BraceRight */: + if (context.braceNest > 0 && + context.currentType === 2 /* TokenTypes.BraceLeft */) { + emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */); + context.braceNest--; + context.braceNest > 0 && skipSpaces(scnr); + if (context.inLinked && context.braceNest === 0) { + context.inLinked = false; + } + return token; + case "@" /* TokenChars.LinkedAlias */: + if (context.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = readTokenInLinked(scnr, context) || getEndToken(context); + context.braceNest = 0; + return token; + default: + let validNamedIdentifier = true; + let validListIdentifier = true; + let validLiteral = true; + if (isPluralStart(scnr)) { + if (context.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + if (context.braceNest > 0 && + (context.currentType === 5 /* TokenTypes.Named */ || + context.currentType === 6 /* TokenTypes.List */ || + context.currentType === 7 /* TokenTypes.Literal */)) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + context.braceNest = 0; + return readToken(scnr, context); + } + if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) { + token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if ((validListIdentifier = isListIdentifierStart(scnr, context))) { + token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if ((validLiteral = isLiteralStart(scnr, context))) { + token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr)); + skipSpaces(scnr); + return token; + } + if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { + // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ... + token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr)); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value); + skipSpaces(scnr); + return token; + } + break; + } + return token; + } + // TODO: We need refactoring of token parsing ... + function readTokenInLinked(scnr, context) { + const { currentType } = context; + let token = null; + const ch = scnr.currentChar(); + if ((currentType === 8 /* TokenTypes.LinkedAlias */ || + currentType === 9 /* TokenTypes.LinkedDot */ || + currentType === 12 /* TokenTypes.LinkedModifier */ || + currentType === 10 /* TokenTypes.LinkedDelimiter */) && + (ch === CHAR_LF || ch === CHAR_SP)) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + switch (ch) { + case "@" /* TokenChars.LinkedAlias */: + scnr.next(); + token = getToken(context, 8 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */); + context.inLinked = true; + return token; + case "." /* TokenChars.LinkedDot */: + skipSpaces(scnr); + scnr.next(); + return getToken(context, 9 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */); + case ":" /* TokenChars.LinkedDelimiter */: + skipSpaces(scnr); + scnr.next(); + return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */); + default: + if (isPluralStart(scnr)) { + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + if (isLinkedDotStart(scnr, context) || + isLinkedDelimiterStart(scnr, context)) { + skipSpaces(scnr); + return readTokenInLinked(scnr, context); + } + if (isLinkedModifierStart(scnr, context)) { + skipSpaces(scnr); + return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr)); + } + if (isLinkedReferStart(scnr, context)) { + skipSpaces(scnr); + if (ch === "{" /* TokenChars.BraceLeft */) { + // scan the placeholder + return readTokenInPlaceholder(scnr, context) || token; + } + else { + return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr)); + } + } + if (currentType === 8 /* TokenTypes.LinkedAlias */) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + context.braceNest = 0; + context.inLinked = false; + return readToken(scnr, context); + } + } + // TODO: We need refactoring of token parsing ... + function readToken(scnr, context) { + let token = { type: 14 /* TokenTypes.EOF */ }; + if (context.braceNest > 0) { + return readTokenInPlaceholder(scnr, context) || getEndToken(context); + } + if (context.inLinked) { + return readTokenInLinked(scnr, context) || getEndToken(context); + } + const ch = scnr.currentChar(); + switch (ch) { + case "{" /* TokenChars.BraceLeft */: + return readTokenInPlaceholder(scnr, context) || getEndToken(context); + case "}" /* TokenChars.BraceRight */: + emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); + scnr.next(); + return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */); + case "@" /* TokenChars.LinkedAlias */: + return readTokenInLinked(scnr, context) || getEndToken(context); + default: + if (isPluralStart(scnr)) { + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + const { isModulo, hasSpace } = detectModuloStart(scnr); + if (isModulo) { + return hasSpace + ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr)) + : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr)); + } + if (isTextStart(scnr)) { + return getToken(context, 0 /* TokenTypes.Text */, readText(scnr)); + } + break; + } + return token; + } + function nextToken() { + const { currentType, offset, startLoc, endLoc } = _context; + _context.lastType = currentType; + _context.lastOffset = offset; + _context.lastStartLoc = startLoc; + _context.lastEndLoc = endLoc; + _context.offset = currentOffset(); + _context.startLoc = currentPosition(); + if (_scnr.currentChar() === EOF) { + return getToken(_context, 14 /* TokenTypes.EOF */); + } + return readToken(_scnr, _context); + } + return { + nextToken, + currentOffset, + currentPosition, + context + }; + } + + const ERROR_DOMAIN$2 = 'parser'; + // Backslash backslash, backslash quote, uHHHH, UHHHHHH. + const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; + function fromEscapeSequence(match, codePoint4, codePoint6) { + switch (match) { + case `\\\\`: + return `\\`; + case `\\\'`: + return `\'`; + default: { + const codePoint = parseInt(codePoint4 || codePoint6, 16); + if (codePoint <= 0xd7ff || codePoint >= 0xe000) { + return String.fromCodePoint(codePoint); + } + // invalid ... + // Replace them with U+FFFD REPLACEMENT CHARACTER. + return '�'; + } + } + } + function createParser(options = {}) { + const location = options.location !== false; + const { onError } = options; + function emitError(tokenzer, code, start, offset, ...args) { + const end = tokenzer.currentPosition(); + end.offset += offset; + end.column += offset; + if (onError) { + const loc = location ? createLocation(start, end) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$2, + args + }); + onError(err); + } + } + function startNode(type, offset, loc) { + const node = { type }; + if (location) { + node.start = offset; + node.end = offset; + node.loc = { start: loc, end: loc }; + } + return node; + } + function endNode(node, offset, pos, type) { + if (type) { + node.type = type; + } + if (location) { + node.end = offset; + if (node.loc) { + node.loc.end = pos; + } + } + } + function parseText(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseList(tokenizer, index) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(5 /* NodeTypes.List */, offset, loc); + node.index = parseInt(index, 10); + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseNamed(tokenizer, key) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(4 /* NodeTypes.Named */, offset, loc); + node.key = key; + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLiteral(tokenizer, value) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(9 /* NodeTypes.Literal */, offset, loc); + node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinkedModifier(tokenizer) { + const token = tokenizer.nextToken(); + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc + const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc); + if (token.type !== 12 /* TokenTypes.LinkedModifier */) { + // empty modifier + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); + node.value = ''; + endNode(node, offset, loc); + return { + nextConsumeToken: token, + node + }; + } + // check token + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.value = token.value || ''; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node + }; + } + function parseLinkedKey(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinked(tokenizer) { + const context = tokenizer.context(); + const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc); + let token = tokenizer.nextToken(); + if (token.type === 9 /* TokenTypes.LinkedDot */) { + const parsed = parseLinkedModifier(tokenizer); + linkedNode.modifier = parsed.node; + token = parsed.nextConsumeToken || tokenizer.nextToken(); + } + // asset check token + if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + token = tokenizer.nextToken(); + // skip brace left + if (token.type === 2 /* TokenTypes.BraceLeft */) { + token = tokenizer.nextToken(); + } + switch (token.type) { + case 11 /* TokenTypes.LinkedKey */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLinkedKey(tokenizer, token.value || ''); + break; + case 5 /* TokenTypes.Named */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseNamed(tokenizer, token.value || ''); + break; + case 6 /* TokenTypes.List */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseList(tokenizer, token.value || ''); + break; + case 7 /* TokenTypes.Literal */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLiteral(tokenizer, token.value || ''); + break; + default: + // empty key + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); + const nextContext = tokenizer.context(); + const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc); + emptyLinkedKeyNode.value = ''; + endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); + linkedNode.key = emptyLinkedKeyNode; + endNode(linkedNode, nextContext.offset, nextContext.startLoc); + return { + nextConsumeToken: token, + node: linkedNode + }; + } + endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node: linkedNode + }; + } + function parseMessage(tokenizer) { + const context = tokenizer.context(); + const startOffset = context.currentType === 1 /* TokenTypes.Pipe */ + ? tokenizer.currentOffset() + : context.offset; + const startLoc = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.endLoc + : context.startLoc; + const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc); + node.items = []; + let nextToken = null; + do { + const token = nextToken || tokenizer.nextToken(); + nextToken = null; + switch (token.type) { + case 0 /* TokenTypes.Text */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseText(tokenizer, token.value || '')); + break; + case 6 /* TokenTypes.List */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseList(tokenizer, token.value || '')); + break; + case 5 /* TokenTypes.Named */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseNamed(tokenizer, token.value || '')); + break; + case 7 /* TokenTypes.Literal */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseLiteral(tokenizer, token.value || '')); + break; + case 8 /* TokenTypes.LinkedAlias */: + const parsed = parseLinked(tokenizer); + node.items.push(parsed.node); + nextToken = parsed.nextConsumeToken || null; + break; + } + } while (context.currentType !== 14 /* TokenTypes.EOF */ && + context.currentType !== 1 /* TokenTypes.Pipe */); + // adjust message node loc + const endOffset = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.lastOffset + : tokenizer.currentOffset(); + const endLoc = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.lastEndLoc + : tokenizer.currentPosition(); + endNode(node, endOffset, endLoc); + return node; + } + function parsePlural(tokenizer, offset, loc, msgNode) { + const context = tokenizer.context(); + let hasEmptyMessage = msgNode.items.length === 0; + const node = startNode(1 /* NodeTypes.Plural */, offset, loc); + node.cases = []; + node.cases.push(msgNode); + do { + const msg = parseMessage(tokenizer); + if (!hasEmptyMessage) { + hasEmptyMessage = msg.items.length === 0; + } + node.cases.push(msg); + } while (context.currentType !== 14 /* TokenTypes.EOF */); + if (hasEmptyMessage) { + emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseResource(tokenizer) { + const context = tokenizer.context(); + const { offset, startLoc } = context; + const msgNode = parseMessage(tokenizer); + if (context.currentType === 14 /* TokenTypes.EOF */) { + return msgNode; + } + else { + return parsePlural(tokenizer, offset, startLoc, msgNode); + } + } + function parse(source) { + const tokenizer = createTokenizer(source, assign({}, options)); + const context = tokenizer.context(); + const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc); + if (location && node.loc) { + node.loc.source = source; + } + node.body = parseResource(tokenizer); + if (options.onCacheKey) { + node.cacheKey = options.onCacheKey(source); + } + // assert whether achieved to EOF + if (context.currentType !== 14 /* TokenTypes.EOF */) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ''); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + return { parse }; + } + function getTokenCaption(token) { + if (token.type === 14 /* TokenTypes.EOF */) { + return 'EOF'; + } + const name = (token.value || '').replace(/\r?\n/gu, '\\n'); + return name.length > 10 ? name.slice(0, 9) + '…' : name; + } + + function createTransformer(ast, options = {} // eslint-disable-line + ) { + const _context = { + ast, + helpers: new Set() + }; + const context = () => _context; + const helper = (name) => { + _context.helpers.add(name); + return name; + }; + return { context, helper }; + } + function traverseNodes(nodes, transformer) { + for (let i = 0; i < nodes.length; i++) { + traverseNode(nodes[i], transformer); + } + } + function traverseNode(node, transformer) { + // TODO: if we need pre-hook of transform, should be implemented to here + switch (node.type) { + case 1 /* NodeTypes.Plural */: + traverseNodes(node.cases, transformer); + transformer.helper("plural" /* HelperNameMap.PLURAL */); + break; + case 2 /* NodeTypes.Message */: + traverseNodes(node.items, transformer); + break; + case 6 /* NodeTypes.Linked */: + const linked = node; + traverseNode(linked.key, transformer); + transformer.helper("linked" /* HelperNameMap.LINKED */); + transformer.helper("type" /* HelperNameMap.TYPE */); + break; + case 5 /* NodeTypes.List */: + transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */); + transformer.helper("list" /* HelperNameMap.LIST */); + break; + case 4 /* NodeTypes.Named */: + transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */); + transformer.helper("named" /* HelperNameMap.NAMED */); + break; + } + // TODO: if we need post-hook of transform, should be implemented to here + } + // transform AST + function transform(ast, options = {} // eslint-disable-line + ) { + const transformer = createTransformer(ast); + transformer.helper("normalize" /* HelperNameMap.NORMALIZE */); + // traverse + ast.body && traverseNode(ast.body, transformer); + // set meta information + const context = transformer.context(); + ast.helpers = Array.from(context.helpers); + } + + function optimize(ast) { + const body = ast.body; + if (body.type === 2 /* NodeTypes.Message */) { + optimizeMessageNode(body); + } + else { + body.cases.forEach(c => optimizeMessageNode(c)); + } + return ast; + } + function optimizeMessageNode(message) { + if (message.items.length === 1) { + const item = message.items[0]; + if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) { + message.static = item.value; + delete item.value; // optimization for size + } + } + else { + const values = []; + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) { + break; + } + if (item.value == null) { + break; + } + values.push(item.value); + } + if (values.length === message.items.length) { + message.static = join(values); + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) { + delete item.value; // optimization for size + } + } + } + } + } + + const ERROR_DOMAIN$1 = 'minifier'; + /* eslint-disable @typescript-eslint/no-explicit-any */ + function minify(node) { + node.t = node.type; + switch (node.type) { + case 0 /* NodeTypes.Resource */: + const resource = node; + minify(resource.body); + resource.b = resource.body; + delete resource.body; + break; + case 1 /* NodeTypes.Plural */: + const plural = node; + const cases = plural.cases; + for (let i = 0; i < cases.length; i++) { + minify(cases[i]); + } + plural.c = cases; + delete plural.cases; + break; + case 2 /* NodeTypes.Message */: + const message = node; + const items = message.items; + for (let i = 0; i < items.length; i++) { + minify(items[i]); + } + message.i = items; + delete message.items; + if (message.static) { + message.s = message.static; + delete message.static; + } + break; + case 3 /* NodeTypes.Text */: + case 9 /* NodeTypes.Literal */: + case 8 /* NodeTypes.LinkedModifier */: + case 7 /* NodeTypes.LinkedKey */: + const valueNode = node; + if (valueNode.value) { + valueNode.v = valueNode.value; + delete valueNode.value; + } + break; + case 6 /* NodeTypes.Linked */: + const linked = node; + minify(linked.key); + linked.k = linked.key; + delete linked.key; + if (linked.modifier) { + minify(linked.modifier); + linked.m = linked.modifier; + delete linked.modifier; + } + break; + case 5 /* NodeTypes.List */: + const list = node; + list.i = list.index; + delete list.index; + break; + case 4 /* NodeTypes.Named */: + const named = node; + named.k = named.key; + delete named.key; + break; + default: + { + throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, { + domain: ERROR_DOMAIN$1, + args: [node.type] + }); + } + } + delete node.type; + } + /* eslint-enable @typescript-eslint/no-explicit-any */ + + const ERROR_DOMAIN = 'parser'; + function createCodeGenerator(ast, options) { + const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options; + const location = options.location !== false; + const _context = { + filename, + code: '', + column: 1, + line: 1, + offset: 0, + map: undefined, + breakLineCode, + needIndent: _needIndent, + indentLevel: 0 + }; + if (location && ast.loc) { + _context.source = ast.loc.source; + } + const context = () => _context; + function push(code, node) { + _context.code += code; + } + function _newline(n, withBreakLine = true) { + const _breakLineCode = withBreakLine ? breakLineCode : ''; + push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode); + } + function indent(withNewLine = true) { + const level = ++_context.indentLevel; + withNewLine && _newline(level); + } + function deindent(withNewLine = true) { + const level = --_context.indentLevel; + withNewLine && _newline(level); + } + function newline() { + _newline(_context.indentLevel); + } + const helper = (key) => `_${key}`; + const needIndent = () => _context.needIndent; + return { + context, + push, + indent, + deindent, + newline, + helper, + needIndent + }; + } + function generateLinkedNode(generator, node) { + const { helper } = generator; + generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`); + generateNode(generator, node.key); + if (node.modifier) { + generator.push(`, `); + generateNode(generator, node.modifier); + generator.push(`, _type`); + } + else { + generator.push(`, undefined, _type`); + } + generator.push(`)`); + } + function generateMessageNode(generator, node) { + const { helper, needIndent } = generator; + generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`); + generator.indent(needIndent()); + const length = node.items.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.items[i]); + if (i === length - 1) { + break; + } + generator.push(', '); + } + generator.deindent(needIndent()); + generator.push('])'); + } + function generatePluralNode(generator, node) { + const { helper, needIndent } = generator; + if (node.cases.length > 1) { + generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`); + generator.indent(needIndent()); + const length = node.cases.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.cases[i]); + if (i === length - 1) { + break; + } + generator.push(', '); + } + generator.deindent(needIndent()); + generator.push(`])`); + } + } + function generateResource(generator, node) { + if (node.body) { + generateNode(generator, node.body); + } + else { + generator.push('null'); + } + } + function generateNode(generator, node) { + const { helper } = generator; + switch (node.type) { + case 0 /* NodeTypes.Resource */: + generateResource(generator, node); + break; + case 1 /* NodeTypes.Plural */: + generatePluralNode(generator, node); + break; + case 2 /* NodeTypes.Message */: + generateMessageNode(generator, node); + break; + case 6 /* NodeTypes.Linked */: + generateLinkedNode(generator, node); + break; + case 8 /* NodeTypes.LinkedModifier */: + generator.push(JSON.stringify(node.value), node); + break; + case 7 /* NodeTypes.LinkedKey */: + generator.push(JSON.stringify(node.value), node); + break; + case 5 /* NodeTypes.List */: + generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node); + break; + case 4 /* NodeTypes.Named */: + generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node); + break; + case 9 /* NodeTypes.Literal */: + generator.push(JSON.stringify(node.value), node); + break; + case 3 /* NodeTypes.Text */: + generator.push(JSON.stringify(node.value), node); + break; + default: + { + throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, { + domain: ERROR_DOMAIN, + args: [node.type] + }); + } + } + } + // generate code from AST + const generate = (ast, options = {} // eslint-disable-line + ) => { + const mode = isString(options.mode) ? options.mode : 'normal'; + const filename = isString(options.filename) + ? options.filename + : 'message.intl'; + const sourceMap = !!options.sourceMap; + // prettier-ignore + const breakLineCode = options.breakLineCode != null + ? options.breakLineCode + : mode === 'arrow' + ? ';' + : '\n'; + const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow'; + const helpers = ast.helpers || []; + const generator = createCodeGenerator(ast, { + mode, + filename, + sourceMap, + breakLineCode, + needIndent + }); + generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`); + generator.indent(needIndent); + if (helpers.length > 0) { + generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`); + generator.newline(); + } + generator.push(`return `); + generateNode(generator, ast); + generator.deindent(needIndent); + generator.push(`}`); + delete ast.helpers; + const { code, map } = generator.context(); + return { + ast, + code, + map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any + }; + }; + + function baseCompile$1(source, options = {}) { + const assignedOptions = assign({}, options); + const jit = !!assignedOptions.jit; + const enalbeMinify = !!assignedOptions.minify; + const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; + // parse source codes + const parser = createParser(assignedOptions); + const ast = parser.parse(source); + if (!jit) { + // transform ASTs + transform(ast, assignedOptions); + // generate javascript codes + return generate(ast, assignedOptions); + } + else { + // optimize ASTs + enambeOptimize && optimize(ast); + // minimize ASTs + enalbeMinify && minify(ast); + // In JIT mode, no ast transform, no code generation. + return { ast, code: '' }; + } + } + + const pathStateMachine = []; + pathStateMachine[0 /* States.BEFORE_PATH */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */], + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */] + }; + pathStateMachine[1 /* States.IN_PATH */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */], + ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */] + }; + pathStateMachine[2 /* States.BEFORE_IDENT */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */], + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */] + }; + pathStateMachine[3 /* States.IN_IDENT */] = { + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */], + ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */] + }; + pathStateMachine[4 /* States.IN_SUB_PATH */] = { + ["'" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */], + ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [ + 4 /* States.IN_SUB_PATH */, + 2 /* Actions.INC_SUB_PATH_DEPTH */ + ], + ["]" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */] + }; + pathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = { + ["'" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */] + }; + pathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = { + ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */] + }; + /** + * Check if an expression is a literal value. + */ + const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; + function isLiteral(exp) { + return literalValueRE.test(exp); + } + /** + * Strip quotes from a string + */ + function stripQuotes(str) { + const a = str.charCodeAt(0); + const b = str.charCodeAt(str.length - 1); + return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str; + } + /** + * Determine the type of a character in a keypath. + */ + function getPathCharType(ch) { + if (ch === undefined || ch === null) { + return "o" /* PathCharTypes.END_OF_FAIL */; + } + const code = ch.charCodeAt(0); + switch (code) { + case 0x5b: // [ + case 0x5d: // ] + case 0x2e: // . + case 0x22: // " + case 0x27: // ' + return ch; + case 0x5f: // _ + case 0x24: // $ + case 0x2d: // - + return "i" /* PathCharTypes.IDENT */; + case 0x09: // Tab (HT) + case 0x0a: // Newline (LF) + case 0x0d: // Return (CR) + case 0xa0: // No-break space (NBSP) + case 0xfeff: // Byte Order Mark (BOM) + case 0x2028: // Line Separator (LS) + case 0x2029: // Paragraph Separator (PS) + return "w" /* PathCharTypes.WORKSPACE */; + } + return "i" /* PathCharTypes.IDENT */; + } + /** + * Format a subPath, return its plain form if it is + * a literal string or number. Otherwise prepend the + * dynamic indicator (*). + */ + function formatSubPath(path) { + const trimmed = path.trim(); + // invalid leading 0 + if (path.charAt(0) === '0' && isNaN(parseInt(path))) { + return false; + } + return isLiteral(trimmed) + ? stripQuotes(trimmed) + : "*" /* PathCharTypes.ASTARISK */ + trimmed; + } + /** + * Parse a string path into an array of segments + */ + function parse(path) { + const keys = []; + let index = -1; + let mode = 0 /* States.BEFORE_PATH */; + let subPathDepth = 0; + let c; + let key; // eslint-disable-line + let newChar; + let type; + let transition; + let action; + let typeMap; + const actions = []; + actions[0 /* Actions.APPEND */] = () => { + if (key === undefined) { + key = newChar; + } + else { + key += newChar; + } + }; + actions[1 /* Actions.PUSH */] = () => { + if (key !== undefined) { + keys.push(key); + key = undefined; + } + }; + actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => { + actions[0 /* Actions.APPEND */](); + subPathDepth++; + }; + actions[3 /* Actions.PUSH_SUB_PATH */] = () => { + if (subPathDepth > 0) { + subPathDepth--; + mode = 4 /* States.IN_SUB_PATH */; + actions[0 /* Actions.APPEND */](); + } + else { + subPathDepth = 0; + if (key === undefined) { + return false; + } + key = formatSubPath(key); + if (key === false) { + return false; + } + else { + actions[1 /* Actions.PUSH */](); + } + } + }; + function maybeUnescapeQuote() { + const nextChar = path[index + 1]; + if ((mode === 5 /* States.IN_SINGLE_QUOTE */ && + nextChar === "'" /* PathCharTypes.SINGLE_QUOTE */) || + (mode === 6 /* States.IN_DOUBLE_QUOTE */ && + nextChar === "\"" /* PathCharTypes.DOUBLE_QUOTE */)) { + index++; + newChar = '\\' + nextChar; + actions[0 /* Actions.APPEND */](); + return true; + } + } + while (mode !== null) { + index++; + c = path[index]; + if (c === '\\' && maybeUnescapeQuote()) { + continue; + } + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap["l" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */; + // check parse error + if (transition === 8 /* States.ERROR */) { + return; + } + mode = transition[0]; + if (transition[1] !== undefined) { + action = actions[transition[1]]; + if (action) { + newChar = c; + if (action() === false) { + return; + } + } + } + // check parse finish + if (mode === 7 /* States.AFTER_PATH */) { + return keys; + } + } + } + // path token cache + const cache = new Map(); + /** + * key-value message resolver + * + * @remarks + * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved + * + * @param obj - A target object to be resolved with path + * @param path - A {@link Path | path} to resolve the value of message + * + * @returns A resolved {@link PathValue | path value} + * + * @VueI18nGeneral + */ + function resolveWithKeyValue(obj, path) { + return isObject(obj) ? obj[path] : null; + } + /** + * message resolver + * + * @remarks + * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default. + * + * @param obj - A target object to be resolved with path + * @param path - A {@link Path | path} to resolve the value of message + * + * @returns A resolved {@link PathValue | path value} + * + * @VueI18nGeneral + */ + function resolveValue(obj, path) { + // check object + if (!isObject(obj)) { + return null; + } + // parse path + let hit = cache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + cache.set(path, hit); + } + } + // check hit + if (!hit) { + return null; + } + // resolve path value + const len = hit.length; + let last = obj; + let i = 0; + while (i < len) { + const val = last[hit[i]]; + if (val === undefined) { + return null; + } + last = val; + i++; + } + return last; + } + + const DEFAULT_MODIFIER = (str) => str; + const DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line + const DEFAULT_MESSAGE_DATA_TYPE = 'text'; + const DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values); + const DEFAULT_INTERPOLATE = toDisplayString; + function pluralDefault(choice, choicesLength) { + choice = Math.abs(choice); + if (choicesLength === 2) { + // prettier-ignore + return choice + ? choice > 1 + ? 1 + : 0 + : 1; + } + return choice ? Math.min(choice, 2) : 0; + } + function getPluralIndex(options) { + // prettier-ignore + const index = isNumber(options.pluralIndex) + ? options.pluralIndex + : -1; + // prettier-ignore + return options.named && (isNumber(options.named.count) || isNumber(options.named.n)) + ? isNumber(options.named.count) + ? options.named.count + : isNumber(options.named.n) + ? options.named.n + : index + : index; + } + function normalizeNamed(pluralIndex, props) { + if (!props.count) { + props.count = pluralIndex; + } + if (!props.n) { + props.n = pluralIndex; + } + } + function createMessageContext(options = {}) { + const locale = options.locale; + const pluralIndex = getPluralIndex(options); + const pluralRule = isObject(options.pluralRules) && + isString(locale) && + isFunction(options.pluralRules[locale]) + ? options.pluralRules[locale] + : pluralDefault; + const orgPluralRule = isObject(options.pluralRules) && + isString(locale) && + isFunction(options.pluralRules[locale]) + ? pluralDefault + : undefined; + const plural = (messages) => { + return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; + }; + const _list = options.list || []; + const list = (index) => _list[index]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const _named = options.named || {}; + isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named); + const named = (key) => _named[key]; + function message(key) { + // prettier-ignore + const msg = isFunction(options.messages) + ? options.messages(key) + : isObject(options.messages) + ? options.messages[key] + : false; + return !msg + ? options.parent + ? options.parent.message(key) // resolve from parent messages + : DEFAULT_MESSAGE + : msg; + } + const _modifier = (name) => options.modifiers + ? options.modifiers[name] + : DEFAULT_MODIFIER; + const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize) + ? options.processor.normalize + : DEFAULT_NORMALIZE; + const interpolate = isPlainObject(options.processor) && + isFunction(options.processor.interpolate) + ? options.processor.interpolate + : DEFAULT_INTERPOLATE; + const type = isPlainObject(options.processor) && isString(options.processor.type) + ? options.processor.type + : DEFAULT_MESSAGE_DATA_TYPE; + const linked = (key, ...args) => { + const [arg1, arg2] = args; + let type = 'text'; + let modifier = ''; + if (args.length === 1) { + if (isObject(arg1)) { + modifier = arg1.modifier || modifier; + type = arg1.type || type; + } + else if (isString(arg1)) { + modifier = arg1 || modifier; + } + } + else if (args.length === 2) { + if (isString(arg1)) { + modifier = arg1 || modifier; + } + if (isString(arg2)) { + type = arg2 || type; + } + } + const ret = message(key)(ctx); + const msg = + // The message in vnode resolved with linked are returned as an array by processor.nomalize + type === 'vnode' && isArray(ret) && modifier + ? ret[0] + : ret; + return modifier ? _modifier(modifier)(msg, type) : msg; + }; + const ctx = { + ["list" /* HelperNameMap.LIST */]: list, + ["named" /* HelperNameMap.NAMED */]: named, + ["plural" /* HelperNameMap.PLURAL */]: plural, + ["linked" /* HelperNameMap.LINKED */]: linked, + ["message" /* HelperNameMap.MESSAGE */]: message, + ["type" /* HelperNameMap.TYPE */]: type, + ["interpolate" /* HelperNameMap.INTERPOLATE */]: interpolate, + ["normalize" /* HelperNameMap.NORMALIZE */]: normalize, + ["values" /* HelperNameMap.VALUES */]: assign({}, _list, _named) + }; + return ctx; + } + + let devtools = null; + function setDevToolsHook(hook) { + devtools = hook; + } + function initI18nDevTools(i18n, version, meta) { + // TODO: queue if devtools is undefined + devtools && + devtools.emit("i18n:init" /* IntlifyDevToolsHooks.I18nInit */, { + timestamp: Date.now(), + i18n, + version, + meta + }); + } + const translateDevTools = /* #__PURE__*/ createDevToolsHook("function:translate" /* IntlifyDevToolsHooks.FunctionTranslate */); + function createDevToolsHook(hook) { + return (payloads) => devtools && devtools.emit(hook, payloads); + } + + const CoreWarnCodes = { + NOT_FOUND_KEY: 1, + FALLBACK_TO_TRANSLATE: 2, + CANNOT_FORMAT_NUMBER: 3, + FALLBACK_TO_NUMBER_FORMAT: 4, + CANNOT_FORMAT_DATE: 5, + FALLBACK_TO_DATE_FORMAT: 6, + EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7, + __EXTEND_POINT__: 8 + }; + /** @internal */ + const warnMessages$1 = { + [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`, + [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`, + [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`, + [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.` + }; + function getWarnMessage$1(code, ...args) { + return format$1(warnMessages$1[code], ...args); + } + + /** @internal */ + function getLocale(context, options) { + return options.locale != null + ? resolveLocale(options.locale) + : resolveLocale(context.locale); + } + let _resolveLocale; + /** @internal */ + function resolveLocale(locale) { + // prettier-ignore + return isString(locale) + ? locale + : _resolveLocale != null && locale.resolvedOnce + ? _resolveLocale + : (_resolveLocale = locale()); + } + /** + * Fallback with simple implemenation + * + * @remarks + * A fallback locale function implemented with a simple fallback algorithm. + * + * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify. + * + * @param ctx - A {@link CoreContext | context} + * @param fallback - A {@link FallbackLocale | fallback locale} + * @param start - A starting {@link Locale | locale} + * + * @returns Fallback locales + * + * @VueI18nGeneral + */ + function fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars + ) { + // prettier-ignore + return [...new Set([ + start, + ...(isArray(fallback) + ? fallback + : isObject(fallback) + ? Object.keys(fallback) + : isString(fallback) + ? [fallback] + : [start]) + ])]; + } + /** + * Fallback with locale chain + * + * @remarks + * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default. + * + * @param ctx - A {@link CoreContext | context} + * @param fallback - A {@link FallbackLocale | fallback locale} + * @param start - A starting {@link Locale | locale} + * + * @returns Fallback locales + * + * @VueI18nSee [Fallbacking](../guide/essentials/fallback) + * + * @VueI18nGeneral + */ + function fallbackWithLocaleChain(ctx, fallback, start) { + const startLocale = isString(start) ? start : DEFAULT_LOCALE; + const context = ctx; + if (!context.__localeChainCache) { + context.__localeChainCache = new Map(); + } + let chain = context.__localeChainCache.get(startLocale); + if (!chain) { + chain = []; + // first block defined by start + let block = [start]; + // while any intervening block found + while (isArray(block)) { + block = appendBlockToChain(chain, block, fallback); + } + // prettier-ignore + // last block defined by default + const defaults = isArray(fallback) || !isPlainObject(fallback) + ? fallback + : fallback['default'] + ? fallback['default'] + : null; + // convert defaults to array + block = isString(defaults) ? [defaults] : defaults; + if (isArray(block)) { + appendBlockToChain(chain, block, false); + } + context.__localeChainCache.set(startLocale, chain); + } + return chain; + } + function appendBlockToChain(chain, block, blocks) { + let follow = true; + for (let i = 0; i < block.length && isBoolean(follow); i++) { + const locale = block[i]; + if (isString(locale)) { + follow = appendLocaleToChain(chain, block[i], blocks); + } + } + return follow; + } + function appendLocaleToChain(chain, locale, blocks) { + let follow; + const tokens = locale.split('-'); + do { + const target = tokens.join('-'); + follow = appendItemToChain(chain, target, blocks); + tokens.splice(-1, 1); + } while (tokens.length && follow === true); + return follow; + } + function appendItemToChain(chain, target, blocks) { + let follow = false; + if (!chain.includes(target)) { + follow = true; + if (target) { + follow = target[target.length - 1] !== '!'; + const locale = target.replace(/!/g, ''); + chain.push(locale); + if ((isArray(blocks) || isPlainObject(blocks)) && + blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + follow = blocks[locale]; + } + } + } + return follow; + } + + /* eslint-disable @typescript-eslint/no-explicit-any */ + /** + * Intlify core-base version + * @internal + */ + const VERSION$1 = '9.5.0'; + const NOT_REOSLVED = -1; + const DEFAULT_LOCALE = 'en-US'; + const MISSING_RESOLVE_VALUE = ''; + const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; + function getDefaultLinkedModifiers() { + return { + upper: (val, type) => { + // prettier-ignore + return type === 'text' && isString(val) + ? val.toUpperCase() + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? val.children.toUpperCase() + : val; + }, + lower: (val, type) => { + // prettier-ignore + return type === 'text' && isString(val) + ? val.toLowerCase() + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? val.children.toLowerCase() + : val; + }, + capitalize: (val, type) => { + // prettier-ignore + return (type === 'text' && isString(val) + ? capitalize(val) + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? capitalize(val.children) + : val); + } + }; + } + let _compiler; + function registerMessageCompiler(compiler) { + _compiler = compiler; + } + let _resolver; + /** + * Register the message resolver + * + * @param resolver - A {@link MessageResolver} function + * + * @VueI18nGeneral + */ + function registerMessageResolver(resolver) { + _resolver = resolver; + } + let _fallbacker; + /** + * Register the locale fallbacker + * + * @param fallbacker - A {@link LocaleFallbacker} function + * + * @VueI18nGeneral + */ + function registerLocaleFallbacker(fallbacker) { + _fallbacker = fallbacker; + } + // Additional Meta for Intlify DevTools + let _additionalMeta = null; + const setAdditionalMeta = /* #__PURE__*/ (meta) => { + _additionalMeta = meta; + }; + const getAdditionalMeta = /* #__PURE__*/ () => _additionalMeta; + let _fallbackContext = null; + const setFallbackContext = (context) => { + _fallbackContext = context; + }; + const getFallbackContext = () => _fallbackContext; + // ID for CoreContext + let _cid = 0; + function createCoreContext(options = {}) { + // setup options + const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; + const version = isString(options.version) ? options.version : VERSION$1; + const locale = isString(options.locale) || isFunction(options.locale) + ? options.locale + : DEFAULT_LOCALE; + const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale; + const fallbackLocale = isArray(options.fallbackLocale) || + isPlainObject(options.fallbackLocale) || + isString(options.fallbackLocale) || + options.fallbackLocale === false + ? options.fallbackLocale + : _locale; + const messages = isPlainObject(options.messages) + ? options.messages + : { [_locale]: {} }; + const datetimeFormats = isPlainObject(options.datetimeFormats) + ? options.datetimeFormats + : { [_locale]: {} } + ; + const numberFormats = isPlainObject(options.numberFormats) + ? options.numberFormats + : { [_locale]: {} } + ; + const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers()); + const pluralRules = options.pluralRules || {}; + const missing = isFunction(options.missing) ? options.missing : null; + const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) + ? options.missingWarn + : true; + const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) + ? options.fallbackWarn + : true; + const fallbackFormat = !!options.fallbackFormat; + const unresolving = !!options.unresolving; + const postTranslation = isFunction(options.postTranslation) + ? options.postTranslation + : null; + const processor = isPlainObject(options.processor) ? options.processor : null; + const warnHtmlMessage = isBoolean(options.warnHtmlMessage) + ? options.warnHtmlMessage + : true; + const escapeParameter = !!options.escapeParameter; + const messageCompiler = isFunction(options.messageCompiler) + ? options.messageCompiler + : _compiler; + const messageResolver = isFunction(options.messageResolver) + ? options.messageResolver + : _resolver || resolveWithKeyValue; + const localeFallbacker = isFunction(options.localeFallbacker) + ? options.localeFallbacker + : _fallbacker || fallbackWithSimple; + const fallbackContext = isObject(options.fallbackContext) + ? options.fallbackContext + : undefined; + // setup internal options + const internalOptions = options; + const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters) + ? internalOptions.__datetimeFormatters + : new Map() + ; + const __numberFormatters = isObject(internalOptions.__numberFormatters) + ? internalOptions.__numberFormatters + : new Map() + ; + const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {}; + _cid++; + const context = { + version, + cid: _cid, + locale, + fallbackLocale, + messages, + modifiers, + pluralRules, + missing, + missingWarn, + fallbackWarn, + fallbackFormat, + unresolving, + postTranslation, + processor, + warnHtmlMessage, + escapeParameter, + messageCompiler, + messageResolver, + localeFallbacker, + fallbackContext, + onWarn, + __meta + }; + { + context.datetimeFormats = datetimeFormats; + context.numberFormats = numberFormats; + context.__datetimeFormatters = __datetimeFormatters; + context.__numberFormatters = __numberFormatters; + } + // for vue-devtools timeline event + { + context.__v_emitter = + internalOptions.__v_emitter != null + ? internalOptions.__v_emitter + : undefined; + } + // NOTE: experimental !! + { + initI18nDevTools(context, version, __meta); + } + return context; + } + /** @internal */ + function isTranslateFallbackWarn(fallback, key) { + return fallback instanceof RegExp ? fallback.test(key) : fallback; + } + /** @internal */ + function isTranslateMissingWarn(missing, key) { + return missing instanceof RegExp ? missing.test(key) : missing; + } + /** @internal */ + function handleMissing(context, key, locale, missingWarn, type) { + const { missing, onWarn } = context; + // for vue-devtools timeline event + { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("missing" /* VueDevToolsTimelineEvents.MISSING */, { + locale, + key, + type, + groupId: `${type}:${key}` + }); + } + } + if (missing !== null) { + const ret = missing(context, locale, key, type); + return isString(ret) ? ret : key; + } + else { + if (isTranslateMissingWarn(missingWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale })); + } + return key; + } + } + /** @internal */ + function updateFallbackLocale(ctx, locale, fallback) { + const context = ctx; + context.__localeChainCache = new Map(); + ctx.localeFallbacker(ctx, fallback, locale); + } + /* eslint-enable @typescript-eslint/no-explicit-any */ + + function format(ast) { + const msg = (ctx) => formatParts(ctx, ast); + return msg; + } + function formatParts(ctx, ast) { + const body = ast.b || ast.body; + if ((body.t || body.type) === 1 /* NodeTypes.Plural */) { + const plural = body; + const cases = plural.c || plural.cases; + return ctx.plural(cases.reduce((messages, c) => [ + ...messages, + formatMessageParts(ctx, c) + ], [])); + } + else { + return formatMessageParts(ctx, body); + } + } + function formatMessageParts(ctx, node) { + const _static = node.s || node.static; + if (_static) { + return ctx.type === 'text' + ? _static + : ctx.normalize([_static]); + } + else { + const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []); + return ctx.normalize(messages); + } + } + function formatMessagePart(ctx, node) { + const type = node.t || node.type; + switch (type) { + case 3 /* NodeTypes.Text */: + const text = node; + return (text.v || text.value); + case 9 /* NodeTypes.Literal */: + const literal = node; + return (literal.v || literal.value); + case 4 /* NodeTypes.Named */: + const named = node; + return ctx.interpolate(ctx.named(named.k || named.key)); + case 5 /* NodeTypes.List */: + const list = node; + return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index)); + case 6 /* NodeTypes.Linked */: + const linked = node; + const modifier = linked.m || linked.modifier; + return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type); + case 7 /* NodeTypes.LinkedKey */: + const linkedKey = node; + return (linkedKey.v || linkedKey.value); + case 8 /* NodeTypes.LinkedModifier */: + const linkedModifier = node; + return (linkedModifier.v || linkedModifier.value); + default: + throw new Error(`unhandled node type on format message part: ${type}`); + } + } + + const code$2 = CompileErrorCodes.__EXTEND_POINT__; + const inc$2 = incrementer(code$2); + const CoreErrorCodes = { + INVALID_ARGUMENT: code$2, + INVALID_DATE_ARGUMENT: inc$2(), + INVALID_ISO_DATE_ARGUMENT: inc$2(), + NOT_SUPPORT_NON_STRING_MESSAGE: inc$2(), + __EXTEND_POINT__: inc$2() // 22 + }; + function createCoreError(code) { + return createCompileError(code, null, { messages: errorMessages$1 } ); + } + /** @internal */ + const errorMessages$1 = { + [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments', + [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' + + 'Make sure your Date represents a valid date.', + [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string', + [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message' + }; + + const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`; + function checkHtmlMessage(source, warnHtmlMessage) { + if (warnHtmlMessage && detectHtmlTag(source)) { + warn(format$1(WARN_MESSAGE, { source })); + } + } + const defaultOnCacheKey = (message) => message; + let compileCache = Object.create(null); + const isMessageAST = (val) => isObject(val) && + (val.t === 0 || val.type === 0) && + ('b' in val || 'body' in val); + function baseCompile(message, options = {}) { + // error detecting on compile + let detectError = false; + const onError = options.onError || defaultOnError; + options.onError = (err) => { + detectError = true; + onError(err); + }; + // compile with mesasge-compiler + return { ...baseCompile$1(message, options), detectError }; + } + function compile(message, context) { + if (isString(message)) { + // check HTML message + const warnHtmlMessage = isBoolean(context.warnHtmlMessage) + ? context.warnHtmlMessage + : true; + checkHtmlMessage(message, warnHtmlMessage); + // check caches + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + // compile with JIT mode + const { ast, detectError } = baseCompile(message, { + ...context, + location: true, + jit: true + }); + // compose message function from AST + const msg = format(ast); + // if occurred compile error, don't cache + return !detectError + ? (compileCache[cacheKey] = msg) + : msg; + } + else { + if (!isMessageAST(message)) { + warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`); + return (() => message); + } + // AST case (passed from bundler) + const cacheKey = message.cacheKey; + if (cacheKey) { + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + // compose message function from message (AST) + return (compileCache[cacheKey] = + format(message)); + } + else { + return format(message); + } + } + } + + const NOOP_MESSAGE_FUNCTION = () => ''; + const isMessageFunction = (val) => isFunction(val); + // implementation of `translate` function + function translate(context, ...args) { + const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; + const [key, options] = parseTranslateArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const escapeParameter = isBoolean(options.escapeParameter) + ? options.escapeParameter + : context.escapeParameter; + const resolvedMessage = !!options.resolvedMessage; + // prettier-ignore + const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option + ? !isBoolean(options.default) + ? options.default + : (!messageCompiler ? () => key : key) + : fallbackFormat // default by `fallbackFormat` option + ? (!messageCompiler ? () => key : key) + : ''; + const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== ''; + const locale = getLocale(context, options); + // escape params + escapeParameter && escapeParams(options); + // resolve message format + // eslint-disable-next-line prefer-const + let [formatScope, targetLocale, message] = !resolvedMessage + ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) + : [ + key, + locale, + messages[locale] || {} + ]; + // NOTE: + // Fix to work around `ssrTransfrom` bug in Vite. + // https://github.com/vitejs/vite/issues/4306 + // To get around this, use temporary variables. + // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243 + let format = formatScope; + // if you use default message, set it as message format! + let cacheBaseKey = key; + if (!resolvedMessage && + !(isString(format) || + isMessageAST(format) || + isMessageFunction(format))) { + if (enableDefaultMsg) { + format = defaultMsgOrKey; + cacheBaseKey = format; + } + } + // checking message format and target locale + if (!resolvedMessage && + (!(isString(format) || + isMessageAST(format) || + isMessageFunction(format)) || + !isString(targetLocale))) { + return unresolving ? NOT_REOSLVED : key; + } + // TODO: refactor + if (isString(format) && context.messageCompiler == null) { + warn(`The message format compilation is not supported in this build. ` + + `Because message compiler isn't included. ` + + `You need to pre-compilation all message format. ` + + `So translate function return '${key}'.`); + return key; + } + // setup compile error detecting + let occurred = false; + const onError = () => { + occurred = true; + }; + // compile message format + const msg = !isMessageFunction(format) + ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) + : format; + // if occurred compile error, return the message format + if (occurred) { + return format; + } + // evaluate message with context + const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); + const msgContext = createMessageContext(ctxOptions); + const messaged = evaluateMessage(context, msg, msgContext); + // if use post translation option, proceed it with handler + const ret = postTranslation + ? postTranslation(messaged, key) + : messaged; + // NOTE: experimental !! + { + // prettier-ignore + const payloads = { + timestamp: Date.now(), + key: isString(key) + ? key + : isMessageFunction(format) + ? format.key + : '', + locale: targetLocale || (isMessageFunction(format) + ? format.locale + : ''), + format: isString(format) + ? format + : isMessageFunction(format) + ? format.source + : '', + message: ret + }; + payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {}); + translateDevTools(payloads); + } + return ret; + } + function escapeParams(options) { + if (isArray(options.list)) { + options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item); + } + else if (isObject(options.named)) { + Object.keys(options.named).forEach(key => { + if (isString(options.named[key])) { + options.named[key] = escapeHtml(options.named[key]); + } + }); + } + } + function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) { + const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context; + const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any + let message = {}; + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'translate'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (locale !== targetLocale && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, { + key, + target: targetLocale + })); + } + // for vue-devtools timeline event + if (locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + message = + messages[targetLocale] || {}; + // for vue-devtools timeline event + let start = null; + let startTag; + let endTag; + if (inBrowser) { + start = window.performance.now(); + startTag = 'intlify-message-resolve-start'; + endTag = 'intlify-message-resolve-end'; + mark && mark(startTag); + } + if ((format = resolveValue(message, key)) === null) { + // if null, resolve with object key path + format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any + } + // for vue-devtools timeline event + if (inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start && format) { + emitter.emit("message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, { + type: "message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, + key, + message: format, + time: end - start, + groupId: `${type}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message resolve', startTag, endTag); + } + } + if (isString(format) || isMessageAST(format) || isMessageFunction(format)) { + break; + } + const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any + key, targetLocale, missingWarn, type); + if (missingRet !== key) { + format = missingRet; + } + from = to; + } + return [format, targetLocale, message]; + } + function compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) { + const { messageCompiler, warnHtmlMessage } = context; + if (isMessageFunction(format)) { + const msg = format; + msg.locale = msg.locale || targetLocale; + msg.key = msg.key || key; + return msg; + } + if (messageCompiler == null) { + const msg = (() => format); + msg.locale = targetLocale; + msg.key = key; + return msg; + } + // for vue-devtools timeline event + let start = null; + let startTag; + let endTag; + if (inBrowser) { + start = window.performance.now(); + startTag = 'intlify-message-compilation-start'; + endTag = 'intlify-message-compilation-end'; + mark && mark(startTag); + } + const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError)); + // for vue-devtools timeline event + if (inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start) { + emitter.emit("message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, { + type: "message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, + message: format, + time: end - start, + groupId: `${'translate'}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message compilation', startTag, endTag); + } + } + msg.locale = targetLocale; + msg.key = key; + msg.source = format; + return msg; + } + function evaluateMessage(context, msg, msgCtx) { + // for vue-devtools timeline event + let start = null; + let startTag; + let endTag; + if (inBrowser) { + start = window.performance.now(); + startTag = 'intlify-message-evaluation-start'; + endTag = 'intlify-message-evaluation-end'; + mark && mark(startTag); + } + const messaged = msg(msgCtx); + // for vue-devtools timeline event + if (inBrowser) { + const end = window.performance.now(); + const emitter = context.__v_emitter; + if (emitter && start) { + emitter.emit("message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, { + type: "message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, + value: messaged, + time: end - start, + groupId: `${'translate'}:${msg.key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message evaluation', startTag, endTag); + } + } + return messaged; + } + /** @internal */ + function parseTranslateArgs(...args) { + const [arg1, arg2, arg3] = args; + const options = {}; + if (!isString(arg1) && + !isNumber(arg1) && + !isMessageFunction(arg1) && + !isMessageAST(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + // prettier-ignore + const key = isNumber(arg1) + ? String(arg1) + : isMessageFunction(arg1) + ? arg1 + : arg1; + if (isNumber(arg2)) { + options.plural = arg2; + } + else if (isString(arg2)) { + options.default = arg2; + } + else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { + options.named = arg2; + } + else if (isArray(arg2)) { + options.list = arg2; + } + if (isNumber(arg3)) { + options.plural = arg3; + } + else if (isString(arg3)) { + options.default = arg3; + } + else if (isPlainObject(arg3)) { + assign(options, arg3); + } + return [key, options]; + } + function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) { + return { + locale, + key, + warnHtmlMessage, + onError: (err) => { + onError && onError(err); + { + const _source = getSourceForCodeFrame(source); + const message = `Message compilation error: ${err.message}`; + const codeFrame = err.location && + _source && + generateCodeFrame(_source, err.location.start.offset, err.location.end.offset); + const emitter = context.__v_emitter; + if (emitter && _source) { + emitter.emit("compile-error" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, { + message: _source, + error: err.message, + start: err.location && err.location.start.offset, + end: err.location && err.location.end.offset, + groupId: `${'translate'}:${key}` + }); + } + console.error(codeFrame ? `${message}\n${codeFrame}` : message); + } + }, + onCacheKey: (source) => generateFormatCacheKey(locale, key, source) + }; + } + function getSourceForCodeFrame(source) { + if (isString(source)) ; + else { + if (source.loc?.source) { + return source.loc.source; + } + } + } + function getMessageContextOptions(context, locale, message, options) { + const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; + const resolveMessage = (key) => { + let val = resolveValue(message, key); + // fallback to root context + if (val == null && fallbackContext) { + const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn); + val = resolveValue(message, key); + } + if (isString(val) || isMessageAST(val)) { + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = compileMessageFormat(context, key, locale, val, key, onError); + return !occurred + ? msg + : NOOP_MESSAGE_FUNCTION; + } + else if (isMessageFunction(val)) { + return val; + } + else { + // TODO: should be implemented warning message + return NOOP_MESSAGE_FUNCTION; + } + }; + const ctxOptions = { + locale, + modifiers, + pluralRules, + messages: resolveMessage + }; + if (context.processor) { + ctxOptions.processor = context.processor; + } + if (options.list) { + ctxOptions.list = options.list; + } + if (options.named) { + ctxOptions.named = options.named; + } + if (isNumber(options.plural)) { + ctxOptions.pluralIndex = options.plural; + } + return ctxOptions; + } + + const intlDefined = typeof Intl !== 'undefined'; + const Availabilities = { + dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined', + numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined' + }; + + // implementation of `datetime` function + function datetime(context, ...args) { + const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __datetimeFormatters } = context; + if (!Availabilities.dateTimeFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE)); + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseDateTimeArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, locale); + if (!isString(key) || key === '') { + return new Intl.DateTimeFormat(locale, overrides).format(value); + } + // resolve format + let datetimeFormat = {}; + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'datetime format'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (locale !== targetLocale && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, { + key, + target: targetLocale + })); + } + // for vue-devtools timeline event + if (locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + datetimeFormat = + datetimeFormats[targetLocale] || {}; + format = datetimeFormat[key]; + if (isPlainObject(format)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any + from = to; + } + // checking format and target locale + if (!isPlainObject(format) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __datetimeFormatters.get(id); + if (!formatter) { + formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides)); + __datetimeFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); + } + /** @internal */ + const DATETIME_FORMAT_OPTIONS_KEYS = [ + 'localeMatcher', + 'weekday', + 'era', + 'year', + 'month', + 'day', + 'hour', + 'minute', + 'second', + 'timeZoneName', + 'formatMatcher', + 'hour12', + 'timeZone', + 'dateStyle', + 'timeStyle', + 'calendar', + 'dayPeriod', + 'numberingSystem', + 'hourCycle', + 'fractionalSecondDigits' + ]; + /** @internal */ + function parseDateTimeArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = {}; + let overrides = {}; + let value; + if (isString(arg1)) { + // Only allow ISO strings - other date formats are often supported, + // but may cause different results in different browsers. + const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); + if (!matches) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + // Some browsers can not parse the iso datetime separated by space, + // this is a compromise solution by replace the 'T'/' ' with 'T' + const dateTime = matches[3] + ? matches[3].trim().startsWith('T') + ? `${matches[1].trim()}${matches[3].trim()}` + : `${matches[1].trim()}T${matches[3].trim()}` + : matches[1].trim(); + value = new Date(dateTime); + try { + // This will fail if the date is not valid + value.toISOString(); + } + catch (e) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + } + else if (isDate(arg1)) { + if (isNaN(arg1.getTime())) { + throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); + } + value = arg1; + } + else if (isNumber(arg1)) { + value = arg1; + } + else { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + if (isString(arg2)) { + options.key = arg2; + } + else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach(key => { + if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } + else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } + else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || '', value, options, overrides]; + } + /** @internal */ + function clearDateTimeFormat(ctx, locale, format) { + const context = ctx; + for (const key in format) { + const id = `${locale}__${key}`; + if (!context.__datetimeFormatters.has(id)) { + continue; + } + context.__datetimeFormatters.delete(id); + } + } + + // implementation of `number` function + function number(context, ...args) { + const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __numberFormatters } = context; + if (!Availabilities.numberFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER)); + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseNumberArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, locale); + if (!isString(key) || key === '') { + return new Intl.NumberFormat(locale, overrides).format(value); + } + // resolve format + let numberFormat = {}; + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'number format'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (locale !== targetLocale && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, { + key, + target: targetLocale + })); + } + // for vue-devtools timeline event + if (locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + numberFormat = + numberFormats[targetLocale] || {}; + format = numberFormat[key]; + if (isPlainObject(format)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any + from = to; + } + // checking format and target locale + if (!isPlainObject(format) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __numberFormatters.get(id); + if (!formatter) { + formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides)); + __numberFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); + } + /** @internal */ + const NUMBER_FORMAT_OPTIONS_KEYS = [ + 'localeMatcher', + 'style', + 'currency', + 'currencyDisplay', + 'currencySign', + 'useGrouping', + 'minimumIntegerDigits', + 'minimumFractionDigits', + 'maximumFractionDigits', + 'minimumSignificantDigits', + 'maximumSignificantDigits', + 'compactDisplay', + 'notation', + 'signDisplay', + 'unit', + 'unitDisplay', + 'roundingMode', + 'roundingPriority', + 'roundingIncrement', + 'trailingZeroDisplay' + ]; + /** @internal */ + function parseNumberArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = {}; + let overrides = {}; + if (!isNumber(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const value = arg1; + if (isString(arg2)) { + options.key = arg2; + } + else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach(key => { + if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } + else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } + else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || '', value, options, overrides]; + } + /** @internal */ + function clearNumberFormat(ctx, locale, format) { + const context = ctx; + for (const key in format) { + const id = `${locale}__${key}`; + if (!context.__numberFormatters.has(id)) { + continue; + } + context.__numberFormatters.delete(id); + } + } + + /** + * Vue I18n Version + * + * @remarks + * Semver format. Same format as the package.json `version` field. + * + * @VueI18nGeneral + */ + const VERSION = '9.5.0'; + /** + * This is only called development env + * istanbul-ignore-next + */ + function initDev() { + { + { + console.info(`You are running a development build of vue-i18n.\n` + + `Make sure to use the production build (*.prod.js) when deploying for production.`); + } + } + } + + const code$1 = CoreWarnCodes.__EXTEND_POINT__; + const inc$1 = incrementer(code$1); + const I18nWarnCodes = { + FALLBACK_TO_ROOT: code$1, + NOT_SUPPORTED_PRESERVE: inc$1(), + NOT_SUPPORTED_FORMATTER: inc$1(), + NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), + NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), + COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), + NOT_FOUND_PARENT_SCOPE: inc$1(), + IGNORE_OBJ_FLATTEN: inc$1(), + NOTICE_DROP_ALLOW_COMPOSITION: inc$1() // 17 + }; + const warnMessages = { + [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`, + [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`, + [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`, + [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`, + [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`, + [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`, + [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`, + [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`, + [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze` + }; + function getWarnMessage(code, ...args) { + return format$1(warnMessages[code], ...args); + } + + const code = CoreErrorCodes.__EXTEND_POINT__; + const inc = incrementer(code); + const I18nErrorCodes = { + // composer module errors + UNEXPECTED_RETURN_TYPE: code, + // legacy module errors + INVALID_ARGUMENT: inc(), + // i18n module errors + MUST_BE_CALL_SETUP_TOP: inc(), + NOT_INSTALLED: inc(), + NOT_AVAILABLE_IN_LEGACY_MODE: inc(), + // directive module errors + REQUIRED_VALUE: inc(), + INVALID_VALUE: inc(), + // vue-devtools errors + CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), + NOT_INSTALLED_WITH_PROVIDE: inc(), + // unexpected error + UNEXPECTED_ERROR: inc(), + // not compatible legacy vue-i18n constructor + NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), + // bridge support vue 2.x only + BRIDGE_SUPPORT_VUE_2_ONLY: inc(), + // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n`` + MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), + // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly + NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(), + // for enhancement + __EXTEND_POINT__: inc() // 37 + }; + function createI18nError(code, ...args) { + return createCompileError(code, null, { messages: errorMessages, args } ); + } + const errorMessages = { + [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer', + [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument', + [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function', + [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function', + [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error', + [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode', + [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`, + [I18nErrorCodes.INVALID_VALUE]: `Invalid value`, + [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`, + [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function', + [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.', + [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only', + [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode', + [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly' + }; + + const TranslateVNodeSymbol = + /* #__PURE__*/ makeSymbol('__translateVNode'); + const DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts'); + const NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts'); + const EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter'); + const DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter'); + const SetPluralRulesSymbol = makeSymbol('__setPluralRules'); + const InejctWithOptionSymbol = + /* #__PURE__*/ makeSymbol('__injectWithOption'); + const DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose'); + const __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__'; + + /* eslint-disable @typescript-eslint/no-explicit-any */ + /** + * Transform flat json in obj to normal json in obj + */ + function handleFlatJson(obj) { + // check obj + if (!isObject(obj)) { + return obj; + } + for (const key in obj) { + // check key + if (!hasOwn(obj, key)) { + continue; + } + // handle for normal json + if (!key.includes('.')) { + // recursive process value if value is also a object + if (isObject(obj[key])) { + handleFlatJson(obj[key]); + } + } + // handle for flat json, transform to normal json + else { + // go to the last object + const subKeys = key.split('.'); + const lastIndex = subKeys.length - 1; + let currentObj = obj; + let hasStringValue = false; + for (let i = 0; i < lastIndex; i++) { + if (!(subKeys[i] in currentObj)) { + currentObj[subKeys[i]] = {}; + } + if (!isObject(currentObj[subKeys[i]])) { + warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, { + key: subKeys[i] + })); + hasStringValue = true; + break; + } + currentObj = currentObj[subKeys[i]]; + } + // update last object value, delete old property + if (!hasStringValue) { + currentObj[subKeys[lastIndex]] = obj[key]; + delete obj[key]; + } + // recursive process value if value is also a object + if (isObject(currentObj[subKeys[lastIndex]])) { + handleFlatJson(currentObj[subKeys[lastIndex]]); + } + } + } + return obj; + } + function getLocaleMessages(locale, options) { + const { messages, __i18n, messageResolver, flatJson } = options; + // prettier-ignore + const ret = (isPlainObject(messages) + ? messages + : isArray(__i18n) + ? {} + : { [locale]: {} }); + // merge locale messages of i18n custom block + if (isArray(__i18n)) { + __i18n.forEach(custom => { + if ('locale' in custom && 'resource' in custom) { + const { locale, resource } = custom; + if (locale) { + ret[locale] = ret[locale] || {}; + deepCopy(resource, ret[locale]); + } + else { + deepCopy(resource, ret); + } + } + else { + isString(custom) && deepCopy(JSON.parse(custom), ret); + } + }); + } + // handle messages for flat json + if (messageResolver == null && flatJson) { + for (const key in ret) { + if (hasOwn(ret, key)) { + handleFlatJson(ret[key]); + } + } + } + return ret; + } + const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val); + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types + function deepCopy(src, des) { + // src and des should both be objects, and non of then can be a array + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw createI18nError(I18nErrorCodes.INVALID_VALUE); + } + for (const key in src) { + if (hasOwn(src, key)) { + if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) { + // replace with src[key] when: + // src[key] or des[key] is not a object, or + // src[key] or des[key] is a array + des[key] = src[key]; + } + else { + // src[key] and des[key] are both object, merge them + deepCopy(src[key], des[key]); + } + } + } + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getComponentOptions(instance) { + return instance.type ; + } + function adjustI18nResources(gl, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + let messages = isObject(options.messages) ? options.messages : {}; + if ('__i18nGlobal' in componentOptions) { + messages = getLocaleMessages(gl.locale.value, { + messages, + __i18n: componentOptions.__i18nGlobal + }); + } + // merge locale messages + const locales = Object.keys(messages); + if (locales.length) { + locales.forEach(locale => { + gl.mergeLocaleMessage(locale, messages[locale]); + }); + } + { + // merge datetime formats + if (isObject(options.datetimeFormats)) { + const locales = Object.keys(options.datetimeFormats); + if (locales.length) { + locales.forEach(locale => { + gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]); + }); + } + } + // merge number formats + if (isObject(options.numberFormats)) { + const locales = Object.keys(options.numberFormats); + if (locales.length) { + locales.forEach(locale => { + gl.mergeNumberFormat(locale, options.numberFormats[locale]); + }); + } + } + } + } + function createTextNode(key) { + return vue.createVNode(vue.Text, null, key, 0) + ; + } + /* eslint-enable @typescript-eslint/no-explicit-any */ + + /* eslint-disable @typescript-eslint/no-explicit-any */ + // extend VNode interface + const DEVTOOLS_META = '__INTLIFY_META__'; + let composerID = 0; + function defineCoreMissingHandler(missing) { + return ((ctx, locale, key, type) => { + return missing(locale, key, vue.getCurrentInstance() || undefined, type); + }); + } + // for Intlify DevTools + const getMetaInfo = /* #__PURE__*/ () => { + const instance = vue.getCurrentInstance(); + let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any + return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) + ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any + : null; + }; + /** + * Create composer interface factory + * + * @internal + */ + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + function createComposer(options = {}, VueI18nLegacy) { + const { __root, __injectWithOption } = options; + const _isGlobal = __root === undefined; + let _inheritLocale = isBoolean(options.inheritLocale) + ? options.inheritLocale + : true; + const _locale = vue.ref( + // prettier-ignore + __root && _inheritLocale + ? __root.locale.value + : isString(options.locale) + ? options.locale + : DEFAULT_LOCALE); + const _fallbackLocale = vue.ref( + // prettier-ignore + __root && _inheritLocale + ? __root.fallbackLocale.value + : isString(options.fallbackLocale) || + isArray(options.fallbackLocale) || + isPlainObject(options.fallbackLocale) || + options.fallbackLocale === false + ? options.fallbackLocale + : _locale.value); + const _messages = vue.ref(getLocaleMessages(_locale.value, options)); + // prettier-ignore + const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats) + ? options.datetimeFormats + : { [_locale.value]: {} }) + ; + // prettier-ignore + const _numberFormats = vue.ref(isPlainObject(options.numberFormats) + ? options.numberFormats + : { [_locale.value]: {} }) + ; + // warning suppress options + // prettier-ignore + let _missingWarn = __root + ? __root.missingWarn + : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) + ? options.missingWarn + : true; + // prettier-ignore + let _fallbackWarn = __root + ? __root.fallbackWarn + : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) + ? options.fallbackWarn + : true; + // prettier-ignore + let _fallbackRoot = __root + ? __root.fallbackRoot + : isBoolean(options.fallbackRoot) + ? options.fallbackRoot + : true; + // configure fall back to root + let _fallbackFormat = !!options.fallbackFormat; + // runtime missing + let _missing = isFunction(options.missing) ? options.missing : null; + let _runtimeMissing = isFunction(options.missing) + ? defineCoreMissingHandler(options.missing) + : null; + // postTranslation handler + let _postTranslation = isFunction(options.postTranslation) + ? options.postTranslation + : null; + // prettier-ignore + let _warnHtmlMessage = __root + ? __root.warnHtmlMessage + : isBoolean(options.warnHtmlMessage) + ? options.warnHtmlMessage + : true; + let _escapeParameter = !!options.escapeParameter; + // custom linked modifiers + // prettier-ignore + const _modifiers = __root + ? __root.modifiers + : isPlainObject(options.modifiers) + ? options.modifiers + : {}; + // pluralRules + let _pluralRules = options.pluralRules || (__root && __root.pluralRules); + // runtime context + // eslint-disable-next-line prefer-const + let _context; + const getCoreContext = () => { + _isGlobal && setFallbackContext(null); + const ctxOptions = { + version: VERSION, + locale: _locale.value, + fallbackLocale: _fallbackLocale.value, + messages: _messages.value, + modifiers: _modifiers, + pluralRules: _pluralRules, + missing: _runtimeMissing === null ? undefined : _runtimeMissing, + missingWarn: _missingWarn, + fallbackWarn: _fallbackWarn, + fallbackFormat: _fallbackFormat, + unresolving: true, + postTranslation: _postTranslation === null ? undefined : _postTranslation, + warnHtmlMessage: _warnHtmlMessage, + escapeParameter: _escapeParameter, + messageResolver: options.messageResolver, + messageCompiler: options.messageCompiler, + __meta: { framework: 'vue' } + }; + { + ctxOptions.datetimeFormats = _datetimeFormats.value; + ctxOptions.numberFormats = _numberFormats.value; + ctxOptions.__datetimeFormatters = isPlainObject(_context) + ? _context.__datetimeFormatters + : undefined; + ctxOptions.__numberFormatters = isPlainObject(_context) + ? _context.__numberFormatters + : undefined; + } + { + ctxOptions.__v_emitter = isPlainObject(_context) + ? _context.__v_emitter + : undefined; + } + const ctx = createCoreContext(ctxOptions); + _isGlobal && setFallbackContext(ctx); + return ctx; + }; + _context = getCoreContext(); + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + // track reactivity + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ] + ; + } + // locale + const locale = vue.computed({ + get: () => _locale.value, + set: val => { + _locale.value = val; + _context.locale = _locale.value; + } + }); + // fallbackLocale + const fallbackLocale = vue.computed({ + get: () => _fallbackLocale.value, + set: val => { + _fallbackLocale.value = val; + _context.fallbackLocale = _fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, val); + } + }); + // messages + const messages = vue.computed(() => _messages.value); + // datetimeFormats + const datetimeFormats = /* #__PURE__*/ vue.computed(() => _datetimeFormats.value); + // numberFormats + const numberFormats = /* #__PURE__*/ vue.computed(() => _numberFormats.value); + // getPostTranslationHandler + function getPostTranslationHandler() { + return isFunction(_postTranslation) ? _postTranslation : null; + } + // setPostTranslationHandler + function setPostTranslationHandler(handler) { + _postTranslation = handler; + _context.postTranslation = handler; + } + // getMissingHandler + function getMissingHandler() { + return _missing; + } + // setMissingHandler + function setMissingHandler(handler) { + if (handler !== null) { + _runtimeMissing = defineCoreMissingHandler(handler); + } + _missing = handler; + _context.missing = _runtimeMissing; + } + function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + return type !== 'translate' || !arg.resolvedMessage; + } + const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => { + trackReactivityValues(); // track reactive dependency + // NOTE: experimental !! + let ret; + try { + if (true || false) { + setAdditionalMeta(getMetaInfo()); + } + if (!_isGlobal) { + _context.fallbackContext = __root + ? getFallbackContext() + : undefined; + } + ret = fn(_context); + } + finally { + { + setAdditionalMeta(null); + } + if (!_isGlobal) { + _context.fallbackContext = undefined; + } + } + if (isNumber(ret) && ret === NOT_REOSLVED) { + const [key, arg2] = argumentParser(); + if (__root && + isString(key) && + isResolvedTranslateMessage(warnType, arg2)) { + if (_fallbackRoot && + (isTranslateFallbackWarn(_fallbackWarn, key) || + isTranslateMissingWarn(_missingWarn, key))) { + warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, { + key, + type: warnType + })); + } + // for vue-devtools timeline event + { + const { __v_emitter: emitter } = _context; + if (emitter && _fallbackRoot) { + emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, { + type: warnType, + key, + to: 'global', + groupId: `${warnType}:${key}` + }); + } + } + } + return __root && _fallbackRoot + ? fallbackSuccess(__root) + : fallbackFail(key); + } + else if (successCondition(ret)) { + return ret; + } + else { + /* istanbul ignore next */ + throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE); + } + }; + // t + function t(...args) { + return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val)); + } + // rt + function rt(...args) { + const [arg1, arg2, arg3] = args; + if (arg3 && !isObject(arg3)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]); + } + // d + function d(...args) { + return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val)); + } + // n + function n(...args) { + return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val)); + } + // for custom processor + function normalize(values) { + return values.map(val => isString(val) || isNumber(val) || isBoolean(val) + ? createTextNode(String(val)) + : val); + } + const interpolate = (val) => val; + const processor = { + normalize, + interpolate, + type: 'vnode' + }; + // translateVNode, using for `i18n-t` component + function translateVNode(...args) { + return wrapWithDeps(context => { + let ret; + const _context = context; + try { + _context.processor = processor; + ret = Reflect.apply(translate, null, [_context, ...args]); + } + finally { + _context.processor = null; + } + return ret; + }, () => parseTranslateArgs(...args), 'translate', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val)); + } + // numberParts, using for `i18n-n` component + function numberParts(...args) { + return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val)); + } + // datetimeParts, using for `i18n-d` component + function datetimeParts(...args) { + return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', + // eslint-disable-next-line @typescript-eslint/no-explicit-any + root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val)); + } + function setPluralRules(rules) { + _pluralRules = rules; + _context.pluralRules = _pluralRules; + } + // te + function te(key, locale) { + if (!key) + return false; + const targetLocale = isString(locale) ? locale : _locale.value; + const message = getLocaleMessage(targetLocale); + return _context.messageResolver(message, key) !== null; + } + function resolveMessages(key) { + let messages = null; + const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value); + for (let i = 0; i < locales.length; i++) { + const targetLocaleMessages = _messages.value[locales[i]] || {}; + const messageValue = _context.messageResolver(targetLocaleMessages, key); + if (messageValue != null) { + messages = messageValue; + break; + } + } + return messages; + } + // tm + function tm(key) { + const messages = resolveMessages(key); + // prettier-ignore + return messages != null + ? messages + : __root + ? __root.tm(key) || {} + : {}; + } + // getLocaleMessage + function getLocaleMessage(locale) { + return (_messages.value[locale] || {}); + } + // setLocaleMessage + function setLocaleMessage(locale, message) { + _messages.value[locale] = message; + _context.messages = _messages.value; + } + // mergeLocaleMessage + function mergeLocaleMessage(locale, message) { + _messages.value[locale] = _messages.value[locale] || {}; + deepCopy(message, _messages.value[locale]); + _context.messages = _messages.value; + } + // getDateTimeFormat + function getDateTimeFormat(locale) { + return _datetimeFormats.value[locale] || {}; + } + // setDateTimeFormat + function setDateTimeFormat(locale, format) { + _datetimeFormats.value[locale] = format; + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale, format); + } + // mergeDateTimeFormat + function mergeDateTimeFormat(locale, format) { + _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format); + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale, format); + } + // getNumberFormat + function getNumberFormat(locale) { + return _numberFormats.value[locale] || {}; + } + // setNumberFormat + function setNumberFormat(locale, format) { + _numberFormats.value[locale] = format; + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale, format); + } + // mergeNumberFormat + function mergeNumberFormat(locale, format) { + _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format); + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale, format); + } + // for debug + composerID++; + // watch root locale & fallbackLocale + if (__root && inBrowser) { + vue.watch(__root.locale, (val) => { + if (_inheritLocale) { + _locale.value = val; + _context.locale = val; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }); + vue.watch(__root.fallbackLocale, (val) => { + if (_inheritLocale) { + _fallbackLocale.value = val; + _context.fallbackLocale = val; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }); + } + // define basic composition API! + const composer = { + id: composerID, + locale, + fallbackLocale, + get inheritLocale() { + return _inheritLocale; + }, + set inheritLocale(val) { + _inheritLocale = val; + if (val && __root) { + _locale.value = __root.locale.value; + _fallbackLocale.value = __root.fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }, + get availableLocales() { + return Object.keys(_messages.value).sort(); + }, + messages, + get modifiers() { + return _modifiers; + }, + get pluralRules() { + return _pluralRules || {}; + }, + get isGlobal() { + return _isGlobal; + }, + get missingWarn() { + return _missingWarn; + }, + set missingWarn(val) { + _missingWarn = val; + _context.missingWarn = _missingWarn; + }, + get fallbackWarn() { + return _fallbackWarn; + }, + set fallbackWarn(val) { + _fallbackWarn = val; + _context.fallbackWarn = _fallbackWarn; + }, + get fallbackRoot() { + return _fallbackRoot; + }, + set fallbackRoot(val) { + _fallbackRoot = val; + }, + get fallbackFormat() { + return _fallbackFormat; + }, + set fallbackFormat(val) { + _fallbackFormat = val; + _context.fallbackFormat = _fallbackFormat; + }, + get warnHtmlMessage() { + return _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + _warnHtmlMessage = val; + _context.warnHtmlMessage = val; + }, + get escapeParameter() { + return _escapeParameter; + }, + set escapeParameter(val) { + _escapeParameter = val; + _context.escapeParameter = val; + }, + t, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + [SetPluralRulesSymbol]: setPluralRules + }; + { + composer.datetimeFormats = datetimeFormats; + composer.numberFormats = numberFormats; + composer.rt = rt; + composer.te = te; + composer.tm = tm; + composer.d = d; + composer.n = n; + composer.getDateTimeFormat = getDateTimeFormat; + composer.setDateTimeFormat = setDateTimeFormat; + composer.mergeDateTimeFormat = mergeDateTimeFormat; + composer.getNumberFormat = getNumberFormat; + composer.setNumberFormat = setNumberFormat; + composer.mergeNumberFormat = mergeNumberFormat; + composer[InejctWithOptionSymbol] = __injectWithOption; + composer[TranslateVNodeSymbol] = translateVNode; + composer[DatetimePartsSymbol] = datetimeParts; + composer[NumberPartsSymbol] = numberParts; + } + // for vue-devtools timeline event + { + composer[EnableEmitter] = (emitter) => { + _context.__v_emitter = emitter; + }; + composer[DisableEmitter] = () => { + _context.__v_emitter = undefined; + }; + } + return composer; + } + /* eslint-enable @typescript-eslint/no-explicit-any */ + + /* eslint-disable @typescript-eslint/no-explicit-any */ + /** + * Convert to I18n Composer Options from VueI18n Options + * + * @internal + */ + function convertComposerOptions(options) { + const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE; + const fallbackLocale = isString(options.fallbackLocale) || + isArray(options.fallbackLocale) || + isPlainObject(options.fallbackLocale) || + options.fallbackLocale === false + ? options.fallbackLocale + : locale; + const missing = isFunction(options.missing) ? options.missing : undefined; + const missingWarn = isBoolean(options.silentTranslationWarn) || + isRegExp(options.silentTranslationWarn) + ? !options.silentTranslationWarn + : true; + const fallbackWarn = isBoolean(options.silentFallbackWarn) || + isRegExp(options.silentFallbackWarn) + ? !options.silentFallbackWarn + : true; + const fallbackRoot = isBoolean(options.fallbackRoot) + ? options.fallbackRoot + : true; + const fallbackFormat = !!options.formatFallbackMessages; + const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {}; + const pluralizationRules = options.pluralizationRules; + const postTranslation = isFunction(options.postTranslation) + ? options.postTranslation + : undefined; + const warnHtmlMessage = isString(options.warnHtmlInMessage) + ? options.warnHtmlInMessage !== 'off' + : true; + const escapeParameter = !!options.escapeParameterHtml; + const inheritLocale = isBoolean(options.sync) ? options.sync : true; + if (options.formatter) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER)); + } + if (options.preserveDirectiveContent) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE)); + } + let messages = options.messages; + if (isPlainObject(options.sharedMessages)) { + const sharedMessages = options.sharedMessages; + const locales = Object.keys(sharedMessages); + messages = locales.reduce((messages, locale) => { + const message = messages[locale] || (messages[locale] = {}); + assign(message, sharedMessages[locale]); + return messages; + }, (messages || {})); + } + const { __i18n, __root, __injectWithOption } = options; + const datetimeFormats = options.datetimeFormats; + const numberFormats = options.numberFormats; + const flatJson = options.flatJson; + return { + locale, + fallbackLocale, + messages, + flatJson, + datetimeFormats, + numberFormats, + missing, + missingWarn, + fallbackWarn, + fallbackRoot, + fallbackFormat, + modifiers, + pluralRules: pluralizationRules, + postTranslation, + warnHtmlMessage, + escapeParameter, + messageResolver: options.messageResolver, + inheritLocale, + __i18n, + __root, + __injectWithOption + }; + } + /** + * create VueI18n interface factory + * + * @internal + */ + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + function createVueI18n(options = {}, VueI18nLegacy) { + { + const composer = createComposer(convertComposerOptions(options)); + const { __extender } = options; + // defines VueI18n + const vueI18n = { + // id + id: composer.id, + // locale + get locale() { + return composer.locale.value; + }, + set locale(val) { + composer.locale.value = val; + }, + // fallbackLocale + get fallbackLocale() { + return composer.fallbackLocale.value; + }, + set fallbackLocale(val) { + composer.fallbackLocale.value = val; + }, + // messages + get messages() { + return composer.messages.value; + }, + // datetimeFormats + get datetimeFormats() { + return composer.datetimeFormats.value; + }, + // numberFormats + get numberFormats() { + return composer.numberFormats.value; + }, + // availableLocales + get availableLocales() { + return composer.availableLocales; + }, + // formatter + get formatter() { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER)); + // dummy + return { + interpolate() { + return []; + } + }; + }, + set formatter(val) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER)); + }, + // missing + get missing() { + return composer.getMissingHandler(); + }, + set missing(handler) { + composer.setMissingHandler(handler); + }, + // silentTranslationWarn + get silentTranslationWarn() { + return isBoolean(composer.missingWarn) + ? !composer.missingWarn + : composer.missingWarn; + }, + set silentTranslationWarn(val) { + composer.missingWarn = isBoolean(val) ? !val : val; + }, + // silentFallbackWarn + get silentFallbackWarn() { + return isBoolean(composer.fallbackWarn) + ? !composer.fallbackWarn + : composer.fallbackWarn; + }, + set silentFallbackWarn(val) { + composer.fallbackWarn = isBoolean(val) ? !val : val; + }, + // modifiers + get modifiers() { + return composer.modifiers; + }, + // formatFallbackMessages + get formatFallbackMessages() { + return composer.fallbackFormat; + }, + set formatFallbackMessages(val) { + composer.fallbackFormat = val; + }, + // postTranslation + get postTranslation() { + return composer.getPostTranslationHandler(); + }, + set postTranslation(handler) { + composer.setPostTranslationHandler(handler); + }, + // sync + get sync() { + return composer.inheritLocale; + }, + set sync(val) { + composer.inheritLocale = val; + }, + // warnInHtmlMessage + get warnHtmlInMessage() { + return composer.warnHtmlMessage ? 'warn' : 'off'; + }, + set warnHtmlInMessage(val) { + composer.warnHtmlMessage = val !== 'off'; + }, + // escapeParameterHtml + get escapeParameterHtml() { + return composer.escapeParameter; + }, + set escapeParameterHtml(val) { + composer.escapeParameter = val; + }, + // preserveDirectiveContent + get preserveDirectiveContent() { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE)); + return true; + }, + set preserveDirectiveContent(val) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE)); + }, + // pluralizationRules + get pluralizationRules() { + return composer.pluralRules || {}; + }, + // for internal + __composer: composer, + // t + t(...args) { + const [arg1, arg2, arg3] = args; + const options = {}; + let list = null; + let named = null; + if (!isString(arg1)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + const key = arg1; + if (isString(arg2)) { + options.locale = arg2; + } + else if (isArray(arg2)) { + list = arg2; + } + else if (isPlainObject(arg2)) { + named = arg2; + } + if (isArray(arg3)) { + list = arg3; + } + else if (isPlainObject(arg3)) { + named = arg3; + } + // return composer.t(key, (list || named || {}) as any, options) + return Reflect.apply(composer.t, composer, [ + key, + (list || named || {}), + options + ]); + }, + rt(...args) { + return Reflect.apply(composer.rt, composer, [...args]); + }, + // tc + tc(...args) { + const [arg1, arg2, arg3] = args; + const options = { plural: 1 }; + let list = null; + let named = null; + if (!isString(arg1)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + const key = arg1; + if (isString(arg2)) { + options.locale = arg2; + } + else if (isNumber(arg2)) { + options.plural = arg2; + } + else if (isArray(arg2)) { + list = arg2; + } + else if (isPlainObject(arg2)) { + named = arg2; + } + if (isString(arg3)) { + options.locale = arg3; + } + else if (isArray(arg3)) { + list = arg3; + } + else if (isPlainObject(arg3)) { + named = arg3; + } + // return composer.t(key, (list || named || {}) as any, options) + return Reflect.apply(composer.t, composer, [ + key, + (list || named || {}), + options + ]); + }, + // te + te(key, locale) { + return composer.te(key, locale); + }, + // tm + tm(key) { + return composer.tm(key); + }, + // getLocaleMessage + getLocaleMessage(locale) { + return composer.getLocaleMessage(locale); + }, + // setLocaleMessage + setLocaleMessage(locale, message) { + composer.setLocaleMessage(locale, message); + }, + // mergeLocaleMessage + mergeLocaleMessage(locale, message) { + composer.mergeLocaleMessage(locale, message); + }, + // d + d(...args) { + return Reflect.apply(composer.d, composer, [...args]); + }, + // getDateTimeFormat + getDateTimeFormat(locale) { + return composer.getDateTimeFormat(locale); + }, + // setDateTimeFormat + setDateTimeFormat(locale, format) { + composer.setDateTimeFormat(locale, format); + }, + // mergeDateTimeFormat + mergeDateTimeFormat(locale, format) { + composer.mergeDateTimeFormat(locale, format); + }, + // n + n(...args) { + return Reflect.apply(composer.n, composer, [...args]); + }, + // getNumberFormat + getNumberFormat(locale) { + return composer.getNumberFormat(locale); + }, + // setNumberFormat + setNumberFormat(locale, format) { + composer.setNumberFormat(locale, format); + }, + // mergeNumberFormat + mergeNumberFormat(locale, format) { + composer.mergeNumberFormat(locale, format); + }, + // getChoiceIndex + // eslint-disable-next-line @typescript-eslint/no-unused-vars + getChoiceIndex(choice, choicesLength) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX)); + return -1; + } + }; + vueI18n.__extender = __extender; + // for vue-devtools timeline event + { + vueI18n.__enableEmitter = (emitter) => { + const __composer = composer; + __composer[EnableEmitter] && __composer[EnableEmitter](emitter); + }; + vueI18n.__disableEmitter = () => { + const __composer = composer; + __composer[DisableEmitter] && __composer[DisableEmitter](); + }; + } + return vueI18n; + } + } + /* eslint-enable @typescript-eslint/no-explicit-any */ + + const baseFormatProps = { + tag: { + type: [String, Object] + }, + locale: { + type: String + }, + scope: { + type: String, + // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050 + validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global', + default: 'parent' /* ComponentI18nScope */ + }, + i18n: { + type: Object + } + }; + + function getInterpolateArg( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { slots }, // SetupContext, + keys) { + if (keys.length === 1 && keys[0] === 'default') { + // default slot with list + const ret = slots.default ? slots.default() : []; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return ret.reduce((slot, current) => { + return [ + ...slot, + // prettier-ignore + ...(current.type === vue.Fragment ? current.children : [current] + ) + ]; + }, []); + } + else { + // named slots + return keys.reduce((arg, key) => { + const slot = slots[key]; + if (slot) { + arg[key] = slot(); + } + return arg; + }, {}); + } + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getFragmentableTag(tag) { + return vue.Fragment ; + } + + const TranslationImpl = /*#__PURE__*/ vue.defineComponent({ + /* eslint-disable */ + name: 'i18n-t', + props: assign({ + keypath: { + type: String, + required: true + }, + plural: { + type: [Number, String], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + validator: (val) => isNumber(val) || !isNaN(val) + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const { slots, attrs } = context; + // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050 + const i18n = props.i18n || + useI18n({ + useScope: props.scope, + __useComponent: true + }); + return () => { + const keys = Object.keys(slots).filter(key => key !== '_'); + const options = {}; + if (props.locale) { + options.locale = props.locale; + } + if (props.plural !== undefined) { + options.plural = isString(props.plural) ? +props.plural : props.plural; + } + const arg = getInterpolateArg(context, keys); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options); + const assignedAttrs = assign({}, attrs); + const tag = isString(props.tag) || isObject(props.tag) + ? props.tag + : getFragmentableTag(); + return vue.h(tag, assignedAttrs, children); + }; + } + }); + /** + * export the public type for h/tsx inference + * also to avoid inline import() in generated d.ts files + */ + /** + * Translation Component + * + * @remarks + * See the following items for property about details + * + * @VueI18nSee [TranslationProps](component#translationprops) + * @VueI18nSee [BaseFormatProps](component#baseformatprops) + * @VueI18nSee [Component Interpolation](../guide/advanced/component) + * + * @example + * ```html + * <div id="app"> + * <!-- ... --> + * <i18n keypath="term" tag="label" for="tos"> + * <a :href="url" target="_blank">{{ $t('tos') }}</a> + * </i18n> + * <!-- ... --> + * </div> + * ``` + * ```js + * import { createApp } from 'vue' + * import { createI18n } from 'vue-i18n' + * + * const messages = { + * en: { + * tos: 'Term of Service', + * term: 'I accept xxx {0}.' + * }, + * ja: { + * tos: '利用規約', + * term: '私は xxx の{0}に同意します。' + * } + * } + * + * const i18n = createI18n({ + * locale: 'en', + * messages + * }) + * + * const app = createApp({ + * data: { + * url: '/term' + * } + * }).use(i18n).mount('#app') + * ``` + * + * @VueI18nComponent + */ + const Translation = TranslationImpl; + const I18nT = Translation; + + function isVNode(target) { + return isArray(target) && !isString(target[0]); + } + function renderFormatter(props, context, slotKeys, partFormatter) { + const { slots, attrs } = context; + return () => { + const options = { part: true }; + let overrides = {}; + if (props.locale) { + options.locale = props.locale; + } + if (isString(props.format)) { + options.key = props.format; + } + else if (isObject(props.format)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (isString(props.format.key)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + options.key = props.format.key; + } + // Filter out number format options only + overrides = Object.keys(props.format).reduce((options, prop) => { + return slotKeys.includes(prop) + ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any + : options; + }, {}); + } + const parts = partFormatter(...[props.value, options, overrides]); + let children = [options.key]; + if (isArray(parts)) { + children = parts.map((part, index) => { + const slot = slots[part.type]; + const node = slot + ? slot({ [part.type]: part.value, index, parts }) + : [part.value]; + if (isVNode(node)) { + node[0].key = `${part.type}-${index}`; + } + return node; + }); + } + else if (isString(parts)) { + children = [parts]; + } + const assignedAttrs = assign({}, attrs); + const tag = isString(props.tag) || isObject(props.tag) + ? props.tag + : getFragmentableTag(); + return vue.h(tag, assignedAttrs, children); + }; + } + + const NumberFormatImpl = /*#__PURE__*/ vue.defineComponent({ + /* eslint-disable */ + name: 'i18n-n', + props: assign({ + value: { + type: Number, + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || + useI18n({ + useScope: 'parent', + __useComponent: true + }); + return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[NumberPartsSymbol](...args)); + } + }); + /** + * export the public type for h/tsx inference + * also to avoid inline import() in generated d.ts files + */ + /** + * Number Format Component + * + * @remarks + * See the following items for property about details + * + * @VueI18nSee [FormattableProps](component#formattableprops) + * @VueI18nSee [BaseFormatProps](component#baseformatprops) + * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting) + * + * @VueI18nDanger + * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts) + * + * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat) + * + * @VueI18nComponent + */ + const NumberFormat = NumberFormatImpl; + const I18nN = NumberFormat; + + const DatetimeFormatImpl = /* #__PURE__*/ vue.defineComponent({ + /* eslint-disable */ + name: 'i18n-d', + props: assign({ + value: { + type: [Number, Date], + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || + useI18n({ + useScope: 'parent', + __useComponent: true + }); + return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[DatetimePartsSymbol](...args)); + } + }); + /** + * Datetime Format Component + * + * @remarks + * See the following items for property about details + * + * @VueI18nSee [FormattableProps](component#formattableprops) + * @VueI18nSee [BaseFormatProps](component#baseformatprops) + * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting) + * + * @VueI18nDanger + * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts) + * + * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat) + * + * @VueI18nComponent + */ + const DatetimeFormat = DatetimeFormatImpl; + const I18nD = DatetimeFormat; + + function getComposer$2(i18n, instance) { + const i18nInternal = i18n; + if (i18n.mode === 'composition') { + return (i18nInternal.__getInstance(instance) || i18n.global); + } + else { + const vueI18n = i18nInternal.__getInstance(instance); + return vueI18n != null + ? vueI18n.__composer + : i18n.global.__composer; + } + } + function vTDirective(i18n) { + const _process = (binding) => { + const { instance, modifiers, value } = binding; + /* istanbul ignore if */ + if (!instance || !instance.$) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const composer = getComposer$2(i18n, instance.$); + if (modifiers.preserve) { + warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE)); + } + const parsedValue = parseValue(value); + return [ + Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]), + composer + ]; + }; + const register = (el, binding) => { + const [textContent, composer] = _process(binding); + if (inBrowser && i18n.global === composer) { + // global scope only + el.__i18nWatcher = vue.watch(composer.locale, () => { + binding.instance && binding.instance.$forceUpdate(); + }); + } + el.__composer = composer; + el.textContent = textContent; + }; + const unregister = (el) => { + if (inBrowser && el.__i18nWatcher) { + el.__i18nWatcher(); + el.__i18nWatcher = undefined; + delete el.__i18nWatcher; + } + if (el.__composer) { + el.__composer = undefined; + delete el.__composer; + } + }; + const update = (el, { value }) => { + if (el.__composer) { + const composer = el.__composer; + const parsedValue = parseValue(value); + el.textContent = Reflect.apply(composer.t, composer, [ + ...makeParams(parsedValue) + ]); + } + }; + const getSSRProps = (binding) => { + const [textContent] = _process(binding); + return { textContent }; + }; + return { + created: register, + unmounted: unregister, + beforeUpdate: update, + getSSRProps + }; + } + function parseValue(value) { + if (isString(value)) { + return { path: value }; + } + else if (isPlainObject(value)) { + if (!('path' in value)) { + throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path'); + } + return value; + } + else { + throw createI18nError(I18nErrorCodes.INVALID_VALUE); + } + } + function makeParams(value) { + const { path, locale, args, choice, plural } = value; + const options = {}; + const named = args || {}; + if (isString(locale)) { + options.locale = locale; + } + if (isNumber(choice)) { + options.plural = choice; + } + if (isNumber(plural)) { + options.plural = plural; + } + return [path, named, options]; + } + + function apply(app, i18n, ...options) { + const pluginOptions = isPlainObject(options[0]) + ? options[0] + : {}; + const useI18nComponentName = !!pluginOptions.useI18nComponentName; + const globalInstall = isBoolean(pluginOptions.globalInstall) + ? pluginOptions.globalInstall + : true; + if (globalInstall && useI18nComponentName) { + warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, { + name: Translation.name + })); + } + if (globalInstall) { + [!useI18nComponentName ? Translation.name : 'i18n', 'I18nT'].forEach(name => app.component(name, Translation)); + [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat)); + [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat)); + } + // install directive + { + app.directive('t', vTDirective(i18n)); + } + } + + var global$1 = (typeof global !== "undefined" ? global : + typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : {}); + + function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; + } + function getTarget() { + // @ts-ignore + return (typeof navigator !== 'undefined' && typeof window !== 'undefined') + ? window + : typeof global$1 !== 'undefined' + ? global$1 + : {}; + } + const isProxyAvailable = typeof Proxy === 'function'; + + const HOOK_SETUP = 'devtools-plugin:setup'; + const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set'; + + let supported; + let perf; + function isPerformanceSupported() { + var _a; + if (supported !== undefined) { + return supported; + } + if (typeof window !== 'undefined' && window.performance) { + supported = true; + perf = window.performance; + } + else if (typeof global$1 !== 'undefined' && ((_a = global$1.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global$1.perf_hooks.performance; + } + else { + supported = false; + } + return supported; + } + function now() { + return isPerformanceSupported() ? perf.now() : Date.now(); + } + + class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } + catch (e) { + // noop + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } + catch (e) { + // noop + } + currentSettings = value; + }, + now() { + return now(); + }, + }; + if (hook) { + hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } + else { + return (...args) => { + this.onQueue.push({ + method: prop, + args, + }); + }; + } + }, + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } + else if (prop === 'on') { + return this.proxiedOn; + } + else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { }, + }); + return this.fallbacks[prop](...args); + }; + } + else { + return (...args) => { + return new Promise(resolve => { + this.targetQueue.push({ + method: prop, + args, + resolve, + }); + }); + }; + } + }, + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } + } + + function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = getTarget(); + const hook = getDevtoolsGlobalHook(); + const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); + } + else { + const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy, + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } + } + + const VueDevToolsLabels = { + ["vue-devtools-plugin-vue-i18n" /* VueDevToolsIDs.PLUGIN */]: 'Vue I18n devtools', + ["vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'I18n Resources', + ["vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */]: 'Vue I18n' + }; + const VueDevToolsPlaceholders = { + ["vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'Search for scopes ...' + }; + const VueDevToolsTimelineColors = { + ["vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */]: 0xffcd19 + }; + + const VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties'; + let devtoolsApi; + async function enableDevTools(app, i18n) { + return new Promise((resolve, reject) => { + try { + setupDevtoolsPlugin({ + id: "vue-devtools-plugin-vue-i18n" /* VueDevToolsIDs.PLUGIN */, + label: VueDevToolsLabels["vue-devtools-plugin-vue-i18n" /* VueDevToolsIDs.PLUGIN */], + packageName: 'vue-i18n', + homepage: 'https://vue-i18n.intlify.dev', + logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png', + componentStateTypes: [VUE_I18N_COMPONENT_TYPES], + app: app // eslint-disable-line @typescript-eslint/no-explicit-any + }, api => { + devtoolsApi = api; + api.on.visitComponentTree(({ componentInstance, treeNode }) => { + updateComponentTreeTags(componentInstance, treeNode, i18n); + }); + api.on.inspectComponent(({ componentInstance, instanceData }) => { + if (componentInstance.vnode.el && + componentInstance.vnode.el.__VUE_I18N__ && + instanceData) { + if (i18n.mode === 'legacy') { + // ignore global scope on legacy mode + if (componentInstance.vnode.el.__VUE_I18N__ !== + i18n.global.__composer) { + inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__); + } + } + else { + inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__); + } + } + }); + api.addInspector({ + id: "vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */, + label: VueDevToolsLabels["vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */], + icon: 'language', + treeFilterPlaceholder: VueDevToolsPlaceholders["vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */] + }); + api.on.getInspectorTree(payload => { + if (payload.app === app && + payload.inspectorId === "vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) { + registerScope(payload, i18n); + } + }); + const roots = new Map(); + api.on.getInspectorState(async (payload) => { + if (payload.app === app && + payload.inspectorId === "vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) { + api.unhighlightElement(); + inspectScope(payload, i18n); + if (payload.nodeId === 'global') { + if (!roots.has(payload.app)) { + const [root] = await api.getComponentInstances(payload.app); + roots.set(payload.app, root); + } + api.highlightElement(roots.get(payload.app)); + } + else { + const instance = getComponentInstance(payload.nodeId, i18n); + instance && api.highlightElement(instance); + } + } + }); + api.on.editInspectorState(payload => { + if (payload.app === app && + payload.inspectorId === "vue-i18n-resource-inspector" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) { + editScope(payload, i18n); + } + }); + api.addTimelineLayer({ + id: "vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */, + label: VueDevToolsLabels["vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */], + color: VueDevToolsTimelineColors["vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */] + }); + resolve(true); + }); + } + catch (e) { + console.error(e); + reject(false); + } + }); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getI18nScopeLable(instance) { + return (instance.type.name || + instance.type.displayName || + instance.type.__file || + 'Anonymous'); + } + function updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any + treeNode, i18n) { + // prettier-ignore + const global = i18n.mode === 'composition' + ? i18n.global + : i18n.global.__composer; + if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) { + // add custom tags local scope only + if (instance.vnode.el.__VUE_I18N__ !== global) { + const tag = { + label: `i18n (${getI18nScopeLable(instance)} Scope)`, + textColor: 0x000000, + backgroundColor: 0xffcd19 + }; + treeNode.tags.push(tag); + } + } + } + function inspectComposer(instanceData, composer) { + const type = VUE_I18N_COMPONENT_TYPES; + instanceData.state.push({ + type, + key: 'locale', + editable: true, + value: composer.locale.value + }); + instanceData.state.push({ + type, + key: 'availableLocales', + editable: false, + value: composer.availableLocales + }); + instanceData.state.push({ + type, + key: 'fallbackLocale', + editable: true, + value: composer.fallbackLocale.value + }); + instanceData.state.push({ + type, + key: 'inheritLocale', + editable: true, + value: composer.inheritLocale + }); + instanceData.state.push({ + type, + key: 'messages', + editable: false, + value: getLocaleMessageValue(composer.messages.value) + }); + { + instanceData.state.push({ + type, + key: 'datetimeFormats', + editable: false, + value: composer.datetimeFormats.value + }); + instanceData.state.push({ + type, + key: 'numberFormats', + editable: false, + value: composer.numberFormats.value + }); + } + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getLocaleMessageValue(messages) { + const value = {}; + Object.keys(messages).forEach((key) => { + const v = messages[key]; + if (isFunction(v) && 'source' in v) { + value[key] = getMessageFunctionDetails(v); + } + else if (isMessageAST(v) && v.loc && v.loc.source) { + value[key] = v.loc.source; + } + else if (isObject(v)) { + value[key] = getLocaleMessageValue(v); + } + else { + value[key] = v; + } + }); + return value; + } + const ESC = { + '<': '<', + '>': '>', + '"': '"', + '&': '&' + }; + function escape(s) { + return s.replace(/[<>"&]/g, escapeChar); + } + function escapeChar(a) { + return ESC[a] || a; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getMessageFunctionDetails(func) { + const argString = func.source ? `("${escape(func.source)}")` : `(?)`; + return { + _custom: { + type: 'function', + display: `<span>ƒ</span> ${argString}` + } + }; + } + function registerScope(payload, i18n) { + payload.rootNodes.push({ + id: 'global', + label: 'Global Scope' + }); + // prettier-ignore + const global = i18n.mode === 'composition' + ? i18n.global + : i18n.global.__composer; + for (const [keyInstance, instance] of i18n.__instances) { + // prettier-ignore + const composer = i18n.mode === 'composition' + ? instance + : instance.__composer; + if (global === composer) { + continue; + } + payload.rootNodes.push({ + id: composer.id.toString(), + label: `${getI18nScopeLable(keyInstance)} Scope` + }); + } + } + function getComponentInstance(nodeId, i18n) { + let instance = null; + if (nodeId !== 'global') { + for (const [component, composer] of i18n.__instances.entries()) { + if (composer.id.toString() === nodeId) { + instance = component; + break; + } + } + } + return instance; + } + function getComposer$1(nodeId, i18n) { + if (nodeId === 'global') { + return i18n.mode === 'composition' + ? i18n.global + : i18n.global.__composer; + } + else { + const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId); + if (instance) { + return i18n.mode === 'composition' + ? instance + : instance.__composer; + } + else { + return null; + } + } + } + function inspectScope(payload, i18n + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ) { + const composer = getComposer$1(payload.nodeId, i18n); + if (composer) { + // TODO: + // eslint-disable-next-line @typescript-eslint/no-explicit-any + payload.state = makeScopeInspectState(composer); + } + return null; + } + function makeScopeInspectState(composer) { + const state = {}; + const localeType = 'Locale related info'; + const localeStates = [ + { + type: localeType, + key: 'locale', + editable: true, + value: composer.locale.value + }, + { + type: localeType, + key: 'fallbackLocale', + editable: true, + value: composer.fallbackLocale.value + }, + { + type: localeType, + key: 'availableLocales', + editable: false, + value: composer.availableLocales + }, + { + type: localeType, + key: 'inheritLocale', + editable: true, + value: composer.inheritLocale + } + ]; + state[localeType] = localeStates; + const localeMessagesType = 'Locale messages info'; + const localeMessagesStates = [ + { + type: localeMessagesType, + key: 'messages', + editable: false, + value: getLocaleMessageValue(composer.messages.value) + } + ]; + state[localeMessagesType] = localeMessagesStates; + { + const datetimeFormatsType = 'Datetime formats info'; + const datetimeFormatsStates = [ + { + type: datetimeFormatsType, + key: 'datetimeFormats', + editable: false, + value: composer.datetimeFormats.value + } + ]; + state[datetimeFormatsType] = datetimeFormatsStates; + const numberFormatsType = 'Datetime formats info'; + const numberFormatsStates = [ + { + type: numberFormatsType, + key: 'numberFormats', + editable: false, + value: composer.numberFormats.value + } + ]; + state[numberFormatsType] = numberFormatsStates; + } + return state; + } + function addTimelineEvent(event, payload) { + if (devtoolsApi) { + let groupId; + if (payload && 'groupId' in payload) { + groupId = payload.groupId; + delete payload.groupId; + } + devtoolsApi.addTimelineEvent({ + layerId: "vue-i18n-timeline" /* VueDevToolsIDs.TIMELINE */, + event: { + title: event, + groupId, + time: Date.now(), + meta: {}, + data: payload || {}, + logType: event === "compile-error" /* VueDevToolsTimelineEvents.COMPILE_ERROR */ + ? 'error' + : event === "fallback" /* VueDevToolsTimelineEvents.FALBACK */ || + event === "missing" /* VueDevToolsTimelineEvents.MISSING */ + ? 'warning' + : 'default' + } + }); + } + } + function editScope(payload, i18n) { + const composer = getComposer$1(payload.nodeId, i18n); + if (composer) { + const [field] = payload.path; + if (field === 'locale' && isString(payload.state.value)) { + composer.locale.value = payload.state.value; + } + else if (field === 'fallbackLocale' && + (isString(payload.state.value) || + isArray(payload.state.value) || + isObject(payload.state.value))) { + composer.fallbackLocale.value = payload.state.value; + } + else if (field === 'inheritLocale' && isBoolean(payload.state.value)) { + composer.inheritLocale = payload.state.value; + } + } + } + + /** + * Supports compatibility for legacy vue-i18n APIs + * This mixin is used when we use vue-i18n@v9.x or later + */ + function defineMixin(vuei18n, composer, i18n) { + return { + beforeCreate() { + const instance = vue.getCurrentInstance(); + /* istanbul ignore if */ + if (!instance) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const options = this.$options; + if (options.i18n) { + const optionsI18n = options.i18n; + if (options.__i18n) { + optionsI18n.__i18n = options.__i18n; + } + optionsI18n.__root = composer; + if (this === this.$root) { + // merge option and gttach global + this.$i18n = mergeToGlobal(vuei18n, optionsI18n); + } + else { + optionsI18n.__injectWithOption = true; + optionsI18n.__extender = i18n.__vueI18nExtend; + // atttach local VueI18n instance + this.$i18n = createVueI18n(optionsI18n); + // extend VueI18n instance + const _vueI18n = this.$i18n; + if (_vueI18n.__extender) { + _vueI18n.__disposer = _vueI18n.__extender(this.$i18n); + } + } + } + else if (options.__i18n) { + if (this === this.$root) { + // merge option and gttach global + this.$i18n = mergeToGlobal(vuei18n, options); + } + else { + // atttach local VueI18n instance + this.$i18n = createVueI18n({ + __i18n: options.__i18n, + __injectWithOption: true, + __extender: i18n.__vueI18nExtend, + __root: composer + }); + // extend VueI18n instance + const _vueI18n = this.$i18n; + if (_vueI18n.__extender) { + _vueI18n.__disposer = _vueI18n.__extender(this.$i18n); + } + } + } + else { + // attach global VueI18n instance + this.$i18n = vuei18n; + } + if (options.__i18nGlobal) { + adjustI18nResources(composer, options, options); + } + // defines vue-i18n legacy APIs + this.$t = (...args) => this.$i18n.t(...args); + this.$rt = (...args) => this.$i18n.rt(...args); + this.$tc = (...args) => this.$i18n.tc(...args); + this.$te = (key, locale) => this.$i18n.te(key, locale); + this.$d = (...args) => this.$i18n.d(...args); + this.$n = (...args) => this.$i18n.n(...args); + this.$tm = (key) => this.$i18n.tm(key); + i18n.__setInstance(instance, this.$i18n); + }, + mounted() { + /* istanbul ignore if */ + if (this.$el && + this.$i18n) { + const _vueI18n = this.$i18n; + this.$el.__VUE_I18N__ = _vueI18n.__composer; + const emitter = (this.__v_emitter = + createEmitter()); + _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter); + emitter.on('*', addTimelineEvent); + } + }, + unmounted() { + const instance = vue.getCurrentInstance(); + /* istanbul ignore if */ + if (!instance) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const _vueI18n = this.$i18n; + /* istanbul ignore if */ + if (this.$el && + this.$el.__VUE_I18N__) { + if (this.__v_emitter) { + this.__v_emitter.off('*', addTimelineEvent); + delete this.__v_emitter; + } + if (this.$i18n) { + _vueI18n.__disableEmitter && _vueI18n.__disableEmitter(); + delete this.$el.__VUE_I18N__; + } + } + delete this.$t; + delete this.$rt; + delete this.$tc; + delete this.$te; + delete this.$d; + delete this.$n; + delete this.$tm; + if (_vueI18n.__disposer) { + _vueI18n.__disposer(); + delete _vueI18n.__disposer; + delete _vueI18n.__extender; + } + i18n.__deleteInstance(instance); + delete this.$i18n; + } + }; + } + function mergeToGlobal(g, options) { + g.locale = options.locale || g.locale; + g.fallbackLocale = options.fallbackLocale || g.fallbackLocale; + g.missing = options.missing || g.missing; + g.silentTranslationWarn = + options.silentTranslationWarn || g.silentFallbackWarn; + g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn; + g.formatFallbackMessages = + options.formatFallbackMessages || g.formatFallbackMessages; + g.postTranslation = options.postTranslation || g.postTranslation; + g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage; + g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml; + g.sync = options.sync || g.sync; + g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules); + const messages = getLocaleMessages(g.locale, { + messages: options.messages, + __i18n: options.__i18n + }); + Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale])); + if (options.datetimeFormats) { + Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale])); + } + if (options.numberFormats) { + Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale])); + } + return g; + } + + /** + * Injection key for {@link useI18n} + * + * @remarks + * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components. + * Specify the i18n instance created by {@link createI18n} together with `provide` function. + * + * @VueI18nGeneral + */ + const I18nInjectionKey = + /* #__PURE__*/ makeSymbol('global-vue-i18n'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types + function createI18n(options = {}, VueI18nLegacy) { + // prettier-ignore + const __legacyMode = isBoolean(options.legacy) + ? options.legacy + : true; + // prettier-ignore + const __globalInjection = isBoolean(options.globalInjection) + ? options.globalInjection + : true; + // prettier-ignore + const __allowComposition = __legacyMode + ? !!options.allowComposition + : true; + const __instances = new Map(); + const [globalScope, __global] = createGlobal(options, __legacyMode); + const symbol = /* #__PURE__*/ makeSymbol('vue-i18n' ); + { + if (__legacyMode && __allowComposition && !false) { + warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION)); + } + } + function __getInstance(component) { + return __instances.get(component) || null; + } + function __setInstance(component, instance) { + __instances.set(component, instance); + } + function __deleteInstance(component) { + __instances.delete(component); + } + { + const i18n = { + // mode + get mode() { + return __legacyMode + ? 'legacy' + : 'composition'; + }, + // allowComposition + get allowComposition() { + return __allowComposition; + }, + // install plugin + async install(app, ...options) { + { + app.__VUE_I18N__ = i18n; + } + // setup global provider + app.__VUE_I18N_SYMBOL__ = symbol; + app.provide(app.__VUE_I18N_SYMBOL__, i18n); + // set composer & vuei18n extend hook options from plugin options + if (isPlainObject(options[0])) { + const opts = options[0]; + i18n.__composerExtend = + opts.__composerExtend; + i18n.__vueI18nExtend = + opts.__vueI18nExtend; + } + // global method and properties injection for Composition API + let globalReleaseHandler = null; + if (!__legacyMode && __globalInjection) { + globalReleaseHandler = injectGlobalFields(app, i18n.global); + } + // install built-in components and directive + { + apply(app, i18n, ...options); + } + // setup mixin for Legacy API + if (__legacyMode) { + app.mixin(defineMixin(__global, __global.__composer, i18n)); + } + // release global scope + const unmountApp = app.unmount; + app.unmount = () => { + globalReleaseHandler && globalReleaseHandler(); + i18n.dispose(); + unmountApp(); + }; + // setup vue-devtools plugin + { + const ret = await enableDevTools(app, i18n); + if (!ret) { + throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN); + } + const emitter = createEmitter(); + if (__legacyMode) { + const _vueI18n = __global; + _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter); + } + else { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const _composer = __global; + _composer[EnableEmitter] && _composer[EnableEmitter](emitter); + } + emitter.on('*', addTimelineEvent); + } + }, + // global accessor + get global() { + return __global; + }, + dispose() { + globalScope.stop(); + }, + // @internal + __instances, + // @internal + __getInstance, + // @internal + __setInstance, + // @internal + __deleteInstance + }; + return i18n; + } + } + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + function useI18n(options = {}) { + const instance = vue.getCurrentInstance(); + if (instance == null) { + throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP); + } + if (!instance.isCE && + instance.appContext.app != null && + !instance.appContext.app.__VUE_I18N_SYMBOL__) { + throw createI18nError(I18nErrorCodes.NOT_INSTALLED); + } + const i18n = getI18nInstance(instance); + const gl = getGlobalComposer(i18n); + const componentOptions = getComponentOptions(instance); + const scope = getScope(options, componentOptions); + { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (i18n.mode === 'legacy' && !options.__useComponent) { + if (!i18n.allowComposition) { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE); + } + return useI18nForLegacy(instance, scope, gl, options); + } + } + if (scope === 'global') { + adjustI18nResources(gl, options, componentOptions); + return gl; + } + if (scope === 'parent') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let composer = getComposer(i18n, instance, options.__useComponent); + if (composer == null) { + { + warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE)); + } + composer = gl; + } + return composer; + } + const i18nInternal = i18n; + let composer = i18nInternal.__getInstance(instance); + if (composer == null) { + const composerOptions = assign({}, options); + if ('__i18n' in componentOptions) { + composerOptions.__i18n = componentOptions.__i18n; + } + if (gl) { + composerOptions.__root = gl; + } + composer = createComposer(composerOptions); + if (i18nInternal.__composerExtend) { + composer[DisposeSymbol] = + i18nInternal.__composerExtend(composer); + } + setupLifeCycle(i18nInternal, instance, composer); + i18nInternal.__setInstance(instance, composer); + } + return composer; + } + /** + * Cast to VueI18n legacy compatible type + * + * @remarks + * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge). + * + * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment. + * + * @param i18n - An instance of {@link I18n} + * @returns A i18n instance which is casted to {@link VueI18n} type + * + * @VueI18nTip + * :new: provided by **vue-i18n-bridge only** + * + * @VueI18nGeneral + */ + const castToVueI18n = /* #__PURE__*/ (i18n + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ) => { + if (!(__VUE_I18N_BRIDGE__ in i18n)) { + throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N); + } + return i18n; + }; + function createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + const scope = vue.effectScope(); + { + const obj = legacyMode + ? scope.run(() => createVueI18n(options)) + : scope.run(() => createComposer(options)); + if (obj == null) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + return [scope, obj]; + } + } + function getI18nInstance(instance) { + { + const i18n = vue.inject(!instance.isCE + ? instance.appContext.app.__VUE_I18N_SYMBOL__ + : I18nInjectionKey); + /* istanbul ignore if */ + if (!i18n) { + throw createI18nError(!instance.isCE + ? I18nErrorCodes.UNEXPECTED_ERROR + : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE); + } + return i18n; + } + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function getScope(options, componentOptions) { + // prettier-ignore + return isEmptyObject(options) + ? ('__i18n' in componentOptions) + ? 'local' + : 'global' + : !options.useScope + ? 'local' + : options.useScope; + } + function getGlobalComposer(i18n) { + // prettier-ignore + return i18n.mode === 'composition' + ? i18n.global + : i18n.global.__composer + ; + } + function getComposer(i18n, target, useComponent = false) { + let composer = null; + const root = target.root; + let current = getParentComponentInstance(target, useComponent); + while (current != null) { + const i18nInternal = i18n; + if (i18n.mode === 'composition') { + composer = i18nInternal.__getInstance(current); + } + else { + { + const vueI18n = i18nInternal.__getInstance(current); + if (vueI18n != null) { + composer = vueI18n + .__composer; + if (useComponent && + composer && + !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + composer = null; + } + } + } + } + if (composer != null) { + break; + } + if (root === current) { + break; + } + current = current.parent; + } + return composer; + } + function getParentComponentInstance(target, useComponent = false) { + if (target == null) { + return null; + } + { + // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots + return !useComponent + ? target.parent + : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any + } + } + function setupLifeCycle(i18n, target, composer) { + let emitter = null; + { + vue.onMounted(() => { + // inject composer instance to DOM for intlify-devtools + if (target.vnode.el) { + target.vnode.el.__VUE_I18N__ = composer; + emitter = createEmitter(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const _composer = composer; + _composer[EnableEmitter] && _composer[EnableEmitter](emitter); + emitter.on('*', addTimelineEvent); + } + }, target); + vue.onUnmounted(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const _composer = composer; + // remove composer instance from DOM for intlify-devtools + if (target.vnode.el && + target.vnode.el.__VUE_I18N__) { + emitter && emitter.off('*', addTimelineEvent); + _composer[DisableEmitter] && _composer[DisableEmitter](); + delete target.vnode.el.__VUE_I18N__; + } + i18n.__deleteInstance(target); + // dispose extended resources + const dispose = _composer[DisposeSymbol]; + if (dispose) { + dispose(); + delete _composer[DisposeSymbol]; + } + }, target); + } + } + function useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + const isLocalScope = scope === 'local'; + const _composer = vue.shallowRef(null); + if (isLocalScope && + instance.proxy && + !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) { + throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION); + } + const _inheritLocale = isBoolean(options.inheritLocale) + ? options.inheritLocale + : !isString(options.locale); + const _locale = vue.ref( + // prettier-ignore + !isLocalScope || _inheritLocale + ? root.locale.value + : isString(options.locale) + ? options.locale + : DEFAULT_LOCALE); + const _fallbackLocale = vue.ref( + // prettier-ignore + !isLocalScope || _inheritLocale + ? root.fallbackLocale.value + : isString(options.fallbackLocale) || + isArray(options.fallbackLocale) || + isPlainObject(options.fallbackLocale) || + options.fallbackLocale === false + ? options.fallbackLocale + : _locale.value); + const _messages = vue.ref(getLocaleMessages(_locale.value, options)); + // prettier-ignore + const _datetimeFormats = vue.ref(isPlainObject(options.datetimeFormats) + ? options.datetimeFormats + : { [_locale.value]: {} }); + // prettier-ignore + const _numberFormats = vue.ref(isPlainObject(options.numberFormats) + ? options.numberFormats + : { [_locale.value]: {} }); + // prettier-ignore + const _missingWarn = isLocalScope + ? root.missingWarn + : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) + ? options.missingWarn + : true; + // prettier-ignore + const _fallbackWarn = isLocalScope + ? root.fallbackWarn + : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) + ? options.fallbackWarn + : true; + // prettier-ignore + const _fallbackRoot = isLocalScope + ? root.fallbackRoot + : isBoolean(options.fallbackRoot) + ? options.fallbackRoot + : true; + // configure fall back to root + const _fallbackFormat = !!options.fallbackFormat; + // runtime missing + const _missing = isFunction(options.missing) ? options.missing : null; + // postTranslation handler + const _postTranslation = isFunction(options.postTranslation) + ? options.postTranslation + : null; + // prettier-ignore + const _warnHtmlMessage = isLocalScope + ? root.warnHtmlMessage + : isBoolean(options.warnHtmlMessage) + ? options.warnHtmlMessage + : true; + const _escapeParameter = !!options.escapeParameter; + // prettier-ignore + const _modifiers = isLocalScope + ? root.modifiers + : isPlainObject(options.modifiers) + ? options.modifiers + : {}; + // pluralRules + const _pluralRules = options.pluralRules || (isLocalScope && root.pluralRules); + // track reactivity + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ]; + } + // locale + const locale = vue.computed({ + get: () => { + return _composer.value ? _composer.value.locale.value : _locale.value; + }, + set: val => { + if (_composer.value) { + _composer.value.locale.value = val; + } + _locale.value = val; + } + }); + // fallbackLocale + const fallbackLocale = vue.computed({ + get: () => { + return _composer.value + ? _composer.value.fallbackLocale.value + : _fallbackLocale.value; + }, + set: val => { + if (_composer.value) { + _composer.value.fallbackLocale.value = val; + } + _fallbackLocale.value = val; + } + }); + // messages + const messages = vue.computed(() => { + if (_composer.value) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return _composer.value.messages.value; + } + else { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return _messages.value; + } + }); + const datetimeFormats = vue.computed(() => _datetimeFormats.value); + const numberFormats = vue.computed(() => _numberFormats.value); + function getPostTranslationHandler() { + return _composer.value + ? _composer.value.getPostTranslationHandler() + : _postTranslation; + } + function setPostTranslationHandler(handler) { + if (_composer.value) { + _composer.value.setPostTranslationHandler(handler); + } + } + function getMissingHandler() { + return _composer.value ? _composer.value.getMissingHandler() : _missing; + } + function setMissingHandler(handler) { + if (_composer.value) { + _composer.value.setMissingHandler(handler); + } + } + function warpWithDeps(fn) { + trackReactivityValues(); + return fn(); + } + function t(...args) { + return _composer.value + ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args])) + : warpWithDeps(() => ''); + } + function rt(...args) { + return _composer.value + ? Reflect.apply(_composer.value.rt, null, [...args]) + : ''; + } + function d(...args) { + return _composer.value + ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args])) + : warpWithDeps(() => ''); + } + function n(...args) { + return _composer.value + ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args])) + : warpWithDeps(() => ''); + } + function tm(key) { + return _composer.value ? _composer.value.tm(key) : {}; + } + function te(key, locale) { + return _composer.value ? _composer.value.te(key, locale) : false; + } + function getLocaleMessage(locale) { + return _composer.value ? _composer.value.getLocaleMessage(locale) : {}; + } + function setLocaleMessage(locale, message) { + if (_composer.value) { + _composer.value.setLocaleMessage(locale, message); + _messages.value[locale] = message; + } + } + function mergeLocaleMessage(locale, message) { + if (_composer.value) { + _composer.value.mergeLocaleMessage(locale, message); + } + } + function getDateTimeFormat(locale) { + return _composer.value ? _composer.value.getDateTimeFormat(locale) : {}; + } + function setDateTimeFormat(locale, format) { + if (_composer.value) { + _composer.value.setDateTimeFormat(locale, format); + _datetimeFormats.value[locale] = format; + } + } + function mergeDateTimeFormat(locale, format) { + if (_composer.value) { + _composer.value.mergeDateTimeFormat(locale, format); + } + } + function getNumberFormat(locale) { + return _composer.value ? _composer.value.getNumberFormat(locale) : {}; + } + function setNumberFormat(locale, format) { + if (_composer.value) { + _composer.value.setNumberFormat(locale, format); + _numberFormats.value[locale] = format; + } + } + function mergeNumberFormat(locale, format) { + if (_composer.value) { + _composer.value.mergeNumberFormat(locale, format); + } + } + const wrapper = { + get id() { + return _composer.value ? _composer.value.id : -1; + }, + locale, + fallbackLocale, + messages, + datetimeFormats, + numberFormats, + get inheritLocale() { + return _composer.value ? _composer.value.inheritLocale : _inheritLocale; + }, + set inheritLocale(val) { + if (_composer.value) { + _composer.value.inheritLocale = val; + } + }, + get availableLocales() { + return _composer.value + ? _composer.value.availableLocales + : Object.keys(_messages.value); + }, + get modifiers() { + return (_composer.value ? _composer.value.modifiers : _modifiers); + }, + get pluralRules() { + return (_composer.value ? _composer.value.pluralRules : _pluralRules); + }, + get isGlobal() { + return _composer.value ? _composer.value.isGlobal : false; + }, + get missingWarn() { + return _composer.value ? _composer.value.missingWarn : _missingWarn; + }, + set missingWarn(val) { + if (_composer.value) { + _composer.value.missingWarn = val; + } + }, + get fallbackWarn() { + return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn; + }, + set fallbackWarn(val) { + if (_composer.value) { + _composer.value.missingWarn = val; + } + }, + get fallbackRoot() { + return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot; + }, + set fallbackRoot(val) { + if (_composer.value) { + _composer.value.fallbackRoot = val; + } + }, + get fallbackFormat() { + return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat; + }, + set fallbackFormat(val) { + if (_composer.value) { + _composer.value.fallbackFormat = val; + } + }, + get warnHtmlMessage() { + return _composer.value + ? _composer.value.warnHtmlMessage + : _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + if (_composer.value) { + _composer.value.warnHtmlMessage = val; + } + }, + get escapeParameter() { + return _composer.value + ? _composer.value.escapeParameter + : _escapeParameter; + }, + set escapeParameter(val) { + if (_composer.value) { + _composer.value.escapeParameter = val; + } + }, + t, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + rt, + d, + n, + tm, + te, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getDateTimeFormat, + setDateTimeFormat, + mergeDateTimeFormat, + getNumberFormat, + setNumberFormat, + mergeNumberFormat + }; + function sync(composer) { + composer.locale.value = _locale.value; + composer.fallbackLocale.value = _fallbackLocale.value; + Object.keys(_messages.value).forEach(locale => { + composer.mergeLocaleMessage(locale, _messages.value[locale]); + }); + Object.keys(_datetimeFormats.value).forEach(locale => { + composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]); + }); + Object.keys(_numberFormats.value).forEach(locale => { + composer.mergeNumberFormat(locale, _numberFormats.value[locale]); + }); + composer.escapeParameter = _escapeParameter; + composer.fallbackFormat = _fallbackFormat; + composer.fallbackRoot = _fallbackRoot; + composer.fallbackWarn = _fallbackWarn; + composer.missingWarn = _missingWarn; + composer.warnHtmlMessage = _warnHtmlMessage; + } + vue.onBeforeMount(() => { + if (instance.proxy == null || instance.proxy.$i18n == null) { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const composer = (_composer.value = instance.proxy.$i18n + .__composer); + if (scope === 'global') { + _locale.value = composer.locale.value; + _fallbackLocale.value = composer.fallbackLocale.value; + _messages.value = composer.messages.value; + _datetimeFormats.value = composer.datetimeFormats.value; + _numberFormats.value = composer.numberFormats.value; + } + else if (isLocalScope) { + sync(composer); + } + }); + return wrapper; + } + const globalExportProps = [ + 'locale', + 'fallbackLocale', + 'availableLocales' + ]; + const globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te'] + ; + function injectGlobalFields(app, composer) { + const i18n = Object.create(null); + globalExportProps.forEach(prop => { + const desc = Object.getOwnPropertyDescriptor(composer, prop); + if (!desc) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const wrap = vue.isRef(desc.value) // check computed props + ? { + get() { + return desc.value.value; + }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + set(val) { + desc.value.value = val; + } + } + : { + get() { + return desc.get && desc.get(); + } + }; + Object.defineProperty(i18n, prop, wrap); + }); + app.config.globalProperties.$i18n = i18n; + globalExportMethods.forEach(method => { + const desc = Object.getOwnPropertyDescriptor(composer, method); + if (!desc || !desc.value) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + Object.defineProperty(app.config.globalProperties, `$${method}`, desc); + }); + const dispose = () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete app.config.globalProperties.$i18n; + globalExportMethods.forEach(method => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + delete app.config.globalProperties[`$${method}`]; + }); + }; + return dispose; + } + + // register message compiler at vue-i18n + { + registerMessageCompiler(compile); + } + // register message resolver at vue-i18n + registerMessageResolver(resolveValue); + // register fallback locale at vue-i18n + registerLocaleFallbacker(fallbackWithLocaleChain); + // NOTE: experimental !! + { + const target = getGlobalThis(); + target.__INTLIFY__ = true; + setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__); + } + { + initDev(); + } + + exports.DatetimeFormat = DatetimeFormat; + exports.I18nD = I18nD; + exports.I18nInjectionKey = I18nInjectionKey; + exports.I18nN = I18nN; + exports.I18nT = I18nT; + exports.NumberFormat = NumberFormat; + exports.Translation = Translation; + exports.VERSION = VERSION; + exports.castToVueI18n = castToVueI18n; + exports.createI18n = createI18n; + exports.useI18n = useI18n; + exports.vTDirective = vTDirective; + + return exports; + +})({}, Vue); diff --git a/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.prod.js b/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.prod.js new file mode 100644 index 00000000..c00716a6 --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/vue/vue-i18n.global.prod.js @@ -0,0 +1,6 @@ +/*! + * vue-i18n v9.5.0 + * (c) 2023 kazuya kawaguchi + * Released under the MIT License. + */ +var VueI18n=function(e,t){"use strict";const n="undefined"!=typeof window,r=(e,t=!1)=>t?Symbol.for(e):Symbol(e),a=(e,t,n)=>l({l:e,k:t,s:n}),l=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),o=e=>"number"==typeof e&&isFinite(e),s=e=>"[object Date]"===k(e),c=e=>"[object RegExp]"===k(e),u=e=>h(e)&&0===Object.keys(e).length,i=Object.assign;function f(e){return e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}const m=Object.prototype.hasOwnProperty;function _(e,t){return m.call(e,t)}const p=Array.isArray,d=e=>"function"==typeof e,g=e=>"string"==typeof e,E=e=>"boolean"==typeof e,v=e=>null!==e&&"object"==typeof e,b=Object.prototype.toString,k=e=>b.call(e),h=e=>{if(!v(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t.constructor===Object};function L(e,t=""){return e.reduce(((e,n,r)=>0===r?e+n:e+t+n),"")}function N(e){let t=e;return()=>++t}function T(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}function y(e,t,n){const r={start:e,end:t};return null!=n&&(r.source=n),r}const I={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17};function C(e,t,n={}){const{domain:r,messages:a,args:l}=n,o=new SyntaxError(String(e));return o.code=e,t&&(o.location=t),o.domain=r,o}function O(e){throw e}const A=" ",P="\r",F="\n",R=String.fromCharCode(8232),D=String.fromCharCode(8233);function S(e){const t=e;let n=0,r=1,a=1,l=0;const o=e=>t[e]===P&&t[e+1]===F,s=e=>t[e]===D,c=e=>t[e]===R,u=e=>o(e)||(e=>t[e]===F)(e)||s(e)||c(e),i=e=>o(e)||s(e)||c(e)?F:t[e];function f(){return l=0,u(n)&&(r++,a=0),o(n)&&n++,n++,a++,t[n]}return{index:()=>n,line:()=>r,column:()=>a,peekOffset:()=>l,charAt:i,currentChar:()=>i(n),currentPeek:()=>i(n+l),next:f,peek:function(){return o(n+l)&&l++,l++,t[n+l]},reset:function(){n=0,r=1,a=1,l=0},resetPeek:function(e=0){l=e},skipToPeek:function(){const e=n+l;for(;e!==n;)f();l=0}}}const M=void 0,w=".",x="'";function W(e,t={}){const n=!1!==t.location,r=S(e),a=()=>r.index(),l=()=>{return e=r.line(),t=r.column(),n=r.index(),{line:e,column:t,offset:n};var e,t,n},o=l(),s=a(),c={currentType:14,offset:s,startLoc:o,endLoc:o,lastType:14,lastOffset:s,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},u=()=>c,{onError:i}=t;function f(e,t,r){e.endLoc=l(),e.currentType=t;const a={type:t};return n&&(a.loc=y(e.startLoc,e.endLoc)),null!=r&&(a.value=r),a}const m=e=>f(e,14);function _(e,t){return e.currentChar()===t?(e.next(),t):(I.EXPECTED_TOKEN,l(),"")}function p(e){let t="";for(;e.currentPeek()===A||e.currentPeek()===F;)t+=e.currentPeek(),e.peek();return t}function d(e){const t=p(e);return e.skipToPeek(),t}function g(e){if(e===M)return!1;const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||95===t}function E(e,t){const{currentType:n}=t;if(2!==n)return!1;p(e);const r=function(e){if(e===M)return!1;const t=e.charCodeAt(0);return t>=48&&t<=57}("-"===e.currentPeek()?e.peek():e.currentPeek());return e.resetPeek(),r}function v(e){p(e);const t="|"===e.currentPeek();return e.resetPeek(),t}function b(e,t=!0){const n=(t=!1,r="",a=!1)=>{const l=e.currentPeek();return"{"===l?"%"!==r&&t:"@"!==l&&l?"%"===l?(e.peek(),n(t,"%",!0)):"|"===l?!("%"!==r&&!a)||!(r===A||r===F):l===A?(e.peek(),n(!0,A,a)):l!==F||(e.peek(),n(!0,F,a)):"%"===r||t},r=n();return t&&e.resetPeek(),r}function k(e,t){const n=e.currentChar();return n===M?M:t(n)?(e.next(),n):null}function h(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=97&&t<=122||t>=65&&t<=90||t>=48&&t<=57||95===t||36===t}))}function L(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57}))}function N(e){return k(e,(e=>{const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}))}function T(e){let t="",n="";for(;t=L(e);)n+=t;return n}function C(e){let t="";for(;;){const n=e.currentChar();if("{"===n||"}"===n||"@"===n||"|"===n||!n)break;if("%"===n){if(!b(e))break;t+=n,e.next()}else if(n===A||n===F)if(b(e))t+=n,e.next();else{if(v(e))break;t+=n,e.next()}else t+=n,e.next()}return t}function O(e){const t=e.currentChar();switch(t){case"\\":case"'":return e.next(),`\\${t}`;case"u":return P(e,t,4);case"U":return P(e,t,6);default:return I.UNKNOWN_ESCAPE_SEQUENCE,l(),""}}function P(e,t,n){_(e,t);let r="";for(let a=0;a<n;a++){const t=N(e);if(!t){I.INVALID_UNICODE_ESCAPE_SEQUENCE,l(),e.currentChar();break}r+=t}return`\\${t}${r}`}function R(e){d(e);const t=_(e,"|");return d(e),t}function D(e,t){let n=null;switch(e.currentChar()){case"{":return t.braceNest>=1&&(I.NOT_ALLOW_NEST_PLACEHOLDER,l()),e.next(),n=f(t,2,"{"),d(e),t.braceNest++,n;case"}":return t.braceNest>0&&2===t.currentType&&(I.EMPTY_PLACEHOLDER,l()),e.next(),n=f(t,3,"}"),t.braceNest--,t.braceNest>0&&d(e),t.inLinked&&0===t.braceNest&&(t.inLinked=!1),n;case"@":return t.braceNest>0&&(I.UNTERMINATED_CLOSING_BRACE,l()),n=W(e,t)||m(t),t.braceNest=0,n;default:let r=!0,a=!0,o=!0;if(v(e))return t.braceNest>0&&(I.UNTERMINATED_CLOSING_BRACE,l()),n=f(t,1,R(e)),t.braceNest=0,t.inLinked=!1,n;if(t.braceNest>0&&(5===t.currentType||6===t.currentType||7===t.currentType))return I.UNTERMINATED_CLOSING_BRACE,l(),t.braceNest=0,U(e,t);if(r=function(e,t){const{currentType:n}=t;if(2!==n)return!1;p(e);const r=g(e.currentPeek());return e.resetPeek(),r}(e,t))return n=f(t,5,function(e){d(e);let t="",n="";for(;t=h(e);)n+=t;return e.currentChar()===M&&(I.UNTERMINATED_CLOSING_BRACE,l()),n}(e)),d(e),n;if(a=E(e,t))return n=f(t,6,function(e){d(e);let t="";return"-"===e.currentChar()?(e.next(),t+=`-${T(e)}`):t+=T(e),e.currentChar()===M&&(I.UNTERMINATED_CLOSING_BRACE,l()),t}(e)),d(e),n;if(o=function(e,t){const{currentType:n}=t;if(2!==n)return!1;p(e);const r=e.currentPeek()===x;return e.resetPeek(),r}(e,t))return n=f(t,7,function(e){d(e),_(e,"'");let t="",n="";const r=e=>e!==x&&e!==F;for(;t=k(e,r);)n+="\\"===t?O(e):t;const a=e.currentChar();return a===F||a===M?(I.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,l(),a===F&&(e.next(),_(e,"'")),n):(_(e,"'"),n)}(e)),d(e),n;if(!r&&!a&&!o)return n=f(t,13,function(e){d(e);let t="",n="";const r=e=>"{"!==e&&"}"!==e&&e!==A&&e!==F;for(;t=k(e,r);)n+=t;return n}(e)),I.INVALID_TOKEN_IN_PLACEHOLDER,l(),n.value,d(e),n}return n}function W(e,t){const{currentType:n}=t;let r=null;const a=e.currentChar();switch(8!==n&&9!==n&&12!==n&&10!==n||a!==F&&a!==A||(I.INVALID_LINKED_FORMAT,l()),a){case"@":return e.next(),r=f(t,8,"@"),t.inLinked=!0,r;case".":return d(e),e.next(),f(t,9,".");case":":return d(e),e.next(),f(t,10,":");default:return v(e)?(r=f(t,1,R(e)),t.braceNest=0,t.inLinked=!1,r):function(e,t){const{currentType:n}=t;if(8!==n)return!1;p(e);const r="."===e.currentPeek();return e.resetPeek(),r}(e,t)||function(e,t){const{currentType:n}=t;if(8!==n&&12!==n)return!1;p(e);const r=":"===e.currentPeek();return e.resetPeek(),r}(e,t)?(d(e),W(e,t)):function(e,t){const{currentType:n}=t;if(9!==n)return!1;p(e);const r=g(e.currentPeek());return e.resetPeek(),r}(e,t)?(d(e),f(t,12,function(e){let t="",n="";for(;t=h(e);)n+=t;return n}(e))):function(e,t){const{currentType:n}=t;if(10!==n)return!1;const r=()=>{const t=e.currentPeek();return"{"===t?g(e.peek()):!("@"===t||"%"===t||"|"===t||":"===t||"."===t||t===A||!t)&&(t===F?(e.peek(),r()):g(t))},a=r();return e.resetPeek(),a}(e,t)?(d(e),"{"===a?D(e,t)||r:f(t,11,function(e){const t=(n=!1,r)=>{const a=e.currentChar();return"{"!==a&&"%"!==a&&"@"!==a&&"|"!==a&&"("!==a&&")"!==a&&a?a===A?r:a===F||a===w?(r+=a,e.next(),t(n,r)):(r+=a,e.next(),t(!0,r)):r};return t(!1,"")}(e))):(8===n&&(I.INVALID_LINKED_FORMAT,l()),t.braceNest=0,t.inLinked=!1,U(e,t))}}function U(e,t){let n={type:14};if(t.braceNest>0)return D(e,t)||m(t);if(t.inLinked)return W(e,t)||m(t);switch(e.currentChar()){case"{":return D(e,t)||m(t);case"}":return I.UNBALANCED_CLOSING_BRACE,l(),e.next(),f(t,3,"}");case"@":return W(e,t)||m(t);default:if(v(e))return n=f(t,1,R(e)),t.braceNest=0,t.inLinked=!1,n;const{isModulo:r,hasSpace:a}=function(e){const t=p(e),n="%"===e.currentPeek()&&"{"===e.peek();return e.resetPeek(),{isModulo:n,hasSpace:t.length>0}}(e);if(r)return a?f(t,0,C(e)):f(t,4,function(e){d(e);const t=e.currentChar();return"%"!==t&&(I.EXPECTED_TOKEN,l()),e.next(),"%"}(e));if(b(e))return f(t,0,C(e))}return n}return{nextToken:function(){const{currentType:e,offset:t,startLoc:n,endLoc:o}=c;return c.lastType=e,c.lastOffset=t,c.lastStartLoc=n,c.lastEndLoc=o,c.offset=a(),c.startLoc=l(),r.currentChar()===M?f(c,14):U(r,c)},currentOffset:a,currentPosition:l,context:u}}const U=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function $(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const e=parseInt(t||n,16);return e<=55295||e>=57344?String.fromCodePoint(e):"�"}}}function H(e={}){const t=!1!==e.location,{onError:n}=e;function r(e,n,r){const a={type:e};return t&&(a.start=n,a.end=n,a.loc={start:r,end:r}),a}function a(e,n,r,a){a&&(e.type=a),t&&(e.end=n,e.loc&&(e.loc.end=r))}function l(e,t){const n=e.context(),l=r(3,n.offset,n.startLoc);return l.value=t,a(l,e.currentOffset(),e.currentPosition()),l}function o(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:o}=n,s=r(5,l,o);return s.index=parseInt(t,10),e.nextToken(),a(s,e.currentOffset(),e.currentPosition()),s}function s(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:o}=n,s=r(4,l,o);return s.key=t,e.nextToken(),a(s,e.currentOffset(),e.currentPosition()),s}function c(e,t){const n=e.context(),{lastOffset:l,lastStartLoc:o}=n,s=r(9,l,o);return s.value=t.replace(U,$),e.nextToken(),a(s,e.currentOffset(),e.currentPosition()),s}function u(e){const t=e.context(),n=r(6,t.offset,t.startLoc);let l=e.nextToken();if(9===l.type){const t=function(e){const t=e.nextToken(),n=e.context(),{lastOffset:l,lastStartLoc:o}=n,s=r(8,l,o);return 12!==t.type?(I.UNEXPECTED_EMPTY_LINKED_MODIFIER,n.lastStartLoc,s.value="",a(s,l,o),{nextConsumeToken:t,node:s}):(null==t.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,n.lastStartLoc,V(t)),s.value=t.value||"",a(s,e.currentOffset(),e.currentPosition()),{node:s})}(e);n.modifier=t.node,l=t.nextConsumeToken||e.nextToken()}switch(10!==l.type&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(l)),l=e.nextToken(),2===l.type&&(l=e.nextToken()),l.type){case 11:null==l.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(l)),n.key=function(e,t){const n=e.context(),l=r(7,n.offset,n.startLoc);return l.value=t,a(l,e.currentOffset(),e.currentPosition()),l}(e,l.value||"");break;case 5:null==l.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(l)),n.key=s(e,l.value||"");break;case 6:null==l.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(l)),n.key=o(e,l.value||"");break;case 7:null==l.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(l)),n.key=c(e,l.value||"");break;default:I.UNEXPECTED_EMPTY_LINKED_KEY,t.lastStartLoc;const u=e.context(),i=r(7,u.offset,u.startLoc);return i.value="",a(i,u.offset,u.startLoc),n.key=i,a(n,u.offset,u.startLoc),{nextConsumeToken:l,node:n}}return a(n,e.currentOffset(),e.currentPosition()),{node:n}}function f(e){const t=e.context(),n=r(2,1===t.currentType?e.currentOffset():t.offset,1===t.currentType?t.endLoc:t.startLoc);n.items=[];let i=null;do{const r=i||e.nextToken();switch(i=null,r.type){case 0:null==r.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(r)),n.items.push(l(e,r.value||""));break;case 6:null==r.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(r)),n.items.push(o(e,r.value||""));break;case 5:null==r.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(r)),n.items.push(s(e,r.value||""));break;case 7:null==r.value&&(I.UNEXPECTED_LEXICAL_ANALYSIS,t.lastStartLoc,V(r)),n.items.push(c(e,r.value||""));break;case 8:const a=u(e);n.items.push(a.node),i=a.nextConsumeToken||null}}while(14!==t.currentType&&1!==t.currentType);return a(n,1===t.currentType?t.lastOffset:e.currentOffset(),1===t.currentType?t.lastEndLoc:e.currentPosition()),n}function m(e){const t=e.context(),{offset:n,startLoc:l}=t,o=f(e);return 14===t.currentType?o:function(e,t,n,l){const o=e.context();let s=0===l.items.length;const c=r(1,t,n);c.cases=[],c.cases.push(l);do{const t=f(e);s||(s=0===t.items.length),c.cases.push(t)}while(14!==o.currentType);return a(c,e.currentOffset(),e.currentPosition()),c}(e,n,l,o)}return{parse:function(n){const l=W(n,i({},e)),o=l.context(),s=r(0,o.offset,o.startLoc);return t&&s.loc&&(s.loc.source=n),s.body=m(l),e.onCacheKey&&(s.cacheKey=e.onCacheKey(n)),14!==o.currentType&&(I.UNEXPECTED_LEXICAL_ANALYSIS,o.lastStartLoc,n[o.offset]),a(s,l.currentOffset(),l.currentPosition()),s}}}function V(e){if(14===e.type)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function j(e,t){for(let n=0;n<e.length;n++)X(e[n],t)}function X(e,t){switch(e.type){case 1:j(e.cases,t),t.helper("plural");break;case 2:j(e.items,t);break;case 6:X(e.key,t),t.helper("linked"),t.helper("type");break;case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named")}}function G(e,t={}){const n=function(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:e=>(n.helpers.add(e),e)}}(e);n.helper("normalize"),e.body&&X(e.body,n);const r=n.context();e.helpers=Array.from(r.helpers)}function Y(e){if(1===e.items.length){const t=e.items[0];3!==t.type&&9!==t.type||(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;n<e.items.length;n++){const r=e.items[n];if(3!==r.type&&9!==r.type)break;if(null==r.value)break;t.push(r.value)}if(t.length===e.items.length){e.static=L(t);for(let t=0;t<e.items.length;t++){const n=e.items[t];3!==n.type&&9!==n.type||delete n.value}}}}function B(e){switch(e.t=e.type,e.type){case 0:const t=e;B(t.body),t.b=t.body,delete t.body;break;case 1:const n=e,r=n.cases;for(let e=0;e<r.length;e++)B(r[e]);n.c=r,delete n.cases;break;case 2:const a=e,l=a.items;for(let e=0;e<l.length;e++)B(l[e]);a.i=l,delete a.items,a.static&&(a.s=a.static,delete a.static);break;case 3:case 9:case 8:case 7:const o=e;o.value&&(o.v=o.value,delete o.value);break;case 6:const s=e;B(s.key),s.k=s.key,delete s.key,s.modifier&&(B(s.modifier),s.m=s.modifier,delete s.modifier);break;case 5:const c=e;c.i=c.index,delete c.index;break;case 4:const u=e;u.k=u.key,delete u.key}delete e.type}function K(e,t){const{helper:n}=e;switch(t.type){case 0:!function(e,t){t.body?K(e,t.body):e.push("null")}(e,t);break;case 1:!function(e,t){const{helper:n,needIndent:r}=e;if(t.cases.length>1){e.push(`${n("plural")}([`),e.indent(r());const a=t.cases.length;for(let n=0;n<a&&(K(e,t.cases[n]),n!==a-1);n++)e.push(", ");e.deindent(r()),e.push("])")}}(e,t);break;case 2:!function(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const a=t.items.length;for(let l=0;l<a&&(K(e,t.items[l]),l!==a-1);l++)e.push(", ");e.deindent(r()),e.push("])")}(e,t);break;case 6:!function(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),K(e,t.key),t.modifier?(e.push(", "),K(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}(e,t);break;case 8:case 7:case 9:case 3:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${n("interpolate")}(${n("list")}(${t.index}))`,t);break;case 4:e.push(`${n("interpolate")}(${n("named")}(${JSON.stringify(t.key)}))`,t)}}const z=(e,t={})=>{const n=g(t.mode)?t.mode:"normal",r=g(t.filename)?t.filename:"message.intl",a=!!t.sourceMap,l=null!=t.breakLineCode?t.breakLineCode:"arrow"===n?";":"\n",o=t.needIndent?t.needIndent:"arrow"!==n,s=e.helpers||[],c=function(e,t){const{sourceMap:n,filename:r,breakLineCode:a,needIndent:l}=t,o=!1!==t.location,s={filename:r,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:a,needIndent:l,indentLevel:0};function c(e,t){s.code+=e}function u(e,t=!0){const n=t?a:"";c(l?n+" ".repeat(e):n)}return o&&e.loc&&(s.source=e.loc.source),{context:()=>s,push:c,indent:function(e=!0){const t=++s.indentLevel;e&&u(t)},deindent:function(e=!0){const t=--s.indentLevel;e&&u(t)},newline:function(){u(s.indentLevel)},helper:e=>`_${e}`,needIndent:()=>s.needIndent}}(e,{mode:n,filename:r,sourceMap:a,breakLineCode:l,needIndent:o});c.push("normal"===n?"function __msg__ (ctx) {":"(ctx) => {"),c.indent(o),s.length>0&&(c.push(`const { ${L(s.map((e=>`${e}: _${e}`)),", ")} } = ctx`),c.newline()),c.push("return "),K(c,e),c.deindent(o),c.push("}"),delete e.helpers;const{code:u,map:i}=c.context();return{ast:e,code:u,map:i?i.toJSON():void 0}};function J(e,t={}){const n=i({},t),r=!!n.jit,a=!!n.minify,l=null==n.optimize||n.optimize,o=H(n).parse(e);return r?(l&&function(e){const t=e.body;2===t.type?Y(t):t.cases.forEach((e=>Y(e)))}(o),a&&B(o),{ast:o,code:""}):(G(o,n),z(o,n))}const Q=[];Q[0]={w:[0],i:[3,0],"[":[4],o:[7]},Q[1]={w:[1],".":[2],"[":[4],o:[7]},Q[2]={w:[2],i:[3,0],0:[3,0]},Q[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},Q[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},Q[5]={"'":[4,0],o:8,l:[5,0]},Q[6]={'"':[4,0],o:8,l:[6,0]};const q=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Z(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function ee(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(n=t,q.test(n)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var n}const te=new Map;function ne(e,t){return v(e)?e[t]:null}const re=e=>e,ae=e=>"",le="text",oe=e=>0===e.length?"":L(e),se=e=>null==e?"":p(e)||h(e)&&e.toString===b?JSON.stringify(e,null,2):String(e);function ce(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}function ue(e={}){const t=e.locale,n=function(e){const t=o(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(o(e.named.count)||o(e.named.n))?o(e.named.count)?e.named.count:o(e.named.n)?e.named.n:t:t}(e),r=v(e.pluralRules)&&g(t)&&d(e.pluralRules[t])?e.pluralRules[t]:ce,a=v(e.pluralRules)&&g(t)&&d(e.pluralRules[t])?ce:void 0,l=e.list||[],s=e.named||{};o(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(n,s);function c(t){const n=d(e.messages)?e.messages(t):!!v(e.messages)&&e.messages[t];return n||(e.parent?e.parent.message(t):ae)}const u=h(e.processor)&&d(e.processor.normalize)?e.processor.normalize:oe,f=h(e.processor)&&d(e.processor.interpolate)?e.processor.interpolate:se,m={list:e=>l[e],named:e=>s[e],plural:e=>e[r(n,e.length,a)],linked:(t,...n)=>{const[r,a]=n;let l="text",o="";1===n.length?v(r)?(o=r.modifier||o,l=r.type||l):g(r)&&(o=r||o):2===n.length&&(g(r)&&(o=r||o),g(a)&&(l=a||l));const s=c(t)(m),u="vnode"===l&&p(s)&&o?s[0]:s;return o?(i=o,e.modifiers?e.modifiers[i]:re)(u,l):u;var i},message:c,type:h(e.processor)&&g(e.processor.type)?e.processor.type:le,interpolate:f,normalize:u,values:i({},l,s)};return m}function ie(e,t){return null!=t.locale?me(t.locale):me(e.locale)}let fe;function me(e){return g(e)?e:null!=fe&&e.resolvedOnce?fe:fe=e()}function _e(e,t,n){return[...new Set([n,...p(t)?t:v(t)?Object.keys(t):g(t)?[t]:[n]])]}function pe(e,t,n){const r=g(n)?n:ke,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let l=a.__localeChainCache.get(r);if(!l){l=[];let e=[n];for(;p(e);)e=de(l,e,t);const o=p(t)||!h(t)?t:t.default?t.default:null;e=g(o)?[o]:o,p(e)&&de(l,e,!1),a.__localeChainCache.set(r,l)}return l}function de(e,t,n){let r=!0;for(let a=0;a<t.length&&E(r);a++){const l=t[a];g(l)&&(r=ge(e,t[a],n))}return r}function ge(e,t,n){let r;const a=t.split("-");do{r=Ee(e,a.join("-"),n),a.splice(-1,1)}while(a.length&&!0===r);return r}function Ee(e,t,n){let r=!1;if(!e.includes(t)&&(r=!0,t)){r="!"!==t[t.length-1];const a=t.replace(/!/g,"");e.push(a),(p(n)||h(n))&&n[a]&&(r=n[a])}return r}const ve="9.5.0",be=-1,ke="en-US",he="",Le=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let Ne,Te,ye;let Ie=null;const Ce=e=>{Ie=e},Oe=()=>Ie;let Ae=0;function Pe(e={}){const t=d(e.onWarn)?e.onWarn:T,n=g(e.version)?e.version:ve,r=g(e.locale)||d(e.locale)?e.locale:ke,a=d(r)?ke:r,l=p(e.fallbackLocale)||h(e.fallbackLocale)||g(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a,o=h(e.messages)?e.messages:{[a]:{}},s=h(e.datetimeFormats)?e.datetimeFormats:{[a]:{}},u=h(e.numberFormats)?e.numberFormats:{[a]:{}},f=i({},e.modifiers||{},{upper:(e,t)=>"text"===t&&g(e)?e.toUpperCase():"vnode"===t&&v(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&g(e)?e.toLowerCase():"vnode"===t&&v(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&g(e)?Le(e):"vnode"===t&&v(e)&&"__v_isVNode"in e?Le(e.children):e}),m=e.pluralRules||{},_=d(e.missing)?e.missing:null,b=!E(e.missingWarn)&&!c(e.missingWarn)||e.missingWarn,k=!E(e.fallbackWarn)&&!c(e.fallbackWarn)||e.fallbackWarn,L=!!e.fallbackFormat,N=!!e.unresolving,y=d(e.postTranslation)?e.postTranslation:null,I=h(e.processor)?e.processor:null,C=!E(e.warnHtmlMessage)||e.warnHtmlMessage,O=!!e.escapeParameter,A=d(e.messageCompiler)?e.messageCompiler:Ne,P=d(e.messageResolver)?e.messageResolver:Te||ne,F=d(e.localeFallbacker)?e.localeFallbacker:ye||_e,R=v(e.fallbackContext)?e.fallbackContext:void 0,D=e,S=v(D.__datetimeFormatters)?D.__datetimeFormatters:new Map,M=v(D.__numberFormatters)?D.__numberFormatters:new Map,w=v(D.__meta)?D.__meta:{};Ae++;const x={version:n,cid:Ae,locale:r,fallbackLocale:l,messages:o,modifiers:f,pluralRules:m,missing:_,missingWarn:b,fallbackWarn:k,fallbackFormat:L,unresolving:N,postTranslation:y,processor:I,warnHtmlMessage:C,escapeParameter:O,messageCompiler:A,messageResolver:P,localeFallbacker:F,fallbackContext:R,onWarn:t,__meta:w};return x.datetimeFormats=s,x.numberFormats=u,x.__datetimeFormatters=S,x.__numberFormatters=M,x}function Fe(e,t,n,r,a){const{missing:l,onWarn:o}=e;if(null!==l){const r=l(e,n,t,a);return g(r)?r:t}return t}function Re(e,t,n){e.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function De(e){return t=>function(e,t){const n=t.b||t.body;if(1===(n.t||n.type)){const t=n,r=t.c||t.cases;return e.plural(r.reduce(((t,n)=>[...t,Se(e,n)]),[]))}return Se(e,n)}(t,e)}function Se(e,t){const n=t.s||t.static;if(n)return"text"===e.type?n:e.normalize([n]);{const n=(t.i||t.items).reduce(((t,n)=>[...t,Me(e,n)]),[]);return e.normalize(n)}}function Me(e,t){const n=t.t||t.type;switch(n){case 3:const r=t;return r.v||r.value;case 9:const a=t;return a.v||a.value;case 4:const l=t;return e.interpolate(e.named(l.k||l.key));case 5:const o=t;return e.interpolate(e.list(null!=o.i?o.i:o.index));case 6:const s=t,c=s.m||s.modifier;return e.linked(Me(e,s.k||s.key),c?Me(e,c):void 0,e.type);case 7:const u=t;return u.v||u.value;case 8:const i=t;return i.v||i.value;default:throw new Error(`unhandled node type on format message part: ${n}`)}}const we=I.__EXTEND_POINT__,xe=N(we),We={INVALID_ARGUMENT:we,INVALID_DATE_ARGUMENT:xe(),INVALID_ISO_DATE_ARGUMENT:xe(),NOT_SUPPORT_NON_STRING_MESSAGE:xe(),__EXTEND_POINT__:xe()},Ue=e=>e;let $e=Object.create(null);const He=e=>v(e)&&(0===e.t||0===e.type)&&("b"in e||"body"in e);const Ve=()=>"",je=e=>d(e);function Xe(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:a,messageCompiler:l,fallbackLocale:s,messages:c}=e,[u,i]=Be(...t),m=E(i.missingWarn)?i.missingWarn:e.missingWarn,_=E(i.fallbackWarn)?i.fallbackWarn:e.fallbackWarn,d=E(i.escapeParameter)?i.escapeParameter:e.escapeParameter,b=!!i.resolvedMessage,k=g(i.default)||E(i.default)?E(i.default)?l?u:()=>u:i.default:n?l?u:()=>u:"",h=n||""!==k,L=ie(e,i);d&&function(e){p(e.list)?e.list=e.list.map((e=>g(e)?f(e):e)):v(e.named)&&Object.keys(e.named).forEach((t=>{g(e.named[t])&&(e.named[t]=f(e.named[t]))}))}(i);let[N,T,y]=b?[u,L,c[L]||{}]:Ge(e,u,L,s,_,m),I=N,C=u;if(b||g(I)||He(I)||je(I)||h&&(I=k,C=I),!(b||(g(I)||He(I)||je(I))&&g(T)))return a?be:u;let O=!1;const A=je(I)?I:Ye(e,u,T,I,C,(()=>{O=!0}));if(O)return I;const P=function(e,t,n,r){const{modifiers:a,pluralRules:l,messageResolver:s,fallbackLocale:c,fallbackWarn:u,missingWarn:i,fallbackContext:f}=e,m=r=>{let a=s(n,r);if(null==a&&f){const[,,e]=Ge(f,r,t,c,u,i);a=s(e,r)}if(g(a)||He(a)){let n=!1;const l=Ye(e,r,t,a,r,(()=>{n=!0}));return n?Ve:l}return je(a)?a:Ve},_={locale:t,modifiers:a,pluralRules:l,messages:m};e.processor&&(_.processor=e.processor);r.list&&(_.list=r.list);r.named&&(_.named=r.named);o(r.plural)&&(_.pluralIndex=r.plural);return _}(e,T,y,i),F=function(e,t,n){const r=t(n);return r}(0,A,ue(P));return r?r(F,u):F}function Ge(e,t,n,r,a,l){const{messages:o,onWarn:s,messageResolver:c,localeFallbacker:u}=e,i=u(e,r,n);let f,m={},_=null;for(let p=0;p<i.length&&(f=i[p],m=o[f]||{},null===(_=c(m,t))&&(_=m[t]),!(g(_)||He(_)||je(_)));p++){const n=Fe(e,t,f,0,"translate");n!==t&&(_=n)}return[_,f,m]}function Ye(e,t,n,r,l,o){const{messageCompiler:s,warnHtmlMessage:c}=e;if(je(r)){const e=r;return e.locale=e.locale||n,e.key=e.key||t,e}if(null==s){const e=()=>r;return e.locale=n,e.key=t,e}const u=s(r,function(e,t,n,r,l,o){return{locale:t,key:n,warnHtmlMessage:l,onError:e=>{throw o&&o(e),e},onCacheKey:e=>a(t,n,e)}}(0,n,l,0,c,o));return u.locale=n,u.key=t,u.source=r,u}function Be(...e){const[t,n,r]=e,a={};if(!(g(t)||o(t)||je(t)||He(t)))throw Error(We.INVALID_ARGUMENT);const l=o(t)?String(t):(je(t),t);return o(n)?a.plural=n:g(n)?a.default=n:h(n)&&!u(n)?a.named=n:p(n)&&(a.list=n),o(r)?a.plural=r:g(r)?a.default=r:h(r)&&i(a,r),[l,a]}function Ke(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:a,onWarn:l,localeFallbacker:o}=e,{__datetimeFormatters:s}=e,[c,f,m,_]=Je(...t);E(m.missingWarn)?m.missingWarn:e.missingWarn;E(m.fallbackWarn)?m.fallbackWarn:e.fallbackWarn;const p=!!m.part,d=ie(e,m),v=o(e,a,d);if(!g(c)||""===c)return new Intl.DateTimeFormat(d,_).format(f);let b,k={},L=null;for(let u=0;u<v.length&&(b=v[u],k=n[b]||{},L=k[c],!h(L));u++)Fe(e,c,b,0,"datetime format");if(!h(L)||!g(b))return r?be:c;let N=`${b}__${c}`;u(_)||(N=`${N}__${JSON.stringify(_)}`);let T=s.get(N);return T||(T=new Intl.DateTimeFormat(b,i({},L,_)),s.set(N,T)),p?T.formatToParts(f):T.format(f)}const ze=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Je(...e){const[t,n,r,a]=e,l={};let c,u={};if(g(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw Error(We.INVALID_ISO_DATE_ARGUMENT);const n=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();c=new Date(n);try{c.toISOString()}catch(i){throw Error(We.INVALID_ISO_DATE_ARGUMENT)}}else if(s(t)){if(isNaN(t.getTime()))throw Error(We.INVALID_DATE_ARGUMENT);c=t}else{if(!o(t))throw Error(We.INVALID_ARGUMENT);c=t}return g(n)?l.key=n:h(n)&&Object.keys(n).forEach((e=>{ze.includes(e)?u[e]=n[e]:l[e]=n[e]})),g(r)?l.locale=r:h(r)&&(u=r),h(a)&&(u=a),[l.key||"",c,l,u]}function Qe(e,t,n){const r=e;for(const a in n){const e=`${t}__${a}`;r.__datetimeFormatters.has(e)&&r.__datetimeFormatters.delete(e)}}function qe(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:a,onWarn:l,localeFallbacker:o}=e,{__numberFormatters:s}=e,[c,f,m,_]=et(...t);E(m.missingWarn)?m.missingWarn:e.missingWarn;E(m.fallbackWarn)?m.fallbackWarn:e.fallbackWarn;const p=!!m.part,d=ie(e,m),v=o(e,a,d);if(!g(c)||""===c)return new Intl.NumberFormat(d,_).format(f);let b,k={},L=null;for(let u=0;u<v.length&&(b=v[u],k=n[b]||{},L=k[c],!h(L));u++)Fe(e,c,b,0,"number format");if(!h(L)||!g(b))return r?be:c;let N=`${b}__${c}`;u(_)||(N=`${N}__${JSON.stringify(_)}`);let T=s.get(N);return T||(T=new Intl.NumberFormat(b,i({},L,_)),s.set(N,T)),p?T.formatToParts(f):T.format(f)}const Ze=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function et(...e){const[t,n,r,a]=e,l={};let s={};if(!o(t))throw Error(We.INVALID_ARGUMENT);const c=t;return g(n)?l.key=n:h(n)&&Object.keys(n).forEach((e=>{Ze.includes(e)?s[e]=n[e]:l[e]=n[e]})),g(r)?l.locale=r:h(r)&&(s=r),h(a)&&(s=a),[l.key||"",c,l,s]}function tt(e,t,n){const r=e;for(const a in n){const e=`${t}__${a}`;r.__numberFormatters.has(e)&&r.__numberFormatters.delete(e)}}const nt="9.5.0",rt=We.__EXTEND_POINT__,at=N(rt),lt={UNEXPECTED_RETURN_TYPE:rt,INVALID_ARGUMENT:at(),MUST_BE_CALL_SETUP_TOP:at(),NOT_INSTALLED:at(),NOT_AVAILABLE_IN_LEGACY_MODE:at(),REQUIRED_VALUE:at(),INVALID_VALUE:at(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:at(),NOT_INSTALLED_WITH_PROVIDE:at(),UNEXPECTED_ERROR:at(),NOT_COMPATIBLE_LEGACY_VUE_I18N:at(),BRIDGE_SUPPORT_VUE_2_ONLY:at(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:at(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:at(),__EXTEND_POINT__:at()};const ot=r("__translateVNode"),st=r("__datetimeParts"),ct=r("__numberParts"),ut=r("__setPluralRules"),it=r("__injectWithOption"),ft=r("__dispose");function mt(e){if(!v(e))return e;for(const t in e)if(_(e,t))if(t.includes(".")){const n=t.split("."),r=n.length-1;let a=e,l=!1;for(let e=0;e<r;e++){if(n[e]in a||(a[n[e]]={}),!v(a[n[e]])){l=!0;break}a=a[n[e]]}l||(a[n[r]]=e[t],delete e[t]),v(a[n[r]])&&mt(a[n[r]])}else v(e[t])&&mt(e[t]);return e}function _t(e,t){const{messages:n,__i18n:r,messageResolver:a,flatJson:l}=t,o=h(n)?n:p(r)?{}:{[e]:{}};if(p(r)&&r.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:n}=e;t?(o[t]=o[t]||{},dt(n,o[t])):dt(n,o)}else g(e)&&dt(JSON.parse(e),o)})),null==a&&l)for(const s in o)_(o,s)&&mt(o[s]);return o}const pt=e=>!v(e)||p(e);function dt(e,t){if(pt(e)||pt(t))throw Error(lt.INVALID_VALUE);for(const n in e)_(e,n)&&(pt(e[n])||pt(t[n])?t[n]=e[n]:dt(e[n],t[n]))}function gt(e){return e.type}function Et(e,t,n){let r=v(t.messages)?t.messages:{};"__i18nGlobal"in n&&(r=_t(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const a=Object.keys(r);if(a.length&&a.forEach((t=>{e.mergeLocaleMessage(t,r[t])})),v(t.datetimeFormats)){const n=Object.keys(t.datetimeFormats);n.length&&n.forEach((n=>{e.mergeDateTimeFormat(n,t.datetimeFormats[n])}))}if(v(t.numberFormats)){const n=Object.keys(t.numberFormats);n.length&&n.forEach((n=>{e.mergeNumberFormat(n,t.numberFormats[n])}))}}function vt(e){return t.createVNode(t.Text,null,e,0)}let bt=0;function kt(e){return(n,r,a,l)=>e(r,a,t.getCurrentInstance()||void 0,l)}function ht(e={},r){const{__root:a,__injectWithOption:l}=e,s=void 0===a;let u=!E(e.inheritLocale)||e.inheritLocale;const f=t.ref(a&&u?a.locale.value:g(e.locale)?e.locale:ke),m=t.ref(a&&u?a.fallbackLocale.value:g(e.fallbackLocale)||p(e.fallbackLocale)||h(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:f.value),_=t.ref(_t(f.value,e)),b=t.ref(h(e.datetimeFormats)?e.datetimeFormats:{[f.value]:{}}),k=t.ref(h(e.numberFormats)?e.numberFormats:{[f.value]:{}});let L=a?a.missingWarn:!E(e.missingWarn)&&!c(e.missingWarn)||e.missingWarn,N=a?a.fallbackWarn:!E(e.fallbackWarn)&&!c(e.fallbackWarn)||e.fallbackWarn,T=a?a.fallbackRoot:!E(e.fallbackRoot)||e.fallbackRoot,y=!!e.fallbackFormat,I=d(e.missing)?e.missing:null,C=d(e.missing)?kt(e.missing):null,O=d(e.postTranslation)?e.postTranslation:null,A=a?a.warnHtmlMessage:!E(e.warnHtmlMessage)||e.warnHtmlMessage,P=!!e.escapeParameter;const F=a?a.modifiers:h(e.modifiers)?e.modifiers:{};let R,D=e.pluralRules||a&&a.pluralRules;R=(()=>{s&&Ce(null);const t={version:nt,locale:f.value,fallbackLocale:m.value,messages:_.value,modifiers:F,pluralRules:D,missing:null===C?void 0:C,missingWarn:L,fallbackWarn:N,fallbackFormat:y,unresolving:!0,postTranslation:null===O?void 0:O,warnHtmlMessage:A,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};t.datetimeFormats=b.value,t.numberFormats=k.value,t.__datetimeFormatters=h(R)?R.__datetimeFormatters:void 0,t.__numberFormatters=h(R)?R.__numberFormatters:void 0;const n=Pe(t);return s&&Ce(n),n})(),Re(R,f.value,m.value);const S=t.computed({get:()=>f.value,set:e=>{f.value=e,R.locale=f.value}}),M=t.computed({get:()=>m.value,set:e=>{m.value=e,R.fallbackLocale=m.value,Re(R,f.value,e)}}),w=t.computed((()=>_.value)),x=t.computed((()=>b.value)),W=t.computed((()=>k.value));const U=(e,t,n,r,l,c)=>{let u;f.value,m.value,_.value,b.value,k.value;try{0,s||(R.fallbackContext=a?Oe():void 0),u=e(R)}finally{s||(R.fallbackContext=void 0)}if(o(u)&&u===be){const[e,n]=t();return a&&T?r(a):l(e)}if(c(u))return u;throw Error(lt.UNEXPECTED_RETURN_TYPE)};function $(...e){return U((t=>Reflect.apply(Xe,null,[t,...e])),(()=>Be(...e)),"translate",(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>g(e)))}const H={normalize:function(e){return e.map((e=>g(e)||o(e)||E(e)?vt(String(e)):e))},interpolate:e=>e,type:"vnode"};function V(e){return _.value[e]||{}}bt++,a&&n&&(t.watch(a.locale,(e=>{u&&(f.value=e,R.locale=e,Re(R,f.value,m.value))})),t.watch(a.fallbackLocale,(e=>{u&&(m.value=e,R.fallbackLocale=e,Re(R,f.value,m.value))})));const j={id:bt,locale:S,fallbackLocale:M,get inheritLocale(){return u},set inheritLocale(e){u=e,e&&a&&(f.value=a.locale.value,m.value=a.fallbackLocale.value,Re(R,f.value,m.value))},get availableLocales(){return Object.keys(_.value).sort()},messages:w,get modifiers(){return F},get pluralRules(){return D||{}},get isGlobal(){return s},get missingWarn(){return L},set missingWarn(e){L=e,R.missingWarn=L},get fallbackWarn(){return N},set fallbackWarn(e){N=e,R.fallbackWarn=N},get fallbackRoot(){return T},set fallbackRoot(e){T=e},get fallbackFormat(){return y},set fallbackFormat(e){y=e,R.fallbackFormat=y},get warnHtmlMessage(){return A},set warnHtmlMessage(e){A=e,R.warnHtmlMessage=e},get escapeParameter(){return P},set escapeParameter(e){P=e,R.escapeParameter=e},t:$,getLocaleMessage:V,setLocaleMessage:function(e,t){_.value[e]=t,R.messages=_.value},mergeLocaleMessage:function(e,t){_.value[e]=_.value[e]||{},dt(t,_.value[e]),R.messages=_.value},getPostTranslationHandler:function(){return d(O)?O:null},setPostTranslationHandler:function(e){O=e,R.postTranslation=e},getMissingHandler:function(){return I},setMissingHandler:function(e){null!==e&&(C=kt(e)),I=e,R.missing=C},[ut]:function(e){D=e,R.pluralRules=D}};return j.datetimeFormats=x,j.numberFormats=W,j.rt=function(...e){const[t,n,r]=e;if(r&&!v(r))throw Error(lt.INVALID_ARGUMENT);return $(t,n,i({resolvedMessage:!0},r||{}))},j.te=function(e,t){if(!e)return!1;const n=V(g(t)?t:f.value);return null!==R.messageResolver(n,e)},j.tm=function(e){const t=function(e){let t=null;const n=pe(R,m.value,f.value);for(let r=0;r<n.length;r++){const a=_.value[n[r]]||{},l=R.messageResolver(a,e);if(null!=l){t=l;break}}return t}(e);return null!=t?t:a&&a.tm(e)||{}},j.d=function(...e){return U((t=>Reflect.apply(Ke,null,[t,...e])),(()=>Je(...e)),"datetime format",(t=>Reflect.apply(t.d,t,[...e])),(()=>he),(e=>g(e)))},j.n=function(...e){return U((t=>Reflect.apply(qe,null,[t,...e])),(()=>et(...e)),"number format",(t=>Reflect.apply(t.n,t,[...e])),(()=>he),(e=>g(e)))},j.getDateTimeFormat=function(e){return b.value[e]||{}},j.setDateTimeFormat=function(e,t){b.value[e]=t,R.datetimeFormats=b.value,Qe(R,e,t)},j.mergeDateTimeFormat=function(e,t){b.value[e]=i(b.value[e]||{},t),R.datetimeFormats=b.value,Qe(R,e,t)},j.getNumberFormat=function(e){return k.value[e]||{}},j.setNumberFormat=function(e,t){k.value[e]=t,R.numberFormats=k.value,tt(R,e,t)},j.mergeNumberFormat=function(e,t){k.value[e]=i(k.value[e]||{},t),R.numberFormats=k.value,tt(R,e,t)},j[it]=l,j[ot]=function(...e){return U((t=>{let n;const r=t;try{r.processor=H,n=Reflect.apply(Xe,null,[r,...e])}finally{r.processor=null}return n}),(()=>Be(...e)),"translate",(t=>t[ot](...e)),(e=>[vt(e)]),(e=>p(e)))},j[st]=function(...e){return U((t=>Reflect.apply(Ke,null,[t,...e])),(()=>Je(...e)),"datetime format",(t=>t[st](...e)),(()=>[]),(e=>g(e)||p(e)))},j[ct]=function(...e){return U((t=>Reflect.apply(qe,null,[t,...e])),(()=>et(...e)),"number format",(t=>t[ct](...e)),(()=>[]),(e=>g(e)||p(e)))},j}function Lt(e={},t){{const t=ht(function(e){const t=g(e.locale)?e.locale:ke,n=g(e.fallbackLocale)||p(e.fallbackLocale)||h(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,r=d(e.missing)?e.missing:void 0,a=!E(e.silentTranslationWarn)&&!c(e.silentTranslationWarn)||!e.silentTranslationWarn,l=!E(e.silentFallbackWarn)&&!c(e.silentFallbackWarn)||!e.silentFallbackWarn,o=!E(e.fallbackRoot)||e.fallbackRoot,s=!!e.formatFallbackMessages,u=h(e.modifiers)?e.modifiers:{},f=e.pluralizationRules,m=d(e.postTranslation)?e.postTranslation:void 0,_=!g(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,v=!!e.escapeParameterHtml,b=!E(e.sync)||e.sync;let k=e.messages;if(h(e.sharedMessages)){const t=e.sharedMessages;k=Object.keys(t).reduce(((e,n)=>{const r=e[n]||(e[n]={});return i(r,t[n]),e}),k||{})}const{__i18n:L,__root:N,__injectWithOption:T}=e,y=e.datetimeFormats,I=e.numberFormats;return{locale:t,fallbackLocale:n,messages:k,flatJson:e.flatJson,datetimeFormats:y,numberFormats:I,missing:r,missingWarn:a,fallbackWarn:l,fallbackRoot:o,fallbackFormat:s,modifiers:u,pluralRules:f,postTranslation:m,warnHtmlMessage:_,escapeParameter:v,messageResolver:e.messageResolver,inheritLocale:b,__i18n:L,__root:N,__injectWithOption:T}}(e)),{__extender:n}=e,r={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return E(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=E(e)?!e:e},get silentFallbackWarn(){return E(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=E(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[n,r,a]=e,l={};let o=null,s=null;if(!g(n))throw Error(lt.INVALID_ARGUMENT);const c=n;return g(r)?l.locale=r:p(r)?o=r:h(r)&&(s=r),p(a)?o=a:h(a)&&(s=a),Reflect.apply(t.t,t,[c,o||s||{},l])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[n,r,a]=e,l={plural:1};let s=null,c=null;if(!g(n))throw Error(lt.INVALID_ARGUMENT);const u=n;return g(r)?l.locale=r:o(r)?l.plural=r:p(r)?s=r:h(r)&&(c=r),g(a)?l.locale=a:p(a)?s=a:h(a)&&(c=a),Reflect.apply(t.t,t,[u,s||c||{},l])},te:(e,n)=>t.te(e,n),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,n){t.setLocaleMessage(e,n)},mergeLocaleMessage(e,n){t.mergeLocaleMessage(e,n)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,n){t.setDateTimeFormat(e,n)},mergeDateTimeFormat(e,n){t.mergeDateTimeFormat(e,n)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,n){t.setNumberFormat(e,n)},mergeNumberFormat(e,n){t.mergeNumberFormat(e,n)},getChoiceIndex:(e,t)=>-1};return r.__extender=n,r}}const Nt={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function Tt(e){return t.Fragment}const yt=t.defineComponent({name:"i18n-t",props:i({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>o(e)||!isNaN(e)}},Nt),setup(e,n){const{slots:r,attrs:a}=n,l=e.i18n||xt({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(r).filter((e=>"_"!==e)),s={};e.locale&&(s.locale=e.locale),void 0!==e.plural&&(s.plural=g(e.plural)?+e.plural:e.plural);const c=function({slots:e},n){if(1===n.length&&"default"===n[0])return(e.default?e.default():[]).reduce(((e,n)=>[...e,...n.type===t.Fragment?n.children:[n]]),[]);return n.reduce(((t,n)=>{const r=e[n];return r&&(t[n]=r()),t}),{})}(n,o),u=l[ot](e.keypath,c,s),f=i({},a),m=g(e.tag)||v(e.tag)?e.tag:Tt();return t.h(m,f,u)}}}),It=yt;function Ct(e,n,r,a){const{slots:l,attrs:o}=n;return()=>{const n={part:!0};let s={};e.locale&&(n.locale=e.locale),g(e.format)?n.key=e.format:v(e.format)&&(g(e.format.key)&&(n.key=e.format.key),s=Object.keys(e.format).reduce(((t,n)=>r.includes(n)?i({},t,{[n]:e.format[n]}):t),{}));const c=a(e.value,n,s);let u=[n.key];p(c)?u=c.map(((e,t)=>{const n=l[e.type],r=n?n({[e.type]:e.value,index:t,parts:c}):[e.value];var a;return p(a=r)&&!g(a[0])&&(r[0].key=`${e.type}-${t}`),r})):g(c)&&(u=[c]);const f=i({},o),m=g(e.tag)||v(e.tag)?e.tag:Tt();return t.h(m,f,u)}}const Ot=t.defineComponent({name:"i18n-n",props:i({value:{type:Number,required:!0},format:{type:[String,Object]}},Nt),setup(e,t){const n=e.i18n||xt({useScope:"parent",__useComponent:!0});return Ct(e,t,Ze,((...e)=>n[ct](...e)))}}),At=Ot,Pt=t.defineComponent({name:"i18n-d",props:i({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Nt),setup(e,t){const n=e.i18n||xt({useScope:"parent",__useComponent:!0});return Ct(e,t,ze,((...e)=>n[st](...e)))}}),Ft=Pt;function Rt(e){const r=t=>{const{instance:n,modifiers:r,value:a}=t;if(!n||!n.$)throw Error(lt.UNEXPECTED_ERROR);const l=function(e,t){const n=e;if("composition"===e.mode)return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return null!=r?r.__composer:e.global.__composer}}(e,n.$),o=Dt(a);return[Reflect.apply(l.t,l,[...St(o)]),l]};return{created:(a,l)=>{const[o,s]=r(l);n&&e.global===s&&(a.__i18nWatcher=t.watch(s.locale,(()=>{l.instance&&l.instance.$forceUpdate()}))),a.__composer=s,a.textContent=o},unmounted:e=>{n&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const n=e.__composer,r=Dt(t);e.textContent=Reflect.apply(n.t,n,[...St(r)])}},getSSRProps:e=>{const[t]=r(e);return{textContent:t}}}}function Dt(e){if(g(e))return{path:e};if(h(e)){if(!("path"in e))throw Error(lt.REQUIRED_VALUE,"path");return e}throw Error(lt.INVALID_VALUE)}function St(e){const{path:t,locale:n,args:r,choice:a,plural:l}=e,s={},c=r||{};return g(n)&&(s.locale=n),o(a)&&(s.plural=a),o(l)&&(s.plural=l),[t,c,s]}function Mt(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[ut](t.pluralizationRules||e.pluralizationRules);const n=_t(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach((t=>e.mergeLocaleMessage(t,n[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((n=>e.mergeNumberFormat(n,t.numberFormats[n]))),e}const wt=r("global-vue-i18n");function xt(e={}){const n=t.getCurrentInstance();if(null==n)throw Error(lt.MUST_BE_CALL_SETUP_TOP);if(!n.isCE&&null!=n.appContext.app&&!n.appContext.app.__VUE_I18N_SYMBOL__)throw Error(lt.NOT_INSTALLED);const r=function(e){{const n=t.inject(e.isCE?wt:e.appContext.app.__VUE_I18N_SYMBOL__);if(!n)throw function(e,...t){return C(e,null,void 0)}(e.isCE?lt.NOT_INSTALLED_WITH_PROVIDE:lt.UNEXPECTED_ERROR);return n}}(n),a=function(e){return"composition"===e.mode?e.global:e.global.__composer}(r),l=gt(n),o=function(e,t){return u(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,l);if("legacy"===r.mode&&!e.__useComponent){if(!r.allowComposition)throw Error(lt.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,n,r,a={}){const l="local"===n,o=t.shallowRef(null);if(l&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw Error(lt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=E(a.inheritLocale)?a.inheritLocale:!g(a.locale),u=t.ref(!l||s?r.locale.value:g(a.locale)?a.locale:ke),i=t.ref(!l||s?r.fallbackLocale.value:g(a.fallbackLocale)||p(a.fallbackLocale)||h(a.fallbackLocale)||!1===a.fallbackLocale?a.fallbackLocale:u.value),f=t.ref(_t(u.value,a)),m=t.ref(h(a.datetimeFormats)?a.datetimeFormats:{[u.value]:{}}),_=t.ref(h(a.numberFormats)?a.numberFormats:{[u.value]:{}}),v=l?r.missingWarn:!E(a.missingWarn)&&!c(a.missingWarn)||a.missingWarn,b=l?r.fallbackWarn:!E(a.fallbackWarn)&&!c(a.fallbackWarn)||a.fallbackWarn,k=l?r.fallbackRoot:!E(a.fallbackRoot)||a.fallbackRoot,L=!!a.fallbackFormat,N=d(a.missing)?a.missing:null,T=d(a.postTranslation)?a.postTranslation:null,y=l?r.warnHtmlMessage:!E(a.warnHtmlMessage)||a.warnHtmlMessage,I=!!a.escapeParameter,C=l?r.modifiers:h(a.modifiers)?a.modifiers:{},O=a.pluralRules||l&&r.pluralRules;function A(){return[u.value,i.value,f.value,m.value,_.value]}const P=t.computed({get:()=>o.value?o.value.locale.value:u.value,set:e=>{o.value&&(o.value.locale.value=e),u.value=e}}),F=t.computed({get:()=>o.value?o.value.fallbackLocale.value:i.value,set:e=>{o.value&&(o.value.fallbackLocale.value=e),i.value=e}}),R=t.computed((()=>o.value?o.value.messages.value:f.value)),D=t.computed((()=>m.value)),S=t.computed((()=>_.value));function M(){return o.value?o.value.getPostTranslationHandler():T}function w(e){o.value&&o.value.setPostTranslationHandler(e)}function x(){return o.value?o.value.getMissingHandler():N}function W(e){o.value&&o.value.setMissingHandler(e)}function U(e){return A(),e()}function $(...e){return o.value?U((()=>Reflect.apply(o.value.t,null,[...e]))):U((()=>""))}function H(...e){return o.value?Reflect.apply(o.value.rt,null,[...e]):""}function V(...e){return o.value?U((()=>Reflect.apply(o.value.d,null,[...e]))):U((()=>""))}function j(...e){return o.value?U((()=>Reflect.apply(o.value.n,null,[...e]))):U((()=>""))}function X(e){return o.value?o.value.tm(e):{}}function G(e,t){return!!o.value&&o.value.te(e,t)}function Y(e){return o.value?o.value.getLocaleMessage(e):{}}function B(e,t){o.value&&(o.value.setLocaleMessage(e,t),f.value[e]=t)}function K(e,t){o.value&&o.value.mergeLocaleMessage(e,t)}function z(e){return o.value?o.value.getDateTimeFormat(e):{}}function J(e,t){o.value&&(o.value.setDateTimeFormat(e,t),m.value[e]=t)}function Q(e,t){o.value&&o.value.mergeDateTimeFormat(e,t)}function q(e){return o.value?o.value.getNumberFormat(e):{}}function Z(e,t){o.value&&(o.value.setNumberFormat(e,t),_.value[e]=t)}function ee(e,t){o.value&&o.value.mergeNumberFormat(e,t)}const te={get id(){return o.value?o.value.id:-1},locale:P,fallbackLocale:F,messages:R,datetimeFormats:D,numberFormats:S,get inheritLocale(){return o.value?o.value.inheritLocale:s},set inheritLocale(e){o.value&&(o.value.inheritLocale=e)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(f.value)},get modifiers(){return o.value?o.value.modifiers:C},get pluralRules(){return o.value?o.value.pluralRules:O},get isGlobal(){return!!o.value&&o.value.isGlobal},get missingWarn(){return o.value?o.value.missingWarn:v},set missingWarn(e){o.value&&(o.value.missingWarn=e)},get fallbackWarn(){return o.value?o.value.fallbackWarn:b},set fallbackWarn(e){o.value&&(o.value.missingWarn=e)},get fallbackRoot(){return o.value?o.value.fallbackRoot:k},set fallbackRoot(e){o.value&&(o.value.fallbackRoot=e)},get fallbackFormat(){return o.value?o.value.fallbackFormat:L},set fallbackFormat(e){o.value&&(o.value.fallbackFormat=e)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:y},set warnHtmlMessage(e){o.value&&(o.value.warnHtmlMessage=e)},get escapeParameter(){return o.value?o.value.escapeParameter:I},set escapeParameter(e){o.value&&(o.value.escapeParameter=e)},t:$,getPostTranslationHandler:M,setPostTranslationHandler:w,getMissingHandler:x,setMissingHandler:W,rt:H,d:V,n:j,tm:X,te:G,getLocaleMessage:Y,setLocaleMessage:B,mergeLocaleMessage:K,getDateTimeFormat:z,setDateTimeFormat:J,mergeDateTimeFormat:Q,getNumberFormat:q,setNumberFormat:Z,mergeNumberFormat:ee};function ne(e){e.locale.value=u.value,e.fallbackLocale.value=i.value,Object.keys(f.value).forEach((t=>{e.mergeLocaleMessage(t,f.value[t])})),Object.keys(m.value).forEach((t=>{e.mergeDateTimeFormat(t,m.value[t])})),Object.keys(_.value).forEach((t=>{e.mergeNumberFormat(t,_.value[t])})),e.escapeParameter=I,e.fallbackFormat=L,e.fallbackRoot=k,e.fallbackWarn=b,e.missingWarn=v,e.warnHtmlMessage=y}return t.onBeforeMount((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw Error(lt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const t=o.value=e.proxy.$i18n.__composer;"global"===n?(u.value=t.locale.value,i.value=t.fallbackLocale.value,f.value=t.messages.value,m.value=t.datetimeFormats.value,_.value=t.numberFormats.value):l&&ne(t)})),te}(n,o,a,e)}if("global"===o)return Et(a,e,l),a;if("parent"===o){let t=function(e,t,n=!1){let r=null;const a=t.root;let l=function(e,t=!1){if(null==e)return null;return t&&e.vnode.ctx||e.parent}(t,n);for(;null!=l;){const t=e;if("composition"===e.mode)r=t.__getInstance(l);else{const e=t.__getInstance(l);null!=e&&(r=e.__composer,n&&r&&!r[it]&&(r=null))}if(null!=r)break;if(a===l)break;l=l.parent}return r}(r,n,e.__useComponent);return null==t&&(t=a),t}const s=r;let f=s.__getInstance(n);if(null==f){const r=i({},e);"__i18n"in l&&(r.__i18n=l.__i18n),a&&(r.__root=a),f=ht(r),s.__composerExtend&&(f[ft]=s.__composerExtend(f)),function(e,n,r){t.onMounted((()=>{}),n),t.onUnmounted((()=>{const t=r;e.__deleteInstance(n);const a=t[ft];a&&(a(),delete t[ft])}),n)}(s,n,f),s.__setInstance(n,f)}return f}const Wt=["locale","fallbackLocale","availableLocales"],Ut=["t","rt","d","n","tm","te"];return Ne=function(e,t){if(g(e)){!E(t.warnHtmlMessage)||t.warnHtmlMessage;const n=(t.onCacheKey||Ue)(e),r=$e[n];if(r)return r;const{ast:a,detectError:l}=function(e,t={}){let n=!1;const r=t.onError||O;return t.onError=e=>{n=!0,r(e)},{...J(e,t),detectError:n}}(e,{...t,location:!1,jit:!0}),o=De(a);return l?o:$e[n]=o}{const t=e.cacheKey;return t?$e[t]||($e[t]=De(e)):De(e)}},Te=function(e,t){if(!v(e))return null;let n=te.get(t);if(n||(n=function(e){const t=[];let n,r,a,l,o,s,c,u=-1,i=0,f=0;const m=[];function _(){const t=e[u+1];if(5===i&&"'"===t||6===i&&'"'===t)return u++,a="\\"+t,m[0](),!0}for(m[0]=()=>{void 0===r?r=a:r+=a},m[1]=()=>{void 0!==r&&(t.push(r),r=void 0)},m[2]=()=>{m[0](),f++},m[3]=()=>{if(f>0)f--,i=4,m[0]();else{if(f=0,void 0===r)return!1;if(r=ee(r),!1===r)return!1;m[1]()}};null!==i;)if(u++,n=e[u],"\\"!==n||!_()){if(l=Z(n),c=Q[i],o=c[l]||c.l||8,8===o)return;if(i=o[0],void 0!==o[1]&&(s=m[o[1]],s&&(a=n,!1===s())))return;if(7===i)return t}}(t),n&&te.set(t,n)),!n)return null;const r=n.length;let a=e,l=0;for(;l<r;){const e=a[n[l]];if(void 0===e)return null;a=e,l++}return a},ye=pe,e.DatetimeFormat=Pt,e.I18nD=Ft,e.I18nInjectionKey=wt,e.I18nN=At,e.I18nT=It,e.NumberFormat=Ot,e.Translation=yt,e.VERSION=nt,e.castToVueI18n=e=>{if(!("__VUE_I18N_BRIDGE__"in e))throw Error(lt.NOT_COMPATIBLE_LEGACY_VUE_I18N);return e},e.createI18n=function(e={},n){const a=!E(e.legacy)||e.legacy,l=!E(e.globalInjection)||e.globalInjection,o=!a||!!e.allowComposition,s=new Map,[c,u]=function(e,n,r){const a=t.effectScope();{const t=n?a.run((()=>Lt(e))):a.run((()=>ht(e)));if(null==t)throw Error(lt.UNEXPECTED_ERROR);return[a,t]}}(e,a),i=r("");{const e={get mode(){return a?"legacy":"composition"},get allowComposition(){return o},async install(n,...r){if(n.__VUE_I18N_SYMBOL__=i,n.provide(n.__VUE_I18N_SYMBOL__,e),h(r[0])){const t=r[0];e.__composerExtend=t.__composerExtend,e.__vueI18nExtend=t.__vueI18nExtend}let o=null;!a&&l&&(o=function(e,n){const r=Object.create(null);Wt.forEach((e=>{const a=Object.getOwnPropertyDescriptor(n,e);if(!a)throw Error(lt.UNEXPECTED_ERROR);const l=t.isRef(a.value)?{get:()=>a.value.value,set(e){a.value.value=e}}:{get:()=>a.get&&a.get()};Object.defineProperty(r,e,l)})),e.config.globalProperties.$i18n=r,Ut.forEach((t=>{const r=Object.getOwnPropertyDescriptor(n,t);if(!r||!r.value)throw Error(lt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${t}`,r)}));const a=()=>{delete e.config.globalProperties.$i18n,Ut.forEach((t=>{delete e.config.globalProperties[`$${t}`]}))};return a}(n,e.global)),function(e,t,...n){const r=h(n[0])?n[0]:{},a=!!r.useI18nComponentName;(!E(r.globalInstall)||r.globalInstall)&&([a?"i18n":yt.name,"I18nT"].forEach((t=>e.component(t,yt))),[Ot.name,"I18nN"].forEach((t=>e.component(t,Ot))),[Pt.name,"I18nD"].forEach((t=>e.component(t,Pt)))),e.directive("t",Rt(t))}(n,e,...r),a&&n.mixin(function(e,n,r){return{beforeCreate(){const a=t.getCurrentInstance();if(!a)throw Error(lt.UNEXPECTED_ERROR);const l=this.$options;if(l.i18n){const t=l.i18n;if(l.__i18n&&(t.__i18n=l.__i18n),t.__root=n,this===this.$root)this.$i18n=Mt(e,t);else{t.__injectWithOption=!0,t.__extender=r.__vueI18nExtend,this.$i18n=Lt(t);const e=this.$i18n;e.__extender&&(e.__disposer=e.__extender(this.$i18n))}}else if(l.__i18n)if(this===this.$root)this.$i18n=Mt(e,l);else{this.$i18n=Lt({__i18n:l.__i18n,__injectWithOption:!0,__extender:r.__vueI18nExtend,__root:n});const e=this.$i18n;e.__extender&&(e.__disposer=e.__extender(this.$i18n))}else this.$i18n=e;l.__i18nGlobal&&Et(n,l,l),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e),r.__setInstance(a,this.$i18n)},mounted(){},unmounted(){const e=t.getCurrentInstance();if(!e)throw Error(lt.UNEXPECTED_ERROR);const n=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__disposer&&(n.__disposer(),delete n.__disposer,delete n.__extender),r.__deleteInstance(e),delete this.$i18n}}}(u,u.__composer,e));const s=n.unmount;n.unmount=()=>{o&&o(),e.dispose(),s()}},get global(){return u},dispose(){c.stop()},__instances:s,__getInstance:function(e){return s.get(e)||null},__setInstance:function(e,t){s.set(e,t)},__deleteInstance:function(e){s.delete(e)}};return e}},e.useI18n=xt,e.vTDirective=Rt,e}({},Vue); diff --git a/src/cdh/vue3/static/cdh.vue3/vue/vue.global.js b/src/cdh/vue3/static/cdh.vue3/vue/vue.global.js new file mode 100644 index 00000000..1db98bb1 --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/vue/vue.global.js @@ -0,0 +1,15361 @@ +var Vue = (function (exports) { + 'use strict'; + + function makeMap(str, expectsLowerCase) { + const map = /* @__PURE__ */ Object.create(null); + const list = str.split(","); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val]; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const onRE = /^on[^a-z]/; + const isOn = (key) => onRE.test(key); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; + }; + const camelizeRE = /-(\w)/g; + const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + }); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction( + (str) => str.charAt(0).toUpperCase() + str.slice(1) + ); + const toHandlerKey = cacheStringFunction( + (str) => str ? `on${capitalize(str)}` : `` + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } + }; + const def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `HYDRATE_EVENTS`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console"; + const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value)) { + return value; + } else if (isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => { + entries[`${key} =>`] = val2; + return entries; + }, {}) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()] + }; + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + + function warn$1(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$1(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function recordEffectScope(effect, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect); + } + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else { + warn$1( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + const createDep = (effects) => { + const dep = new Set(effects); + dep.w = 0; + dep.n = 0; + return dep; + }; + const wasTracked = (dep) => (dep.w & trackOpBit) > 0; + const newTracked = (dep) => (dep.n & trackOpBit) > 0; + const initDepMarkers = ({ deps }) => { + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].w |= trackOpBit; + } + } + }; + const finalizeDepMarkers = (effect) => { + const { deps } = effect; + if (deps.length) { + let ptr = 0; + for (let i = 0; i < deps.length; i++) { + const dep = deps[i]; + if (wasTracked(dep) && !newTracked(dep)) { + dep.delete(effect); + } else { + deps[ptr++] = dep; + } + dep.w &= ~trackOpBit; + dep.n &= ~trackOpBit; + } + deps.length = ptr; + } + }; + + const targetMap = /* @__PURE__ */ new WeakMap(); + let effectTrackDepth = 0; + let trackOpBit = 1; + const maxMarkerBits = 30; + let activeEffect; + const ITERATE_KEY = Symbol("iterate" ); + const MAP_KEY_ITERATE_KEY = Symbol("Map key iterate" ); + class ReactiveEffect { + constructor(fn, scheduler = null, scope) { + this.fn = fn; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this.parent = void 0; + recordEffectScope(this, scope); + } + run() { + if (!this.active) { + return this.fn(); + } + let parent = activeEffect; + let lastShouldTrack = shouldTrack; + while (parent) { + if (parent === this) { + return; + } + parent = parent.parent; + } + try { + this.parent = activeEffect; + activeEffect = this; + shouldTrack = true; + trackOpBit = 1 << ++effectTrackDepth; + if (effectTrackDepth <= maxMarkerBits) { + initDepMarkers(this); + } else { + cleanupEffect(this); + } + return this.fn(); + } finally { + if (effectTrackDepth <= maxMarkerBits) { + finalizeDepMarkers(this); + } + trackOpBit = 1 << --effectTrackDepth; + activeEffect = this.parent; + shouldTrack = lastShouldTrack; + this.parent = void 0; + if (this.deferStop) { + this.stop(); + } + } + } + stop() { + if (activeEffect === this) { + this.deferStop = true; + } else if (this.active) { + cleanupEffect(this); + if (this.onStop) { + this.onStop(); + } + this.active = false; + } + } + } + function cleanupEffect(effect2) { + const { deps } = effect2; + if (deps.length) { + for (let i = 0; i < deps.length; i++) { + deps[i].delete(effect2); + } + deps.length = 0; + } + } + function effect(fn, options) { + if (fn.effect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep()); + } + const eventInfo = { effect: activeEffect, target, type, key } ; + trackEffects(dep, eventInfo); + } + } + function trackEffects(dep, debuggerEventExtraInfo) { + let shouldTrack2 = false; + if (effectTrackDepth <= maxMarkerBits) { + if (!newTracked(dep)) { + dep.n |= trackOpBit; + shouldTrack2 = !wasTracked(dep); + } + } else { + shouldTrack2 = !dep.has(activeEffect); + } + if (shouldTrack2) { + dep.add(activeEffect); + activeEffect.deps.push(dep); + if (activeEffect.onTrack) { + activeEffect.onTrack( + extend( + { + effect: activeEffect + }, + debuggerEventExtraInfo + ) + ); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + const eventInfo = { target, type, key, newValue, oldValue, oldTarget } ; + if (deps.length === 1) { + if (deps[0]) { + { + triggerEffects(deps[0], eventInfo); + } + } + } else { + const effects = []; + for (const dep of deps) { + if (dep) { + effects.push(...dep); + } + } + { + triggerEffects(createDep(effects), eventInfo); + } + } + } + function triggerEffects(dep, debuggerEventExtraInfo) { + const effects = isArray(dep) ? dep : [...dep]; + for (const effect2 of effects) { + if (effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + for (const effect2 of effects) { + if (!effect2.computed) { + triggerEffect(effect2, debuggerEventExtraInfo); + } + } + } + function triggerEffect(effect2, debuggerEventExtraInfo) { + if (effect2 !== activeEffect || effect2.allowRecurse) { + if (effect2.onTrigger) { + effect2.onTrigger(extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + if (effect2.scheduler) { + effect2.scheduler(); + } else { + effect2.run(); + } + } + } + function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + const get$1 = /* @__PURE__ */ createGetter(); + const shallowGet = /* @__PURE__ */ createGetter(false, true); + const readonlyGet = /* @__PURE__ */ createGetter(true); + const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true); + const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); + function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + const res = toRaw(this)[key].apply(this, args); + resetTracking(); + return res; + }; + }); + return instrumentations; + } + function hasOwnProperty(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + function createGetter(isReadonly2 = false, shallow = false) { + return function get2(target, key, receiver) { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) { + return target; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + }; + } + const set$1 = /* @__PURE__ */ createSetter(); + const shallowSet = /* @__PURE__ */ createSetter(true); + function createSetter(shallow = false) { + return function set2(target, key, value, receiver) { + let oldValue = target[key]; + if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) { + return false; + } + if (!shallow) { + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + }; + } + function deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + function has$1(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + function ownKeys(target) { + track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY); + return Reflect.ownKeys(target); + } + const mutableHandlers = { + get: get$1, + set: set$1, + deleteProperty, + has: has$1, + ownKeys + }; + const readonlyHandlers = { + get: readonlyGet, + set(target, key) { + { + warn$1( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + }, + deleteProperty(target, key) { + { + warn$1( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + }; + const shallowReactiveHandlers = /* @__PURE__ */ extend( + {}, + mutableHandlers, + { + get: shallowGet, + set: shallowSet + } + ); + const shallowReadonlyHandlers = /* @__PURE__ */ extend( + {}, + readonlyHandlers, + { + get: shallowReadonlyGet + } + ); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function get(target, key, isReadonly = false, isShallow = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (key !== rawKey) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + } + function has(key, isReadonly = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly) { + if (key !== rawKey) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + } + function size(target, isReadonly = false) { + target = target["__v_raw"]; + !isReadonly && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + } + function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + } + function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + } + function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; + } + function createForEach(isReadonly, isShallow) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; + } + function createIterableMethod(method, isReadonly, isShallow) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive; + !isReadonly && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : this; + }; + } + function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; + } + const [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations + ] = /* @__PURE__ */ createInstrumentations(); + function createInstrumentationGetter(isReadonly, shallow) { + const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly; + } else if (key === "__v_isReadonly") { + return isReadonly; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + function isProxy(value) { + return isReactive(value) || isReadonly(value); + } + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; + } + function markRaw(value) { + def(value, "__v_skip", true); + return value; + } + const toReactive = (value) => isObject(value) ? reactive(value) : value; + const toReadonly = (value) => isObject(value) ? readonly(value) : value; + + function trackRefValue(ref2) { + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + { + trackEffects(ref2.dep || (ref2.dep = createDep()), { + target: ref2, + type: "get", + key: "value" + }); + } + } + } + function triggerRefValue(ref2, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + { + triggerEffects(dep, { + target: ref2, + type: "set", + key: "value", + newValue: newVal + }); + } + } + } + function isRef(r) { + return !!(r && r.__v_isRef === true); + } + function ref(value) { + return createRef(value, false); + } + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, newVal); + } + } + } + function triggerRef(ref2) { + triggerRefValue(ref2, ref2.value ); + } + function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get, set } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get; + this._set = set; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } + } + function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl( + source, + key, + defaultValue + ); + } + + class ComputedRefImpl { + constructor(getter, _setter, isReadonly, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this._dirty = true; + this.effect = new ReactiveEffect(getter, () => { + if (!this._dirty) { + this._dirty = true; + triggerRefValue(this); + } + }); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly; + } + get value() { + const self = toRaw(this); + trackRefValue(self); + if (self._dirty || !self._cacheable) { + self._dirty = false; + self._value = self.effect.run(); + } + return self._value; + } + set value(newValue) { + this._setter(newValue); + } + } + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = () => { + console.warn("Write operation failed: computed value is readonly"); + } ; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const stack = []; + function pushWarningContext(vnode) { + stack.push(vnode); + } + function popWarningContext() { + stack.pop(); + } + function warn(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + } + function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorTypeStrings = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core" + }; + function callWithErrorHandling(fn, instance, type, args) { + let res; + try { + res = args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + return res; + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); + } + function logError(err, type, contextVNode, throwInDev = true) { + { + const info = ErrorTypeStrings[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + let isFlushing = false; + let isFlushPending = false; + const queue = []; + let flushIndex = 0; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJobId = getId(queue[middle]); + middleJobId < id ? start = middle + 1 : end = middle; + } + return start; + } + function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } + } + function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)]; + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + activePostFlushCbs.sort((a, b) => getId(a) - getId(b)); + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? Infinity : job.id; + const comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; + }; + function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + warn( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.` + ); + return true; + } else { + seen.set(fn, count + 1); + } + } + } + + let isHmrUpdating = false; + const hmrDirtyComponents = /* @__PURE__ */ new Set(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.update(); + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + exports.devtools = void 0; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (exports.devtools) { + exports.devtools.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook(hook, target) { + var _a, _b; + exports.devtools = hook; + if (exports.devtools) { + exports.devtools.enabled = true; + buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook(newHook, target); + }); + setTimeout(() => { + if (!exports.devtools) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook( + "component:added" /* COMPONENT_ADDED */ + ); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (exports.devtools && typeof exports.devtools.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !exports.devtools.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:start" /* PERFORMANCE_START */ + ); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:end" /* PERFORMANCE_END */ + ); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modelArg = isModelListener && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + { + devtoolsComponentEmit(instance, event, args); + } + { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate(event)}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } + } + function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; + } + function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + let accessedAttrs = false; + function markAttrsAccessed() { + accessedAttrs = true; + } + function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + result = normalizeVNode( + render.call( + proxyToUse, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render2.length > 1 ? render2( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn( + `Component inside <Transition> renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; + } + const getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren); + if (!childRoot) { + return [vnode, void 0]; + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; + }; + function filterSingleRoot(children) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; + } + const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; + }; + const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; + }; + const isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; + }; + function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; + } + function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; + } + function updateHOCHostEl({ vnode, parent }, el) { + while (parent && parent.subTree === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } + } + + const isSuspense = (type) => type.__isSuspense; + const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren + }; + const Suspense = SuspenseImpl ; + function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } + } + function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + isSVG, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } + } + function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else { + suspense.pendingId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + suspense.pendingId++; + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + isSVG, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } + } + let hasWarned = false; + function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + `<Suspense> is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + { + assertNumber(timeout, `Suspense timeout`); + } + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + isSVG, + container, + hiddenContainer, + anchor, + deps: 0, + pendingId: 0, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: true, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move(pendingBranch, container2, anchor2, 0); + } + }; + } + let { anchor: anchor2 } = suspense; + if (activeBranch) { + anchor2 = next(activeBranch); + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor2, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + isSVG2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + isSVG, + optimized + ); + if (placeholder) { + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; + } + function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + document.createElement("div"), + null, + isSVG, + slotScopeIds, + optimized, + rendererInternals, + true + /* hydrating */ + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; + } + function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); + } + function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild) { + warn(`<Suspense> slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; + } + function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } + } + function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + const el = vnode.el = branch.el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } + } + function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; + } + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + const INITIAL_WATCHER_VALUE = {}; + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) { + var _a; + if (!cb) { + if (immediate !== void 0) { + warn( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = getCurrentScope() === ((_a = currentInstance) == null ? void 0 : _a.scope) ? currentInstance : null; + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => source; + deep = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return traverse(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (instance && instance.isUnmounted) { + return; + } + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect.onStop = () => { + callWithErrorHandling(fn, instance, 4); + }; + }; + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect.active) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some( + (v, i) => hasChanged(v, oldValue[i]) + ) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect = new ReactiveEffect(getter, scheduler); + { + effect.onTrack = onTrack; + effect.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect.run.bind(effect), + instance && instance.suspense + ); + } else { + effect.run(); + } + const unwatch = () => { + effect.stop(); + if (instance && instance.scope) { + remove(instance.scope.effects, effect); + } + }; + return unwatch; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const cur = currentInstance; + setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + if (cur) { + setCurrentInstance(cur); + } else { + unsetCurrentInstance(); + } + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + function traverse(value, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], seen); + } + } + return value; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + const internalInstance = currentRenderingInstance; + if (internalInstance === null) { + warn(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(internalInstance) || internalInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn( + "<transition> can only be used on a single element or component. Use <transition-group> for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn(`invalid <transition> mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el._leaveCb = () => { + earlyRemove(); + el._leaveCb = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } + }; + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el._leaveCb) { + el._leaveCb( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) { + leavingVNode.el._leaveCb(); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el._enterCb = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el._enterCb = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el._enterCb) { + el._enterCb( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + const done = el._leaveCb = (cancelled) => { + if (called) + return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el._leaveCb = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode; + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + /* do not throw in dev if user provided error component */ + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + isSVG, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + unsetCurrentInstance(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, "")); + warn( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) + ); + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook("bu"); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook("bum"); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook("sp"); + const onRenderTriggered = createHook( + "rtg" + ); + const onRenderTracked = createHook( + "rtc" + ); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + /* do not include inferred name to avoid breaking existing code */ + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn(`Cannot mutate <script setup> binding "${key}" from Options API.`); + return false; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + data[key] = value; + return true; + } else if (hasOwn(instance.props, key)) { + warn(`Attempting to mutate prop "${key}". Props are readonly.`); + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + warn( + `Attempting to mutate public property "${key}". Properties starting with $ are reserved and readonly.` + ); + return false; + } else { + if (key in instance.appContext.config.globalProperties) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + value + }); + } else { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, propsOptions } + }, key) { + let normalizedProps; + return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } + }; + { + PublicInstanceProxyHandlers.ownKeys = (target) => { + warn( + `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.` + ); + return Reflect.ownKeys(target); + }; + } + const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend( + {}, + PublicInstanceProxyHandlers, + { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !isGloballyWhitelisted(key); + if (!has && PublicInstanceProxyHandlers.has(_, key)) { + warn( + `Property ${JSON.stringify( + key + )} should not start with _ which is a reserved prefix for Vue internals.` + ); + } + return has; + } + } + ); + function createDevRenderContext(instance) { + const target = {}; + Object.defineProperty(target, `_`, { + configurable: true, + enumerable: false, + get: () => instance + }); + Object.keys(publicPropertiesMap).forEach((key) => { + Object.defineProperty(target, key, { + configurable: true, + enumerable: false, + get: () => publicPropertiesMap[key](instance), + // intercepted by the proxy so no need for implementation, + // but needed to prevent set errors + set: NOOP + }); + }); + return target; + } + function exposePropsOnRenderContext(instance) { + const { + ctx, + propsOptions: [propsOptions] + } = instance; + if (propsOptions) { + Object.keys(propsOptions).forEach((key) => { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => instance.props[key], + set: NOOP + }); + }); + } + } + function exposeSetupStateOnRenderContext(instance) { + const { ctx, setupState } = instance; + Object.keys(toRaw(setupState)).forEach((key) => { + if (!setupState.__isScriptSetup) { + if (isReservedPrefix(key[0])) { + warn( + `setup() return property ${JSON.stringify( + key + )} should not start with "$" or "_" which are reserved prefixes for Vue internals.` + ); + return; + } + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => setupState[key], + set: NOOP + }); + } + }); + } + + const warnRuntimeUsage = (method) => warn( + `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.` + ); + function defineProps() { + { + warnRuntimeUsage(`defineProps`); + } + return null; + } + function defineEmits() { + { + warnRuntimeUsage(`defineEmits`); + } + return null; + } + function defineExpose(exposed) { + { + warnRuntimeUsage(`defineExpose`); + } + } + function defineOptions(options) { + { + warnRuntimeUsage(`defineOptions`); + } + } + function defineSlots() { + { + warnRuntimeUsage(`defineSlots`); + } + return null; + } + function defineModel() { + { + warnRuntimeUsage("defineModel"); + } + } + function withDefaults(props, defaults) { + { + warnRuntimeUsage(`withDefaults`); + } + return null; + } + function useSlots() { + return getContext().slots; + } + function useAttrs() { + return getContext().attrs; + } + function useModel(props, name, options) { + const i = getCurrentInstance(); + if (!i) { + warn(`useModel() called without active instance.`); + return ref(); + } + if (!i.propsOptions[0][name]) { + warn(`useModel() called with prop "${name}" which is not declared.`); + return ref(); + } + if (options && options.local) { + const proxy = ref(props[name]); + watch( + () => props[name], + (v) => proxy.value = v + ); + watch(proxy, (value) => { + if (value !== props[name]) { + i.emit(`update:${name}`, value); + } + }); + return proxy; + } else { + return { + __v_isRef: true, + get value() { + return props[name]; + }, + set value(value) { + i.emit(`update:${name}`, value); + } + }; + } + } + function getContext() { + const i = getCurrentInstance(); + if (!i) { + warn(`useContext() called without active instance.`); + } + return i.setupContext || (i.setupContext = createSetupContext(i)); + } + function normalizePropsOrEmits(props) { + return isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; + } + function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) + continue; + let opt = props[key]; + if (opt) { + if (isArray(opt) || isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else { + warn(`props default key "${key}" has no corresponding declaration.`); + } + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; + } + function mergeModels(a, b) { + if (!a || !b) + return a || b; + if (isArray(a) && isArray(b)) + return a.concat(b); + return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); + } + function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; + } + function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + if (!ctx) { + warn( + `withAsyncContext called without active current instance. This is likely a bug.` + ); + } + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; + } + + function createDuplicateChecker() { + const cache = /* @__PURE__ */ Object.create(null); + return (type, key) => { + if (cache[key]) { + warn(`${type} property "${key}" is already defined in ${cache[key]}.`); + } else { + cache[key] = type; + } + }; + } + let shouldCacheAccess = true; + function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook$1(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = createDuplicateChecker() ; + { + const [propsOptions] = instance.propsOptions; + if (propsOptions) { + for (const key in propsOptions) { + checkDuplicateProperties("Props" /* PROPS */, key); + } + } + } + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (isFunction(methodHandler)) { + { + Object.defineProperty(ctx, key, { + value: methodHandler.bind(publicThis), + configurable: true, + enumerable: true, + writable: true + }); + } + { + checkDuplicateProperties("Methods" /* METHODS */, key); + } + } else { + warn( + `Method "${key}" has type "${typeof methodHandler}" in the component definition. Did you reference the function correctly?` + ); + } + } + } + if (dataOptions) { + if (!isFunction(dataOptions)) { + warn( + `The data option must be a function. Plain object usage is no longer supported.` + ); + } + const data = dataOptions.call(publicThis, publicThis); + if (isPromise(data)) { + warn( + `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.` + ); + } + if (!isObject(data)) { + warn(`data() should return an object.`); + } else { + instance.data = reactive(data); + { + for (const key in data) { + checkDuplicateProperties("Data" /* DATA */, key); + if (!isReservedPrefix(key[0])) { + Object.defineProperty(ctx, key, { + configurable: true, + enumerable: true, + get: () => data[key], + set: NOOP + }); + } + } + } + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP; + if (get === NOOP) { + warn(`Computed property "${key}" has no getter.`); + } + const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => { + warn( + `Write operation failed: computed property "${key}" is readonly.` + ); + } ; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + { + checkDuplicateProperties("Computed" /* COMPUTED */, key); + } + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook$1(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) + instance.components = components; + if (directives) + instance.directives = directives; + } + function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) { + if (isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + /* treat default function as factory */ + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + { + checkDuplicateProperties("Inject" /* INJECT */, key); + } + } + } + function callHook$1(hook, instance, type) { + callWithAsyncErrorHandling( + isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); + } + function createWatcher(raw, ctx, publicThis, key) { + const getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (isString(raw)) { + const handler = ctx[raw]; + if (isFunction(handler)) { + watch(getter, handler); + } else { + warn(`Invalid watch handler specified by key "${raw}"`, handler); + } + } else if (isFunction(raw)) { + watch(getter, raw.bind(publicThis)); + } else if (isObject(raw)) { + if (isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (isFunction(handler)) { + watch(getter, handler, raw); + } else { + warn(`Invalid watch handler specified by key "${raw.handler}"`, handler); + } + } + } else { + warn(`Invalid watch option: "${key}"`, raw); + } + } + function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (isObject(base)) { + cache.set(base, resolved); + } + return resolved; + } + function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") { + warn( + `"expose" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.` + ); + } else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; + } + const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray$1, + created: mergeAsArray$1, + beforeMount: mergeAsArray$1, + mounted: mergeAsArray$1, + beforeUpdate: mergeAsArray$1, + updated: mergeAsArray$1, + beforeDestroy: mergeAsArray$1, + beforeUnmount: mergeAsArray$1, + destroyed: mergeAsArray$1, + unmounted: mergeAsArray$1, + activated: mergeAsArray$1, + deactivated: mergeAsArray$1, + errorCaptured: mergeAsArray$1, + serverPrefetch: mergeAsArray$1, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject + }; + function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (extend)( + isFunction(to) ? to.call(this, this) : to, + isFunction(from) ? from.call(this, this) : from + ); + }; + } + function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); + } + function normalizeInject(raw) { + if (isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; + } + function mergeAsArray$1(to, from) { + return to ? [...new Set([].concat(to, from))] : from; + } + function mergeObjectOptions(to, from) { + return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from; + } + function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (isArray(to) && isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } + } + function mergeWatchOptions(to, from) { + if (!to) + return from; + if (!from) + return to; + const merged = extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray$1(to[key], from[key]); + } + return merged; + } + + function createAppContext() { + return { + app: null, + config: { + isNativeTag: NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; + } + let uid$1 = 0; + function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!isFunction(rootComponent)) { + rootComponent = extend({}, rootComponent); + } + if (rootProps != null && !isObject(rootProps)) { + warn(`root props passed to app.mount() must be an object.`); + rootProps = null; + } + const context = createAppContext(); + { + Object.defineProperty(context.config, "unwrapInjectedRef", { + get() { + return true; + }, + set() { + warn( + `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.` + ); + } + }); + } + const installedPlugins = /* @__PURE__ */ new Set(); + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + { + warn( + `app.config cannot be replaced. Modify individual options instead.` + ); + } + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) { + warn(`Plugin has already been applied to target app.`); + } else if (plugin && isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else { + warn( + `A plugin must either be a function or an object with an "install" function.` + ); + } + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } else { + warn( + "Mixin has already been applied to target app" + (mixin.name ? `: ${mixin.name}` : "") + ); + } + } + return app; + }, + component(name, component) { + { + validateComponentName(name, context.config); + } + if (!component) { + return context.components[name]; + } + if (context.components[name]) { + warn(`Component "${name}" has already been registered in target app.`); + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + { + validateDirectiveName(name); + } + if (!directive) { + return context.directives[name]; + } + if (context.directives[name]) { + warn(`Directive "${name}" has already been registered in target app.`); + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, isSVG) { + if (!isMounted) { + if (rootContainer.__vue_app__) { + warn( + `There is already an app instance mounted on the host container. + If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.` + ); + } + const vnode = createVNode( + rootComponent, + rootProps + ); + vnode.appContext = context; + { + context.reload = () => { + render(cloneVNode(vnode), rootContainer, isSVG); + }; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, isSVG); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + { + app._instance = vnode.component; + devtoolsInitApp(app, version); + } + return getExposeProxy(vnode.component) || vnode.component.proxy; + } else { + warn( + `App has already been mounted. +If you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \`const createMyApp = () => createApp(App)\`` + ); + } + }, + unmount() { + if (isMounted) { + render(null, app._container); + { + app._instance = null; + devtoolsUnmountApp(app); + } + delete app._container.__vue_app__; + } else { + warn(`Cannot unmount an app that is not mounted.`); + } + }, + provide(key, value) { + if (key in context.provides) { + warn( + `App already provides property with key "${String(key)}". It will be overwritten with the new value.` + ); + } + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + currentApp = app; + try { + return fn(); + } finally { + currentApp = null; + } + } + }; + return app; + }; + } + let currentApp = null; + + function provide(key, value) { + if (!currentInstance) { + { + warn(`provide() can only be used inside setup().`); + } + } else { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = currentInstance || currentRenderingInstance; + if (instance || currentApp) { + const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn(`injection "${String(key)}" not found.`); + } + } else { + warn(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(currentInstance || currentRenderingInstance || currentApp); + } + + function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = {}; + def(attrs, InternalObjectKey, 1); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + { + validateProps(rawProps || {}, props, instance); + } + if (isStateful) { + instance.props = isSSR ? props : shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; + } + function isInHmrContext(instance) { + while (instance) { + if (instance.type.__hmrId) + return true; + instance = instance.parent; + } + } + function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + !isInHmrContext(instance) && (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + /* isAbsent */ + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + /* isAbsent */ + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + trigger(instance, "set", "$attrs"); + } + { + validateProps(rawProps || {}, props, instance); + } + } + function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && hasOwn(options, camelKey = camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = toRaw(props); + const castValues = rawCastValues || EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; + } + function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + unsetCurrentInstance(); + } + } else { + value = defaultValue; + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === hyphenate(key))) { + value = true; + } + } + } + return value; + } + function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + extend(normalized, props); + if (keys) + needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, EMPTY_ARR); + } + return EMPTY_ARR; + } + if (isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + if (!isString(raw[i])) { + warn(`props must be strings when using array syntax.`, raw[i]); + } + const normalizedKey = camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = EMPTY_OBJ; + } + } + } else if (raw) { + if (!isObject(raw)) { + warn(`invalid props options`, raw); + } + for (const key in raw) { + const normalizedKey = camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt); + if (prop) { + const booleanIndex = getTypeIndex(Boolean, prop.type); + const stringIndex = getTypeIndex(String, prop.type); + prop[0 /* shouldCast */] = booleanIndex > -1; + prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex; + if (booleanIndex > -1 || hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + } + const res = [normalized, needCastKeys]; + if (isObject(comp)) { + cache.set(comp, res); + } + return res; + } + function validatePropName(key) { + if (key[0] !== "$") { + return true; + } else { + warn(`Invalid prop name: "${key}" is a reserved property.`); + } + return false; + } + function getType(ctor) { + const match = ctor && ctor.toString().match(/^\s*(function|class) (\w+)/); + return match ? match[2] : ctor === null ? "null" : ""; + } + function isSameType(a, b) { + return getType(a) === getType(b); + } + function getTypeIndex(type, expectedTypes) { + if (isArray(expectedTypes)) { + return expectedTypes.findIndex((t) => isSameType(t, type)); + } else if (isFunction(expectedTypes)) { + return isSameType(expectedTypes, type) ? 0 : -1; + } + return -1; + } + function validateProps(rawProps, props, instance) { + const resolvedValues = toRaw(props); + const options = instance.propsOptions[0]; + for (const key in options) { + let opt = options[key]; + if (opt == null) + continue; + validateProp( + key, + resolvedValues[key], + opt, + !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)) + ); + } + } + function validateProp(name, value, prop, isAbsent) { + const { type, required, validator, skipCheck } = prop; + if (required && isAbsent) { + warn('Missing required prop: "' + name + '"'); + return; + } + if (value == null && !required) { + return; + } + if (type != null && type !== true && !skipCheck) { + let isValid = false; + const types = isArray(type) ? type : [type]; + const expectedTypes = []; + for (let i = 0; i < types.length && !isValid; i++) { + const { valid, expectedType } = assertType(value, types[i]); + expectedTypes.push(expectedType || ""); + isValid = valid; + } + if (!isValid) { + warn(getInvalidTypeMessage(name, value, expectedTypes)); + return; + } + } + if (validator && !validator(value)) { + warn('Invalid prop: custom validator check failed for prop "' + name + '".'); + } + } + const isSimpleType = /* @__PURE__ */ makeMap( + "String,Number,Boolean,Function,Symbol,BigInt" + ); + function assertType(value, type) { + let valid; + const expectedType = getType(type); + if (isSimpleType(expectedType)) { + const t = typeof value; + valid = t === expectedType.toLowerCase(); + if (!valid && t === "object") { + valid = value instanceof type; + } + } else if (expectedType === "Object") { + valid = isObject(value); + } else if (expectedType === "Array") { + valid = isArray(value); + } else if (expectedType === "null") { + valid = value === null; + } else { + valid = value instanceof type; + } + return { + valid, + expectedType + }; + } + function getInvalidTypeMessage(name, value, expectedTypes) { + let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize).join(" | ")}`; + const expectedType = expectedTypes[0]; + const receivedType = toRawType(value); + const expectedValue = styleValue(value, expectedType); + const receivedValue = styleValue(value, receivedType); + if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { + message += ` with value ${expectedValue}`; + } + message += `, got ${receivedType} `; + if (isExplicable(receivedType)) { + message += `with value ${receivedValue}.`; + } + return message; + } + function styleValue(value, type) { + if (type === "String") { + return `"${value}"`; + } else if (type === "Number") { + return `${Number(value)}`; + } else { + return `${value}`; + } + } + function isExplicable(type) { + const explicitTypes = ["string", "number", "boolean"]; + return explicitTypes.some((elem) => type.toLowerCase() === elem); + } + function isBoolean(...args) { + return args.some((elem) => elem.toLowerCase() === "boolean"); + } + + const isInternalKey = (key) => key[0] === "_" || key === "$stable"; + const normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; + const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (currentInstance) { + warn( + `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.` + ); + } + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; + }; + const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) + continue; + const value = rawSlots[key]; + if (isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + { + warn( + `Non-function value encountered for slot "${key}". Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } + }; + const normalizeVNodeSlots = (instance, children) => { + if (!isKeepAlive(instance.vnode) && true) { + warn( + `Non-function value encountered for default slot. Prefer function slots for better performance.` + ); + } + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; + }; + const initSlots = (instance, children) => { + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + instance.slots = toRaw(children); + def(children, "_", type); + } else { + normalizeObjectSlots( + children, + instance.slots = {}); + } + } else { + instance.slots = {}; + if (children) { + normalizeVNodeSlots(instance, children); + } + } + def(instance.slots, InternalObjectKey, 1); + }; + const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (isHmrUpdating) { + extend(slots, children); + trigger(instance, "set", "$slots"); + } else if (optimized && type === 1) { + needDeletionCheck = false; + } else { + extend(slots, children); + if (!optimized && type === 1) { + delete slots._; + } + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && !(key in deletionComparisonTarget)) { + delete slots[key]; + } + } + } + }; + + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + return; + } + const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + if (oldRef != null && oldRef !== ref) { + if (isString(oldRef)) { + refs[oldRef] = null; + if (hasOwn(setupState, oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + oldRef.value = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (hasOwn(setupState, ref)) { + setupState[ref] = refs[ref]; + } + } else { + ref.value = [refValue]; + if (rawRef.k) + refs[rawRef.k] = ref.value; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (hasOwn(setupState, ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + ref.value = value; + if (rawRef.k) + refs[rawRef.k] = value; + } else { + warn("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + doSet.id = -1; + queuePostRenderEffect(doSet, parentSuspense); + } else { + doSet(); + } + } else { + warn("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + + let hasMismatch = false; + const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject"; + const isComment = (node) => node.nodeType === 8 /* COMMENT */; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hasMismatch = false; + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + if (hasMismatch && true) { + console.error(`Hydration completed but contains mismatches.`); + } + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3 /* TEXT */) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + hasMismatch = true; + warn( + `Hydration text mismatch: +- Client: ${JSON.stringify(node.data)} +- Server: ${JSON.stringify(vnode.children)}` + ); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (domType !== 8 /* COMMENT */ || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if (domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + isSVGContainer(container), + optimized + ); + nextNode = isFragmentStart ? locateClosingAsyncAnchor(node) : nextSibling(node); + if (nextNode && isComment(nextNode) && nextNode.data === "teleport end") { + nextNode = nextSibling(nextNode); + } + if (isAsyncWrapper(vnode)) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8 /* COMMENT */) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + isSVGContainer(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs } = vnode; + const forcePatchValue = type === "input" && dirs || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + if (props) { + if (forcePatchValue || !optimized || patchFlag & (16 | 32)) { + for (const key in props) { + if (forcePatchValue && key.endsWith("value") || isOn(key) && !isReservedProp(key)) { + patchProp( + el, + key, + null, + props[key], + false, + void 0, + parentComponent + ); + } + } + } else if (props.onClick) { + patchProp( + el, + "onClick", + null, + props.onClick, + false, + void 0, + parentComponent + ); + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + hasMismatch = true; + if (!hasWarned) { + warn( + `Hydration children mismatch in <${vnode.type}>: server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + if (el.textContent !== vnode.children) { + hasMismatch = true; + warn( + `Hydration text content mismatch in <${vnode.type}>: +- Client: ${el.textContent} +- Server: ${vnode.children}` + ); + el.textContent = vnode.children; + } + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + if (node) { + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (vnode.type === Text && !vnode.children) { + continue; + } else { + hasMismatch = true; + if (!hasWarned) { + warn( + `Hydration children mismatch in <${container.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + isSVGContainer(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + hasMismatch = true; + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + hasMismatch = true; + warn( + `Hydration node mismatch: +- Client vnode:`, + vnode.type, + ` +- Server rendered DOM:`, + node, + node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : `` + ); + vnode.el = null; + if (isFragment) { + const end = locateClosingAsyncAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + isSVGContainer(container), + slotScopeIds + ); + return next; + }; + const locateClosingAsyncAnchor = (node) => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === "[") + match++; + if (node.data === "]") { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + return [hydrate, hydrateNode]; + } + + let supported; + let perf; + function startMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + perf.mark(`vue-${type}-${instance.uid}`); + } + { + devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function endMeasure(instance, type) { + if (instance.appContext.config.performance && isSupported()) { + const startTag = `vue-${type}-${instance.uid}`; + const endTag = startTag + `:end`; + perf.mark(endTag); + perf.measure( + `<${formatComponentName(instance, instance.type)}> ${type}`, + startTag, + endTag + ); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + } + { + devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now()); + } + } + function isSupported() { + if (supported !== void 0) { + return supported; + } + if (typeof window !== "undefined" && window.performance) { + supported = true; + perf = window.performance; + } else { + supported = false; + } + return supported; + } + + const queuePostRenderEffect = queueEffectWithSuspense ; + function createRenderer(options) { + return baseCreateRenderer(options); + } + function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); + } + function baseCreateRenderer(options, createHydrationFns) { + const target = getGlobalThis(); + target.__VUE__ = true; + { + setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target); + } + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = isHmrUpdating ? false : !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, isSVG); + } else { + patchStaticNode(n1, n2, container, isSVG); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + internals + ); + } else { + warn("Invalid VNode type:", type, `(${typeof type})`); + } + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, isSVG) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + isSVG, + n2.el, + n2.anchor + ); + }; + const patchStaticNode = (n1, n2, container, isSVG) => { + if (n2.children !== n1.children) { + const anchor = hostNextSibling(n1.anchor); + removeStaticNode(n1); + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + isSVG + ); + } else { + n2.el = n1.el; + n2.anchor = n1.anchor; + } + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + isSVG = isSVG || n2.type === "svg"; + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { type, props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + isSVG, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + isSVG && type !== "foreignObject", + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !isReservedProp(key)) { + hostPatchProp( + el, + key, + null, + props[key], + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + { + Object.defineProperty(el, "__vnode", { + value: vnode, + enumerable: false + }); + Object.defineProperty(el, "__vueParentComponent", { + value: parentComponent, + enumerable: false + }); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (subTree.patchFlag > 0 && subTree.patchFlag & 2048) { + subTree = filterSingleRoot(subTree.children) || subTree; + } + if (vnode === subTree) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || EMPTY_OBJ; + const newProps = n2.props || EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (isHmrUpdating) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + const areChildrenSVG = isSVG && n2.type !== "foreignObject"; + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + areChildrenSVG, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + areChildrenSVG, + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps( + el, + n2, + oldProps, + newProps, + parentComponent, + parentSuspense, + isSVG + ); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, isSVG); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp( + el, + key, + prev, + next, + isSVG, + n1.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps( + el, + n2, + oldProps, + newProps, + parentComponent, + parentSuspense, + isSVG + ); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => { + if (oldProps !== newProps) { + if (oldProps !== EMPTY_OBJ) { + for (const key in oldProps) { + if (!isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + } + for (const key in newProps) { + if (isReservedProp(key)) + continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp( + el, + key, + prev, + next, + isSVG, + vnode.children, + parentComponent, + parentSuspense, + unmountChildren + ); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if ( + // #5523 dev root fragment may inherit directives + isHmrUpdating || patchFlag & 2048 + ) { + patchFlag = 0; + optimized = false; + dynamicChildren = null; + } + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + n2.children, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds + ); + { + traverseStaticChildren(n1, n2); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + isSVG, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (instance.type.__hmrId) { + registerHMR(instance); + } + { + pushWarningContext(initialVNode); + startMeasure(instance, `mount`); + } + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + { + startMeasure(instance, `init`); + } + setupComponent(instance); + { + endMeasure(instance, `init`); + } + } + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + } + return; + } + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + isSVG, + optimized + ); + { + popWarningContext(); + endMeasure(instance, `mount`); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + { + pushWarningContext(n2); + } + updateComponentPreRender(instance, n2, optimized); + { + popWarningContext(); + } + return; + } else { + instance.next = n2; + invalidateJob(instance.update); + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + { + startMeasure(instance, `render`); + } + instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `hydrate`); + } + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + { + endMeasure(instance, `hydrate`); + } + }; + if (isAsyncWrapperVNode) { + initialVNode.type.__asyncLoader().then( + // note: we are moving the render call into an async callback, + // which means it won't track dependencies - but it's ok because + // a server-rendered async wrapper is already in resolved state + // and it will never need to change. + () => !instance.isUnmounted && hydrateSubTree() + ); + } else { + hydrateSubTree(); + } + } else { + { + startMeasure(instance, `render`); + } + const subTree = instance.subTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + { + startMeasure(instance, `patch`); + } + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + isSVG + ); + { + endMeasure(instance, `patch`); + } + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + { + devtoolsComponentAdded(instance); + } + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + let originNext = next; + let vnodeHook; + { + pushWarningContext(next || instance.vnode); + } + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + { + startMeasure(instance, `render`); + } + const nextTree = renderComponentRoot(instance); + { + endMeasure(instance, `render`); + } + const prevTree = instance.subTree; + instance.subTree = nextTree; + { + startMeasure(instance, `patch`); + } + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + isSVG + ); + { + endMeasure(instance, `patch`); + } + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + { + devtoolsComponentUpdated(instance); + } + { + popWarningContext(); + } + } + }; + const effect = instance.effect = new ReactiveEffect( + componentUpdateFn, + () => queueJob(update), + instance.scope + // track it in component's effect scope + ); + const update = instance.update = () => effect.run(); + update.id = instance.uid; + toggleRecurse(instance, true); + { + effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0; + effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0; + update.ownerInstance = instance; + } + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + pauseTracking(); + flushPreFlushCbs(); + resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + c1 = c1 || EMPTY_ARR; + c2 = c2 || EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + if (keyToNewIndexMap.has(nextChild.key)) { + warn( + `Duplicate keys found during update:`, + JSON.stringify(nextChild.key), + `Make sure keys are unique.` + ); + } + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) + newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => hostInsert(el, container, anchor); + const performLeave = () => { + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs + } = vnode; + if (ref != null) { + setRef(ref, null, parentSuspense, vnode, true); + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + optimized, + internals, + doRemove + ); + } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) { + vnode.children.forEach((child) => { + if (child.type === Comment) { + hostRemove(child.el); + } else { + remove(child); + } + }); + } else { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + if (instance.type.__hmrId) { + unregisterHMR(instance); + } + const { bum, scope, update, subTree, um } = instance; + if (bum) { + invokeArrayFns(bum); + } + scope.stop(); + if (update) { + update.active = false; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0) { + parentSuspense.resolve(); + } + } + { + devtoolsComponentRemoved(instance); + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + return hostNextSibling(vnode.anchor || vnode.el); + }; + const render = (vnode, container, isSVG) => { + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + } + } else { + patch(container._vnode || null, vnode, container, null, null, null, isSVG); + } + flushPreFlushCbs(); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; + } + function toggleRecurse({ effect, update }, allowed) { + effect.allowRecurse = update.allowRecurse = allowed; + } + function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (isArray(ch1) && isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + c2.el = c1.el; + } + if (c2.type === Comment && !c2.el) { + c2.el = c1.el; + } + } + } + } + function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; + } + + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target) { + warn( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = n2.targetAnchor = createText(""); + if (target) { + insert(targetAnchor, target); + isSVG = isSVG || isTargetSVG(target); + } else if (!disabled) { + warn("Invalid Teleport target on mount:", target, `(${typeof target})`); + } + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + optimized + ); + } + }; + if (disabled) { + mount(container, mainAnchor); + } else if (target) { + mount(target, targetAnchor); + } + } else { + n2.el = n1.el; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + isSVG = isSVG || isTargetSVG(target); + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds + ); + traverseStaticChildren(n1, n2, true); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + isSVG, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + } + updateCssVars(n2); + }, + remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode; + if (target) { + hostRemove(targetAnchor); + } + if (doRemove || !isTeleportDisabled(props)) { + hostRemove(anchor); + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + true, + !!child.dynamicChildren + ); + } + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector } + }, hydrateChildren) { + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (isTeleportDisabled(vnode.props)) { + vnode.anchor = hydrateChildren( + nextSibling(node), + vnode, + parentNode(node), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + vnode.targetAnchor = targetNode; + } else { + vnode.anchor = nextSibling(node); + let targetAnchor = targetNode; + while (targetAnchor) { + targetAnchor = nextSibling(targetAnchor); + if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + hydrateChildren( + targetNode, + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode); + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node = vnode.children[0].el; + while (node !== vnode.targetAnchor) { + if (node.nodeType === 1) + node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + + const Fragment = Symbol.for("v-fgt"); + const Text = Symbol.for("v-txt"); + const Comment = Symbol.for("v-cmt"); + const Static = Symbol.for("v-stc"); + const blockStack = []; + let currentBlock = null; + function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); + } + function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; + } + let isBlockTreeEnabled = 1; + function setBlockTracking(value) { + isBlockTreeEnabled += value; + } + function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; + } + function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + /* isBlock */ + ) + ); + } + function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + /* isBlock: prevent a block from tracking itself */ + ) + ); + } + function isVNode(value) { + return value ? value.__v_isVNode === true : false; + } + function isSameVNodeType(n1, n2) { + if (n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) { + n1.shapeFlag &= ~256; + n2.shapeFlag &= ~512; + return false; + } + return n1.type === n2.type && n1.key === n2.key; + } + let vnodeArgsTransformer; + function transformVNodeArgs(transformer) { + vnodeArgsTransformer = transformer; + } + const createVNodeWithArgsTransform = (...args) => { + return _createVNode( + ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args + ); + }; + const InternalObjectKey = `__vInternal`; + const normalizeKey = ({ key }) => key != null ? key : null; + const normalizeRef = ({ + ref, + ref_key, + ref_for + }) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; + }; + function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + component: null, + suspense: null, + ssContent: null, + ssFallback: null, + dirs: null, + transition: null, + el: null, + anchor: null, + target: null, + targetAnchor: null, + staticCount: 0, + shapeFlag, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= isString(children) ? 8 : 16; + } + if (vnode.key !== vnode.key) { + warn(`VNode created with invalid key (NaN). VNode type:`, vnode.type); + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; + } + const createVNode = createVNodeWithArgsTransform ; + function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + if (!type) { + warn(`Invalid vnode type when creating vnode: ${type}.`); + } + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag |= -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (isObject(style)) { + if (isProxy(style) && !isArray(style)) { + style = extend({}, style); + } + props.style = normalizeStyle(style); + } + } + const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0; + if (shapeFlag & 4 && isProxy(type)) { + type = toRaw(type); + warn( + `Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with \`markRaw\` or using \`shallowRef\` instead of \`ref\`.`, + ` +Component that was made reactive: `, + type + ); + } + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); + } + function guardReactiveProps(props) { + if (!props) + return null; + return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props; + } + function cloneVNode(vnode, extraProps, mergeRef = false) { + const { props, ref, patchFlag, children } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children, + target: vnode.target, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition: vnode.transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + return cloned; + } + function deepCloneVNode(vnode) { + const cloned = cloneVNode(vnode); + if (isArray(vnode.children)) { + cloned.children = vnode.children.map(deepCloneVNode); + } + return cloned; + } + function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); + } + function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; + } + function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); + } + function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (typeof child === "object") { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } + } + function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); + } + function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !(InternalObjectKey in children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; + } + function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = normalizeStyle([ret.style, toMerge.style]); + } else if (isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; + } + function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); + } + + const emptyAppContext = createAppContext(); + let uid = 0; + function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + scope: new EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: EMPTY_OBJ, + data: EMPTY_OBJ, + props: EMPTY_OBJ, + attrs: EMPTY_OBJ, + slots: EMPTY_OBJ, + refs: EMPTY_OBJ, + setupState: EMPTY_OBJ, + setupContext: null, + attrsProxy: null, + slotsProxy: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + bc: null, + c: null, + bm: null, + m: null, + bu: null, + u: null, + um: null, + bum: null, + da: null, + a: null, + rtg: null, + rtc: null, + ec: null, + sp: null + }; + { + instance.ctx = createDevRenderContext(instance); + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; + } + let currentInstance = null; + const getCurrentInstance = () => currentInstance || currentRenderingInstance; + let internalSetCurrentInstance; + { + internalSetCurrentInstance = (i) => { + currentInstance = i; + }; + } + const setCurrentInstance = (instance) => { + internalSetCurrentInstance(instance); + instance.scope.on(); + }; + const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); + }; + const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component"); + function validateComponentName(name, config) { + const appIsNativeTag = config.isNativeTag || NO; + if (isBuiltInTag(name) || appIsNativeTag(name)) { + warn( + "Do not use built-in or reserved HTML elements as component id: " + name + ); + } + } + function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; + } + let isInSSRComponentSetup = false; + function setupComponent(instance, isSSR = false) { + isInSSRComponentSetup = isSSR; + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isInSSRComponentSetup = false; + return setupResult; + } + function setupStatefulComponent(instance, isSSR) { + var _a; + const Component = instance.type; + { + if (Component.name) { + validateComponentName(Component.name, instance.appContext.config); + } + if (Component.components) { + const names = Object.keys(Component.components); + for (let i = 0; i < names.length; i++) { + validateComponentName(names[i], instance.appContext.config); + } + } + if (Component.directives) { + const names = Object.keys(Component.directives); + for (let i = 0; i < names.length; i++) { + validateDirectiveName(names[i]); + } + } + if (Component.compilerOptions && isRuntimeOnly()) { + warn( + `"compilerOptions" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.` + ); + } + } + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers)); + { + exposePropsOnRenderContext(instance); + } + const { setup } = Component; + if (setup) { + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + setCurrentInstance(instance); + pauseTracking(); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [shallowReadonly(instance.props) , setupContext] + ); + resetTracking(); + unsetCurrentInstance(); + if (isPromise(setupResult)) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + if (!instance.suspense) { + const name = (_a = Component.name) != null ? _a : "Anonymous"; + warn( + `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.` + ); + } + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } + } + function handleSetupResult(instance, setupResult, isSSR) { + if (isFunction(setupResult)) { + { + instance.render = setupResult; + } + } else if (isObject(setupResult)) { + if (isVNode(setupResult)) { + warn( + `setup() should not return VNodes directly - return a render function instead.` + ); + } + { + instance.devtoolsRawSetupState = setupResult; + } + instance.setupState = proxyRefs(setupResult); + { + exposeSetupStateOnRenderContext(instance); + } + } else if (setupResult !== void 0) { + warn( + `setup() should return an object. Received: ${setupResult === null ? "null" : typeof setupResult}` + ); + } + finishComponentSetup(instance, isSSR); + } + let compile$1; + let installWithProxy; + function registerRuntimeCompiler(_compile) { + compile$1 = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; + } + const isRuntimeOnly = () => !compile$1; + function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile$1 && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + { + startMeasure(instance, `compile`); + } + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = extend( + extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile$1(template, finalCompilerOptions); + { + endMeasure(instance, `compile`); + } + } + } + instance.render = Component.render || NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + setCurrentInstance(instance); + pauseTracking(); + applyOptions(instance); + resetTracking(); + unsetCurrentInstance(); + } + if (!Component.render && instance.render === NOOP && !isSSR) { + if (!compile$1 && Component.template) { + warn( + `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Use "vue.global.js" instead.` ) + /* should not happen */ + ); + } else { + warn(`Component is missing template or render function.`); + } + } + } + function getAttrsProxy(instance) { + return instance.attrsProxy || (instance.attrsProxy = new Proxy( + instance.attrs, + { + get(target, key) { + markAttrsAccessed(); + track(instance, "get", "$attrs"); + return target[key]; + }, + set() { + warn(`setupContext.attrs is readonly.`); + return false; + }, + deleteProperty() { + warn(`setupContext.attrs is readonly.`); + return false; + } + } + )); + } + function getSlotsProxy(instance) { + return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, { + get(target, key) { + track(instance, "get", "$slots"); + return target[key]; + } + })); + } + function createSetupContext(instance) { + const expose = (exposed) => { + { + if (instance.exposed) { + warn(`expose() should be called only once per setup().`); + } + if (exposed != null) { + let exposedType = typeof exposed; + if (exposedType === "object") { + if (isArray(exposed)) { + exposedType = "array"; + } else if (isRef(exposed)) { + exposedType = "ref"; + } + } + if (exposedType !== "object") { + warn( + `expose() should be passed a plain object, received ${exposedType}.` + ); + } + } + } + instance.exposed = exposed || {}; + }; + { + return Object.freeze({ + get attrs() { + return getAttrsProxy(instance); + }, + get slots() { + return getSlotsProxy(instance); + }, + get emit() { + return (event, ...args) => instance.emit(event, ...args); + }, + expose + }); + } + } + function getExposeProxy(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } + } + const classifyRE = /(?:^|[-_])(\w)/g; + const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, ""); + function getComponentName(Component, includeInferred = true) { + return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; + } + function formatComponentName(instance, Component, isRoot = false) { + let name = getComponentName(Component); + if (!name && Component.__file) { + const match = Component.__file.match(/([^/\\]+)\.\w+$/); + if (match) { + name = match[1]; + } + } + if (!name && instance && instance.parent) { + const inferFromRegistry = (registry) => { + for (const key in registry) { + if (registry[key] === Component) { + return key; + } + } + }; + name = inferFromRegistry( + instance.components || instance.parent.type.components + ) || inferFromRegistry(instance.appContext.components); + } + return name ? classify(name) : isRoot ? `App` : `Anonymous`; + } + function isClassComponent(value) { + return isFunction(value) && "__vccOpts" in value; + } + + const computed = (getterOrOptions, debugOptions) => { + return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup); + }; + + function h(type, propsOrChildren, children) { + const l = arguments.length; + if (l === 2) { + if (isObject(propsOrChildren) && !isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } + } + + const ssrContextKey = Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn(`useSSRContext() is not supported in the global build.`); + } + }; + + function initCustomFormatter() { + if (typeof window === "undefined") { + return; + } + const vueStyle = { style: "color:#3ba776" }; + const numberStyle = { style: "color:#0b1bc9" }; + const stringStyle = { style: "color:#b62e24" }; + const keywordStyle = { style: "color:#9d288c" }; + const formatter = { + header(obj) { + if (!isObject(obj)) { + return null; + } + if (obj.__isVue) { + return ["div", vueStyle, `VueInstance`]; + } else if (isRef(obj)) { + return [ + "div", + {}, + ["span", vueStyle, genRefFlag(obj)], + "<", + formatValue(obj.value), + `>` + ]; + } else if (isReactive(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReactive" : "Reactive"], + "<", + formatValue(obj), + `>${isReadonly(obj) ? ` (readonly)` : ``}` + ]; + } else if (isReadonly(obj)) { + return [ + "div", + {}, + ["span", vueStyle, isShallow(obj) ? "ShallowReadonly" : "Readonly"], + "<", + formatValue(obj), + ">" + ]; + } + return null; + }, + hasBody(obj) { + return obj && obj.__isVue; + }, + body(obj) { + if (obj && obj.__isVue) { + return [ + "div", + {}, + ...formatInstance(obj.$) + ]; + } + } + }; + function formatInstance(instance) { + const blocks = []; + if (instance.type.props && instance.props) { + blocks.push(createInstanceBlock("props", toRaw(instance.props))); + } + if (instance.setupState !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("setup", instance.setupState)); + } + if (instance.data !== EMPTY_OBJ) { + blocks.push(createInstanceBlock("data", toRaw(instance.data))); + } + const computed = extractKeys(instance, "computed"); + if (computed) { + blocks.push(createInstanceBlock("computed", computed)); + } + const injected = extractKeys(instance, "inject"); + if (injected) { + blocks.push(createInstanceBlock("injected", injected)); + } + blocks.push([ + "div", + {}, + [ + "span", + { + style: keywordStyle.style + ";opacity:0.66" + }, + "$ (internal): " + ], + ["object", { object: instance }] + ]); + return blocks; + } + function createInstanceBlock(type, target) { + target = extend({}, target); + if (!Object.keys(target).length) { + return ["span", {}]; + } + return [ + "div", + { style: "line-height:1.25em;margin-bottom:0.6em" }, + [ + "div", + { + style: "color:#476582" + }, + type + ], + [ + "div", + { + style: "padding-left:1.25em" + }, + ...Object.keys(target).map((key) => { + return [ + "div", + {}, + ["span", keywordStyle, key + ": "], + formatValue(target[key], false) + ]; + }) + ] + ]; + } + function formatValue(v, asRaw = true) { + if (typeof v === "number") { + return ["span", numberStyle, v]; + } else if (typeof v === "string") { + return ["span", stringStyle, JSON.stringify(v)]; + } else if (typeof v === "boolean") { + return ["span", keywordStyle, v]; + } else if (isObject(v)) { + return ["object", { object: asRaw ? toRaw(v) : v }]; + } else { + return ["span", stringStyle, String(v)]; + } + } + function extractKeys(instance, type) { + const Comp = instance.type; + if (isFunction(Comp)) { + return; + } + const extracted = {}; + for (const key in instance.ctx) { + if (isKeyOfType(Comp, key, type)) { + extracted[key] = instance.ctx[key]; + } + } + return extracted; + } + function isKeyOfType(Comp, key, type) { + const opts = Comp[type]; + if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) { + return true; + } + if (Comp.extends && isKeyOfType(Comp.extends, key, type)) { + return true; + } + if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) { + return true; + } + } + function genRefFlag(v) { + if (isShallow(v)) { + return `ShallowRef`; + } + if (v.effect) { + return `ComputedRef`; + } + return `Ref`; + } + if (window.devtoolsFormatters) { + window.devtoolsFormatters.push(formatter); + } else { + window.devtoolsFormatters = [formatter]; + } + } + + function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + return cache[index] = ret; + } + function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; + } + + const version = "3.3.4"; + const ssrUtils = null; + const resolveFilter = null; + const compatUtils = null; + + const svgNS = "http://www.w3.org/2000/svg"; + const doc = typeof document !== "undefined" ? document : null; + const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); + const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, isSVG, is, props) => { + const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, isSVG, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) + break; + } + } else { + templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content; + const template = templateContainer.content; + if (isSVG) { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } + }; + + function patchClass(el, value, isSVG) { + const transitionClasses = el._vtc; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } + } + + function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = isString(next); + if (next && !isCssString) { + if (prev && !isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + for (const key in next) { + setStyle(style, key, next[key]); + } + } else { + const currentDisplay = style.display; + if (isCssString) { + if (prev !== next) { + style.cssText = next; + } + } else if (prev) { + el.removeAttribute("style"); + } + if ("_vod" in el) { + style.display = currentDisplay; + } + } + } + const semicolonRE = /[^\\];\s*$/; + const importantRE = /\s*!important$/; + function setStyle(style, name, val) { + if (isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) + val = ""; + { + if (semicolonRE.test(val)) { + warn( + `Unexpected semicolon at the end of '${name}' style value: '${val}'` + ); + } + } + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } + } + const prefixes = ["Webkit", "Moz", "ms"]; + const prefixCache = {}; + function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; + } + + const xlinkNS = "http://www.w3.org/1999/xlink"; + function patchAttr(el, key, value, isSVG, instance) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + const isBoolean = isSpecialBooleanAttr(key); + if (value == null || isBoolean && !includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute(key, isBoolean ? "" : value); + } + } + } + + function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) { + if (key === "innerHTML" || key === "textContent") { + if (prevChildren) { + unmountChildren(prevChildren, parentComponent, parentSuspense); + } + el[key] = value == null ? "" : value; + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + el._value = value; + const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value; + const newValue = value == null ? "" : value; + if (oldValue !== newValue) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + if (!needRemove) { + warn( + `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`, + e + ); + } + } + needRemove && el.removeAttribute(key); + } + + function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); + } + function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); + } + function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el._vei || (el._vei = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker(nextValue, instance); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } + } + const optionsModifierRE = /(?:Once|Passive|Capture)$/; + function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)); + return [event, options]; + } + let cachedNow = 0; + const p = /* @__PURE__ */ Promise.resolve(); + const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); + function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; + } + function patchStopImmediatePropagation(e, value) { + if (isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2)); + } else { + return value; + } + } + + const nativeOnRE = /^on[a-z]/; + const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => { + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (isOn(key)) { + if (!isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp( + el, + key, + nextValue, + prevChildren, + parentComponent, + parentSuspense, + unmountChildren + ); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } + }; + function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && nativeOnRE.test(key) && isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (nativeOnRE.test(key) && isString(value)) { + return false; + } + return key in el; + } + + function defineCustomElement(options, hydrate2) { + const Comp = defineComponent(options); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, hydrate2); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; + } + const defineSSRCustomElement = (options) => { + return defineCustomElement(options, hydrate); + }; + const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { + }; + class VueElement extends BaseClass { + constructor(_def, _props = {}, hydrate2) { + super(); + this._def = _def; + this._props = _props; + /** + * @internal + */ + this._instance = null; + this._connected = false; + this._resolved = false; + this._numberProps = null; + if (this.shadowRoot && hydrate2) { + hydrate2(this._createVNode(), this.shadowRoot); + } else { + if (this.shadowRoot) { + warn( + `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.` + ); + } + this.attachShadow({ mode: "open" }); + if (!this._def.__asyncLoader) { + this._resolveProps(this._def); + } + } + } + connectedCallback() { + this._connected = true; + if (!this._instance) { + if (this._resolved) { + this._update(); + } else { + this._resolveDef(); + } + } + } + disconnectedCallback() { + this._connected = false; + nextTick(() => { + if (!this._connected) { + render(null, this.shadowRoot); + this._instance = null; + } + }); + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + this._resolved = true; + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + new MutationObserver((mutations) => { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + }).observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + const { props, styles } = def; + let numberProps; + if (props && !isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + if (isAsync) { + this._resolveProps(def); + } + this._applyStyles(styles); + this._update(); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + asyncDef().then((def) => resolve(def, true)); + } else { + resolve(this._def); + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key], true, false); + } + } + for (const key of declaredPropKeys.map(camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val); + } + }); + } + } + _setAttr(key) { + let value = this.getAttribute(key); + const camelKey = camelize(key); + if (this._numberProps && this._numberProps[camelKey]) { + value = toNumber(value); + } + this._setProp(camelKey, value, false); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = true) { + if (val !== this._props[key]) { + this._props[key] = val; + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + if (val === true) { + this.setAttribute(hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(hyphenate(key)); + } + } + } + } + _update() { + render(this._createVNode(), this.shadowRoot); + } + _createVNode() { + const vnode = createVNode(this._def, extend({}, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.isCE = true; + { + instance.ceReload = (newStyles) => { + if (this._styles) { + this._styles.forEach((s) => this.shadowRoot.removeChild(s)); + this._styles.length = 0; + } + this._applyStyles(newStyles); + this._instance = null; + this._update(); + }; + } + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent(event, { + detail: args + }) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (hyphenate(event) !== event) { + dispatch(hyphenate(event), args); + } + }; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + instance.parent = parent._instance; + instance.provides = parent._instance.provides; + break; + } + } + }; + } + return vnode; + } + _applyStyles(styles) { + if (styles) { + styles.forEach((css) => { + const s = document.createElement("style"); + s.textContent = css; + this.shadowRoot.appendChild(s); + { + (this._styles || (this._styles = [])).push(s); + } + }); + } + } + } + + function useCssModule(name = "$style") { + { + { + warn(`useCssModule() is not supported in the global build.`); + } + return EMPTY_OBJ; + } + } + + function useCssVars(getter) { + const instance = getCurrentInstance(); + if (!instance) { + warn(`useCssVars is called without current active component instance.`); + return; + } + const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => { + Array.from( + document.querySelectorAll(`[data-v-owner="${instance.uid}"]`) + ).forEach((node) => setVarsOnNode(node, vars)); + }; + const setVars = () => { + const vars = getter(instance.proxy); + setVarsOnVNode(instance.subTree, vars); + updateTeleports(vars); + }; + watchPostEffect(setVars); + onMounted(() => { + const ob = new MutationObserver(setVars); + ob.observe(instance.subTree.el.parentNode, { childList: true }); + onUnmounted(() => ob.disconnect()); + }); + } + function setVarsOnVNode(vnode, vars) { + if (vnode.shapeFlag & 128) { + const suspense = vnode.suspense; + vnode = suspense.activeBranch; + if (suspense.pendingBranch && !suspense.isHydrating) { + suspense.effects.push(() => { + setVarsOnVNode(suspense.activeBranch, vars); + }); + } + } + while (vnode.component) { + vnode = vnode.component.subTree; + } + if (vnode.shapeFlag & 1 && vnode.el) { + setVarsOnNode(vnode.el, vars); + } else if (vnode.type === Fragment) { + vnode.children.forEach((c) => setVarsOnVNode(c, vars)); + } else if (vnode.type === Static) { + let { el, anchor } = vnode; + while (el) { + setVarsOnNode(el, vars); + if (el === anchor) + break; + el = el.nextSibling; + } + } + } + function setVarsOnNode(el, vars) { + if (el.nodeType === 1) { + const style = el.style; + for (const key in vars) { + style.setProperty(`--${key}`, vars[key]); + } + } + } + + const TRANSITION$1 = "transition"; + const ANIMATION = "animation"; + const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots); + Transition.displayName = "Transition"; + const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String + }; + const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend( + {}, + BaseTransitionPropsValidators, + DOMTransitionPropsValidators + ); + const callHook = (hook, args = []) => { + if (isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } + }; + const hasExplicitCallback = (hook) => { + return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; + }; + function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done) => { + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + forceReflow(); + addTransitionClass(el, leaveActiveClass); + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); + } + function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } + } + function NumberOf(val) { + const res = toNumber(val); + { + assertNumber(res, "<transition> explicit duration"); + } + return res; + } + function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls); + } + function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const { _vtc } = el; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el._vtc = void 0; + } + } + } + function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); + } + let endId = 0; + function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); + } + function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION$1) { + if (transitionTimeout > 0) { + type = TRANSITION$1; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null; + propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test( + getStyleProperties(`${TRANSITION$1}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; + } + function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); + } + function toMs(s) { + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; + } + function forceReflow() { + return document.body.offsetHeight; + } + + const positionMap = /* @__PURE__ */ new WeakMap(); + const newPositionMap = /* @__PURE__ */ new WeakMap(); + const TransitionGroupImpl = { + name: "TransitionGroup", + props: /* @__PURE__ */ extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevChildren; + let children; + onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el._moveCb = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || /transform$/.test(e.propertyName)) { + el.removeEventListener("transitionend", cb); + el._moveCb = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + }); + return () => { + const rawProps = toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || Fragment; + prevChildren = children; + children = slots.default ? getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } else { + warn(`<TransitionGroup> children must be keyed.`); + } + } + if (prevChildren) { + for (let i = 0; i < prevChildren.length; i++) { + const child = prevChildren[i]; + setTransitionHooks( + child, + resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + positionMap.set(child, child.el.getBoundingClientRect()); + } + } + return createVNode(tag, null, children); + }; + } + }; + const removeMode = (props) => delete props.mode; + /* @__PURE__ */ removeMode(TransitionGroupImpl.props); + const TransitionGroup = TransitionGroupImpl; + function callPendingCbs(c) { + const el = c.el; + if (el._moveCb) { + el._moveCb(); + } + if (el._enterCb) { + el._enterCb(); + } + } + function recordPosition(c) { + newPositionMap.set(c, c.el.getBoundingClientRect()); + } + function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const s = c.el.style; + s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`; + s.transitionDuration = "0s"; + return c; + } + } + function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + if (el._vtc) { + el._vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; + } + + const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn; + }; + function onCompositionStart(e) { + e.target.composing = true; + } + function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } + } + const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el._assign = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) + return; + let domValue = el.value; + if (trim) { + domValue = domValue.trim(); + } + if (castToNumber) { + domValue = looseToNumber(domValue); + } + el._assign(domValue); + }); + if (trim) { + addEventListener(el, "change", () => { + el.value = el.value.trim(); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) { + el._assign = getModelAssigner(vnode); + if (el.composing) + return; + if (document.activeElement === el && el.type !== "range") { + if (lazy) { + return; + } + if (trim && el.value.trim() === value) { + return; + } + if ((number || el.type === "number") && looseToNumber(el.value) === value) { + return; + } + } + const newValue = value == null ? "" : value; + if (el.value !== newValue) { + el.value = newValue; + } + } + }; + const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el._assign = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el._assign; + if (isArray(modelValue)) { + const index = looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el._assign = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } + }; + function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + if (isArray(value)) { + el.checked = looseIndexOf(value, vnode.props.value) > -1; + } else if (isSet(value)) { + el.checked = value.has(vnode.props.value); + } else if (value !== oldValue) { + el.checked = looseEqual(value, getCheckboxValue(el, true)); + } + } + const vModelRadio = { + created(el, { value }, vnode) { + el.checked = looseEqual(value, vnode.props.value); + el._assign = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el._assign(getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el._assign = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = looseEqual(value, vnode.props.value); + } + } + }; + const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? looseToNumber(getValue(o)) : getValue(o) + ); + el._assign( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + }); + el._assign = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el._assign = getModelAssigner(vnode); + }, + updated(el, { value }) { + setSelected(el, value); + } + }; + function setSelected(el, value) { + const isMultiple = el.multiple; + if (isMultiple && !isArray(value) && !isSet(value)) { + warn( + `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.` + ); + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArray(value)) { + option.selected = looseIndexOf(value, optionValue) > -1; + } else { + option.selected = value.has(optionValue); + } + } else { + if (looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) + el.selectedIndex = i; + return; + } + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } + } + function getValue(el) { + return "_value" in el ? el._value : el.value; + } + function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; + } + const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } + }; + function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } + } + function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); + } + + const systemModifiers = ["ctrl", "shift", "alt", "meta"]; + const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) + }; + const withModifiers = (fn, modifiers) => { + return (event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) + return; + } + return fn(event, ...args); + }; + }; + const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" + }; + const withKeys = (fn, modifiers) => { + return (event) => { + if (!("key" in event)) { + return; + } + const eventKey = hyphenate(event.key); + if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) { + return fn(event); + } + }; + }; + + const vShow = { + beforeMount(el, { value }, { transition }) { + el._vod = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) + return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } + }; + function setDisplay(el, value) { + el.style.display = value ? el._vod : "none"; + } + + const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps); + let renderer; + let enabledHydration = false; + function ensureRenderer() { + return renderer || (renderer = createRenderer(rendererOptions)); + } + function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; + } + const render = (...args) => { + ensureRenderer().render(...args); + }; + const hydrate = (...args) => { + ensureHydrationRenderer().hydrate(...args); + }; + const createApp = (...args) => { + const app = ensureRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) + return; + const component = app._component; + if (!isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + container.innerHTML = ""; + const proxy = mount(container, false, container instanceof SVGElement); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; + }; + const createSSRApp = (...args) => { + const app = ensureHydrationRenderer().createApp(...args); + { + injectNativeTagCheck(app); + injectCompilerOptionsCheck(app); + } + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, container instanceof SVGElement); + } + }; + return app; + }; + function injectNativeTagCheck(app) { + Object.defineProperty(app.config, "isNativeTag", { + value: (tag) => isHTMLTag(tag) || isSVGTag(tag), + writable: false + }); + } + function injectCompilerOptionsCheck(app) { + if (isRuntimeOnly()) { + const isCustomElement = app.config.isCustomElement; + Object.defineProperty(app.config, "isCustomElement", { + get() { + return isCustomElement; + }, + set() { + warn( + `The \`isCustomElement\` config option is deprecated. Use \`compilerOptions.isCustomElement\` instead.` + ); + } + }); + const compilerOptions = app.config.compilerOptions; + const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead. +- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option. +- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader +- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`; + Object.defineProperty(app.config, "compilerOptions", { + get() { + warn(msg); + return compilerOptions; + }, + set() { + warn(msg); + } + }); + } + } + function normalizeContainer(container) { + if (isString(container)) { + const res = document.querySelector(container); + if (!res) { + warn( + `Failed to mount app: mount target selector "${container}" returned null.` + ); + } + return res; + } + if (window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === "closed") { + warn( + `mounting on a ShadowRoot with \`{mode: "closed"}\` may lead to unpredictable bugs` + ); + } + return container; + } + const initDirectivesForSSR = NOOP; + + function initDev() { + { + { + console.info( + `You are running a development build of Vue. +Make sure to use the production build (*.prod.js) when deploying for production.` + ); + } + initCustomFormatter(); + } + } + + function defaultOnError(error) { + throw error; + } + function defaultOnWarn(msg) { + console.warn(`[Vue warn] ${msg.message}`); + } + function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; + } + const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `Error parsing JavaScript expression: `, + [46]: `<KeepAlive> expects exactly one child component.`, + // generic errors + [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [48]: `ES module mode is not supported in this build of compiler.`, + [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [50]: `"scopeId" option is only supported in module mode.`, + // deprecations + [51]: `@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support will be removed in 3.4.`, + [52]: `v-is="component-name" has been deprecated. Use is="vue:component-name" instead. v-is support will be removed in 3.4.`, + // just to fulfill types + [53]: `` + }; + + const FRAGMENT = Symbol(`Fragment` ); + const TELEPORT = Symbol(`Teleport` ); + const SUSPENSE = Symbol(`Suspense` ); + const KEEP_ALIVE = Symbol(`KeepAlive` ); + const BASE_TRANSITION = Symbol(`BaseTransition` ); + const OPEN_BLOCK = Symbol(`openBlock` ); + const CREATE_BLOCK = Symbol(`createBlock` ); + const CREATE_ELEMENT_BLOCK = Symbol(`createElementBlock` ); + const CREATE_VNODE = Symbol(`createVNode` ); + const CREATE_ELEMENT_VNODE = Symbol(`createElementVNode` ); + const CREATE_COMMENT = Symbol(`createCommentVNode` ); + const CREATE_TEXT = Symbol(`createTextVNode` ); + const CREATE_STATIC = Symbol(`createStaticVNode` ); + const RESOLVE_COMPONENT = Symbol(`resolveComponent` ); + const RESOLVE_DYNAMIC_COMPONENT = Symbol( + `resolveDynamicComponent` + ); + const RESOLVE_DIRECTIVE = Symbol(`resolveDirective` ); + const RESOLVE_FILTER = Symbol(`resolveFilter` ); + const WITH_DIRECTIVES = Symbol(`withDirectives` ); + const RENDER_LIST = Symbol(`renderList` ); + const RENDER_SLOT = Symbol(`renderSlot` ); + const CREATE_SLOTS = Symbol(`createSlots` ); + const TO_DISPLAY_STRING = Symbol(`toDisplayString` ); + const MERGE_PROPS = Symbol(`mergeProps` ); + const NORMALIZE_CLASS = Symbol(`normalizeClass` ); + const NORMALIZE_STYLE = Symbol(`normalizeStyle` ); + const NORMALIZE_PROPS = Symbol(`normalizeProps` ); + const GUARD_REACTIVE_PROPS = Symbol(`guardReactiveProps` ); + const TO_HANDLERS = Symbol(`toHandlers` ); + const CAMELIZE = Symbol(`camelize` ); + const CAPITALIZE = Symbol(`capitalize` ); + const TO_HANDLER_KEY = Symbol(`toHandlerKey` ); + const SET_BLOCK_TRACKING = Symbol(`setBlockTracking` ); + const PUSH_SCOPE_ID = Symbol(`pushScopeId` ); + const POP_SCOPE_ID = Symbol(`popScopeId` ); + const WITH_CTX = Symbol(`withCtx` ); + const UNREF = Symbol(`unref` ); + const IS_REF = Symbol(`isRef` ); + const WITH_MEMO = Symbol(`withMemo` ); + const IS_MEMO_SAME = Symbol(`isMemoSame` ); + const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` + }; + function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); + } + + const locStub = { + source: "", + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 } + }; + function createRoot(children, loc = locStub) { + return { + type: 0, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: 0, + temps: 0, + codegenNode: void 0, + loc + }; + } + function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; + } + function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; + } + function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; + } + function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: isString(key) ? createSimpleExpression(key, true) : key, + value + }; + } + function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; + } + function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; + } + function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; + } + function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; + } + function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; + } + function createCacheExpression(index, value, isVNode = false) { + return { + type: 20, + index, + value, + isVNode, + loc: locStub + }; + } + function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; + } + function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; + } + function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; + } + function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } + } + + const isStaticExp = (p) => p.type === 4 && p.isStatic; + const isBuiltInType = (tag, expected) => tag === expected || tag === hyphenate(expected); + function isCoreComponent(tag) { + if (isBuiltInType(tag, "Teleport")) { + return TELEPORT; + } else if (isBuiltInType(tag, "Suspense")) { + return SUSPENSE; + } else if (isBuiltInType(tag, "KeepAlive")) { + return KEEP_ALIVE; + } else if (isBuiltInType(tag, "BaseTransition")) { + return BASE_TRANSITION; + } + } + const nonIdentifierRE = /^\d|[^\$\w]/; + const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); + const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; + const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; + const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; + const isMemberExpressionBrowser = (path) => { + path = path.trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; + }; + const isMemberExpression = isMemberExpressionBrowser ; + function getInnerRange(loc, offset, length) { + const source = loc.source.slice(offset, offset + length); + const newLoc = { + source, + start: advancePositionWithClone(loc.start, loc.source, offset), + end: loc.end + }; + if (length != null) { + newLoc.end = advancePositionWithClone( + loc.start, + loc.source, + offset + length + ); + } + return newLoc; + } + function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + extend({}, pos), + source, + numberOfCharacters + ); + } + function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; + } + function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } + } + function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } + } + function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) + continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } + } + function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); + } + function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); + } + function isText$1(node) { + return node.type === 5 || node.type === 2; + } + function isVSlot(p) { + return p.type === 7 && p.name === "slot"; + } + function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; + } + function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; + } + const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); + function getUnnormalizedProps(props, callPath = []) { + if (props && !isString(props) && props.type === 14) { + const callee = props.callee; + if (!isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; + } + function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } + } + function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; + } + function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; + } + function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } + } + + const decodeRE = /&(gt|lt|amp|apos|quot);/g; + const decodeMap = { + gt: ">", + lt: "<", + amp: "&", + apos: "'", + quot: '"' + }; + const defaultParserOptions = { + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + getTextMode: () => 0, + isVoidTag: NO, + isPreTag: NO, + isCustomElement: NO, + decodeEntities: (rawText) => rawText.replace(decodeRE, (_, p1) => decodeMap[p1]), + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: true + }; + function baseParse(content, options = {}) { + const context = createParserContext(content, options); + const start = getCursor(context); + return createRoot( + parseChildren(context, 0, []), + getSelection(context, start) + ); + } + function createParserContext(content, rawOptions) { + const options = extend({}, defaultParserOptions); + let key; + for (key in rawOptions) { + options[key] = rawOptions[key] === void 0 ? defaultParserOptions[key] : rawOptions[key]; + } + return { + options, + column: 1, + line: 1, + offset: 0, + originalSource: content, + source: content, + inPre: false, + inVPre: false, + onWarn: options.onWarn + }; + } + function parseChildren(context, mode, ancestors) { + const parent = last(ancestors); + const ns = parent ? parent.ns : 0; + const nodes = []; + while (!isEnd(context, mode, ancestors)) { + const s = context.source; + let node = void 0; + if (mode === 0 || mode === 1) { + if (!context.inVPre && startsWith(s, context.options.delimiters[0])) { + node = parseInterpolation(context, mode); + } else if (mode === 0 && s[0] === "<") { + if (s.length === 1) { + emitError(context, 5, 1); + } else if (s[1] === "!") { + if (startsWith(s, "<!--")) { + node = parseComment(context); + } else if (startsWith(s, "<!DOCTYPE")) { + node = parseBogusComment(context); + } else if (startsWith(s, "<![CDATA[")) { + if (ns !== 0) { + node = parseCDATA(context, ancestors); + } else { + emitError(context, 1); + node = parseBogusComment(context); + } + } else { + emitError(context, 11); + node = parseBogusComment(context); + } + } else if (s[1] === "/") { + if (s.length === 2) { + emitError(context, 5, 2); + } else if (s[2] === ">") { + emitError(context, 14, 2); + advanceBy(context, 3); + continue; + } else if (/[a-z]/i.test(s[2])) { + emitError(context, 23); + parseTag(context, TagType.End, parent); + continue; + } else { + emitError( + context, + 12, + 2 + ); + node = parseBogusComment(context); + } + } else if (/[a-z]/i.test(s[1])) { + node = parseElement(context, ancestors); + } else if (s[1] === "?") { + emitError( + context, + 21, + 1 + ); + node = parseBogusComment(context); + } else { + emitError(context, 12, 1); + } + } + } + if (!node) { + node = parseText(context, mode); + } + if (isArray(node)) { + for (let i = 0; i < node.length; i++) { + pushNode(nodes, node[i]); + } + } else { + pushNode(nodes, node); + } + } + let removedWhitespace = false; + if (mode !== 2 && mode !== 1) { + const shouldCondense = context.options.whitespace !== "preserve"; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!context.inPre) { + if (!/[^\t\r\n\f ]/.test(node.content)) { + const prev = nodes[i - 1]; + const next = nodes[i + 1]; + if (!prev || !next || shouldCondense && (prev.type === 3 && next.type === 3 || prev.type === 3 && next.type === 1 || prev.type === 1 && next.type === 3 || prev.type === 1 && next.type === 1 && /[\r\n]/.test(node.content))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = node.content.replace(/[\t\r\n\f ]+/g, " "); + } + } else { + node.content = node.content.replace(/\r\n/g, "\n"); + } + } else if (node.type === 3 && !context.options.comments) { + removedWhitespace = true; + nodes[i] = null; + } + } + if (context.inPre && parent && context.options.isPreTag(parent.tag)) { + const first = nodes[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; + } + function pushNode(nodes, node) { + if (node.type === 2) { + const prev = last(nodes); + if (prev && prev.type === 2 && prev.loc.end.offset === node.loc.start.offset) { + prev.content += node.content; + prev.loc.end = node.loc.end; + prev.loc.source += node.loc.source; + return; + } + } + nodes.push(node); + } + function parseCDATA(context, ancestors) { + advanceBy(context, 9); + const nodes = parseChildren(context, 3, ancestors); + if (context.source.length === 0) { + emitError(context, 6); + } else { + advanceBy(context, 3); + } + return nodes; + } + function parseComment(context) { + const start = getCursor(context); + let content; + const match = /--(\!)?>/.exec(context.source); + if (!match) { + content = context.source.slice(4); + advanceBy(context, context.source.length); + emitError(context, 7); + } else { + if (match.index <= 3) { + emitError(context, 0); + } + if (match[1]) { + emitError(context, 10); + } + content = context.source.slice(4, match.index); + const s = context.source.slice(0, match.index); + let prevIndex = 1, nestedIndex = 0; + while ((nestedIndex = s.indexOf("<!--", prevIndex)) !== -1) { + advanceBy(context, nestedIndex - prevIndex + 1); + if (nestedIndex + 4 < s.length) { + emitError(context, 16); + } + prevIndex = nestedIndex + 1; + } + advanceBy(context, match.index + match[0].length - prevIndex + 1); + } + return { + type: 3, + content, + loc: getSelection(context, start) + }; + } + function parseBogusComment(context) { + const start = getCursor(context); + const contentStart = context.source[1] === "?" ? 1 : 2; + let content; + const closeIndex = context.source.indexOf(">"); + if (closeIndex === -1) { + content = context.source.slice(contentStart); + advanceBy(context, context.source.length); + } else { + content = context.source.slice(contentStart, closeIndex); + advanceBy(context, closeIndex + 1); + } + return { + type: 3, + content, + loc: getSelection(context, start) + }; + } + function parseElement(context, ancestors) { + const wasInPre = context.inPre; + const wasInVPre = context.inVPre; + const parent = last(ancestors); + const element = parseTag(context, TagType.Start, parent); + const isPreBoundary = context.inPre && !wasInPre; + const isVPreBoundary = context.inVPre && !wasInVPre; + if (element.isSelfClosing || context.options.isVoidTag(element.tag)) { + if (isPreBoundary) { + context.inPre = false; + } + if (isVPreBoundary) { + context.inVPre = false; + } + return element; + } + ancestors.push(element); + const mode = context.options.getTextMode(element, parent); + const children = parseChildren(context, mode, ancestors); + ancestors.pop(); + element.children = children; + if (startsWithEndTagOpen(context.source, element.tag)) { + parseTag(context, TagType.End, parent); + } else { + emitError(context, 24, 0, element.loc.start); + if (context.source.length === 0 && element.tag.toLowerCase() === "script") { + const first = children[0]; + if (first && startsWith(first.loc.source, "<!--")) { + emitError(context, 8); + } + } + } + element.loc = getSelection(context, element.loc.start); + if (isPreBoundary) { + context.inPre = false; + } + if (isVPreBoundary) { + context.inVPre = false; + } + return element; + } + var TagType = /* @__PURE__ */ ((TagType2) => { + TagType2[TagType2["Start"] = 0] = "Start"; + TagType2[TagType2["End"] = 1] = "End"; + return TagType2; + })(TagType || {}); + const isSpecialTemplateDirective = /* @__PURE__ */ makeMap( + `if,else,else-if,for,slot` + ); + function parseTag(context, type, parent) { + const start = getCursor(context); + const match = /^<\/?([a-z][^\t\r\n\f />]*)/i.exec(context.source); + const tag = match[1]; + const ns = context.options.getNamespace(tag, parent); + advanceBy(context, match[0].length); + advanceSpaces(context); + const cursor = getCursor(context); + const currentSource = context.source; + if (context.options.isPreTag(tag)) { + context.inPre = true; + } + let props = parseAttributes(context, type); + if (type === 0 /* Start */ && !context.inVPre && props.some((p) => p.type === 7 && p.name === "pre")) { + context.inVPre = true; + extend(context, cursor); + context.source = currentSource; + props = parseAttributes(context, type).filter((p) => p.name !== "v-pre"); + } + let isSelfClosing = false; + if (context.source.length === 0) { + emitError(context, 9); + } else { + isSelfClosing = startsWith(context.source, "/>"); + if (type === 1 /* End */ && isSelfClosing) { + emitError(context, 4); + } + advanceBy(context, isSelfClosing ? 2 : 1); + } + if (type === 1 /* End */) { + return; + } + let tagType = 0; + if (!context.inVPre) { + if (tag === "slot") { + tagType = 2; + } else if (tag === "template") { + if (props.some( + (p) => p.type === 7 && isSpecialTemplateDirective(p.name) + )) { + tagType = 3; + } + } else if (isComponent(tag, props, context)) { + tagType = 1; + } + } + return { + type: 1, + ns, + tag, + tagType, + props, + isSelfClosing, + children: [], + loc: getSelection(context, start), + codegenNode: void 0 + // to be created during transform phase + }; + } + function isComponent(tag, props, context) { + const options = context.options; + if (options.isCustomElement(tag)) { + return false; + } + if (tag === "component" || /^[A-Z]/.test(tag) || isCoreComponent(tag) || options.isBuiltInComponent && options.isBuiltInComponent(tag) || options.isNativeTag && !options.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } + } + } else { + if (p.name === "is") { + return true; + } else if ( + // :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && false + ) { + return true; + } + } + } + } + function parseAttributes(context, type) { + const props = []; + const attributeNames = /* @__PURE__ */ new Set(); + while (context.source.length > 0 && !startsWith(context.source, ">") && !startsWith(context.source, "/>")) { + if (startsWith(context.source, "/")) { + emitError(context, 22); + advanceBy(context, 1); + advanceSpaces(context); + continue; + } + if (type === 1 /* End */) { + emitError(context, 3); + } + const attr = parseAttribute(context, attributeNames); + if (attr.type === 6 && attr.value && attr.name === "class") { + attr.value.content = attr.value.content.replace(/\s+/g, " ").trim(); + } + if (type === 0 /* Start */) { + props.push(attr); + } + if (/^[^\t\r\n\f />]/.test(context.source)) { + emitError(context, 15); + } + advanceSpaces(context); + } + return props; + } + function parseAttribute(context, nameSet) { + var _a; + const start = getCursor(context); + const match = /^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(context.source); + const name = match[0]; + if (nameSet.has(name)) { + emitError(context, 2); + } + nameSet.add(name); + if (name[0] === "=") { + emitError(context, 19); + } + { + const pattern = /["'<]/g; + let m; + while (m = pattern.exec(name)) { + emitError( + context, + 17, + m.index + ); + } + } + advanceBy(context, name.length); + let value = void 0; + if (/^[\t\r\n\f ]*=/.test(context.source)) { + advanceSpaces(context); + advanceBy(context, 1); + advanceSpaces(context); + value = parseAttributeValue(context); + if (!value) { + emitError(context, 13); + } + } + const loc = getSelection(context, start); + if (!context.inVPre && /^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(name)) { + const match2 = /(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec( + name + ); + let isPropShorthand = startsWith(name, "."); + let dirName = match2[1] || (isPropShorthand || startsWith(name, ":") ? "bind" : startsWith(name, "@") ? "on" : "slot"); + let arg; + if (match2[2]) { + const isSlot = dirName === "slot"; + const startOffset = name.lastIndexOf( + match2[2], + name.length - (((_a = match2[3]) == null ? void 0 : _a.length) || 0) + ); + const loc2 = getSelection( + context, + getNewPosition(context, start, startOffset), + getNewPosition( + context, + start, + startOffset + match2[2].length + (isSlot && match2[3] || "").length + ) + ); + let content = match2[2]; + let isStatic = true; + if (content.startsWith("[")) { + isStatic = false; + if (!content.endsWith("]")) { + emitError( + context, + 27 + ); + content = content.slice(1); + } else { + content = content.slice(1, content.length - 1); + } + } else if (isSlot) { + content += match2[3] || ""; + } + arg = { + type: 4, + content, + isStatic, + constType: isStatic ? 3 : 0, + loc: loc2 + }; + } + if (value && value.isQuoted) { + const valueLoc = value.loc; + valueLoc.start.offset++; + valueLoc.start.column++; + valueLoc.end = advancePositionWithClone(valueLoc.start, value.content); + valueLoc.source = valueLoc.source.slice(1, -1); + } + const modifiers = match2[3] ? match2[3].slice(1).split(".") : []; + if (isPropShorthand) + modifiers.push("prop"); + return { + type: 7, + name: dirName, + exp: value && { + type: 4, + content: value.content, + isStatic: false, + // Treat as non-constant by default. This can be potentially set to + // other values by `transformExpression` to make it eligible for hoisting. + constType: 0, + loc: value.loc + }, + arg, + modifiers, + loc + }; + } + if (!context.inVPre && startsWith(name, "v-")) { + emitError(context, 26); + } + return { + type: 6, + name, + value: value && { + type: 2, + content: value.content, + loc: value.loc + }, + loc + }; + } + function parseAttributeValue(context) { + const start = getCursor(context); + let content; + const quote = context.source[0]; + const isQuoted = quote === `"` || quote === `'`; + if (isQuoted) { + advanceBy(context, 1); + const endIndex = context.source.indexOf(quote); + if (endIndex === -1) { + content = parseTextData( + context, + context.source.length, + 4 + ); + } else { + content = parseTextData(context, endIndex, 4); + advanceBy(context, 1); + } + } else { + const match = /^[^\t\r\n\f >]+/.exec(context.source); + if (!match) { + return void 0; + } + const unexpectedChars = /["'<=`]/g; + let m; + while (m = unexpectedChars.exec(match[0])) { + emitError( + context, + 18, + m.index + ); + } + content = parseTextData(context, match[0].length, 4); + } + return { content, isQuoted, loc: getSelection(context, start) }; + } + function parseInterpolation(context, mode) { + const [open, close] = context.options.delimiters; + const closeIndex = context.source.indexOf(close, open.length); + if (closeIndex === -1) { + emitError(context, 25); + return void 0; + } + const start = getCursor(context); + advanceBy(context, open.length); + const innerStart = getCursor(context); + const innerEnd = getCursor(context); + const rawContentLength = closeIndex - open.length; + const rawContent = context.source.slice(0, rawContentLength); + const preTrimContent = parseTextData(context, rawContentLength, mode); + const content = preTrimContent.trim(); + const startOffset = preTrimContent.indexOf(content); + if (startOffset > 0) { + advancePositionWithMutation(innerStart, rawContent, startOffset); + } + const endOffset = rawContentLength - (preTrimContent.length - content.length - startOffset); + advancePositionWithMutation(innerEnd, rawContent, endOffset); + advanceBy(context, close.length); + return { + type: 5, + content: { + type: 4, + isStatic: false, + // Set `isConstant` to false by default and will decide in transformExpression + constType: 0, + content, + loc: getSelection(context, innerStart, innerEnd) + }, + loc: getSelection(context, start) + }; + } + function parseText(context, mode) { + const endTokens = mode === 3 ? ["]]>"] : ["<", context.options.delimiters[0]]; + let endIndex = context.source.length; + for (let i = 0; i < endTokens.length; i++) { + const index = context.source.indexOf(endTokens[i], 1); + if (index !== -1 && endIndex > index) { + endIndex = index; + } + } + const start = getCursor(context); + const content = parseTextData(context, endIndex, mode); + return { + type: 2, + content, + loc: getSelection(context, start) + }; + } + function parseTextData(context, length, mode) { + const rawText = context.source.slice(0, length); + advanceBy(context, length); + if (mode === 2 || mode === 3 || !rawText.includes("&")) { + return rawText; + } else { + return context.options.decodeEntities( + rawText, + mode === 4 + ); + } + } + function getCursor(context) { + const { column, line, offset } = context; + return { column, line, offset }; + } + function getSelection(context, start, end) { + end = end || getCursor(context); + return { + start, + end, + source: context.originalSource.slice(start.offset, end.offset) + }; + } + function last(xs) { + return xs[xs.length - 1]; + } + function startsWith(source, searchString) { + return source.startsWith(searchString); + } + function advanceBy(context, numberOfCharacters) { + const { source } = context; + advancePositionWithMutation(context, source, numberOfCharacters); + context.source = source.slice(numberOfCharacters); + } + function advanceSpaces(context) { + const match = /^[\t\r\n\f ]+/.exec(context.source); + if (match) { + advanceBy(context, match[0].length); + } + } + function getNewPosition(context, start, numberOfCharacters) { + return advancePositionWithClone( + start, + context.originalSource.slice(start.offset, numberOfCharacters), + numberOfCharacters + ); + } + function emitError(context, code, offset, loc = getCursor(context)) { + if (offset) { + loc.offset += offset; + loc.column += offset; + } + context.options.onError( + createCompilerError(code, { + start: loc, + end: loc, + source: "" + }) + ); + } + function isEnd(context, mode, ancestors) { + const s = context.source; + switch (mode) { + case 0: + if (startsWith(s, "</")) { + for (let i = ancestors.length - 1; i >= 0; --i) { + if (startsWithEndTagOpen(s, ancestors[i].tag)) { + return true; + } + } + } + break; + case 1: + case 2: { + const parent = last(ancestors); + if (parent && startsWithEndTagOpen(s, parent.tag)) { + return true; + } + break; + } + case 3: + if (startsWith(s, "]]>")) { + return true; + } + break; + } + return !s; + } + function startsWithEndTagOpen(source, tag) { + return startsWith(source, "</") && source.slice(2, 2 + tag.length).toLowerCase() === tag.toLowerCase() && /[\t\r\n\f />]/.test(source[2 + tag.length] || ">"); + } + + function hoistStatic(root, context) { + walk( + root, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + isSingleElementRoot(root, root.children[0]) + ); + } + function isSingleElementRoot(root, child) { + const { children } = root; + return children.length === 1 && child.type === 1 && !isSlotOutlet(child); + } + function walk(node, context, doNotHoistNode = false) { + const { children } = node; + const originalCount = children.length; + let hoistedCount = 0; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1 + (` /* HOISTED */` ); + child.codegenNode = context.hoist(child.codegenNode); + hoistedCount++; + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = getPatchFlag(codegenNode); + if ((!flag || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, context); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, context, child.children.length === 1); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + context, + child.branches[i2].children.length === 1 + ); + } + } + } + if (hoistedCount && context.transformHoist) { + context.transformHoist(children, context, node); + } + if (hoistedCount && hoistedCount === originalCount && node.type === 1 && node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) { + node.codegenNode.children = context.hoist( + createArrayExpression(node.codegenNode.children) + ); + } + } + function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject") { + return 0; + } + const flag = getPatchFlag(codegenNode); + if (!flag) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child) || isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + default: + return 0; + } + } + const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS + ]); + function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; + } + function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; + } + function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } + } + function getPatchFlag(node) { + const flag = node.patchFlag; + return flag ? parseInt(flag, 10) : void 0; + } + + function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic: hoistStatic2 = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = NOOP, + isCustomElement = NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig + }) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + selfName: nameMatch && capitalize(camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic: hoistStatic2, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + constantCache: /* @__PURE__ */ new Map(), + temps: 0, + cached: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + { + if (!context.currentNode) { + throw new Error(`Node being replaced is already removed.`); + } + if (!context.parent) { + throw new Error(`Cannot replace root node.`); + } + } + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + if (!context.parent) { + throw new Error(`Cannot remove root node.`); + } + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (removalIndex < 0) { + throw new Error(`node being removed is not a child of current parent`); + } + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: () => { + }, + addIdentifiers(exp) { + }, + removeIdentifiers(exp) { + }, + hoist(exp) { + if (isString(exp)) + exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false) { + return createCacheExpression(context.cached++, exp, isVNode); + } + }; + return context; + } + function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + hoistStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + } + function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const child = children[0]; + if (isSingleElementRoot(root, child) && child.codegenNode) { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = child; + } + } else if (children.length > 1) { + let patchFlag = 64; + let patchFlagText = PatchFlagNames[64]; + if (children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${PatchFlagNames[2048]}`; + } + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag + (` /* ${patchFlagText} */` ), + void 0, + void 0, + true, + void 0, + false + /* isComponent */ + ); + } else ; + } + function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (isString(child)) + continue; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } + } + function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } + } + function createStructuralDirectiveTransform(name, fn) { + const matches = isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) + exitFns.push(onExit); + } + } + return exitFns; + } + }; + } + + const PURE_ANNOTATION = `/*#__PURE__*/`; + const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; + function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false + }) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.loc.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, node) { + context.code += code; + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n)); + } + return context; + } + function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) + options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const isSetupInlined = false; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + const signature = args.join(", "); + { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push(`const { ${helpers.map(aliasHelper).join(", ")} } = _Vue`); + push(` +`); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + // SourceMapGenerator does have toJSON() method but it's not in the types + map: context.map ? context.map.toJSON() : void 0 + }; + } + function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + { + push(`const _Vue = ${VueBinding} +`); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`); + } + } + } + genHoists(ast.hoists, context); + newline(); + push(`return `); + } + function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } + } + function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline, helper, scopeId, mode } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push( + `const _hoisted_${i + 1} = ${``}` + ); + genNode(exp, context); + newline(); + } + } + context.pure = false; + } + function isText(n) { + return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; + } + function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); + } + function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (isString(node)) { + push(node); + } else if (isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } + } + function genNode(node, context) { + if (isString(node)) { + context.push(node); + return; + } + if (isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + assert( + node.codegenNode != null, + `Codegen node is missing for element/if/for node. Apply appropriate transforms first.` + ); + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + case 22: + break; + case 23: + break; + case 24: + break; + case 25: + break; + case 26: + break; + case 10: + break; + default: + { + assert(false, `unhandled codegen node type: ${node.type}`); + const exhaustiveCheck = node; + return exhaustiveCheck; + } + } + } + function genText(node, context) { + context.push(JSON.stringify(node.content), node); + } + function genExpression(node, context) { + const { content, isStatic } = node; + context.push(isStatic ? JSON.stringify(content) : content, node); + } + function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) + push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); + } + function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (isString(child)) { + context.push(child); + } else { + genNode(child, context); + } + } + } + function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, node); + } else { + push(`[${node.content}]`, node); + } + } + function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push(`${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, node); + } + function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlag, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } + } + function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) + break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); + } + function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, node); + genNodeList(node.arguments, context); + push(`)`); + } + function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); + } + function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); + } + function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, node); + if (isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + push(`)`); + } + } + function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); + } + function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + push(`_cache[${node.index}] || (`); + if (node.isVNode) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1),`); + newline(); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (node.isVNode) { + push(`,`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + } + + const prohibitedKeywordRE = new RegExp( + "\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b" + ); + const stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; + function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) { + const exp = node.content; + if (!exp.trim()) { + return; + } + try { + new Function( + asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}` + ); + } catch (e) { + let message = e.message; + const keywordMatch = exp.replace(stripStringRE, "").match(prohibitedKeywordRE); + if (keywordMatch) { + message = `avoid using JavaScript keyword as property name: "${keywordMatch[0]}"`; + } + context.onError( + createCompilerError( + 45, + node.loc, + void 0, + message + ) + ); + } + } + + const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg)) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } + }; + function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + { + { + validateBrowserExpression(node, context, asParams, asRawStatements); + } + return node; + } + } + + const transformIf = createStructuralDirectiveTransform( + /^(if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } + ); + function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (dir.exp) { + validateBrowserExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: node.loc, + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + const comments = []; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && sibling.type === 3) { + context.removeNode(sibling); + comments.unshift(sibling); + continue; + } + if (sibling && sibling.type === 2 && !sibling.content.trim().length) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 9) { + if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition> + !(context.parent && context.parent.type === 1 && isBuiltInType(context.parent.tag, "transition"))) { + branch.children = [...comments, ...branch.children]; + } + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) + onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } + } + function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; + } + function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '"v-if"' , + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } + } + function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + let patchFlagText = PatchFlagNames[64]; + if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) { + patchFlag |= 2048; + patchFlagText += `, ${PatchFlagNames[2048]}`; + } + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag + (` /* ${patchFlagText} */` ), + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } + } + function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; + } + function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } + } + + const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`); + const keyExp = keyProp && (keyProp.type === 6 ? createSimpleExpression(keyProp.value.content, true) : keyProp.exp); + const keyProperty = keyProp ? createObjectProperty(`key`, keyExp) : null; + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag + (` /* ${PatchFlagNames[fragmentFlag]} */` ), + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64 + (` /* ${PatchFlagNames[64]} */` ), + void 0, + void 0, + true, + void 0, + false + /* isComponent */ + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached++)) + ); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + /* force newline */ + ) + ); + } + }; + }); + } + ); + function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = parseForExpression( + // can only be simple expression because vFor transform is applied + // before expression transform. + dir.exp, + context + ); + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (onExit) + onExit(); + }; + } + const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; + const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; + const stripParensRE = /^\(|\)$/g; + function parseForExpression(input, context) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) + return; + const [, LHS, RHS] = inMatch; + const result = { + source: createAliasExpression( + loc, + RHS.trim(), + exp.indexOf(RHS, LHS.length) + ), + value: void 0, + key: void 0, + index: void 0 + }; + { + validateBrowserExpression(result.source, context); + } + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(loc, keyContent, keyOffset); + { + validateBrowserExpression( + result.key, + context, + true + ); + } + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + loc, + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ) + ); + { + validateBrowserExpression( + result.index, + context, + true + ); + } + } + } + } + if (valueContent) { + result.value = createAliasExpression(loc, valueContent, trimmedOffset); + { + validateBrowserExpression( + result.value, + context, + true + ); + } + } + return result; + } + function createAliasExpression(range, content, offset) { + return createSimpleExpression( + content, + false, + getInnerRange(range, offset, content.length) + ); + } + function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); + } + function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) + break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); + } + + const defaultFallback = createSimpleExpression(`undefined`, false); + const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + vSlot.exp; + context.scopes.vSlot++; + return () => { + context.scopes.vSlot--; + }; + } + } + }; + const buildClientSlotFn = (props, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc + ); + function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const slotFunction = buildSlotFn(slotProps, slotChildren, slotLoc); + let vIf; + let vElse; + let vFor; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (prev.type !== 3) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, "if")) { + children.splice(i, 1); + i--; + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor = findDir(slotElement, "for")) { + hasDynamicSlots = true; + const parseResult = vFor.parseResult || parseForExpression(vFor.exp, context); + if (parseResult) { + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + /* force newline */ + ) + ]) + ); + } else { + context.onError( + createCompilerError(32, vFor.loc) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, children2, loc); + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (` /* ${slotFlagsText[slotFlag]} */` ), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; + } + function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); + } + function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) + return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) + return true; + break; + } + } + return false; + } + function isNonWhitespaceContent(node) { + if (node.type !== 2 && node.type !== 12) + return true; + return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content); + } + + const directiveImportMap = /* @__PURE__ */ new WeakMap(); + const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let vnodePatchFlag; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + if (node.children.length > 1) { + context.onError( + createCompilerError(46, { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + }) + ); + } + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (patchFlag !== 0) { + { + if (patchFlag < 0) { + vnodePatchFlag = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`; + } else { + const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `); + vnodePatchFlag = patchFlag + ` /* ${flagNames} */`; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + vnodePatchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; + }; + function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp(node, "is"); + if (isProp) { + if (isExplicitDynamic || false) { + const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp; + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const isDir = !isExplicitDynamic && findDir(node, "is"); + if (isDir && isDir.exp) { + { + context.onWarn( + createCompilerError(52, isDir.loc) + ); + } + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + isDir.exp + ]); + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) + context.helper(builtIn); + return builtIn; + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); + } + function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) + mergeArgs.push(arg); + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && isReservedProp(name)) { + hasVnodeHook = true; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || false)) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression( + name, + true, + getInnerRange(loc, 0, name.length) + ), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || false)) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushMergeArg(); + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; + } + function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; + } + function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } + } + function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) + dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); + } + function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) + propsNamesString += ", "; + } + return propsNamesString + `]`; + } + function isComponentTag(tag) { + return tag === "component" || tag === "Component"; + } + + const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } + }; + function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) + slotName = p.exp; + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; + } + + const fnExpRE = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/; + const transformOn$1 = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vnode")) { + context.onWarn( + createCompilerError(51, arg.loc) + ); + } + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + toHandlerKey(camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp.content); + const isInlineStatement = !(isMemberExp || fnExpRE.test(exp.content)); + const hasMultipleStatements = exp.content.includes(`;`); + { + validateBrowserExpression( + exp, + context, + false, + hasMultipleStatements + ); + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; + }; + + const transformBind = (dir, _node, context) => { + const { exp, modifiers, loc } = dir; + const arg = dir.arg; + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = `${arg.content} || ""`; + } + if (modifiers.includes("camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.includes("prop")) { + injectPrefix(arg, "."); + } + if (modifiers.includes("attr")) { + injectPrefix(arg, "^"); + } + } + if (!exp || exp.type === 4 && !exp.content.trim()) { + context.onError(createCompilerError(34, loc)); + return { + props: [createObjectProperty(arg, createSimpleExpression("", true, loc))] + }; + } + return { + props: [createObjectProperty(arg, exp)] + }; + }; + const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } + }; + + const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + true)) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (` /* ${PatchFlagNames[1]} */` ) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } + }; + + const seen$1 = /* @__PURE__ */ new WeakSet(); + const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true + /* isVNode */ + ); + } + }; + } + }; + + const transformModel$1 = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source; + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + const maybeRef = false; + if (!expString.trim() || !isMemberExpression(expString) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); + }; + function createTransformProps(props = []) { + return { props }; + } + + const seen = /* @__PURE__ */ new WeakSet(); + const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node)) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached++) + ]); + } + }; + } + }; + + function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[], + ...[transformExpression] , + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn$1, + bind: transformBind, + model: transformModel$1 + } + ]; + } + function baseCompile(template, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + { + if (options.prefixIdentifiers === true) { + onError(createCompilerError(47)); + } else if (isModuleMode) { + onError(createCompilerError(48)); + } + } + const prefixIdentifiers = false; + if (options.cacheHandlers) { + onError(createCompilerError(49)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(50)); + } + const ast = isString(template) ? baseParse(template, options) : template; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(); + transform( + ast, + extend({}, options, { + prefixIdentifiers, + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate( + ast, + extend({}, options, { + prefixIdentifiers + }) + ); + } + + const noopDirectiveTransform = () => ({ props: [] }); + + const V_MODEL_RADIO = Symbol(`vModelRadio` ); + const V_MODEL_CHECKBOX = Symbol(`vModelCheckbox` ); + const V_MODEL_TEXT = Symbol(`vModelText` ); + const V_MODEL_SELECT = Symbol(`vModelSelect` ); + const V_MODEL_DYNAMIC = Symbol(`vModelDynamic` ); + const V_ON_WITH_MODIFIERS = Symbol(`vOnModifiersGuard` ); + const V_ON_WITH_KEYS = Symbol(`vOnKeysGuard` ); + const V_SHOW = Symbol(`vShow` ); + const TRANSITION = Symbol(`Transition` ); + const TRANSITION_GROUP = Symbol(`TransitionGroup` ); + registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` + }); + + let decoder; + function decodeHtmlBrowser(raw, asAttr = false) { + if (!decoder) { + decoder = document.createElement("div"); + } + if (asAttr) { + decoder.innerHTML = `<div foo="${raw.replace(/"/g, """)}">`; + return decoder.children[0].getAttribute("foo"); + } else { + decoder.innerHTML = raw; + return decoder.textContent; + } + } + + const isRawTextContainer = /* @__PURE__ */ makeMap( + "style,iframe,script,noscript", + true + ); + const parserOptions = { + isVoidTag, + isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag), + isPreTag: (tag) => tag === "pre", + decodeEntities: decodeHtmlBrowser , + isBuiltInComponent: (tag) => { + if (isBuiltInType(tag, `Transition`)) { + return TRANSITION; + } else if (isBuiltInType(tag, `TransitionGroup`)) { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent) { + let ns = parent ? parent.ns : 0; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + }, + // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments + getTextMode({ tag, ns }) { + if (ns === 0) { + if (tag === "textarea" || tag === "title") { + return 1; + } + if (isRawTextContainer(tag)) { + return 2; + } + } + return 0; + } + }; + + const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } + }; + const parseInlineCSS = (cssText, loc) => { + const normalized = parseStringStyle(cssText); + return createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); + }; + + function createDOMCompilerError(code, loc) { + return createCompilerError( + code, + loc, + DOMErrorMessages + ); + } + const DOMErrorMessages = { + [53]: `v-html is missing expression.`, + [54]: `v-html will override element children.`, + [55]: `v-text is missing expression.`, + [56]: `v-text will override element children.`, + [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [58]: `v-model argument is not supported on plain elements.`, + [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [61]: `v-show is missing expression.`, + [62]: `<Transition> expects exactly one child element or component.`, + [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` + }; + + const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(53, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(54, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`innerHTML`, true, loc), + exp || createSimpleExpression("", true) + ) + ] + }; + }; + + const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(55, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(56, loc) + ); + node.children.length = 0; + } + return { + props: [ + createObjectProperty( + createSimpleExpression(`textContent`, true), + exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression( + context.helperString(TO_DISPLAY_STRING), + [exp], + loc + ) : createSimpleExpression("", true) + ) + ] + }; + }; + + const transformModel = (dir, node, context) => { + const baseResult = transformModel$1(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 58, + dir.arg.loc + ) + ); + } + function checkDuplicatedValue() { + const value = findProp(node, "value"); + if (value) { + context.onError( + createDOMCompilerError( + 60, + value.loc + ) + ); + } + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 59, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + break; + } + } + } else if (hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else { + checkDuplicatedValue(); + } + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else { + checkDuplicatedValue(); + } + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 57, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; + }; + + const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`); + const isNonKeyModifier = /* @__PURE__ */ makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` + ); + const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right"); + const isKeyboardEvent = /* @__PURE__ */ makeMap( + `onkeyup,onkeydown,onkeypress`, + true + ); + const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i]; + if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (isStaticExp(key)) { + if (isKeyboardEvent(key.content)) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; + }; + const transformClick = (key, event) => { + const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; + }; + const transformOn = (dir, node, context) => { + return transformOn$1(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) + return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!isStaticExp(key) || isKeyboardEvent(key.content))) { + handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(capitalize).join(""); + key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [createObjectProperty(key, handlerExp)] + }; + }); + }; + + const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(61, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; + }; + + const transformTransition = (node, context) => { + if (node.type === 1 && node.tagType === 1) { + const component = context.isBuiltInComponent(node.tag); + if (component === TRANSITION) { + return () => { + if (!node.children.length) { + return; + } + if (hasMultipleChildren(node)) { + context.onError( + createDOMCompilerError( + 62, + { + start: node.children[0].loc.start, + end: node.children[node.children.length - 1].loc.end, + source: "" + } + ) + ); + } + const child = node.children[0]; + if (child.type === 1) { + for (const p of child.props) { + if (p.type === 7 && p.name === "show") { + node.props.push({ + type: 6, + name: "persisted", + value: void 0, + loc: node.loc + }); + } + } + } + }; + } + } + }; + function hasMultipleChildren(node) { + const children = node.children = node.children.filter( + (c) => c.type !== 3 && !(c.type === 2 && !c.content.trim()) + ); + const child = children[0]; + return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren); + } + + const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.onError( + createDOMCompilerError( + 63, + node.loc + ) + ); + context.removeNode(); + } + }; + + const DOMNodeTransforms = [ + transformStyle, + ...[transformTransition] + ]; + const DOMDirectiveTransforms = { + cloak: noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow + }; + function compile(template, options = {}) { + return baseCompile( + template, + extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: null + }) + ); + } + + { + initDev(); + } + const compileCache = /* @__PURE__ */ Object.create(null); + function compileToFunction(template, options) { + if (!isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + warn(`invalid template option: `, template); + return NOOP; + } + } + const key = template; + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function(code)() ; + render._rc = true; + return compileCache[key] = render; + } + registerRuntimeCompiler(compileToFunction); + + exports.BaseTransition = BaseTransition; + exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; + exports.Comment = Comment; + exports.EffectScope = EffectScope; + exports.Fragment = Fragment; + exports.KeepAlive = KeepAlive; + exports.ReactiveEffect = ReactiveEffect; + exports.Static = Static; + exports.Suspense = Suspense; + exports.Teleport = Teleport; + exports.Text = Text; + exports.Transition = Transition; + exports.TransitionGroup = TransitionGroup; + exports.VueElement = VueElement; + exports.assertNumber = assertNumber; + exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; + exports.callWithErrorHandling = callWithErrorHandling; + exports.camelize = camelize; + exports.capitalize = capitalize; + exports.cloneVNode = cloneVNode; + exports.compatUtils = compatUtils; + exports.compile = compileToFunction; + exports.computed = computed; + exports.createApp = createApp; + exports.createBlock = createBlock; + exports.createCommentVNode = createCommentVNode; + exports.createElementBlock = createElementBlock; + exports.createElementVNode = createBaseVNode; + exports.createHydrationRenderer = createHydrationRenderer; + exports.createPropsRestProxy = createPropsRestProxy; + exports.createRenderer = createRenderer; + exports.createSSRApp = createSSRApp; + exports.createSlots = createSlots; + exports.createStaticVNode = createStaticVNode; + exports.createTextVNode = createTextVNode; + exports.createVNode = createVNode; + exports.customRef = customRef; + exports.defineAsyncComponent = defineAsyncComponent; + exports.defineComponent = defineComponent; + exports.defineCustomElement = defineCustomElement; + exports.defineEmits = defineEmits; + exports.defineExpose = defineExpose; + exports.defineModel = defineModel; + exports.defineOptions = defineOptions; + exports.defineProps = defineProps; + exports.defineSSRCustomElement = defineSSRCustomElement; + exports.defineSlots = defineSlots; + exports.effect = effect; + exports.effectScope = effectScope; + exports.getCurrentInstance = getCurrentInstance; + exports.getCurrentScope = getCurrentScope; + exports.getTransitionRawChildren = getTransitionRawChildren; + exports.guardReactiveProps = guardReactiveProps; + exports.h = h; + exports.handleError = handleError; + exports.hasInjectionContext = hasInjectionContext; + exports.hydrate = hydrate; + exports.initCustomFormatter = initCustomFormatter; + exports.initDirectivesForSSR = initDirectivesForSSR; + exports.inject = inject; + exports.isMemoSame = isMemoSame; + exports.isProxy = isProxy; + exports.isReactive = isReactive; + exports.isReadonly = isReadonly; + exports.isRef = isRef; + exports.isRuntimeOnly = isRuntimeOnly; + exports.isShallow = isShallow; + exports.isVNode = isVNode; + exports.markRaw = markRaw; + exports.mergeDefaults = mergeDefaults; + exports.mergeModels = mergeModels; + exports.mergeProps = mergeProps; + exports.nextTick = nextTick; + exports.normalizeClass = normalizeClass; + exports.normalizeProps = normalizeProps; + exports.normalizeStyle = normalizeStyle; + exports.onActivated = onActivated; + exports.onBeforeMount = onBeforeMount; + exports.onBeforeUnmount = onBeforeUnmount; + exports.onBeforeUpdate = onBeforeUpdate; + exports.onDeactivated = onDeactivated; + exports.onErrorCaptured = onErrorCaptured; + exports.onMounted = onMounted; + exports.onRenderTracked = onRenderTracked; + exports.onRenderTriggered = onRenderTriggered; + exports.onScopeDispose = onScopeDispose; + exports.onServerPrefetch = onServerPrefetch; + exports.onUnmounted = onUnmounted; + exports.onUpdated = onUpdated; + exports.openBlock = openBlock; + exports.popScopeId = popScopeId; + exports.provide = provide; + exports.proxyRefs = proxyRefs; + exports.pushScopeId = pushScopeId; + exports.queuePostFlushCb = queuePostFlushCb; + exports.reactive = reactive; + exports.readonly = readonly; + exports.ref = ref; + exports.registerRuntimeCompiler = registerRuntimeCompiler; + exports.render = render; + exports.renderList = renderList; + exports.renderSlot = renderSlot; + exports.resolveComponent = resolveComponent; + exports.resolveDirective = resolveDirective; + exports.resolveDynamicComponent = resolveDynamicComponent; + exports.resolveFilter = resolveFilter; + exports.resolveTransitionHooks = resolveTransitionHooks; + exports.setBlockTracking = setBlockTracking; + exports.setDevtoolsHook = setDevtoolsHook; + exports.setTransitionHooks = setTransitionHooks; + exports.shallowReactive = shallowReactive; + exports.shallowReadonly = shallowReadonly; + exports.shallowRef = shallowRef; + exports.ssrContextKey = ssrContextKey; + exports.ssrUtils = ssrUtils; + exports.stop = stop; + exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; + exports.toHandlers = toHandlers; + exports.toRaw = toRaw; + exports.toRef = toRef; + exports.toRefs = toRefs; + exports.toValue = toValue; + exports.transformVNodeArgs = transformVNodeArgs; + exports.triggerRef = triggerRef; + exports.unref = unref; + exports.useAttrs = useAttrs; + exports.useCssModule = useCssModule; + exports.useCssVars = useCssVars; + exports.useModel = useModel; + exports.useSSRContext = useSSRContext; + exports.useSlots = useSlots; + exports.useTransitionState = useTransitionState; + exports.vModelCheckbox = vModelCheckbox; + exports.vModelDynamic = vModelDynamic; + exports.vModelRadio = vModelRadio; + exports.vModelSelect = vModelSelect; + exports.vModelText = vModelText; + exports.vShow = vShow; + exports.version = version; + exports.warn = warn; + exports.watch = watch; + exports.watchEffect = watchEffect; + exports.watchPostEffect = watchPostEffect; + exports.watchSyncEffect = watchSyncEffect; + exports.withAsyncContext = withAsyncContext; + exports.withCtx = withCtx; + exports.withDefaults = withDefaults; + exports.withDirectives = withDirectives; + exports.withKeys = withKeys; + exports.withMemo = withMemo; + exports.withModifiers = withModifiers; + exports.withScopeId = withScopeId; + + return exports; + +})({}); diff --git a/src/cdh/vue3/static/cdh.vue3/vue/vue.global.prod.js b/src/cdh/vue3/static/cdh.vue3/vue/vue.global.prod.js new file mode 100644 index 00000000..dffd3a12 --- /dev/null +++ b/src/cdh/vue3/static/cdh.vue3/vue/vue.global.prod.js @@ -0,0 +1 @@ +var Vue=function(e){"use strict";function t(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r<o.length;r++)n[o[r]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}const n={},o=[],r=()=>{},s=()=>!1,i=/^on[^a-z]/,l=e=>i.test(e),c=e=>e.startsWith("onUpdate:"),a=Object.assign,u=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},p=Object.prototype.hasOwnProperty,f=(e,t)=>p.call(e,t),d=Array.isArray,h=e=>"[object Map]"===C(e),m=e=>"[object Set]"===C(e),g=e=>"[object Date]"===C(e),v=e=>"function"==typeof e,y=e=>"string"==typeof e,_=e=>"symbol"==typeof e,b=e=>null!==e&&"object"==typeof e,S=e=>b(e)&&v(e.then)&&v(e.catch),x=Object.prototype.toString,C=e=>x.call(e),k=e=>"[object Object]"===C(e),w=e=>y(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,T=t(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),E=t("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),N=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},O=/-(\w)/g,$=N((e=>e.replace(O,((e,t)=>t?t.toUpperCase():"")))),P=/\B([A-Z])/g,A=N((e=>e.replace(P,"-$1").toLowerCase())),F=N((e=>e.charAt(0).toUpperCase()+e.slice(1))),R=N((e=>e?`on${F(e)}`:"")),M=(e,t)=>!Object.is(e,t),V=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},I=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},B=e=>{const t=parseFloat(e);return isNaN(t)?e:t},L=e=>{const t=y(e)?Number(e):NaN;return isNaN(t)?e:t};let j;const U=t("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console");function D(e){if(d(e)){const t={};for(let n=0;n<e.length;n++){const o=e[n],r=y(o)?K(o):D(o);if(r)for(const e in r)t[e]=r[e]}return t}return y(e)||b(e)?e:void 0}const H=/;(?![^(]*\))/g,W=/:([^]+)/,z=/\/\*[^]*?\*\//g;function K(e){const t={};return e.replace(z,"").split(H).forEach((e=>{if(e){const n=e.split(W);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function G(e){let t="";if(y(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){const o=G(e[n]);o&&(t+=o+" ")}else if(b(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const q=t("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"),J=t("svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"),Z=t("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),Y=t("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function Q(e){return!!e||""===e}function X(e,t){if(e===t)return!0;let n=g(e),o=g(t);if(n||o)return!(!n||!o)&&e.getTime()===t.getTime();if(n=_(e),o=_(t),n||o)return e===t;if(n=d(e),o=d(t),n||o)return!(!n||!o)&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&o<e.length;o++)n=X(e[o],t[o]);return n}(e,t);if(n=b(e),o=b(t),n||o){if(!n||!o)return!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e){const o=e.hasOwnProperty(n),r=t.hasOwnProperty(n);if(o&&!r||!o&&r||!X(e[n],t[n]))return!1}}return String(e)===String(t)}function ee(e,t){return e.findIndex((e=>X(e,t)))}const te=(e,t)=>t&&t.__v_isRef?te(e,t.value):h(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:m(t)?{[`Set(${t.size})`]:[...t.values()]}:!b(t)||d(t)||k(t)?t:String(t);let ne;class oe{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=ne,!e&&ne&&(this.index=(ne.scopes||(ne.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=ne;try{return ne=this,e()}finally{ne=t}}}on(){ne=this}off(){ne=this.parent}stop(e){if(this._active){let t,n;for(t=0,n=this.effects.length;t<n;t++)this.effects[t].stop();for(t=0,n=this.cleanups.length;t<n;t++)this.cleanups[t]();if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this._active=!1}}}function re(e,t=ne){t&&t.active&&t.effects.push(e)}function se(){return ne}const ie=e=>{const t=new Set(e);return t.w=0,t.n=0,t},le=e=>(e.w&pe)>0,ce=e=>(e.n&pe)>0,ae=new WeakMap;let ue=0,pe=1;let fe;const de=Symbol(""),he=Symbol("");class me{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,re(this,n)}run(){if(!this.active)return this.fn();let e=fe,t=ve;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=fe,fe=this,ve=!0,pe=1<<++ue,ue<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=pe})(this):ge(this),this.fn()}finally{ue<=30&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const r=t[o];le(r)&&!ce(r)?r.delete(e):t[n++]=r,r.w&=~pe,r.n&=~pe}t.length=n}})(this),pe=1<<--ue,fe=this.parent,ve=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){fe===this?this.deferStop=!0:this.active&&(ge(this),this.onStop&&this.onStop(),this.active=!1)}}function ge(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let ve=!0;const ye=[];function _e(){ye.push(ve),ve=!1}function be(){const e=ye.pop();ve=void 0===e||e}function Se(e,t,n){if(ve&&fe){let t=ae.get(e);t||ae.set(e,t=new Map);let o=t.get(n);o||t.set(n,o=ie()),xe(o)}}function xe(e,t){let n=!1;ue<=30?ce(e)||(e.n|=pe,n=!le(e)):n=!e.has(fe),n&&(e.add(fe),fe.deps.push(e))}function Ce(e,t,n,o,r,s){const i=ae.get(e);if(!i)return;let l=[];if("clear"===t)l=[...i.values()];else if("length"===n&&d(e)){const e=Number(o);i.forEach(((t,n)=>{("length"===n||n>=e)&&l.push(t)}))}else switch(void 0!==n&&l.push(i.get(n)),t){case"add":d(e)?w(n)&&l.push(i.get("length")):(l.push(i.get(de)),h(e)&&l.push(i.get(he)));break;case"delete":d(e)||(l.push(i.get(de)),h(e)&&l.push(i.get(he)));break;case"set":h(e)&&l.push(i.get(de))}if(1===l.length)l[0]&&ke(l[0]);else{const e=[];for(const t of l)t&&e.push(...t);ke(ie(e))}}function ke(e,t){const n=d(e)?e:[...e];for(const o of n)o.computed&&we(o);for(const o of n)o.computed||we(o)}function we(e,t){(e!==fe||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Te=t("__proto__,__v_isRef,__isVue"),Ee=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(_)),Ne=Me(),Oe=Me(!1,!0),$e=Me(!0),Pe=Me(!0,!0),Ae=Fe();function Fe(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=xt(this);for(let t=0,r=this.length;t<r;t++)Se(n,0,t+"");const o=n[t](...e);return-1===o||!1===o?n[t](...e.map(xt)):o}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){_e();const n=xt(this)[t].apply(this,e);return be(),n}})),e}function Re(e){const t=xt(this);return Se(t,0,e),t.hasOwnProperty(e)}function Me(e=!1,t=!1){return function(n,o,r){if("__v_isReactive"===o)return!e;if("__v_isReadonly"===o)return e;if("__v_isShallow"===o)return t;if("__v_raw"===o&&r===(e?t?ft:pt:t?ut:at).get(n))return n;const s=d(n);if(!e){if(s&&f(Ae,o))return Reflect.get(Ae,o,r);if("hasOwnProperty"===o)return Re}const i=Reflect.get(n,o,r);return(_(o)?Ee.has(o):Te(o))?i:(e||Se(n,0,o),t?i:Nt(i)?s&&w(o)?i:i.value:b(i)?e?gt(i):ht(i):i)}}function Ve(e=!1){return function(t,n,o,r){let s=t[n];if(_t(s)&&Nt(s)&&!Nt(o))return!1;if(!e&&(bt(o)||_t(o)||(s=xt(s),o=xt(o)),!d(t)&&Nt(s)&&!Nt(o)))return s.value=o,!0;const i=d(t)&&w(n)?Number(n)<t.length:f(t,n),l=Reflect.set(t,n,o,r);return t===xt(r)&&(i?M(o,s)&&Ce(t,"set",n,o):Ce(t,"add",n,o)),l}}const Ie={get:Ne,set:Ve(),deleteProperty:function(e,t){const n=f(e,t),o=Reflect.deleteProperty(e,t);return o&&n&&Ce(e,"delete",t,void 0),o},has:function(e,t){const n=Reflect.has(e,t);return _(t)&&Ee.has(t)||Se(e,0,t),n},ownKeys:function(e){return Se(e,0,d(e)?"length":de),Reflect.ownKeys(e)}},Be={get:$e,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},Le=a({},Ie,{get:Oe,set:Ve(!0)}),je=a({},Be,{get:Pe}),Ue=e=>e,De=e=>Reflect.getPrototypeOf(e);function He(e,t,n=!1,o=!1){const r=xt(e=e.__v_raw),s=xt(t);n||(t!==s&&Se(r,0,t),Se(r,0,s));const{has:i}=De(r),l=o?Ue:n?wt:kt;return i.call(r,t)?l(e.get(t)):i.call(r,s)?l(e.get(s)):void(e!==r&&e.get(t))}function We(e,t=!1){const n=this.__v_raw,o=xt(n),r=xt(e);return t||(e!==r&&Se(o,0,e),Se(o,0,r)),e===r?n.has(e):n.has(e)||n.has(r)}function ze(e,t=!1){return e=e.__v_raw,!t&&Se(xt(e),0,de),Reflect.get(e,"size",e)}function Ke(e){e=xt(e);const t=xt(this);return De(t).has.call(t,e)||(t.add(e),Ce(t,"add",e,e)),this}function Ge(e,t){t=xt(t);const n=xt(this),{has:o,get:r}=De(n);let s=o.call(n,e);s||(e=xt(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?M(t,i)&&Ce(n,"set",e,t):Ce(n,"add",e,t),this}function qe(e){const t=xt(this),{has:n,get:o}=De(t);let r=n.call(t,e);r||(e=xt(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&Ce(t,"delete",e,void 0),s}function Je(){const e=xt(this),t=0!==e.size,n=e.clear();return t&&Ce(e,"clear",void 0,void 0),n}function Ze(e,t){return function(n,o){const r=this,s=r.__v_raw,i=xt(s),l=t?Ue:e?wt:kt;return!e&&Se(i,0,de),s.forEach(((e,t)=>n.call(o,l(e),l(t),r)))}}function Ye(e,t,n){return function(...o){const r=this.__v_raw,s=xt(r),i=h(s),l="entries"===e||e===Symbol.iterator&&i,c="keys"===e&&i,a=r[e](...o),u=n?Ue:t?wt:kt;return!t&&Se(s,0,c?he:de),{next(){const{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:l?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function Qe(e){return function(...t){return"delete"!==e&&this}}function Xe(){const e={get(e){return He(this,e)},get size(){return ze(this)},has:We,add:Ke,set:Ge,delete:qe,clear:Je,forEach:Ze(!1,!1)},t={get(e){return He(this,e,!1,!0)},get size(){return ze(this)},has:We,add:Ke,set:Ge,delete:qe,clear:Je,forEach:Ze(!1,!0)},n={get(e){return He(this,e,!0)},get size(){return ze(this,!0)},has(e){return We.call(this,e,!0)},add:Qe("add"),set:Qe("set"),delete:Qe("delete"),clear:Qe("clear"),forEach:Ze(!0,!1)},o={get(e){return He(this,e,!0,!0)},get size(){return ze(this,!0)},has(e){return We.call(this,e,!0)},add:Qe("add"),set:Qe("set"),delete:Qe("delete"),clear:Qe("clear"),forEach:Ze(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((r=>{e[r]=Ye(r,!1,!1),n[r]=Ye(r,!0,!1),t[r]=Ye(r,!1,!0),o[r]=Ye(r,!0,!0)})),[e,n,t,o]}const[et,tt,nt,ot]=Xe();function rt(e,t){const n=t?e?ot:nt:e?tt:et;return(t,o,r)=>"__v_isReactive"===o?!e:"__v_isReadonly"===o?e:"__v_raw"===o?t:Reflect.get(f(n,o)&&o in t?n:t,o,r)}const st={get:rt(!1,!1)},it={get:rt(!1,!0)},lt={get:rt(!0,!1)},ct={get:rt(!0,!0)},at=new WeakMap,ut=new WeakMap,pt=new WeakMap,ft=new WeakMap;function dt(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>C(e).slice(8,-1))(e))}function ht(e){return _t(e)?e:vt(e,!1,Ie,st,at)}function mt(e){return vt(e,!1,Le,it,ut)}function gt(e){return vt(e,!0,Be,lt,pt)}function vt(e,t,n,o,r){if(!b(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=dt(e);if(0===i)return e;const l=new Proxy(e,2===i?o:n);return r.set(e,l),l}function yt(e){return _t(e)?yt(e.__v_raw):!(!e||!e.__v_isReactive)}function _t(e){return!(!e||!e.__v_isReadonly)}function bt(e){return!(!e||!e.__v_isShallow)}function St(e){return yt(e)||_t(e)}function xt(e){const t=e&&e.__v_raw;return t?xt(t):e}function Ct(e){return I(e,"__v_skip",!0),e}const kt=e=>b(e)?ht(e):e,wt=e=>b(e)?gt(e):e;function Tt(e){ve&&fe&&xe((e=xt(e)).dep||(e.dep=ie()))}function Et(e,t){const n=(e=xt(e)).dep;n&&ke(n)}function Nt(e){return!(!e||!0!==e.__v_isRef)}function Ot(e){return $t(e,!1)}function $t(e,t){return Nt(e)?e:new Pt(e,t)}class Pt{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:xt(e),this._value=t?e:kt(e)}get value(){return Tt(this),this._value}set value(e){const t=this.__v_isShallow||bt(e)||_t(e);e=t?e:xt(e),M(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:kt(e),Et(this))}}function At(e){return Nt(e)?e.value:e}const Ft={get:(e,t,n)=>At(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Nt(r)&&!Nt(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function Rt(e){return yt(e)?e:new Proxy(e,Ft)}class Mt{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>Tt(this)),(()=>Et(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}class Vt{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return e=xt(this._object),t=this._key,null==(n=ae.get(e))?void 0:n.get(t);var e,t,n}}class It{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Bt(e,t,n){const o=e[t];return Nt(o)?o:new Vt(e,t,n)}class Lt{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new me(e,(()=>{this._dirty||(this._dirty=!0,Et(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=xt(this);return Tt(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function jt(e,t,n,o){let r;try{r=o?e(...o):e()}catch(s){Dt(s,t,n)}return r}function Ut(e,t,n,o){if(v(e)){const r=jt(e,t,n,o);return r&&S(r)&&r.catch((e=>{Dt(e,t,n)})),r}const r=[];for(let s=0;s<e.length;s++)r.push(Ut(e[s],t,n,o));return r}function Dt(e,t,n,o=!0){if(t){let o=t.parent;const r=t.proxy,s=n;for(;o;){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return;o=o.parent}const i=t.appContext.config.errorHandler;if(i)return void jt(i,null,10,[e,r,s])}!function(e,t,n,o=!0){console.error(e)}(e,0,0,o)}let Ht=!1,Wt=!1;const zt=[];let Kt=0;const Gt=[];let qt=null,Jt=0;const Zt=Promise.resolve();let Yt=null;function Qt(e){const t=Yt||Zt;return e?t.then(this?e.bind(this):e):t}function Xt(e){zt.length&&zt.includes(e,Ht&&e.allowRecurse?Kt+1:Kt)||(null==e.id?zt.push(e):zt.splice(function(e){let t=Kt+1,n=zt.length;for(;t<n;){const o=t+n>>>1;rn(zt[o])<e?t=o+1:n=o}return t}(e.id),0,e),en())}function en(){Ht||Wt||(Wt=!0,Yt=Zt.then(ln))}function tn(e){d(e)?Gt.push(...e):qt&&qt.includes(e,e.allowRecurse?Jt+1:Jt)||Gt.push(e),en()}function nn(e,t=(Ht?Kt+1:0)){for(;t<zt.length;t++){const e=zt[t];e&&e.pre&&(zt.splice(t,1),t--,e())}}function on(e){if(Gt.length){const e=[...new Set(Gt)];if(Gt.length=0,qt)return void qt.push(...e);for(qt=e,qt.sort(((e,t)=>rn(e)-rn(t))),Jt=0;Jt<qt.length;Jt++)qt[Jt]();qt=null,Jt=0}}const rn=e=>null==e.id?1/0:e.id,sn=(e,t)=>{const n=rn(e)-rn(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ln(e){Wt=!1,Ht=!0,zt.sort(sn);try{for(Kt=0;Kt<zt.length;Kt++){const e=zt[Kt];e&&!1!==e.active&&jt(e,null,14)}}finally{Kt=0,zt.length=0,on(),Ht=!1,Yt=null,(zt.length||Gt.length)&&ln()}}e.devtools=void 0;let cn=[];function an(e,t,...o){if(e.isUnmounted)return;const r=e.vnode.props||n;let s=o;const i=t.startsWith("update:"),l=i&&t.slice(7);if(l&&l in r){const e=`${"modelValue"===l?"model":l}Modifiers`,{number:t,trim:i}=r[e]||n;i&&(s=o.map((e=>y(e)?e.trim():e))),t&&(s=o.map(B))}let c,a=r[c=R(t)]||r[c=R($(t))];!a&&i&&(a=r[c=R(A(t))]),a&&Ut(a,e,6,s);const u=r[c+"Once"];if(u){if(e.emitted){if(e.emitted[c])return}else e.emitted={};e.emitted[c]=!0,Ut(u,e,6,s)}}function un(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(void 0!==r)return r;const s=e.emits;let i={},l=!1;if(!v(e)){const o=e=>{const n=un(e,t,!0);n&&(l=!0,a(i,n))};!n&&t.mixins.length&&t.mixins.forEach(o),e.extends&&o(e.extends),e.mixins&&e.mixins.forEach(o)}return s||l?(d(s)?s.forEach((e=>i[e]=null)):a(i,s),b(e)&&o.set(e,i),i):(b(e)&&o.set(e,null),null)}function pn(e,t){return!(!e||!l(t))&&(t=t.slice(2).replace(/Once$/,""),f(e,t[0].toLowerCase()+t.slice(1))||f(e,A(t))||f(e,t))}let fn=null,dn=null;function hn(e){const t=fn;return fn=e,dn=e&&e.type.__scopeId||null,t}function mn(e,t=fn,n){if(!t)return e;if(e._n)return e;const o=(...n)=>{o._d&&Pr(-1);const r=hn(t);let s;try{s=e(...n)}finally{hn(r),o._d&&Pr(1)}return s};return o._n=!0,o._c=!0,o._d=!0,o}function gn(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:s,propsOptions:[i],slots:l,attrs:a,emit:u,render:p,renderCache:f,data:d,setupState:h,ctx:m,inheritAttrs:g}=e;let v,y;const _=hn(e);try{if(4&n.shapeFlag){const e=r||o;v=Wr(p.call(e,e,f,s,h,d,m)),y=a}else{const e=t;0,v=Wr(e(s,e.length>1?{attrs:a,slots:l,emit:u}:null)),y=t.props?a:vn(a)}}catch(S){Tr.length=0,Dt(S,e,1),v=jr(kr)}let b=v;if(y&&!1!==g){const e=Object.keys(y),{shapeFlag:t}=b;e.length&&7&t&&(i&&e.some(c)&&(y=yn(y,i)),b=Dr(b,y))}return n.dirs&&(b=Dr(b),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),v=b,hn(_),v}const vn=e=>{let t;for(const n in e)("class"===n||"style"===n||l(n))&&((t||(t={}))[n]=e[n]);return t},yn=(e,t)=>{const n={};for(const o in e)c(o)&&o.slice(9)in t||(n[o]=e[o]);return n};function _n(e,t,n){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let r=0;r<o.length;r++){const s=o[r];if(t[s]!==e[s]&&!pn(n,s))return!0}return!1}function bn({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const Sn=e=>e.__isSuspense,xn={name:"Suspense",__isSuspense:!0,process(e,t,n,o,r,s,i,l,c,a){null==e?function(e,t,n,o,r,s,i,l,c){const{p:a,o:{createElement:u}}=c,p=u("div"),f=e.suspense=kn(e,r,o,t,p,n,s,i,l,c);a(null,f.pendingBranch=e.ssContent,p,null,o,f,s,i),f.deps>0?(Cn(e,"onPending"),Cn(e,"onFallback"),a(null,e.ssFallback,t,n,o,null,s,i),En(f,e.ssFallback)):f.resolve(!1,!0)}(t,n,o,r,s,i,l,c,a):function(e,t,n,o,r,s,i,l,{p:c,um:a,o:{createElement:u}}){const p=t.suspense=e.suspense;p.vnode=t,t.el=e.el;const f=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:g,isHydrating:v}=p;if(m)p.pendingBranch=f,Mr(f,m)?(c(m,f,p.hiddenContainer,null,r,p,s,i,l),p.deps<=0?p.resolve():g&&(c(h,d,n,o,r,null,s,i,l),En(p,d))):(p.pendingId++,v?(p.isHydrating=!1,p.activeBranch=m):a(m,r,p),p.deps=0,p.effects.length=0,p.hiddenContainer=u("div"),g?(c(null,f,p.hiddenContainer,null,r,p,s,i,l),p.deps<=0?p.resolve():(c(h,d,n,o,r,null,s,i,l),En(p,d))):h&&Mr(f,h)?(c(h,f,n,o,r,p,s,i,l),p.resolve(!0)):(c(null,f,p.hiddenContainer,null,r,p,s,i,l),p.deps<=0&&p.resolve()));else if(h&&Mr(f,h))c(h,f,n,o,r,p,s,i,l),En(p,f);else if(Cn(t,"onPending"),p.pendingBranch=f,p.pendingId++,c(null,f,p.hiddenContainer,null,r,p,s,i,l),p.deps<=0)p.resolve();else{const{timeout:e,pendingId:t}=p;e>0?setTimeout((()=>{p.pendingId===t&&p.fallback(d)}),e):0===e&&p.fallback(d)}}(e,t,n,o,r,i,l,c,a)},hydrate:function(e,t,n,o,r,s,i,l,c){const a=t.suspense=kn(t,o,n,e.parentNode,document.createElement("div"),null,r,s,i,l,!0),u=c(e,a.pendingBranch=t.ssContent,n,a,s,i);0===a.deps&&a.resolve(!1,!0);return u},create:kn,normalize:function(e){const{shapeFlag:t,children:n}=e,o=32&t;e.ssContent=wn(o?n.default:n),e.ssFallback=o?wn(n.fallback):jr(kr)}};function Cn(e,t){const n=e.props&&e.props[t];v(n)&&n()}function kn(e,t,n,o,r,s,i,l,c,a,u=!1){const{p:p,m:f,um:d,n:h,o:{parentNode:m,remove:g}}=a;let v;const y=function(e){var t;return null!=(null==(t=e.props)?void 0:t.suspensible)&&!1!==e.props.suspensible}(e);y&&(null==t?void 0:t.pendingBranch)&&(v=t.pendingId,t.deps++);const _=e.props?L(e.props.timeout):void 0,b={vnode:e,parent:t,parentComponent:n,isSVG:i,container:o,hiddenContainer:r,anchor:s,deps:0,pendingId:0,timeout:"number"==typeof _?_:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){const{vnode:o,activeBranch:r,pendingBranch:s,pendingId:i,effects:l,parentComponent:c,container:a}=b;if(b.isHydrating)b.isHydrating=!1;else if(!e){const e=r&&s.transition&&"out-in"===s.transition.mode;e&&(r.transition.afterLeave=()=>{i===b.pendingId&&f(s,a,t,0)});let{anchor:t}=b;r&&(t=h(r),d(r,c,b,!0)),e||f(s,a,t,0)}En(b,s),b.pendingBranch=null,b.isInFallback=!1;let u=b.parent,p=!1;for(;u;){if(u.pendingBranch){u.effects.push(...l),p=!0;break}u=u.parent}p||tn(l),b.effects=[],y&&t&&t.pendingBranch&&v===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),Cn(o,"onResolve")},fallback(e){if(!b.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:o,container:r,isSVG:s}=b;Cn(t,"onFallback");const i=h(n),a=()=>{b.isInFallback&&(p(null,e,r,i,o,null,s,l,c),En(b,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(n.transition.afterLeave=a),b.isInFallback=!0,d(n,o,null,!0),u||a()},move(e,t,n){b.activeBranch&&f(b.activeBranch,e,t,n),b.container=e},next:()=>b.activeBranch&&h(b.activeBranch),registerDep(e,t){const n=!!b.pendingBranch;n&&b.deps++;const o=e.vnode.el;e.asyncDep.catch((t=>{Dt(t,e,0)})).then((r=>{if(e.isUnmounted||b.isUnmounted||b.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:s}=e;is(e,r,!1),o&&(s.el=o);const l=!o&&e.subTree.el;t(e,s,m(o||e.subTree.el),o?null:h(e.subTree),b,i,c),l&&g(l),bn(e,s.el),n&&0==--b.deps&&b.resolve()}))},unmount(e,t){b.isUnmounted=!0,b.activeBranch&&d(b.activeBranch,n,e,t),b.pendingBranch&&d(b.pendingBranch,n,e,t)}};return b}function wn(e){let t;if(v(e)){const n=$r&&e._c;n&&(e._d=!1,Nr()),e=e(),n&&(e._d=!0,t=Er,Or())}if(d(e)){const t=function(e){let t;for(let n=0;n<e.length;n++){const o=e[n];if(!Rr(o))return;if(o.type!==kr||"v-if"===o.children){if(t)return;t=o}}return t}(e);e=t}return e=Wr(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function Tn(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):tn(e)}function En(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e,r=n.el=t.el;o&&o.subTree===n&&(o.vnode.el=r,bn(o,r))}function Nn(e,t){return Pn(e,null,{flush:"post"})}const On={};function $n(e,t,n){return Pn(e,t,n)}function Pn(e,t,{immediate:o,deep:s,flush:i}=n){var l;const c=se()===(null==(l=Yr)?void 0:l.scope)?Yr:null;let a,p,f=!1,h=!1;if(Nt(e)?(a=()=>e.value,f=bt(e)):yt(e)?(a=()=>e,s=!0):d(e)?(h=!0,f=e.some((e=>yt(e)||bt(e))),a=()=>e.map((e=>Nt(e)?e.value:yt(e)?Rn(e):v(e)?jt(e,c,2):void 0))):a=v(e)?t?()=>jt(e,c,2):()=>{if(!c||!c.isUnmounted)return p&&p(),Ut(e,c,3,[m])}:r,t&&s){const e=a;a=()=>Rn(e())}let m=e=>{p=b.onStop=()=>{jt(e,c,4)}},g=h?new Array(e.length).fill(On):On;const y=()=>{if(b.active)if(t){const e=b.run();(s||f||(h?e.some(((e,t)=>M(e,g[t]))):M(e,g)))&&(p&&p(),Ut(t,c,3,[e,g===On?void 0:h&&g[0]===On?[]:g,m]),g=e)}else b.run()};let _;y.allowRecurse=!!t,"sync"===i?_=y:"post"===i?_=()=>ur(y,c&&c.suspense):(y.pre=!0,c&&(y.id=c.uid),_=()=>Xt(y));const b=new me(a,_);t?o?y():g=b.run():"post"===i?ur(b.run.bind(b),c&&c.suspense):b.run();return()=>{b.stop(),c&&c.scope&&u(c.scope.effects,b)}}function An(e,t,n){const o=this.proxy,r=y(e)?e.includes(".")?Fn(o,e):()=>o[e]:e.bind(o,o);let s;v(t)?s=t:(s=t.handler,n=t);const i=Yr;es(this);const l=Pn(r,s.bind(o),n);return i?es(i):ts(),l}function Fn(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}function Rn(e,t){if(!b(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),Nt(e))Rn(e.value,t);else if(d(e))for(let n=0;n<e.length;n++)Rn(e[n],t);else if(m(e)||h(e))e.forEach((e=>{Rn(e,t)}));else if(k(e))for(const n in e)Rn(e[n],t);return e}function Mn(e,t,n,o){const r=e.dirs,s=t&&t.dirs;for(let i=0;i<r.length;i++){const l=r[i];s&&(l.oldValue=s[i].value);let c=l.dir[o];c&&(_e(),Ut(c,n,8,[e.el,l,e,t]),be())}}function Vn(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return lo((()=>{e.isMounted=!0})),uo((()=>{e.isUnmounting=!0})),e}const In=[Function,Array],Bn={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:In,onEnter:In,onAfterEnter:In,onEnterCancelled:In,onBeforeLeave:In,onLeave:In,onAfterLeave:In,onLeaveCancelled:In,onBeforeAppear:In,onAppear:In,onAfterAppear:In,onAppearCancelled:In},Ln={name:"BaseTransition",props:Bn,setup(e,{slots:t}){const n=Qr(),o=Vn();let r;return()=>{const s=t.default&&zn(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1)for(const e of s)if(e.type!==kr){i=e;break}const l=xt(e),{mode:c}=l;if(o.isLeaving)return Dn(i);const a=Hn(i);if(!a)return Dn(i);const u=Un(a,l,o,n);Wn(a,u);const p=n.subTree,f=p&&Hn(p);let d=!1;const{getTransitionKey:h}=a.type;if(h){const e=h();void 0===r?r=e:e!==r&&(r=e,d=!0)}if(f&&f.type!==kr&&(!Mr(a,f)||d)){const e=Un(f,l,o,n);if(Wn(f,e),"out-in"===c)return o.isLeaving=!0,e.afterLeave=()=>{o.isLeaving=!1,!1!==n.update.active&&n.update()},Dn(i);"in-out"===c&&a.type!==kr&&(e.delayLeave=(e,t,n)=>{jn(o,f)[String(f.key)]=f,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete u.delayedLeave},u.delayedLeave=n})}return i}}};function jn(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Un(e,t,n,o){const{appear:r,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:u,onBeforeLeave:p,onLeave:f,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:v,onAfterAppear:y,onAppearCancelled:_}=t,b=String(e.key),S=jn(n,e),x=(e,t)=>{e&&Ut(e,o,9,t)},C=(e,t)=>{const n=t[1];x(e,t),d(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},k={mode:s,persisted:i,beforeEnter(t){let o=l;if(!n.isMounted){if(!r)return;o=g||l}t._leaveCb&&t._leaveCb(!0);const s=S[b];s&&Mr(e,s)&&s.el._leaveCb&&s.el._leaveCb(),x(o,[t])},enter(e){let t=c,o=a,s=u;if(!n.isMounted){if(!r)return;t=v||c,o=y||a,s=_||u}let i=!1;const l=e._enterCb=t=>{i||(i=!0,x(t?s:o,[e]),k.delayedLeave&&k.delayedLeave(),e._enterCb=void 0)};t?C(t,[e,l]):l()},leave(t,o){const r=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return o();x(p,[t]);let s=!1;const i=t._leaveCb=n=>{s||(s=!0,o(),x(n?m:h,[t]),t._leaveCb=void 0,S[r]===e&&delete S[r])};S[r]=e,f?C(f,[t,i]):i()},clone:e=>Un(e,t,n,o)};return k}function Dn(e){if(Jn(e))return(e=Dr(e)).children=null,e}function Hn(e){return Jn(e)?e.children?e.children[0]:void 0:e}function Wn(e,t){6&e.shapeFlag&&e.component?Wn(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function zn(e,t=!1,n){let o=[],r=0;for(let s=0;s<e.length;s++){let i=e[s];const l=null==n?i.key:String(n)+String(null!=i.key?i.key:s);i.type===xr?(128&i.patchFlag&&r++,o=o.concat(zn(i.children,t,l))):(t||i.type!==kr)&&o.push(null!=l?Dr(i,{key:l}):i)}if(r>1)for(let s=0;s<o.length;s++)o[s].patchFlag=-2;return o}function Kn(e,t){return v(e)?(()=>a({name:e.name},t,{setup:e}))():e}const Gn=e=>!!e.type.__asyncLoader;function qn(e,t){const{ref:n,props:o,children:r,ce:s}=t.vnode,i=jr(e,o,r);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const Jn=e=>e.type.__isKeepAlive,Zn={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Qr(),o=n.ctx,r=new Map,s=new Set;let i=null;const l=n.suspense,{renderer:{p:c,m:a,um:u,o:{createElement:p}}}=o,f=p("div");function d(e){no(e),u(e,n,l,!0)}function h(e){r.forEach(((t,n)=>{const o=ps(t.type);!o||e&&e(o)||m(n)}))}function m(e){const t=r.get(e);i&&Mr(t,i)?i&&no(i):d(t),r.delete(e),s.delete(e)}o.activate=(e,t,n,o,r)=>{const s=e.component;a(e,t,n,0,l),c(s.vnode,e,t,n,s,l,o,e.slotScopeIds,r),ur((()=>{s.isDeactivated=!1,s.a&&V(s.a);const t=e.props&&e.props.onVnodeMounted;t&&qr(t,s.parent,e)}),l)},o.deactivate=e=>{const t=e.component;a(e,f,null,1,l),ur((()=>{t.da&&V(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&qr(n,t.parent,e),t.isDeactivated=!0}),l)},$n((()=>[e.include,e.exclude]),(([e,t])=>{e&&h((t=>Yn(e,t))),t&&h((e=>!Yn(t,e)))}),{flush:"post",deep:!0});let g=null;const v=()=>{null!=g&&r.set(g,oo(n.subTree))};return lo(v),ao(v),uo((()=>{r.forEach((e=>{const{subTree:t,suspense:o}=n,r=oo(t);if(e.type!==r.type||e.key!==r.key)d(e);else{no(r);const e=r.component.da;e&&ur(e,o)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),o=n[0];if(n.length>1)return i=null,n;if(!(Rr(o)&&(4&o.shapeFlag||128&o.shapeFlag)))return i=null,o;let l=oo(o);const c=l.type,a=ps(Gn(l)?l.type.__asyncResolved||{}:c),{include:u,exclude:p,max:f}=e;if(u&&(!a||!Yn(u,a))||p&&a&&Yn(p,a))return i=l,o;const d=null==l.key?c:l.key,h=r.get(d);return l.el&&(l=Dr(l),128&o.shapeFlag&&(o.ssContent=l)),g=d,h?(l.el=h.el,l.component=h.component,l.transition&&Wn(l,l.transition),l.shapeFlag|=512,s.delete(d),s.add(d)):(s.add(d),f&&s.size>parseInt(f,10)&&m(s.values().next().value)),l.shapeFlag|=256,i=l,Sn(o.type)?o:l}}};function Yn(e,t){return d(e)?e.some((e=>Yn(e,t))):y(e)?e.split(",").includes(t):"[object RegExp]"===C(e)&&e.test(t)}function Qn(e,t){eo(e,"a",t)}function Xn(e,t){eo(e,"da",t)}function eo(e,t,n=Yr){const o=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(ro(t,o,n),n){let e=n.parent;for(;e&&e.parent;)Jn(e.parent.vnode)&&to(o,t,n,e),e=e.parent}}function to(e,t,n,o){const r=ro(t,e,o,!0);po((()=>{u(o[t],r)}),n)}function no(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function oo(e){return 128&e.shapeFlag?e.ssContent:e}function ro(e,t,n=Yr,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;_e(),es(n);const r=Ut(t,n,e,o);return ts(),be(),r});return o?r.unshift(s):r.push(s),s}}const so=e=>(t,n=Yr)=>(!ss||"sp"===e)&&ro(e,((...e)=>t(...e)),n),io=so("bm"),lo=so("m"),co=so("bu"),ao=so("u"),uo=so("bum"),po=so("um"),fo=so("sp"),ho=so("rtg"),mo=so("rtc");function go(e,t=Yr){ro("ec",e,t)}const vo="components";const yo=Symbol.for("v-ndc");function _o(e,t,n=!0,o=!1){const r=fn||Yr;if(r){const n=r.type;if(e===vo){const e=ps(n,!1);if(e&&(e===t||e===$(t)||e===F($(t))))return n}const s=bo(r[e]||n[e],t)||bo(r.appContext[e],t);return!s&&o?n:s}}function bo(e,t){return e&&(e[t]||e[$(t)]||e[F($(t))])}function So(e){return e.some((e=>!Rr(e)||e.type!==kr&&!(e.type===xr&&!So(e.children))))?e:null}const xo=e=>e?ns(e)?us(e)||e.proxy:xo(e.parent):null,Co=a(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>xo(e.parent),$root:e=>xo(e.root),$emit:e=>e.emit,$options:e=>Fo(e),$forceUpdate:e=>e.f||(e.f=()=>Xt(e.update)),$nextTick:e=>e.n||(e.n=Qt.bind(e.proxy)),$watch:e=>An.bind(e)}),ko=(e,t)=>e!==n&&!e.__isScriptSetup&&f(e,t),wo={get({_:e},t){const{ctx:o,setupState:r,data:s,props:i,accessCache:l,type:c,appContext:a}=e;let u;if("$"!==t[0]){const c=l[t];if(void 0!==c)switch(c){case 1:return r[t];case 2:return s[t];case 4:return o[t];case 3:return i[t]}else{if(ko(r,t))return l[t]=1,r[t];if(s!==n&&f(s,t))return l[t]=2,s[t];if((u=e.propsOptions[0])&&f(u,t))return l[t]=3,i[t];if(o!==n&&f(o,t))return l[t]=4,o[t];Oo&&(l[t]=0)}}const p=Co[t];let d,h;return p?("$attrs"===t&&Se(e,0,t),p(e)):(d=c.__cssModules)&&(d=d[t])?d:o!==n&&f(o,t)?(l[t]=4,o[t]):(h=a.config.globalProperties,f(h,t)?h[t]:void 0)},set({_:e},t,o){const{data:r,setupState:s,ctx:i}=e;return ko(s,t)?(s[t]=o,!0):r!==n&&f(r,t)?(r[t]=o,!0):!f(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(i[t]=o,!0))},has({_:{data:e,setupState:t,accessCache:o,ctx:r,appContext:s,propsOptions:i}},l){let c;return!!o[l]||e!==n&&f(e,l)||ko(t,l)||(c=i[0])&&f(c,l)||f(r,l)||f(Co,l)||f(s.config.globalProperties,l)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:f(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},To=a({},wo,{get(e,t){if(t!==Symbol.unscopables)return wo.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!U(t)});function Eo(){const e=Qr();return e.setupContext||(e.setupContext=as(e))}function No(e){return d(e)?e.reduce(((e,t)=>(e[t]=null,e)),{}):e}let Oo=!0;function $o(e){const t=Fo(e),n=e.proxy,o=e.ctx;Oo=!1,t.beforeCreate&&Po(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:l,watch:c,provide:a,inject:u,created:p,beforeMount:f,mounted:h,beforeUpdate:m,updated:g,activated:y,deactivated:_,beforeUnmount:S,unmounted:x,render:C,renderTracked:k,renderTriggered:w,errorCaptured:T,serverPrefetch:E,expose:N,inheritAttrs:O,components:$,directives:P}=t;if(u&&function(e,t,n=r){d(e)&&(e=Io(e));for(const o in e){const n=e[o];let r;r=b(n)?"default"in n?Ko(n.from||o,n.default,!0):Ko(n.from||o):Ko(n),Nt(r)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[o]=r}}(u,o,null),l)for(const r in l){const e=l[r];v(e)&&(o[r]=e.bind(n))}if(s){const t=s.call(n,n);b(t)&&(e.data=ht(t))}if(Oo=!0,i)for(const d in i){const e=i[d],t=v(e)?e.bind(n,n):v(e.get)?e.get.bind(n,n):r,s=!v(e)&&v(e.set)?e.set.bind(n):r,l=fs({get:t,set:s});Object.defineProperty(o,d,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e})}if(c)for(const r in c)Ao(c[r],o,n,r);if(a){const e=v(a)?a.call(n):a;Reflect.ownKeys(e).forEach((t=>{zo(t,e[t])}))}function A(e,t){d(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(p&&Po(p,e,"c"),A(io,f),A(lo,h),A(co,m),A(ao,g),A(Qn,y),A(Xn,_),A(go,T),A(mo,k),A(ho,w),A(uo,S),A(po,x),A(fo,E),d(N))if(N.length){const t=e.exposed||(e.exposed={});N.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});C&&e.render===r&&(e.render=C),null!=O&&(e.inheritAttrs=O),$&&(e.components=$),P&&(e.directives=P)}function Po(e,t,n){Ut(d(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function Ao(e,t,n,o){const r=o.includes(".")?Fn(n,o):()=>n[o];if(y(e)){const n=t[e];v(n)&&$n(r,n)}else if(v(e))$n(r,e.bind(n));else if(b(e))if(d(e))e.forEach((e=>Ao(e,t,n,o)));else{const o=v(e.handler)?e.handler.bind(n):t[e.handler];v(o)&&$n(r,o,e)}}function Fo(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let c;return l?c=l:r.length||n||o?(c={},r.length&&r.forEach((e=>Ro(c,e,i,!0))),Ro(c,t,i)):c=t,b(t)&&s.set(t,c),c}function Ro(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Ro(e,s,n,!0),r&&r.forEach((t=>Ro(e,t,n,!0)));for(const i in t)if(o&&"expose"===i);else{const o=Mo[i]||n&&n[i];e[i]=o?o(e[i],t[i]):t[i]}return e}const Mo={data:Vo,props:jo,emits:jo,methods:Lo,computed:Lo,beforeCreate:Bo,created:Bo,beforeMount:Bo,mounted:Bo,beforeUpdate:Bo,updated:Bo,beforeDestroy:Bo,beforeUnmount:Bo,destroyed:Bo,unmounted:Bo,activated:Bo,deactivated:Bo,errorCaptured:Bo,serverPrefetch:Bo,components:Lo,directives:Lo,watch:function(e,t){if(!e)return t;if(!t)return e;const n=a(Object.create(null),e);for(const o in t)n[o]=Bo(e[o],t[o]);return n},provide:Vo,inject:function(e,t){return Lo(Io(e),Io(t))}};function Vo(e,t){return t?e?function(){return a(v(e)?e.call(this,this):e,v(t)?t.call(this,this):t)}:t:e}function Io(e){if(d(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Bo(e,t){return e?[...new Set([].concat(e,t))]:t}function Lo(e,t){return e?a(Object.create(null),e,t):t}function jo(e,t){return e?d(e)&&d(t)?[...new Set([...e,...t])]:a(Object.create(null),No(e),No(null!=t?t:{})):t}function Uo(){return{app:null,config:{isNativeTag:s,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Do=0;function Ho(e,t){return function(n,o=null){v(n)||(n=a({},n)),null==o||b(o)||(o=null);const r=Uo(),s=new Set;let i=!1;const l=r.app={_uid:Do++,_component:n,_props:o,_container:null,_context:r,_instance:null,version:gs,get config(){return r.config},set config(e){},use:(e,...t)=>(s.has(e)||(e&&v(e.install)?(s.add(e),e.install(l,...t)):v(e)&&(s.add(e),e(l,...t))),l),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),l),component:(e,t)=>t?(r.components[e]=t,l):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,l):r.directives[e],mount(s,c,a){if(!i){const u=jr(n,o);return u.appContext=r,c&&t?t(u,s):e(u,s,a),i=!0,l._container=s,s.__vue_app__=l,us(u.component)||u.component.proxy}},unmount(){i&&(e(null,l._container),delete l._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,l),runWithContext(e){Wo=l;try{return e()}finally{Wo=null}}};return l}}let Wo=null;function zo(e,t){if(Yr){let n=Yr.provides;const o=Yr.parent&&Yr.parent.provides;o===n&&(n=Yr.provides=Object.create(o)),n[e]=t}else;}function Ko(e,t,n=!1){const o=Yr||fn;if(o||Wo){const r=o?null==o.parent?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:Wo._context.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&v(t)?t.call(o&&o.proxy):t}}function Go(e,t,o,r){const[s,i]=e.propsOptions;let l,c=!1;if(t)for(let n in t){if(T(n))continue;const a=t[n];let u;s&&f(s,u=$(n))?i&&i.includes(u)?(l||(l={}))[u]=a:o[u]=a:pn(e.emitsOptions,n)||n in r&&a===r[n]||(r[n]=a,c=!0)}if(i){const t=xt(o),r=l||n;for(let n=0;n<i.length;n++){const l=i[n];o[l]=qo(s,t,l,r[l],e,!f(r,l))}}return c}function qo(e,t,n,o,r,s){const i=e[n];if(null!=i){const e=f(i,"default");if(e&&void 0===o){const e=i.default;if(i.type!==Function&&!i.skipFactory&&v(e)){const{propsDefaults:s}=r;n in s?o=s[n]:(es(r),o=s[n]=e.call(null,t),ts())}else o=e}i[0]&&(s&&!e?o=!1:!i[1]||""!==o&&o!==A(n)||(o=!0))}return o}function Jo(e,t,r=!1){const s=t.propsCache,i=s.get(e);if(i)return i;const l=e.props,c={},u=[];let p=!1;if(!v(e)){const n=e=>{p=!0;const[n,o]=Jo(e,t,!0);a(c,n),o&&u.push(...o)};!r&&t.mixins.length&&t.mixins.forEach(n),e.extends&&n(e.extends),e.mixins&&e.mixins.forEach(n)}if(!l&&!p)return b(e)&&s.set(e,o),o;if(d(l))for(let o=0;o<l.length;o++){const e=$(l[o]);Zo(e)&&(c[e]=n)}else if(l)for(const n in l){const e=$(n);if(Zo(e)){const t=l[n],o=c[e]=d(t)||v(t)?{type:t}:a({},t);if(o){const t=Xo(Boolean,o.type),n=Xo(String,o.type);o[0]=t>-1,o[1]=n<0||t<n,(t>-1||f(o,"default"))&&u.push(e)}}}const h=[c,u];return b(e)&&s.set(e,h),h}function Zo(e){return"$"!==e[0]}function Yo(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:null===e?"null":""}function Qo(e,t){return Yo(e)===Yo(t)}function Xo(e,t){return d(t)?t.findIndex((t=>Qo(t,e))):v(t)&&Qo(t,e)?0:-1}const er=e=>"_"===e[0]||"$stable"===e,tr=e=>d(e)?e.map(Wr):[Wr(e)],nr=(e,t,n)=>{if(t._n)return t;const o=mn(((...e)=>tr(t(...e))),n);return o._c=!1,o},or=(e,t,n)=>{const o=e._ctx;for(const r in e){if(er(r))continue;const n=e[r];if(v(n))t[r]=nr(0,n,o);else if(null!=n){const e=tr(n);t[r]=()=>e}}},rr=(e,t)=>{const n=tr(t);e.slots.default=()=>n};function sr(e,t,o,r,s=!1){if(d(e))return void e.forEach(((e,n)=>sr(e,t&&(d(t)?t[n]:t),o,r,s)));if(Gn(r)&&!s)return;const i=4&r.shapeFlag?us(r.component)||r.component.proxy:r.el,l=s?null:i,{i:c,r:a}=e,p=t&&t.r,h=c.refs===n?c.refs={}:c.refs,m=c.setupState;if(null!=p&&p!==a&&(y(p)?(h[p]=null,f(m,p)&&(m[p]=null)):Nt(p)&&(p.value=null)),v(a))jt(a,c,12,[l,h]);else{const t=y(a),n=Nt(a);if(t||n){const r=()=>{if(e.f){const n=t?f(m,a)?m[a]:h[a]:a.value;s?d(n)&&u(n,i):d(n)?n.includes(i)||n.push(i):t?(h[a]=[i],f(m,a)&&(m[a]=h[a])):(a.value=[i],e.k&&(h[e.k]=a.value))}else t?(h[a]=l,f(m,a)&&(m[a]=l)):n&&(a.value=l,e.k&&(h[e.k]=l))};l?(r.id=-1,ur(r,o)):r()}}}let ir=!1;const lr=e=>/svg/.test(e.namespaceURI)&&"foreignObject"!==e.tagName,cr=e=>8===e.nodeType;function ar(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:s,parentNode:i,remove:c,insert:a,createComment:u}}=e,p=(n,o,l,c,u,v=!1)=>{const y=cr(n)&&"["===n.data,_=()=>m(n,o,l,c,u,y),{type:b,ref:S,shapeFlag:x,patchFlag:C}=o;let k=n.nodeType;o.el=n,-2===C&&(v=!1,o.dynamicChildren=null);let w=null;switch(b){case Cr:3!==k?""===o.children?(a(o.el=r(""),i(n),n),w=n):w=_():(n.data!==o.children&&(ir=!0,n.data=o.children),w=s(n));break;case kr:w=8!==k||y?_():s(n);break;case wr:if(y&&(k=(n=s(n)).nodeType),1===k||3===k){w=n;const e=!o.children.length;for(let t=0;t<o.staticCount;t++)e&&(o.children+=1===w.nodeType?w.outerHTML:w.data),t===o.staticCount-1&&(o.anchor=w),w=s(w);return y?s(w):w}_();break;case xr:w=y?h(n,o,l,c,u,v):_();break;default:if(1&x)w=1!==k||o.type.toLowerCase()!==n.tagName.toLowerCase()?_():f(n,o,l,c,u,v);else if(6&x){o.slotScopeIds=u;const e=i(n);if(t(o,e,null,l,c,lr(e),v),w=y?g(n):s(n),w&&cr(w)&&"teleport end"===w.data&&(w=s(w)),Gn(o)){let t;y?(t=jr(xr),t.anchor=w?w.previousSibling:e.lastChild):t=3===n.nodeType?Hr(""):jr("div"),t.el=n,o.component.subTree=t}}else 64&x?w=8!==k?_():o.type.hydrate(n,o,l,c,u,v,e,d):128&x&&(w=o.type.hydrate(n,o,l,c,lr(i(n)),u,v,e,p))}return null!=S&&sr(S,null,c,o),w},f=(e,t,n,r,s,i)=>{i=i||!!t.dynamicChildren;const{type:a,props:u,patchFlag:p,shapeFlag:f,dirs:h}=t,m="input"===a&&h||"option"===a;if(m||-1!==p){if(h&&Mn(t,null,n,"created"),u)if(m||!i||48&p)for(const t in u)(m&&t.endsWith("value")||l(t)&&!T(t))&&o(e,t,null,u[t],!1,void 0,n);else u.onClick&&o(e,"onClick",null,u.onClick,!1,void 0,n);let a;if((a=u&&u.onVnodeBeforeMount)&&qr(a,n,t),h&&Mn(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||h)&&Tn((()=>{a&&qr(a,n,t),h&&Mn(t,null,n,"mounted")}),r),16&f&&(!u||!u.innerHTML&&!u.textContent)){let o=d(e.firstChild,t,e,n,r,s,i);for(;o;){ir=!0;const e=o;o=o.nextSibling,c(e)}}else 8&f&&e.textContent!==t.children&&(ir=!0,e.textContent=t.children)}return e.nextSibling},d=(e,t,o,r,s,i,l)=>{l=l||!!t.dynamicChildren;const c=t.children,a=c.length;for(let u=0;u<a;u++){const t=l?c[u]:c[u]=Wr(c[u]);if(e)e=p(e,t,r,s,i,l);else{if(t.type===Cr&&!t.children)continue;ir=!0,n(null,t,o,null,r,s,lr(o),i)}}return e},h=(e,t,n,o,r,l)=>{const{slotScopeIds:c}=t;c&&(r=r?r.concat(c):c);const p=i(e),f=d(s(e),t,p,n,o,r,l);return f&&cr(f)&&"]"===f.data?s(t.anchor=f):(ir=!0,a(t.anchor=u("]"),p,f),f)},m=(e,t,o,r,l,a)=>{if(ir=!0,t.el=null,a){const t=g(e);for(;;){const n=s(e);if(!n||n===t)break;c(n)}}const u=s(e),p=i(e);return c(e),n(null,t,p,u,o,r,lr(p),l),u},g=e=>{let t=0;for(;e;)if((e=s(e))&&cr(e)&&("["===e.data&&t++,"]"===e.data)){if(0===t)return s(e);t--}return e};return[(e,t)=>{if(!t.hasChildNodes())return n(null,e,t),on(),void(t._vnode=e);ir=!1,p(t.firstChild,e,null,null,null),on(),t._vnode=e,ir&&console.error("Hydration completed but contains mismatches.")},p]}const ur=Tn;function pr(e){return dr(e)}function fr(e){return dr(e,ar)}function dr(e,t){(j||(j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})).__VUE__=!0;const{insert:s,remove:i,patchProp:l,createElement:c,createText:u,createComment:p,setText:d,setElementText:h,parentNode:m,nextSibling:g,setScopeId:v=r,insertStaticContent:y}=e,_=(e,t,n,o=null,r=null,s=null,i=!1,l=null,c=!!t.dynamicChildren)=>{if(e===t)return;e&&!Mr(e,t)&&(o=Q(e),G(e,r,s,!0),e=null),-2===t.patchFlag&&(c=!1,t.dynamicChildren=null);const{type:a,ref:u,shapeFlag:p}=t;switch(a){case Cr:b(e,t,n,o);break;case kr:x(e,t,n,o);break;case wr:null==e&&C(t,n,o,i);break;case xr:R(e,t,n,o,r,s,i,l,c);break;default:1&p?k(e,t,n,o,r,s,i,l,c):6&p?M(e,t,n,o,r,s,i,l,c):(64&p||128&p)&&a.process(e,t,n,o,r,s,i,l,c,ee)}null!=u&&r&&sr(u,e&&e.ref,s,t||e,!t)},b=(e,t,n,o)=>{if(null==e)s(t.el=u(t.children),n,o);else{const n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},x=(e,t,n,o)=>{null==e?s(t.el=p(t.children||""),n,o):t.el=e.el},C=(e,t,n,o)=>{[e.el,e.anchor]=y(e.children,t,n,o,e.el,e.anchor)},k=(e,t,n,o,r,s,i,l,c)=>{i=i||"svg"===t.type,null==e?w(t,n,o,r,s,i,l,c):O(e,t,r,s,i,l,c)},w=(e,t,n,o,r,i,a,u)=>{let p,f;const{type:d,props:m,shapeFlag:g,transition:v,dirs:y}=e;if(p=e.el=c(e.type,i,m&&m.is,m),8&g?h(p,e.children):16&g&&N(e.children,p,null,o,r,i&&"foreignObject"!==d,a,u),y&&Mn(e,null,o,"created"),E(p,e,e.scopeId,a,o),m){for(const t in m)"value"===t||T(t)||l(p,t,null,m[t],i,e.children,o,r,Y);"value"in m&&l(p,"value",null,m.value),(f=m.onVnodeBeforeMount)&&qr(f,o,e)}y&&Mn(e,null,o,"beforeMount");const _=(!r||r&&!r.pendingBranch)&&v&&!v.persisted;_&&v.beforeEnter(p),s(p,t,n),((f=m&&m.onVnodeMounted)||_||y)&&ur((()=>{f&&qr(f,o,e),_&&v.enter(p),y&&Mn(e,null,o,"mounted")}),r)},E=(e,t,n,o,r)=>{if(n&&v(e,n),o)for(let s=0;s<o.length;s++)v(e,o[s]);if(r){if(t===r.subTree){const t=r.vnode;E(e,t,t.scopeId,t.slotScopeIds,r.parent)}}},N=(e,t,n,o,r,s,i,l,c=0)=>{for(let a=c;a<e.length;a++){const c=e[a]=l?zr(e[a]):Wr(e[a]);_(null,c,t,n,o,r,s,i,l)}},O=(e,t,o,r,s,i,c)=>{const a=t.el=e.el;let{patchFlag:u,dynamicChildren:p,dirs:f}=t;u|=16&e.patchFlag;const d=e.props||n,m=t.props||n;let g;o&&hr(o,!1),(g=m.onVnodeBeforeUpdate)&&qr(g,o,t,e),f&&Mn(t,e,o,"beforeUpdate"),o&&hr(o,!0);const v=s&&"foreignObject"!==t.type;if(p?P(e.dynamicChildren,p,a,o,r,v,i):c||H(e,t,a,null,o,r,v,i,!1),u>0){if(16&u)F(a,t,d,m,o,r,s);else if(2&u&&d.class!==m.class&&l(a,"class",null,m.class,s),4&u&&l(a,"style",d.style,m.style,s),8&u){const n=t.dynamicProps;for(let t=0;t<n.length;t++){const i=n[t],c=d[i],u=m[i];u===c&&"value"!==i||l(a,i,c,u,s,e.children,o,r,Y)}}1&u&&e.children!==t.children&&h(a,t.children)}else c||null!=p||F(a,t,d,m,o,r,s);((g=m.onVnodeUpdated)||f)&&ur((()=>{g&&qr(g,o,t,e),f&&Mn(t,e,o,"updated")}),r)},P=(e,t,n,o,r,s,i)=>{for(let l=0;l<t.length;l++){const c=e[l],a=t[l],u=c.el&&(c.type===xr||!Mr(c,a)||70&c.shapeFlag)?m(c.el):n;_(c,a,u,null,o,r,s,i,!0)}},F=(e,t,o,r,s,i,c)=>{if(o!==r){if(o!==n)for(const n in o)T(n)||n in r||l(e,n,o[n],null,c,t.children,s,i,Y);for(const n in r){if(T(n))continue;const a=r[n],u=o[n];a!==u&&"value"!==n&&l(e,n,u,a,c,t.children,s,i,Y)}"value"in r&&l(e,"value",o.value,r.value)}},R=(e,t,n,o,r,i,l,c,a)=>{const p=t.el=e?e.el:u(""),f=t.anchor=e?e.anchor:u("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:m}=t;m&&(c=c?c.concat(m):m),null==e?(s(p,n,o),s(f,n,o),N(t.children,n,f,r,i,l,c,a)):d>0&&64&d&&h&&e.dynamicChildren?(P(e.dynamicChildren,h,n,r,i,l,c),(null!=t.key||r&&t===r.subTree)&&mr(e,t,!0)):H(e,t,n,f,r,i,l,c,a)},M=(e,t,n,o,r,s,i,l,c)=>{t.slotScopeIds=l,null==e?512&t.shapeFlag?r.ctx.activate(t,n,o,i,c):B(t,n,o,r,s,i,c):L(e,t,c)},B=(e,t,o,r,s,i,l)=>{const c=e.component=function(e,t,o){const r=e.type,s=(t?t.appContext:e.appContext)||Jr,i={uid:Zr++,vnode:e,type:r,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,scope:new oe(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Jo(r,s),emitsOptions:un(r,s),emit:null,emitted:null,propsDefaults:n,inheritAttrs:r.inheritAttrs,ctx:n,data:n,props:n,attrs:n,slots:n,refs:n,setupState:n,setupContext:null,attrsProxy:null,slotsProxy:null,suspense:o,suspenseId:o?o.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};i.ctx={_:i},i.root=t?t.root:i,i.emit=an.bind(null,i),e.ce&&e.ce(i);return i}(e,r,s);if(Jn(e)&&(c.ctx.renderer=ee),function(e,t=!1){ss=t;const{props:n,children:o}=e.vnode,r=ns(e);(function(e,t,n,o=!1){const r={},s={};I(s,Vr,1),e.propsDefaults=Object.create(null),Go(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);e.props=n?o?r:mt(r):e.type.props?r:s,e.attrs=s})(e,n,r,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=xt(t),I(t,"_",n)):or(t,e.slots={})}else e.slots={},t&&rr(e,t);I(e.slots,Vr,1)})(e,o);const s=r?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ct(new Proxy(e.ctx,wo));const{setup:o}=n;if(o){const n=e.setupContext=o.length>1?as(e):null;es(e),_e();const r=jt(o,e,0,[e.props,n]);if(be(),ts(),S(r)){if(r.then(ts,ts),t)return r.then((n=>{is(e,n,t)})).catch((t=>{Dt(t,e,0)}));e.asyncDep=r}else is(e,r,t)}else cs(e,t)}(e,t):void 0;ss=!1}(c),c.asyncDep){if(s&&s.registerDep(c,U),!e.el){const e=c.subTree=jr(kr);x(null,e,t,o)}}else U(c,e,t,o,s,i,l)},L=(e,t,n)=>{const o=t.component=e.component;if(function(e,t,n){const{props:o,children:r,component:s}=e,{props:i,children:l,patchFlag:c}=t,a=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&c>=0))return!(!r&&!l||l&&l.$stable)||o!==i&&(o?!i||_n(o,i,a):!!i);if(1024&c)return!0;if(16&c)return o?_n(o,i,a):!!i;if(8&c){const e=t.dynamicProps;for(let t=0;t<e.length;t++){const n=e[t];if(i[n]!==o[n]&&!pn(a,n))return!0}}return!1}(e,t,n)){if(o.asyncDep&&!o.asyncResolved)return void D(o,t,n);o.next=t,function(e){const t=zt.indexOf(e);t>Kt&&zt.splice(t,1)}(o.update),o.update()}else t.el=e.el,o.vnode=t},U=(e,t,n,o,r,s,i)=>{const l=e.effect=new me((()=>{if(e.isMounted){let t,{next:n,bu:o,u:l,parent:c,vnode:a}=e,u=n;hr(e,!1),n?(n.el=a.el,D(e,n,i)):n=a,o&&V(o),(t=n.props&&n.props.onVnodeBeforeUpdate)&&qr(t,c,n,a),hr(e,!0);const p=gn(e),f=e.subTree;e.subTree=p,_(f,p,m(f.el),Q(f),e,r,s),n.el=p.el,null===u&&bn(e,p.el),l&&ur(l,r),(t=n.props&&n.props.onVnodeUpdated)&&ur((()=>qr(t,c,n,a)),r)}else{let i;const{el:l,props:c}=t,{bm:a,m:u,parent:p}=e,f=Gn(t);if(hr(e,!1),a&&V(a),!f&&(i=c&&c.onVnodeBeforeMount)&&qr(i,p,t),hr(e,!0),l&&ne){const n=()=>{e.subTree=gn(e),ne(l,e.subTree,e,r,null)};f?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{const i=e.subTree=gn(e);_(null,i,n,o,e,r,s),t.el=i.el}if(u&&ur(u,r),!f&&(i=c&&c.onVnodeMounted)){const e=t;ur((()=>qr(i,p,e)),r)}(256&t.shapeFlag||p&&Gn(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&ur(e.a,r),e.isMounted=!0,t=n=o=null}}),(()=>Xt(c)),e.scope),c=e.update=()=>l.run();c.id=e.uid,hr(e,!0),c()},D=(e,t,o)=>{t.component=e;const r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=xt(r),[c]=e.propsOptions;let a=!1;if(!(o||i>0)||16&i){let o;Go(e,t,r,s)&&(a=!0);for(const s in l)t&&(f(t,s)||(o=A(s))!==s&&f(t,o))||(c?!n||void 0===n[s]&&void 0===n[o]||(r[s]=qo(c,l,s,void 0,e,!0)):delete r[s]);if(s!==l)for(const e in s)t&&f(t,e)||(delete s[e],a=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let o=0;o<n.length;o++){let i=n[o];if(pn(e.emitsOptions,i))continue;const u=t[i];if(c)if(f(s,i))u!==s[i]&&(s[i]=u,a=!0);else{const t=$(i);r[t]=qo(c,l,t,u,e,!1)}else u!==s[i]&&(s[i]=u,a=!0)}}a&&Ce(e,"set","$attrs")}(e,t.props,r,o),((e,t,o)=>{const{vnode:r,slots:s}=e;let i=!0,l=n;if(32&r.shapeFlag){const e=t._;e?o&&1===e?i=!1:(a(s,t),o||1!==e||delete s._):(i=!t.$stable,or(t,s)),l=t}else t&&(rr(e,t),l={default:1});if(i)for(const n in s)er(n)||n in l||delete s[n]})(e,t.children,o),_e(),nn(),be()},H=(e,t,n,o,r,s,i,l,c=!1)=>{const a=e&&e.children,u=e?e.shapeFlag:0,p=t.children,{patchFlag:f,shapeFlag:d}=t;if(f>0){if(128&f)return void z(a,p,n,o,r,s,i,l,c);if(256&f)return void W(a,p,n,o,r,s,i,l,c)}8&d?(16&u&&Y(a,r,s),p!==a&&h(n,p)):16&u?16&d?z(a,p,n,o,r,s,i,l,c):Y(a,r,s,!0):(8&u&&h(n,""),16&d&&N(p,n,o,r,s,i,l,c))},W=(e,t,n,r,s,i,l,c,a)=>{const u=(e=e||o).length,p=(t=t||o).length,f=Math.min(u,p);let d;for(d=0;d<f;d++){const o=t[d]=a?zr(t[d]):Wr(t[d]);_(e[d],o,n,null,s,i,l,c,a)}u>p?Y(e,s,i,!0,!1,f):N(t,n,r,s,i,l,c,a,f)},z=(e,t,n,r,s,i,l,c,a)=>{let u=0;const p=t.length;let f=e.length-1,d=p-1;for(;u<=f&&u<=d;){const o=e[u],r=t[u]=a?zr(t[u]):Wr(t[u]);if(!Mr(o,r))break;_(o,r,n,null,s,i,l,c,a),u++}for(;u<=f&&u<=d;){const o=e[f],r=t[d]=a?zr(t[d]):Wr(t[d]);if(!Mr(o,r))break;_(o,r,n,null,s,i,l,c,a),f--,d--}if(u>f){if(u<=d){const e=d+1,o=e<p?t[e].el:r;for(;u<=d;)_(null,t[u]=a?zr(t[u]):Wr(t[u]),n,o,s,i,l,c,a),u++}}else if(u>d)for(;u<=f;)G(e[u],s,i,!0),u++;else{const h=u,m=u,g=new Map;for(u=m;u<=d;u++){const e=t[u]=a?zr(t[u]):Wr(t[u]);null!=e.key&&g.set(e.key,u)}let v,y=0;const b=d-m+1;let S=!1,x=0;const C=new Array(b);for(u=0;u<b;u++)C[u]=0;for(u=h;u<=f;u++){const o=e[u];if(y>=b){G(o,s,i,!0);continue}let r;if(null!=o.key)r=g.get(o.key);else for(v=m;v<=d;v++)if(0===C[v-m]&&Mr(o,t[v])){r=v;break}void 0===r?G(o,s,i,!0):(C[r-m]=u+1,r>=x?x=r:S=!0,_(o,t[r],n,null,s,i,l,c,a),y++)}const k=S?function(e){const t=e.slice(),n=[0];let o,r,s,i,l;const c=e.length;for(o=0;o<c;o++){const c=e[o];if(0!==c){if(r=n[n.length-1],e[r]<c){t[o]=r,n.push(o);continue}for(s=0,i=n.length-1;s<i;)l=s+i>>1,e[n[l]]<c?s=l+1:i=l;c<e[n[s]]&&(s>0&&(t[o]=n[s-1]),n[s]=o)}}s=n.length,i=n[s-1];for(;s-- >0;)n[s]=i,i=t[i];return n}(C):o;for(v=k.length-1,u=b-1;u>=0;u--){const e=m+u,o=t[e],f=e+1<p?t[e+1].el:r;0===C[u]?_(null,o,n,f,s,i,l,c,a):S&&(v<0||u!==k[v]?K(o,n,f,2):v--)}}},K=(e,t,n,o,r=null)=>{const{el:i,type:l,transition:c,children:a,shapeFlag:u}=e;if(6&u)return void K(e.component.subTree,t,n,o);if(128&u)return void e.suspense.move(t,n,o);if(64&u)return void l.move(e,t,n,ee);if(l===xr){s(i,t,n);for(let e=0;e<a.length;e++)K(a[e],t,n,o);return void s(e.anchor,t,n)}if(l===wr)return void(({el:e,anchor:t},n,o)=>{let r;for(;e&&e!==t;)r=g(e),s(e,n,o),e=r;s(t,n,o)})(e,t,n);if(2!==o&&1&u&&c)if(0===o)c.beforeEnter(i),s(i,t,n),ur((()=>c.enter(i)),r);else{const{leave:e,delayLeave:o,afterLeave:r}=c,l=()=>s(i,t,n),a=()=>{e(i,(()=>{l(),r&&r()}))};o?o(i,l,a):a()}else s(i,t,n)},G=(e,t,n,o=!1,r=!1)=>{const{type:s,props:i,ref:l,children:c,dynamicChildren:a,shapeFlag:u,patchFlag:p,dirs:f}=e;if(null!=l&&sr(l,null,n,e,!0),256&u)return void t.ctx.deactivate(e);const d=1&u&&f,h=!Gn(e);let m;if(h&&(m=i&&i.onVnodeBeforeUnmount)&&qr(m,t,e),6&u)Z(e.component,n,o);else{if(128&u)return void e.suspense.unmount(n,o);d&&Mn(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,r,ee,o):a&&(s!==xr||p>0&&64&p)?Y(a,t,n,!1,!0):(s===xr&&384&p||!r&&16&u)&&Y(c,t,n),o&&q(e)}(h&&(m=i&&i.onVnodeUnmounted)||d)&&ur((()=>{m&&qr(m,t,e),d&&Mn(e,null,t,"unmounted")}),n)},q=e=>{const{type:t,el:n,anchor:o,transition:r}=e;if(t===xr)return void J(n,o);if(t===wr)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),i(e),e=n;i(t)})(e);const s=()=>{i(n),r&&!r.persisted&&r.afterLeave&&r.afterLeave()};if(1&e.shapeFlag&&r&&!r.persisted){const{leave:t,delayLeave:o}=r,i=()=>t(n,s);o?o(e.el,s,i):i()}else s()},J=(e,t)=>{let n;for(;e!==t;)n=g(e),i(e),e=n;i(t)},Z=(e,t,n)=>{const{bum:o,scope:r,update:s,subTree:i,um:l}=e;o&&V(o),r.stop(),s&&(s.active=!1,G(i,e,t,n)),l&&ur(l,t),ur((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},Y=(e,t,n,o=!1,r=!1,s=0)=>{for(let i=s;i<e.length;i++)G(e[i],t,n,o,r)},Q=e=>6&e.shapeFlag?Q(e.component.subTree):128&e.shapeFlag?e.suspense.next():g(e.anchor||e.el),X=(e,t,n)=>{null==e?t._vnode&&G(t._vnode,null,null,!0):_(t._vnode||null,e,t,null,null,null,n),nn(),on(),t._vnode=e},ee={p:_,um:G,m:K,r:q,mt:B,mc:N,pc:H,pbc:P,n:Q,o:e};let te,ne;return t&&([te,ne]=t(ee)),{render:X,hydrate:te,createApp:Ho(X,te)}}function hr({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function mr(e,t,n=!1){const o=e.children,r=t.children;if(d(o)&&d(r))for(let s=0;s<o.length;s++){const e=o[s];let t=r[s];1&t.shapeFlag&&!t.dynamicChildren&&((t.patchFlag<=0||32===t.patchFlag)&&(t=r[s]=zr(r[s]),t.el=e.el),n||mr(e,t)),t.type===Cr&&(t.el=e.el)}}const gr=e=>e&&(e.disabled||""===e.disabled),vr=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,yr=(e,t)=>{const n=e&&e.to;if(y(n)){if(t){return t(n)}return null}return n};function _r(e,t,n,{o:{insert:o},m:r},s=2){0===s&&o(e.targetAnchor,t,n);const{el:i,anchor:l,shapeFlag:c,children:a,props:u}=e,p=2===s;if(p&&o(i,t,n),(!p||gr(u))&&16&c)for(let f=0;f<a.length;f++)r(a[f],t,n,2);p&&o(l,t,n)}const br={__isTeleport:!0,process(e,t,n,o,r,s,i,l,c,a){const{mc:u,pc:p,pbc:f,o:{insert:d,querySelector:h,createText:m}}=a,g=gr(t.props);let{shapeFlag:v,children:y,dynamicChildren:_}=t;if(null==e){const e=t.el=m(""),a=t.anchor=m("");d(e,n,o),d(a,n,o);const p=t.target=yr(t.props,h),f=t.targetAnchor=m("");p&&(d(f,p),i=i||vr(p));const _=(e,t)=>{16&v&&u(y,e,t,r,s,i,l,c)};g?_(n,a):p&&_(p,f)}else{t.el=e.el;const o=t.anchor=e.anchor,u=t.target=e.target,d=t.targetAnchor=e.targetAnchor,m=gr(e.props),v=m?n:u,y=m?o:d;if(i=i||vr(u),_?(f(e.dynamicChildren,_,v,r,s,i,l),mr(e,t,!0)):c||p(e,t,v,y,r,s,i,l,!1),g)m||_r(t,n,o,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=yr(t.props,h);e&&_r(t,e,null,a,0)}else m&&_r(t,u,d,a,1)}Sr(t)},remove(e,t,n,o,{um:r,o:{remove:s}},i){const{shapeFlag:l,children:c,anchor:a,targetAnchor:u,target:p,props:f}=e;if(p&&s(u),(i||!gr(f))&&(s(a),16&l))for(let d=0;d<c.length;d++){const e=c[d];r(e,t,n,!0,!!e.dynamicChildren)}},move:_r,hydrate:function(e,t,n,o,r,s,{o:{nextSibling:i,parentNode:l,querySelector:c}},a){const u=t.target=yr(t.props,c);if(u){const c=u._lpa||u.firstChild;if(16&t.shapeFlag)if(gr(t.props))t.anchor=a(i(e),t,l(e),n,o,r,s),t.targetAnchor=c;else{t.anchor=i(e);let l=c;for(;l;)if(l=i(l),l&&8===l.nodeType&&"teleport anchor"===l.data){t.targetAnchor=l,u._lpa=t.targetAnchor&&i(t.targetAnchor);break}a(c,t,u,n,o,r,s)}Sr(t)}return t.anchor&&i(t.anchor)}};function Sr(e){const t=e.ctx;if(t&&t.ut){let n=e.children[0].el;for(;n!==e.targetAnchor;)1===n.nodeType&&n.setAttribute("data-v-owner",t.uid),n=n.nextSibling;t.ut()}}const xr=Symbol.for("v-fgt"),Cr=Symbol.for("v-txt"),kr=Symbol.for("v-cmt"),wr=Symbol.for("v-stc"),Tr=[];let Er=null;function Nr(e=!1){Tr.push(Er=e?null:[])}function Or(){Tr.pop(),Er=Tr[Tr.length-1]||null}let $r=1;function Pr(e){$r+=e}function Ar(e){return e.dynamicChildren=$r>0?Er||o:null,Or(),$r>0&&Er&&Er.push(e),e}function Fr(e,t,n,o,r){return Ar(jr(e,t,n,o,r,!0))}function Rr(e){return!!e&&!0===e.__v_isVNode}function Mr(e,t){return e.type===t.type&&e.key===t.key}const Vr="__vInternal",Ir=({key:e})=>null!=e?e:null,Br=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?y(e)||Nt(e)||v(e)?{i:fn,r:e,k:t,f:!!n}:e:null);function Lr(e,t=null,n=null,o=0,r=null,s=(e===xr?0:1),i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ir(t),ref:t&&Br(t),scopeId:dn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:fn};return l?(Kr(c,n),128&s&&e.normalize(c)):n&&(c.shapeFlag|=y(n)?8:16),$r>0&&!i&&Er&&(c.patchFlag>0||6&s)&&32!==c.patchFlag&&Er.push(c),c}const jr=function(e,t=null,n=null,o=0,r=null,s=!1){e&&e!==yo||(e=kr);if(Rr(e)){const o=Dr(e,t,!0);return n&&Kr(o,n),$r>0&&!s&&Er&&(6&o.shapeFlag?Er[Er.indexOf(e)]=o:Er.push(o)),o.patchFlag|=-2,o}i=e,v(i)&&"__vccOpts"in i&&(e=e.__vccOpts);var i;if(t){t=Ur(t);let{class:e,style:n}=t;e&&!y(e)&&(t.class=G(e)),b(n)&&(St(n)&&!d(n)&&(n=a({},n)),t.style=D(n))}const l=y(e)?1:Sn(e)?128:(e=>e.__isTeleport)(e)?64:b(e)?4:v(e)?2:0;return Lr(e,t,n,o,r,l,s,!0)};function Ur(e){return e?St(e)||Vr in e?a({},e):e:null}function Dr(e,t,n=!1){const{props:o,ref:r,patchFlag:s,children:i}=e,l=t?Gr(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ir(l),ref:t&&t.ref?n&&r?d(r)?r.concat(Br(t)):[r,Br(t)]:Br(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xr?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Dr(e.ssContent),ssFallback:e.ssFallback&&Dr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Hr(e=" ",t=0){return jr(Cr,null,e,t)}function Wr(e){return null==e||"boolean"==typeof e?jr(kr):d(e)?jr(xr,null,e.slice()):"object"==typeof e?zr(e):jr(Cr,null,String(e))}function zr(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Dr(e)}function Kr(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(d(t))n=16;else if("object"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),Kr(e,n()),n._c&&(n._d=!0)))}{n=32;const o=t._;o||Vr in t?3===o&&fn&&(1===fn.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=fn}}else v(t)?(t={default:t,_ctx:fn},n=32):(t=String(t),64&o?(n=16,t=[Hr(t)]):n=8);e.children=t,e.shapeFlag|=n}function Gr(...e){const t={};for(let n=0;n<e.length;n++){const o=e[n];for(const e in o)if("class"===e)t.class!==o.class&&(t.class=G([t.class,o.class]));else if("style"===e)t.style=D([t.style,o.style]);else if(l(e)){const n=t[e],r=o[e];!r||n===r||d(n)&&n.includes(r)||(t[e]=n?[].concat(n,r):r)}else""!==e&&(t[e]=o[e])}return t}function qr(e,t,n,o=null){Ut(e,t,7,[n,o])}const Jr=Uo();let Zr=0;let Yr=null;const Qr=()=>Yr||fn;let Xr;Xr=e=>{Yr=e};const es=e=>{Xr(e),e.scope.on()},ts=()=>{Yr&&Yr.scope.off(),Xr(null)};function ns(e){return 4&e.vnode.shapeFlag}let os,rs,ss=!1;function is(e,t,n){v(t)?e.render=t:b(t)&&(e.setupState=Rt(t)),cs(e,n)}function ls(e){os=e,rs=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,To))}}function cs(e,t,n){const o=e.type;if(!e.render){if(!t&&os&&!o.render){const t=o.template||Fo(e).template;if(t){const{isCustomElement:n,compilerOptions:r}=e.appContext.config,{delimiters:s,compilerOptions:i}=o,l=a(a({isCustomElement:n,delimiters:s},r),i);o.render=os(t,l)}}e.render=o.render||r,rs&&rs(e)}es(e),_e(),$o(e),be(),ts()}function as(e){const t=t=>{e.exposed=t||{}};return{get attrs(){return function(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get:(t,n)=>(Se(e,0,"$attrs"),t[n])}))}(e)},slots:e.slots,emit:e.emit,expose:t}}function us(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Rt(Ct(e.exposed)),{get:(t,n)=>n in t?t[n]:n in Co?Co[n](e):void 0,has:(e,t)=>t in e||t in Co}))}function ps(e,t=!0){return v(e)?e.displayName||e.name:e.name||t&&e.__name}const fs=(e,t)=>function(e,t,n=!1){let o,s;const i=v(e);return i?(o=e,s=r):(o=e.get,s=e.set),new Lt(o,s,i||!s,n)}(e,0,ss);function ds(e,t,n){const o=arguments.length;return 2===o?b(t)&&!d(t)?Rr(t)?jr(e,null,[t]):jr(e,t):jr(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):3===o&&Rr(n)&&(n=[n]),jr(e,t,n))}const hs=Symbol.for("v-scx");function ms(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let o=0;o<n.length;o++)if(M(n[o],t[o]))return!1;return $r>0&&Er&&Er.push(e),!0}const gs="3.3.4",vs="undefined"!=typeof document?document:null,ys=vs&&vs.createElement("template"),_s={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?vs.createElementNS("http://www.w3.org/2000/svg",e):vs.createElement(e,n?{is:n}:void 0);return"select"===e&&o&&null!=o.multiple&&r.setAttribute("multiple",o.multiple),r},createText:e=>vs.createTextNode(e),createComment:e=>vs.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>vs.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),r!==s&&(r=r.nextSibling););else{ys.innerHTML=o?`<svg>${e}</svg>`:e;const r=ys.content;if(o){const e=r.firstChild;for(;e.firstChild;)r.appendChild(e.firstChild);r.removeChild(e)}t.insertBefore(r,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};const bs=/\s*!important$/;function Ss(e,t,n){if(d(n))n.forEach((n=>Ss(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=function(e,t){const n=Cs[t];if(n)return n;let o=$(t);if("filter"!==o&&o in e)return Cs[t]=o;o=F(o);for(let r=0;r<xs.length;r++){const n=xs[r]+o;if(n in e)return Cs[t]=n}return t}(e,t);bs.test(n)?e.setProperty(A(o),n.replace(bs,""),"important"):e[o]=n}}const xs=["Webkit","Moz","ms"],Cs={};const ks="http://www.w3.org/1999/xlink";function ws(e,t,n,o){e.addEventListener(t,n,o)}function Ts(e,t,n,o,r=null){const s=e._vei||(e._vei={}),i=s[t];if(o&&i)i.value=o;else{const[n,l]=function(e){let t;if(Es.test(e)){let n;for(t={};n=e.match(Es);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}const n=":"===e[2]?e.slice(3):A(e.slice(2));return[n,t]}(t);if(o){const i=s[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();Ut(function(e,t){if(d(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Ns||(Os.then((()=>Ns=0)),Ns=Date.now()))(),n}(o,r);ws(e,n,i,l)}else i&&(!function(e,t,n,o){e.removeEventListener(t,n,o)}(e,n,i,l),s[t]=void 0)}}const Es=/(?:Once|Passive|Capture)$/;let Ns=0;const Os=Promise.resolve();const $s=/^on[a-z]/;function Ps(e,t){const n=Kn(e);class o extends Fs{constructor(e){super(n,e,t)}}return o.def=n,o}const As="undefined"!=typeof HTMLElement?HTMLElement:class{};class Fs extends As{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):(this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,Qt((()=>{this._connected||($i(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){this._resolved=!0;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);new MutationObserver((e=>{for(const t of e)this._setAttr(t.attributeName)})).observe(this,{attributes:!0});const e=(e,t=!1)=>{const{props:n,styles:o}=e;let r;if(n&&!d(n))for(const s in n){const e=n[s];(e===Number||e&&e.type===Number)&&(s in this._props&&(this._props[s]=L(this._props[s])),(r||(r=Object.create(null)))[$(s)]=!0)}this._numberProps=r,t&&this._resolveProps(e),this._applyStyles(o),this._update()},t=this._def.__asyncLoader;t?t().then((t=>e(t,!0))):e(this._def)}_resolveProps(e){const{props:t}=e,n=d(t)?t:Object.keys(t||{});for(const o of Object.keys(this))"_"!==o[0]&&n.includes(o)&&this._setProp(o,this[o],!0,!1);for(const o of n.map($))Object.defineProperty(this,o,{get(){return this._getProp(o)},set(e){this._setProp(o,e)}})}_setAttr(e){let t=this.getAttribute(e);const n=$(e);this._numberProps&&this._numberProps[n]&&(t=L(t)),this._setProp(n,t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,o=!0){t!==this._props[e]&&(this._props[e]=t,o&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(A(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(A(e),t+""):t||this.removeAttribute(A(e))))}_update(){$i(this._createVNode(),this.shadowRoot)}_createVNode(){const e=jr(this._def,a({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0;const t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};e.emit=(e,...n)=>{t(e,n),A(e)!==e&&t(A(e),n)};let n=this;for(;n=n&&(n.parentNode||n.host);)if(n instanceof Fs){e.parent=n._instance,e.provides=n._instance.provides;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t)}))}}function Rs(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push((()=>{Rs(n.activeBranch,t)}))}for(;e.component;)e=e.component.subTree;if(1&e.shapeFlag&&e.el)Ms(e.el,t);else if(e.type===xr)e.children.forEach((e=>Rs(e,t)));else if(e.type===wr){let{el:n,anchor:o}=e;for(;n&&(Ms(n,t),n!==o);)n=n.nextSibling}}function Ms(e,t){if(1===e.nodeType){const n=e.style;for(const e in t)n.setProperty(`--${e}`,t[e])}}const Vs="transition",Is="animation",Bs=(e,{slots:t})=>ds(Ln,Hs(e),t);Bs.displayName="Transition";const Ls={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},js=Bs.props=a({},Bn,Ls),Us=(e,t=[])=>{d(e)?e.forEach((e=>e(...t))):e&&e(...t)},Ds=e=>!!e&&(d(e)?e.some((e=>e.length>1)):e.length>1);function Hs(e){const t={};for(const a in e)a in Ls||(t[a]=e[a]);if(!1===e.css)return t;const{name:n="v",type:o,duration:r,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=s,appearActiveClass:u=i,appearToClass:p=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,m=function(e){if(null==e)return null;if(b(e))return[Ws(e.enter),Ws(e.leave)];{const t=Ws(e);return[t,t]}}(r),g=m&&m[0],v=m&&m[1],{onBeforeEnter:y,onEnter:_,onEnterCancelled:S,onLeave:x,onLeaveCancelled:C,onBeforeAppear:k=y,onAppear:w=_,onAppearCancelled:T=S}=t,E=(e,t,n)=>{Ks(e,t?p:l),Ks(e,t?u:i),n&&n()},N=(e,t)=>{e._isLeaving=!1,Ks(e,f),Ks(e,h),Ks(e,d),t&&t()},O=e=>(t,n)=>{const r=e?w:_,i=()=>E(t,e,n);Us(r,[t,i]),Gs((()=>{Ks(t,e?c:s),zs(t,e?p:l),Ds(r)||Js(t,o,g,i)}))};return a(t,{onBeforeEnter(e){Us(y,[e]),zs(e,s),zs(e,i)},onBeforeAppear(e){Us(k,[e]),zs(e,c),zs(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>N(e,t);zs(e,f),Xs(),zs(e,d),Gs((()=>{e._isLeaving&&(Ks(e,f),zs(e,h),Ds(x)||Js(e,o,v,n))})),Us(x,[e,n])},onEnterCancelled(e){E(e,!1),Us(S,[e])},onAppearCancelled(e){E(e,!0),Us(T,[e])},onLeaveCancelled(e){N(e),Us(C,[e])}})}function Ws(e){return L(e)}function zs(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function Ks(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Gs(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let qs=0;function Js(e,t,n,o){const r=e._endId=++qs,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:c}=Zs(e,t);if(!i)return o();const a=i+"end";let u=0;const p=()=>{e.removeEventListener(a,f),s()},f=t=>{t.target===e&&++u>=c&&p()};setTimeout((()=>{u<c&&p()}),l+1),e.addEventListener(a,f)}function Zs(e,t){const n=window.getComputedStyle(e),o=e=>(n[e]||"").split(", "),r=o(`${Vs}Delay`),s=o(`${Vs}Duration`),i=Ys(r,s),l=o(`${Is}Delay`),c=o(`${Is}Duration`),a=Ys(l,c);let u=null,p=0,f=0;t===Vs?i>0&&(u=Vs,p=i,f=s.length):t===Is?a>0&&(u=Is,p=a,f=c.length):(p=Math.max(i,a),u=p>0?i>a?Vs:Is:null,f=u?u===Vs?s.length:c.length:0);return{type:u,timeout:p,propCount:f,hasTransform:u===Vs&&/\b(transform|all)(,|$)/.test(o(`${Vs}Property`).toString())}}function Ys(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map(((t,n)=>Qs(t)+Qs(e[n]))))}function Qs(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Xs(){return document.body.offsetHeight}const ei=new WeakMap,ti=new WeakMap,ni={name:"TransitionGroup",props:a({},js,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Qr(),o=Vn();let r,s;return ao((()=>{if(!r.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const o=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&o.classList.remove(e)))}));n.split(/\s+/).forEach((e=>e&&o.classList.add(e))),o.style.display="none";const r=1===t.nodeType?t:t.parentNode;r.appendChild(o);const{hasTransform:s}=Zs(o);return r.removeChild(o),s}(r[0].el,n.vnode.el,t))return;r.forEach(ri),r.forEach(si);const o=r.filter(ii);Xs(),o.forEach((e=>{const n=e.el,o=n.style;zs(n,t),o.transform=o.webkitTransform=o.transitionDuration="";const r=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",r),n._moveCb=null,Ks(n,t))};n.addEventListener("transitionend",r)}))})),()=>{const i=xt(e),l=Hs(i);let c=i.tag||xr;r=s,s=t.default?zn(t.default()):[];for(let e=0;e<s.length;e++){const t=s[e];null!=t.key&&Wn(t,Un(t,l,o,n))}if(r)for(let e=0;e<r.length;e++){const t=r[e];Wn(t,Un(t,l,o,n)),ei.set(t,t.el.getBoundingClientRect())}return jr(c,null,s)}}},oi=ni;function ri(e){const t=e.el;t._moveCb&&t._moveCb(),t._enterCb&&t._enterCb()}function si(e){ti.set(e,e.el.getBoundingClientRect())}function ii(e){const t=ei.get(e),n=ti.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const t=e.el.style;return t.transform=t.webkitTransform=`translate(${o}px,${r}px)`,t.transitionDuration="0s",e}}const li=e=>{const t=e.props["onUpdate:modelValue"]||!1;return d(t)?e=>V(t,e):t};function ci(e){e.target.composing=!0}function ai(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ui={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e._assign=li(r);const s=o||r.props&&"number"===r.props.type;ws(e,t?"change":"input",(t=>{if(t.target.composing)return;let o=e.value;n&&(o=o.trim()),s&&(o=B(o)),e._assign(o)})),n&&ws(e,"change",(()=>{e.value=e.value.trim()})),t||(ws(e,"compositionstart",ci),ws(e,"compositionend",ai),ws(e,"change",ai))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:r}},s){if(e._assign=li(s),e.composing)return;if(document.activeElement===e&&"range"!==e.type){if(n)return;if(o&&e.value.trim()===t)return;if((r||"number"===e.type)&&B(e.value)===t)return}const i=null==t?"":t;e.value!==i&&(e.value=i)}},pi={deep:!0,created(e,t,n){e._assign=li(n),ws(e,"change",(()=>{const t=e._modelValue,n=gi(e),o=e.checked,r=e._assign;if(d(t)){const e=ee(t,n),s=-1!==e;if(o&&!s)r(t.concat(n));else if(!o&&s){const n=[...t];n.splice(e,1),r(n)}}else if(m(t)){const e=new Set(t);o?e.add(n):e.delete(n),r(e)}else r(vi(e,o))}))},mounted:fi,beforeUpdate(e,t,n){e._assign=li(n),fi(e,t,n)}};function fi(e,{value:t,oldValue:n},o){e._modelValue=t,d(t)?e.checked=ee(t,o.props.value)>-1:m(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=X(t,vi(e,!0)))}const di={created(e,{value:t},n){e.checked=X(t,n.props.value),e._assign=li(n),ws(e,"change",(()=>{e._assign(gi(e))}))},beforeUpdate(e,{value:t,oldValue:n},o){e._assign=li(o),t!==n&&(e.checked=X(t,o.props.value))}},hi={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const r=m(t);ws(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?B(gi(e)):gi(e)));e._assign(e.multiple?r?new Set(t):t:t[0])})),e._assign=li(o)},mounted(e,{value:t}){mi(e,t)},beforeUpdate(e,t,n){e._assign=li(n)},updated(e,{value:t}){mi(e,t)}};function mi(e,t){const n=e.multiple;if(!n||d(t)||m(t)){for(let o=0,r=e.options.length;o<r;o++){const r=e.options[o],s=gi(r);if(n)r.selected=d(t)?ee(t,s)>-1:t.has(s);else if(X(gi(r),t))return void(e.selectedIndex!==o&&(e.selectedIndex=o))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function gi(e){return"_value"in e?e._value:e.value}function vi(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const yi={created(e,t,n){_i(e,t,n,null,"created")},mounted(e,t,n){_i(e,t,n,null,"mounted")},beforeUpdate(e,t,n,o){_i(e,t,n,o,"beforeUpdate")},updated(e,t,n,o){_i(e,t,n,o,"updated")}};function _i(e,t,n,o,r){const s=function(e,t){switch(e){case"SELECT":return hi;case"TEXTAREA":return ui;default:switch(t){case"checkbox":return pi;case"radio":return di;default:return ui}}}(e.tagName,n.props&&n.props.type)[r];s&&s(e,t,n,o)}const bi=["ctrl","shift","alt","meta"],Si={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>bi.some((n=>e[`${n}Key`]&&!t.includes(n)))},xi={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Ci={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):ki(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),ki(e,!0),o.enter(e)):o.leave(e,(()=>{ki(e,!1)})):ki(e,t))},beforeUnmount(e,{value:t}){ki(e,t)}};function ki(e,t){e.style.display=t?e._vod:"none"}const wi=a({patchProp:(e,t,n,o,r=!1,s,i,a,u)=>{"class"===t?function(e,t,n){const o=e._vtc;o&&(t=(t?[t,...o]:[...o]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,r):"style"===t?function(e,t,n){const o=e.style,r=y(n);if(n&&!r){if(t&&!y(t))for(const e in t)null==n[e]&&Ss(o,e,"");for(const e in n)Ss(o,e,n[e])}else{const s=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(o.display=s)}}(e,n,o):l(t)?c(t)||Ts(e,t,0,o,i):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,o){if(o)return"innerHTML"===t||"textContent"===t||!!(t in e&&$s.test(t)&&v(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if($s.test(t)&&y(n))return!1;return t in e}(e,t,o,r))?function(e,t,n,o,r,s,i){if("innerHTML"===t||"textContent"===t)return o&&i(o,r,s),void(e[t]=null==n?"":n);const l=e.tagName;if("value"===t&&"PROGRESS"!==l&&!l.includes("-")){e._value=n;const o=null==n?"":n;return("OPTION"===l?e.getAttribute("value"):e.value)!==o&&(e.value=o),void(null==n&&e.removeAttribute(t))}let c=!1;if(""===n||null==n){const o=typeof e[t];"boolean"===o?n=Q(n):null==n&&"string"===o?(n="",c=!0):"number"===o&&(n=0,c=!0)}try{e[t]=n}catch(a){}c&&e.removeAttribute(t)}(e,t,o,s,i,a,u):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),function(e,t,n,o,r){if(o&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(ks,t.slice(6,t.length)):e.setAttributeNS(ks,t,n);else{const o=Y(t);null==n||o&&!Q(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}(e,t,o,r))}},_s);let Ti,Ei=!1;function Ni(){return Ti||(Ti=pr(wi))}function Oi(){return Ti=Ei?Ti:fr(wi),Ei=!0,Ti}const $i=(...e)=>{Ni().render(...e)},Pi=(...e)=>{Oi().hydrate(...e)};function Ai(e){if(y(e)){return document.querySelector(e)}return e}const Fi=r;function Ri(e){throw e}function Mi(e){}function Vi(e,t,n,o){const r=new SyntaxError(String(e));return r.code=e,r.loc=t,r}const Ii=Symbol(""),Bi=Symbol(""),Li=Symbol(""),ji=Symbol(""),Ui=Symbol(""),Di=Symbol(""),Hi=Symbol(""),Wi=Symbol(""),zi=Symbol(""),Ki=Symbol(""),Gi=Symbol(""),qi=Symbol(""),Ji=Symbol(""),Zi=Symbol(""),Yi=Symbol(""),Qi=Symbol(""),Xi=Symbol(""),el=Symbol(""),tl=Symbol(""),nl=Symbol(""),ol=Symbol(""),rl=Symbol(""),sl=Symbol(""),il=Symbol(""),ll=Symbol(""),cl=Symbol(""),al=Symbol(""),ul=Symbol(""),pl=Symbol(""),fl=Symbol(""),dl=Symbol(""),hl=Symbol(""),ml=Symbol(""),gl=Symbol(""),vl=Symbol(""),yl=Symbol(""),_l=Symbol(""),bl=Symbol(""),Sl=Symbol(""),xl={[Ii]:"Fragment",[Bi]:"Teleport",[Li]:"Suspense",[ji]:"KeepAlive",[Ui]:"BaseTransition",[Di]:"openBlock",[Hi]:"createBlock",[Wi]:"createElementBlock",[zi]:"createVNode",[Ki]:"createElementVNode",[Gi]:"createCommentVNode",[qi]:"createTextVNode",[Ji]:"createStaticVNode",[Zi]:"resolveComponent",[Yi]:"resolveDynamicComponent",[Qi]:"resolveDirective",[Xi]:"resolveFilter",[el]:"withDirectives",[tl]:"renderList",[nl]:"renderSlot",[ol]:"createSlots",[rl]:"toDisplayString",[sl]:"mergeProps",[il]:"normalizeClass",[ll]:"normalizeStyle",[cl]:"normalizeProps",[al]:"guardReactiveProps",[ul]:"toHandlers",[pl]:"camelize",[fl]:"capitalize",[dl]:"toHandlerKey",[hl]:"setBlockTracking",[ml]:"pushScopeId",[gl]:"popScopeId",[vl]:"withCtx",[yl]:"unref",[_l]:"isRef",[bl]:"withMemo",[Sl]:"isMemoSame"};const Cl={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function kl(e,t,n,o,r,s,i,l=!1,c=!1,a=!1,u=Cl){return e&&(l?(e.helper(Di),e.helper(Rl(e.inSSR,a))):e.helper(Fl(e.inSSR,a)),i&&e.helper(el)),{type:13,tag:t,props:n,children:o,patchFlag:r,dynamicProps:s,directives:i,isBlock:l,disableTracking:c,isComponent:a,loc:u}}function wl(e,t=Cl){return{type:17,loc:t,elements:e}}function Tl(e,t=Cl){return{type:15,loc:t,properties:e}}function El(e,t){return{type:16,loc:Cl,key:y(e)?Nl(e,!0):e,value:t}}function Nl(e,t=!1,n=Cl,o=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:o}}function Ol(e,t=Cl){return{type:8,loc:t,children:e}}function $l(e,t=[],n=Cl){return{type:14,loc:n,callee:e,arguments:t}}function Pl(e,t,n=!1,o=!1,r=Cl){return{type:18,params:e,returns:t,newline:n,isSlot:o,loc:r}}function Al(e,t,n,o=!0){return{type:19,test:e,consequent:t,alternate:n,newline:o,loc:Cl}}function Fl(e,t){return e||t?zi:Ki}function Rl(e,t){return e||t?Hi:Wi}function Ml(e,{helper:t,removeHelper:n,inSSR:o}){e.isBlock||(e.isBlock=!0,n(Fl(o,e.isComponent)),t(Di),t(Rl(o,e.isComponent)))}const Vl=e=>4===e.type&&e.isStatic,Il=(e,t)=>e===t||e===A(t);function Bl(e){return Il(e,"Teleport")?Bi:Il(e,"Suspense")?Li:Il(e,"KeepAlive")?ji:Il(e,"BaseTransition")?Ui:void 0}const Ll=/^\d|[^\$\w]/,jl=e=>!Ll.test(e),Ul=/[A-Za-z_$\xA0-\uFFFF]/,Dl=/[\.\?\w$\xA0-\uFFFF]/,Hl=/\s+[.[]\s*|\s*[.[]\s+/g,Wl=e=>{e=e.trim().replace(Hl,(e=>e.trim()));let t=0,n=[],o=0,r=0,s=null;for(let i=0;i<e.length;i++){const l=e.charAt(i);switch(t){case 0:if("["===l)n.push(t),t=1,o++;else if("("===l)n.push(t),t=2,r++;else if(!(0===i?Ul:Dl).test(l))return!1;break;case 1:"'"===l||'"'===l||"`"===l?(n.push(t),t=3,s=l):"["===l?o++:"]"===l&&(--o||(t=n.pop()));break;case 2:if("'"===l||'"'===l||"`"===l)n.push(t),t=3,s=l;else if("("===l)r++;else if(")"===l){if(i===e.length-1)return!1;--r||(t=n.pop())}break;case 3:l===s&&(t=n.pop(),s=null)}}return!o&&!r};function zl(e,t,n){const o={source:e.source.slice(t,t+n),start:Kl(e.start,e.source,t),end:e.end};return null!=n&&(o.end=Kl(e.start,e.source,t+n)),o}function Kl(e,t,n=t.length){return Gl(a({},e),t,n)}function Gl(e,t,n=t.length){let o=0,r=-1;for(let s=0;s<n;s++)10===t.charCodeAt(s)&&(o++,r=s);return e.offset+=n,e.line+=o,e.column=-1===r?e.column+n:n-r,e}function ql(e,t,n=!1){for(let o=0;o<e.props.length;o++){const r=e.props[o];if(7===r.type&&(n||r.exp)&&(y(t)?r.name===t:t.test(r.name)))return r}}function Jl(e,t,n=!1,o=!1){for(let r=0;r<e.props.length;r++){const s=e.props[r];if(6===s.type){if(n)continue;if(s.name===t&&(s.value||o))return s}else if("bind"===s.name&&(s.exp||o)&&Zl(s.arg,t))return s}}function Zl(e,t){return!(!e||!Vl(e)||e.content!==t)}function Yl(e){return 5===e.type||2===e.type}function Ql(e){return 7===e.type&&"slot"===e.name}function Xl(e){return 1===e.type&&3===e.tagType}function ec(e){return 1===e.type&&2===e.tagType}const tc=new Set([cl,al]);function nc(e,t=[]){if(e&&!y(e)&&14===e.type){const n=e.callee;if(!y(n)&&tc.has(n))return nc(e.arguments[0],t.concat(e))}return[e,t]}function oc(e,t,n){let o,r,s=13===e.type?e.props:e.arguments[2],i=[];if(s&&!y(s)&&14===s.type){const e=nc(s);s=e[0],i=e[1],r=i[i.length-1]}if(null==s||y(s))o=Tl([t]);else if(14===s.type){const e=s.arguments[0];y(e)||15!==e.type?s.callee===ul?o=$l(n.helper(sl),[Tl([t]),s]):s.arguments.unshift(Tl([t])):rc(t,e)||e.properties.unshift(t),!o&&(o=s)}else 15===s.type?(rc(t,s)||s.properties.unshift(t),o=s):(o=$l(n.helper(sl),[Tl([t]),s]),r&&r.callee===al&&(r=i[i.length-2]));13===e.type?r?r.arguments[0]=o:e.props=o:r?r.arguments[0]=o:e.arguments[2]=o}function rc(e,t){let n=!1;if(4===e.key.type){const o=e.key.content;n=t.properties.some((e=>4===e.key.type&&e.key.content===o))}return n}function sc(e,t){return`_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`}const ic=/&(gt|lt|amp|apos|quot);/g,lc={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},cc={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:s,isPreTag:s,isCustomElement:s,decodeEntities:e=>e.replace(ic,((e,t)=>lc[t])),onError:Ri,onWarn:Mi,comments:!1};function ac(e,t={}){const n=function(e,t){const n=a({},cc);let o;for(o in t)n[o]=void 0===t[o]?cc[o]:t[o];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}(e,t),o=kc(n);return function(e,t=Cl){return{type:0,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}(uc(n,0,[]),wc(n,o))}function uc(e,t,n){const o=Tc(n),r=o?o.ns:0,s=[];for(;!Ac(e,t,n);){const i=e.source;let l;if(0===t||1===t)if(!e.inVPre&&Ec(i,e.options.delimiters[0]))l=Sc(e,t);else if(0===t&&"<"===i[0])if(1===i.length);else if("!"===i[1])l=Ec(i,"\x3c!--")?dc(e):Ec(i,"<!DOCTYPE")?hc(e):Ec(i,"<![CDATA[")&&0!==r?fc(e,n):hc(e);else if("/"===i[1])if(2===i.length);else{if(">"===i[2]){Nc(e,3);continue}if(/[a-z]/i.test(i[2])){yc(e,gc.End,o);continue}Pc(e,12,2),l=hc(e)}else/[a-z]/i.test(i[1])?l=mc(e,n):"?"===i[1]&&(Pc(e,21,1),l=hc(e));if(l||(l=xc(e,t)),d(l))for(let e=0;e<l.length;e++)pc(s,l[e]);else pc(s,l)}let i=!1;if(2!==t&&1!==t){const t="preserve"!==e.options.whitespace;for(let n=0;n<s.length;n++){const o=s[n];if(2===o.type)if(e.inPre)o.content=o.content.replace(/\r\n/g,"\n");else if(/[^\t\r\n\f ]/.test(o.content))t&&(o.content=o.content.replace(/[\t\r\n\f ]+/g," "));else{const e=s[n-1],r=s[n+1];!e||!r||t&&(3===e.type&&3===r.type||3===e.type&&1===r.type||1===e.type&&3===r.type||1===e.type&&1===r.type&&/[\r\n]/.test(o.content))?(i=!0,s[n]=null):o.content=" "}else 3!==o.type||e.options.comments||(i=!0,s[n]=null)}if(e.inPre&&o&&e.options.isPreTag(o.tag)){const e=s[0];e&&2===e.type&&(e.content=e.content.replace(/^\r?\n/,""))}}return i?s.filter(Boolean):s}function pc(e,t){if(2===t.type){const n=Tc(e);if(n&&2===n.type&&n.loc.end.offset===t.loc.start.offset)return n.content+=t.content,n.loc.end=t.loc.end,void(n.loc.source+=t.loc.source)}e.push(t)}function fc(e,t){Nc(e,9);const n=uc(e,3,t);return 0===e.source.length||Nc(e,3),n}function dc(e){const t=kc(e);let n;const o=/--(\!)?>/.exec(e.source);if(o){n=e.source.slice(4,o.index);const t=e.source.slice(0,o.index);let r=1,s=0;for(;-1!==(s=t.indexOf("\x3c!--",r));)Nc(e,s-r+1),r=s+1;Nc(e,o.index+o[0].length-r+1)}else n=e.source.slice(4),Nc(e,e.source.length);return{type:3,content:n,loc:wc(e,t)}}function hc(e){const t=kc(e),n="?"===e.source[1]?1:2;let o;const r=e.source.indexOf(">");return-1===r?(o=e.source.slice(n),Nc(e,e.source.length)):(o=e.source.slice(n,r),Nc(e,r+1)),{type:3,content:o,loc:wc(e,t)}}function mc(e,t){const n=e.inPre,o=e.inVPre,r=Tc(t),s=yc(e,gc.Start,r),i=e.inPre&&!n,l=e.inVPre&&!o;if(s.isSelfClosing||e.options.isVoidTag(s.tag))return i&&(e.inPre=!1),l&&(e.inVPre=!1),s;t.push(s);const c=e.options.getTextMode(s,r),a=uc(e,c,t);if(t.pop(),s.children=a,Fc(e.source,s.tag))yc(e,gc.End,r);else if(0===e.source.length&&"script"===s.tag.toLowerCase()){const e=a[0];e&&Ec(e.loc.source,"\x3c!--")}return s.loc=wc(e,s.loc.start),i&&(e.inPre=!1),l&&(e.inVPre=!1),s}var gc=(e=>(e[e.Start=0]="Start",e[e.End=1]="End",e))(gc||{});const vc=t("if,else,else-if,for,slot");function yc(e,t,n){const o=kc(e),r=/^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source),s=r[1],i=e.options.getNamespace(s,n);Nc(e,r[0].length),Oc(e);const l=kc(e),c=e.source;e.options.isPreTag(s)&&(e.inPre=!0);let u=_c(e,t);0===t&&!e.inVPre&&u.some((e=>7===e.type&&"pre"===e.name))&&(e.inVPre=!0,a(e,l),e.source=c,u=_c(e,t).filter((e=>"v-pre"!==e.name)));let p=!1;if(0===e.source.length||(p=Ec(e.source,"/>"),Nc(e,p?2:1)),1===t)return;let f=0;return e.inVPre||("slot"===s?f=2:"template"===s?u.some((e=>7===e.type&&vc(e.name)))&&(f=3):function(e,t,n){const o=n.options;if(o.isCustomElement(e))return!1;if("component"===e||/^[A-Z]/.test(e)||Bl(e)||o.isBuiltInComponent&&o.isBuiltInComponent(e)||o.isNativeTag&&!o.isNativeTag(e))return!0;for(let r=0;r<t.length;r++){const e=t[r];if(6===e.type){if("is"===e.name&&e.value&&e.value.content.startsWith("vue:"))return!0}else{if("is"===e.name)return!0;"bind"===e.name&&Zl(e.arg,"is")}}}(s,u,e)&&(f=1)),{type:1,ns:i,tag:s,tagType:f,props:u,isSelfClosing:p,children:[],loc:wc(e,o),codegenNode:void 0}}function _c(e,t){const n=[],o=new Set;for(;e.source.length>0&&!Ec(e.source,">")&&!Ec(e.source,"/>");){if(Ec(e.source,"/")){Nc(e,1),Oc(e);continue}const r=bc(e,o);6===r.type&&r.value&&"class"===r.name&&(r.value.content=r.value.content.replace(/\s+/g," ").trim()),0===t&&n.push(r),/^[^\t\r\n\f />]/.test(e.source),Oc(e)}return n}function bc(e,t){var n;const o=kc(e),r=/^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];t.has(r),t.add(r);{const t=/["'<]/g;let n;for(;n=t.exec(r);)Pc(e,17,n.index)}let s;Nc(e,r.length),/^[\t\r\n\f ]*=/.test(e.source)&&(Oc(e),Nc(e,1),Oc(e),s=function(e){const t=kc(e);let n;const o=e.source[0],r='"'===o||"'"===o;if(r){Nc(e,1);const t=e.source.indexOf(o);-1===t?n=Cc(e,e.source.length,4):(n=Cc(e,t,4),Nc(e,1))}else{const t=/^[^\t\r\n\f >]+/.exec(e.source);if(!t)return;const o=/["'<=`]/g;let r;for(;r=o.exec(t[0]);)Pc(e,18,r.index);n=Cc(e,t[0].length,4)}return{content:n,isQuoted:r,loc:wc(e,t)}}(e));const i=wc(e,o);if(!e.inVPre&&/^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(r)){const t=/(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(r);let l,c=Ec(r,"."),a=t[1]||(c||Ec(r,":")?"bind":Ec(r,"@")?"on":"slot");if(t[2]){const s="slot"===a,i=r.lastIndexOf(t[2],r.length-((null==(n=t[3])?void 0:n.length)||0)),c=wc(e,$c(e,o,i),$c(e,o,i+t[2].length+(s&&t[3]||"").length));let u=t[2],p=!0;u.startsWith("[")?(p=!1,u.endsWith("]")?u=u.slice(1,u.length-1):(Pc(e,27),u=u.slice(1))):s&&(u+=t[3]||""),l={type:4,content:u,isStatic:p,constType:p?3:0,loc:c}}if(s&&s.isQuoted){const e=s.loc;e.start.offset++,e.start.column++,e.end=Kl(e.start,s.content),e.source=e.source.slice(1,-1)}const u=t[3]?t[3].slice(1).split("."):[];return c&&u.push("prop"),{type:7,name:a,exp:s&&{type:4,content:s.content,isStatic:!1,constType:0,loc:s.loc},arg:l,modifiers:u,loc:i}}return!e.inVPre&&Ec(r,"v-"),{type:6,name:r,value:s&&{type:2,content:s.content,loc:s.loc},loc:i}}function Sc(e,t){const[n,o]=e.options.delimiters,r=e.source.indexOf(o,n.length);if(-1===r)return;const s=kc(e);Nc(e,n.length);const i=kc(e),l=kc(e),c=r-n.length,a=e.source.slice(0,c),u=Cc(e,c,t),p=u.trim(),f=u.indexOf(p);f>0&&Gl(i,a,f);return Gl(l,a,c-(u.length-p.length-f)),Nc(e,o.length),{type:5,content:{type:4,isStatic:!1,constType:0,content:p,loc:wc(e,i,l)},loc:wc(e,s)}}function xc(e,t){const n=3===t?["]]>"]:["<",e.options.delimiters[0]];let o=e.source.length;for(let s=0;s<n.length;s++){const t=e.source.indexOf(n[s],1);-1!==t&&o>t&&(o=t)}const r=kc(e);return{type:2,content:Cc(e,o,t),loc:wc(e,r)}}function Cc(e,t,n){const o=e.source.slice(0,t);return Nc(e,t),2!==n&&3!==n&&o.includes("&")?e.options.decodeEntities(o,4===n):o}function kc(e){const{column:t,line:n,offset:o}=e;return{column:t,line:n,offset:o}}function wc(e,t,n){return{start:t,end:n=n||kc(e),source:e.originalSource.slice(t.offset,n.offset)}}function Tc(e){return e[e.length-1]}function Ec(e,t){return e.startsWith(t)}function Nc(e,t){const{source:n}=e;Gl(e,n,t),e.source=n.slice(t)}function Oc(e){const t=/^[\t\r\n\f ]+/.exec(e.source);t&&Nc(e,t[0].length)}function $c(e,t,n){return Kl(t,e.originalSource.slice(t.offset,n),n)}function Pc(e,t,n,o=kc(e)){n&&(o.offset+=n,o.column+=n),e.options.onError(Vi(t,{start:o,end:o,source:""}))}function Ac(e,t,n){const o=e.source;switch(t){case 0:if(Ec(o,"</"))for(let e=n.length-1;e>=0;--e)if(Fc(o,n[e].tag))return!0;break;case 1:case 2:{const e=Tc(n);if(e&&Fc(o,e.tag))return!0;break}case 3:if(Ec(o,"]]>"))return!0}return!o}function Fc(e,t){return Ec(e,"</")&&e.slice(2,2+t.length).toLowerCase()===t.toLowerCase()&&/[\t\r\n\f />]/.test(e[2+t.length]||">")}function Rc(e,t){Vc(e,t,Mc(e,e.children[0]))}function Mc(e,t){const{children:n}=e;return 1===n.length&&1===t.type&&!ec(t)}function Vc(e,t,n=!1){const{children:o}=e,r=o.length;let s=0;for(let i=0;i<o.length;i++){const e=o[i];if(1===e.type&&0===e.tagType){const o=n?0:Ic(e,t);if(o>0){if(o>=2){e.codegenNode.patchFlag="-1",e.codegenNode=t.hoist(e.codegenNode),s++;continue}}else{const n=e.codegenNode;if(13===n.type){const o=Dc(n);if((!o||512===o||1===o)&&jc(e,t)>=2){const o=Uc(e);o&&(n.props=t.hoist(o))}n.dynamicProps&&(n.dynamicProps=t.hoist(n.dynamicProps))}}}if(1===e.type){const n=1===e.tagType;n&&t.scopes.vSlot++,Vc(e,t),n&&t.scopes.vSlot--}else if(11===e.type)Vc(e,t,1===e.children.length);else if(9===e.type)for(let n=0;n<e.branches.length;n++)Vc(e.branches[n],t,1===e.branches[n].children.length)}s&&t.transformHoist&&t.transformHoist(o,t,e),s&&s===r&&1===e.type&&0===e.tagType&&e.codegenNode&&13===e.codegenNode.type&&d(e.codegenNode.children)&&(e.codegenNode.children=t.hoist(wl(e.codegenNode.children)))}function Ic(e,t){const{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;const o=n.get(e);if(void 0!==o)return o;const r=e.codegenNode;if(13!==r.type)return 0;if(r.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag)return 0;if(Dc(r))return n.set(e,0),0;{let o=3;const s=jc(e,t);if(0===s)return n.set(e,0),0;s<o&&(o=s);for(let r=0;r<e.children.length;r++){const s=Ic(e.children[r],t);if(0===s)return n.set(e,0),0;s<o&&(o=s)}if(o>1)for(let r=0;r<e.props.length;r++){const s=e.props[r];if(7===s.type&&"bind"===s.name&&s.exp){const r=Ic(s.exp,t);if(0===r)return n.set(e,0),0;r<o&&(o=r)}}if(r.isBlock){for(let t=0;t<e.props.length;t++){if(7===e.props[t].type)return n.set(e,0),0}t.removeHelper(Di),t.removeHelper(Rl(t.inSSR,r.isComponent)),r.isBlock=!1,t.helper(Fl(t.inSSR,r.isComponent))}return n.set(e,o),o}case 2:case 3:return 3;case 9:case 11:case 10:default:return 0;case 5:case 12:return Ic(e.content,t);case 4:return e.constType;case 8:let s=3;for(let n=0;n<e.children.length;n++){const o=e.children[n];if(y(o)||_(o))continue;const r=Ic(o,t);if(0===r)return 0;r<s&&(s=r)}return s}}const Bc=new Set([il,ll,cl,al]);function Lc(e,t){if(14===e.type&&!y(e.callee)&&Bc.has(e.callee)){const n=e.arguments[0];if(4===n.type)return Ic(n,t);if(14===n.type)return Lc(n,t)}return 0}function jc(e,t){let n=3;const o=Uc(e);if(o&&15===o.type){const{properties:e}=o;for(let o=0;o<e.length;o++){const{key:r,value:s}=e[o],i=Ic(r,t);if(0===i)return i;let l;if(i<n&&(n=i),l=4===s.type?Ic(s,t):14===s.type?Lc(s,t):0,0===l)return l;l<n&&(n=l)}}return n}function Uc(e){const t=e.codegenNode;if(13===t.type)return t.props}function Dc(e){const t=e.patchFlag;return t?parseInt(t,10):void 0}function Hc(e,{filename:t="",prefixIdentifiers:o=!1,hoistStatic:s=!1,cacheHandlers:i=!1,nodeTransforms:l=[],directiveTransforms:c={},transformHoist:a=null,isBuiltInComponent:u=r,isCustomElement:p=r,expressionPlugins:f=[],scopeId:d=null,slotted:h=!0,ssr:m=!1,inSSR:g=!1,ssrCssVars:v="",bindingMetadata:_=n,inline:b=!1,isTS:S=!1,onError:x=Ri,onWarn:C=Mi,compatConfig:k}){const w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),T={selfName:w&&F($(w[1])),prefixIdentifiers:o,hoistStatic:s,cacheHandlers:i,nodeTransforms:l,directiveTransforms:c,transformHoist:a,isBuiltInComponent:u,isCustomElement:p,expressionPlugins:f,scopeId:d,slotted:h,ssr:m,inSSR:g,ssrCssVars:v,bindingMetadata:_,inline:b,isTS:S,onError:x,onWarn:C,compatConfig:k,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],constantCache:new Map,temps:0,cached:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){const t=T.helpers.get(e)||0;return T.helpers.set(e,t+1),e},removeHelper(e){const t=T.helpers.get(e);if(t){const n=t-1;n?T.helpers.set(e,n):T.helpers.delete(e)}},helperString:e=>`_${xl[T.helper(e)]}`,replaceNode(e){T.parent.children[T.childIndex]=T.currentNode=e},removeNode(e){const t=e?T.parent.children.indexOf(e):T.currentNode?T.childIndex:-1;e&&e!==T.currentNode?T.childIndex>t&&(T.childIndex--,T.onNodeRemoved()):(T.currentNode=null,T.onNodeRemoved()),T.parent.children.splice(t,1)},onNodeRemoved:()=>{},addIdentifiers(e){},removeIdentifiers(e){},hoist(e){y(e)&&(e=Nl(e)),T.hoists.push(e);const t=Nl(`_hoisted_${T.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache:(e,t=!1)=>function(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:Cl}}(T.cached++,e,t)};return T}function Wc(e,t){const n=Hc(e,t);zc(e,n),t.hoistStatic&&Rc(e,n),t.ssr||function(e,t){const{helper:n}=t,{children:o}=e;if(1===o.length){const n=o[0];if(Mc(e,n)&&n.codegenNode){const o=n.codegenNode;13===o.type&&Ml(o,t),e.codegenNode=o}else e.codegenNode=n}else if(o.length>1){let o=64;e.codegenNode=kl(t,n(Ii),void 0,e.children,o+"",void 0,void 0,!0,void 0,!1)}}(e,n),e.helpers=new Set([...n.helpers.keys()]),e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached}function zc(e,t){t.currentNode=e;const{nodeTransforms:n}=t,o=[];for(let s=0;s<n.length;s++){const r=n[s](e,t);if(r&&(d(r)?o.push(...r):o.push(r)),!t.currentNode)return;e=t.currentNode}switch(e.type){case 3:t.ssr||t.helper(Gi);break;case 5:t.ssr||t.helper(rl);break;case 9:for(let n=0;n<e.branches.length;n++)zc(e.branches[n],t);break;case 10:case 11:case 1:case 0:!function(e,t){let n=0;const o=()=>{n--};for(;n<e.children.length;n++){const r=e.children[n];y(r)||(t.parent=e,t.childIndex=n,t.onNodeRemoved=o,zc(r,t))}}(e,t)}t.currentNode=e;let r=o.length;for(;r--;)o[r]()}function Kc(e,t){const n=y(e)?t=>t===e:t=>e.test(t);return(e,o)=>{if(1===e.type){const{props:r}=e;if(3===e.tagType&&r.some(Ql))return;const s=[];for(let i=0;i<r.length;i++){const l=r[i];if(7===l.type&&n(l.name)){r.splice(i,1),i--;const n=t(e,l,o);n&&s.push(n)}}return s}}}const Gc="/*#__PURE__*/",qc=e=>`${xl[e]}: _${xl[e]}`;function Jc(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:o=!1,filename:r="template.vue.html",scopeId:s=null,optimizeImports:i=!1,runtimeGlobalName:l="Vue",runtimeModuleName:c="vue",ssrRuntimeModuleName:a="vue/server-renderer",ssr:u=!1,isTS:p=!1,inSSR:f=!1}){const d={mode:t,prefixIdentifiers:n,sourceMap:o,filename:r,scopeId:s,optimizeImports:i,runtimeGlobalName:l,runtimeModuleName:c,ssrRuntimeModuleName:a,ssr:u,isTS:p,inSSR:f,source:e.loc.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${xl[e]}`,push(e,t){d.code+=e},indent(){h(++d.indentLevel)},deindent(e=!1){e?--d.indentLevel:h(--d.indentLevel)},newline(){h(d.indentLevel)}};function h(e){d.push("\n"+" ".repeat(e))}return d}function Zc(e,t={}){const n=Jc(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:o,push:r,prefixIdentifiers:s,indent:i,deindent:l,newline:c,ssr:a}=n,u=Array.from(e.helpers),p=u.length>0,f=!s&&"module"!==o,d=n;!function(e,t){const{push:n,newline:o,runtimeGlobalName:r}=t,s=r,i=Array.from(e.helpers);if(i.length>0&&(n(`const _Vue = ${s}\n`),e.hoists.length)){n(`const { ${[zi,Ki,Gi,qi,Ji].filter((e=>i.includes(e))).map(qc).join(", ")} } = _Vue\n`)}(function(e,t){if(!e.length)return;t.pure=!0;const{push:n,newline:o}=t;o();for(let r=0;r<e.length;r++){const s=e[r];s&&(n(`const _hoisted_${r+1} = `),ea(s,t),o())}t.pure=!1})(e.hoists,t),o(),n("return ")}(e,d);if(r(`function ${a?"ssrRender":"render"}(${(a?["_ctx","_push","_parent","_attrs"]:["_ctx","_cache"]).join(", ")}) {`),i(),f&&(r("with (_ctx) {"),i(),p&&(r(`const { ${u.map(qc).join(", ")} } = _Vue`),r("\n"),c())),e.components.length&&(Yc(e.components,"component",n),(e.directives.length||e.temps>0)&&c()),e.directives.length&&(Yc(e.directives,"directive",n),e.temps>0&&c()),e.temps>0){r("let ");for(let t=0;t<e.temps;t++)r(`${t>0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(r("\n"),c()),a||r("return "),e.codegenNode?ea(e.codegenNode,n):r("null"),f&&(l(),r("}")),l(),r("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function Yc(e,t,{helper:n,push:o,newline:r,isTS:s}){const i=n("component"===t?Zi:Qi);for(let l=0;l<e.length;l++){let n=e[l];const c=n.endsWith("__self");c&&(n=n.slice(0,-6)),o(`const ${sc(n,t)} = ${i}(${JSON.stringify(n)}${c?", true":""})${s?"!":""}`),l<e.length-1&&r()}}function Qc(e,t){const n=e.length>3||!1;t.push("["),n&&t.indent(),Xc(e,t,n),n&&t.deindent(),t.push("]")}function Xc(e,t,n=!1,o=!0){const{push:r,newline:s}=t;for(let i=0;i<e.length;i++){const l=e[i];y(l)?r(l):d(l)?Qc(l,t):ea(l,t),i<e.length-1&&(n?(o&&r(","),s()):o&&r(", "))}}function ea(e,t){if(y(e))t.push(e);else if(_(e))t.push(t.helper(e));else switch(e.type){case 1:case 9:case 11:case 12:ea(e.codegenNode,t);break;case 2:!function(e,t){t.push(JSON.stringify(e.content),e)}(e,t);break;case 4:ta(e,t);break;case 5:!function(e,t){const{push:n,helper:o,pure:r}=t;r&&n(Gc);n(`${o(rl)}(`),ea(e.content,t),n(")")}(e,t);break;case 8:na(e,t);break;case 3:!function(e,t){const{push:n,helper:o,pure:r}=t;r&&n(Gc);n(`${o(Gi)}(${JSON.stringify(e.content)})`,e)}(e,t);break;case 13:!function(e,t){const{push:n,helper:o,pure:r}=t,{tag:s,props:i,children:l,patchFlag:c,dynamicProps:a,directives:u,isBlock:p,disableTracking:f,isComponent:d}=e;u&&n(o(el)+"(");p&&n(`(${o(Di)}(${f?"true":""}), `);r&&n(Gc);const h=p?Rl(t.inSSR,d):Fl(t.inSSR,d);n(o(h)+"(",e),Xc(function(e){let t=e.length;for(;t--&&null==e[t];);return e.slice(0,t+1).map((e=>e||"null"))}([s,i,l,c,a]),t),n(")"),p&&n(")");u&&(n(", "),ea(u,t),n(")"))}(e,t);break;case 14:!function(e,t){const{push:n,helper:o,pure:r}=t,s=y(e.callee)?e.callee:o(e.callee);r&&n(Gc);n(s+"(",e),Xc(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){const{push:n,indent:o,deindent:r,newline:s}=t,{properties:i}=e;if(!i.length)return void n("{}",e);const l=i.length>1||!1;n(l?"{":"{ "),l&&o();for(let c=0;c<i.length;c++){const{key:e,value:o}=i[c];oa(e,t),n(": "),ea(o,t),c<i.length-1&&(n(","),s())}l&&r(),n(l?"}":" }")}(e,t);break;case 17:!function(e,t){Qc(e.elements,t)}(e,t);break;case 18:!function(e,t){const{push:n,indent:o,deindent:r}=t,{params:s,returns:i,body:l,newline:c,isSlot:a}=e;a&&n(`_${xl[vl]}(`);n("(",e),d(s)?Xc(s,t):s&&ea(s,t);n(") => "),(c||l)&&(n("{"),o());i?(c&&n("return "),d(i)?Qc(i,t):ea(i,t)):l&&ea(l,t);(c||l)&&(r(),n("}"));a&&n(")")}(e,t);break;case 19:!function(e,t){const{test:n,consequent:o,alternate:r,newline:s}=e,{push:i,indent:l,deindent:c,newline:a}=t;if(4===n.type){const e=!jl(n.content);e&&i("("),ta(n,t),e&&i(")")}else i("("),ea(n,t),i(")");s&&l(),t.indentLevel++,s||i(" "),i("? "),ea(o,t),t.indentLevel--,s&&a(),s||i(" "),i(": ");const u=19===r.type;u||t.indentLevel++;ea(r,t),u||t.indentLevel--;s&&c(!0)}(e,t);break;case 20:!function(e,t){const{push:n,helper:o,indent:r,deindent:s,newline:i}=t;n(`_cache[${e.index}] || (`),e.isVNode&&(r(),n(`${o(hl)}(-1),`),i());n(`_cache[${e.index}] = `),ea(e.value,t),e.isVNode&&(n(","),i(),n(`${o(hl)}(1),`),i(),n(`_cache[${e.index}]`),s());n(")")}(e,t);break;case 21:Xc(e.body,t,!0,!1)}}function ta(e,t){const{content:n,isStatic:o}=e;t.push(o?JSON.stringify(n):n,e)}function na(e,t){for(let n=0;n<e.children.length;n++){const o=e.children[n];y(o)?t.push(o):ea(o,t)}}function oa(e,t){const{push:n}=t;if(8===e.type)n("["),na(e,t),n("]");else if(e.isStatic){n(jl(e.content)?e.content:JSON.stringify(e.content),e)}else n(`[${e.content}]`,e)}const ra=Kc(/^(if|else|else-if)$/,((e,t,n)=>function(e,t,n,o){if(!("else"===t.name||t.exp&&t.exp.content.trim())){const o=t.exp?t.exp.loc:e.loc;n.onError(Vi(28,t.loc)),t.exp=Nl("true",!1,o)}if("if"===t.name){const r=sa(e,t),s={type:9,loc:e.loc,branches:[r]};if(n.replaceNode(s),o)return o(s,r,!0)}else{const r=n.parent.children;let s=r.indexOf(e);for(;s-- >=-1;){const i=r[s];if(i&&3===i.type)n.removeNode(i);else{if(!i||2!==i.type||i.content.trim().length){if(i&&9===i.type){"else-if"===t.name&&void 0===i.branches[i.branches.length-1].condition&&n.onError(Vi(30,e.loc)),n.removeNode();const r=sa(e,t);i.branches.push(r);const s=o&&o(i,r,!1);zc(r,n),s&&s(),n.currentNode=null}else n.onError(Vi(30,e.loc));break}n.removeNode(i)}}}}(e,t,n,((e,t,o)=>{const r=n.parent.children;let s=r.indexOf(e),i=0;for(;s-- >=0;){const e=r[s];e&&9===e.type&&(i+=e.branches.length)}return()=>{if(o)e.codegenNode=ia(t,i,n);else{const o=function(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}(e.codegenNode);o.alternate=ia(t,i+e.branches.length-1,n)}}}))));function sa(e,t){const n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!ql(e,"for")?e.children:[e],userKey:Jl(e,"key"),isTemplateIf:n}}function ia(e,t,n){return e.condition?Al(e.condition,la(e,t,n),$l(n.helper(Gi),['""',"true"])):la(e,t,n)}function la(e,t,n){const{helper:o}=n,r=El("key",Nl(`${t}`,!1,Cl,2)),{children:s}=e,i=s[0];if(1!==s.length||1!==i.type){if(1===s.length&&11===i.type){const e=i.codegenNode;return oc(e,r,n),e}{let t=64;return kl(n,o(Ii),Tl([r]),s,t+"",void 0,void 0,!0,!1,!1,e.loc)}}{const e=i.codegenNode,t=14===(l=e).type&&l.callee===bl?l.arguments[1].returns:l;return 13===t.type&&Ml(t,n),oc(t,r,n),e}var l}const ca=Kc("for",((e,t,n)=>{const{helper:o,removeHelper:r}=n;return function(e,t,n,o){if(!t.exp)return void n.onError(Vi(31,t.loc));const r=fa(t.exp);if(!r)return void n.onError(Vi(32,t.loc));const{scopes:s}=n,{source:i,value:l,key:c,index:a}=r,u={type:11,loc:t.loc,source:i,valueAlias:l,keyAlias:c,objectIndexAlias:a,parseResult:r,children:Xl(e)?e.children:[e]};n.replaceNode(u),s.vFor++;const p=o&&o(u);return()=>{s.vFor--,p&&p()}}(e,t,n,(t=>{const s=$l(o(tl),[t.source]),i=Xl(e),l=ql(e,"memo"),c=Jl(e,"key"),a=c&&(6===c.type?Nl(c.value.content,!0):c.exp),u=c?El("key",a):null,p=4===t.source.type&&t.source.constType>0,f=p?64:c?128:256;return t.codegenNode=kl(n,o(Ii),void 0,s,f+"",void 0,void 0,!0,!p,!1,e.loc),()=>{let c;const{children:f}=t,d=1!==f.length||1!==f[0].type,h=ec(e)?e:i&&1===e.children.length&&ec(e.children[0])?e.children[0]:null;if(h?(c=h.codegenNode,i&&u&&oc(c,u,n)):d?c=kl(n,o(Ii),u?Tl([u]):void 0,e.children,"64",void 0,void 0,!0,void 0,!1):(c=f[0].codegenNode,i&&u&&oc(c,u,n),c.isBlock!==!p&&(c.isBlock?(r(Di),r(Rl(n.inSSR,c.isComponent))):r(Fl(n.inSSR,c.isComponent))),c.isBlock=!p,c.isBlock?(o(Di),o(Rl(n.inSSR,c.isComponent))):o(Fl(n.inSSR,c.isComponent))),l){const e=Pl(ha(t.parseResult,[Nl("_cached")]));e.body={type:21,body:[Ol(["const _memo = (",l.exp,")"]),Ol(["if (_cached",...a?[" && _cached.key === ",a]:[],` && ${n.helperString(Sl)}(_cached, _memo)) return _cached`]),Ol(["const _item = ",c]),Nl("_item.memo = _memo"),Nl("return _item")],loc:Cl},s.arguments.push(e,Nl("_cache"),Nl(String(n.cached++)))}else s.arguments.push(Pl(ha(t.parseResult),c,!0))}}))}));const aa=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,ua=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,pa=/^\(|\)$/g;function fa(e,t){const n=e.loc,o=e.content,r=o.match(aa);if(!r)return;const[,s,i]=r,l={source:da(n,i.trim(),o.indexOf(i,s.length)),value:void 0,key:void 0,index:void 0};let c=s.trim().replace(pa,"").trim();const a=s.indexOf(c),u=c.match(ua);if(u){c=c.replace(ua,"").trim();const e=u[1].trim();let t;if(e&&(t=o.indexOf(e,a+c.length),l.key=da(n,e,t)),u[2]){const r=u[2].trim();r&&(l.index=da(n,r,o.indexOf(r,l.key?t+e.length:a+c.length)))}}return c&&(l.value=da(n,c,a)),l}function da(e,t,n){return Nl(t,!1,zl(e,n,t.length))}function ha({value:e,key:t,index:n},o=[]){return function(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map(((e,t)=>e||Nl("_".repeat(t+1),!1)))}([e,t,n,...o])}const ma=Nl("undefined",!1),ga=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){const n=ql(e,"slot");if(n)return t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},va=(e,t,n)=>Pl(e,t,!1,!0,t.length?t[0].loc:n);function ya(e,t,n=va){t.helper(vl);const{children:o,loc:r}=e,s=[],i=[];let l=t.scopes.vSlot>0||t.scopes.vFor>0;const c=ql(e,"slot",!0);if(c){const{arg:e,exp:t}=c;e&&!Vl(e)&&(l=!0),s.push(El(e||Nl("default",!0),n(t,o,r)))}let a=!1,u=!1;const p=[],f=new Set;let d=0;for(let g=0;g<o.length;g++){const e=o[g];let r;if(!Xl(e)||!(r=ql(e,"slot",!0))){3!==e.type&&p.push(e);continue}if(c){t.onError(Vi(37,r.loc));break}a=!0;const{children:h,loc:m}=e,{arg:v=Nl("default",!0),exp:y,loc:_}=r;let b;Vl(v)?b=v?v.content:"default":l=!0;const S=n(y,h,m);let x,C,k;if(x=ql(e,"if"))l=!0,i.push(Al(x.exp,_a(v,S,d++),ma));else if(C=ql(e,/^else(-if)?$/,!0)){let e,n=g;for(;n--&&(e=o[n],3===e.type););if(e&&Xl(e)&&ql(e,"if")){o.splice(g,1),g--;let e=i[i.length-1];for(;19===e.alternate.type;)e=e.alternate;e.alternate=C.exp?Al(C.exp,_a(v,S,d++),ma):_a(v,S,d++)}else t.onError(Vi(30,C.loc))}else if(k=ql(e,"for")){l=!0;const e=k.parseResult||fa(k.exp);e?i.push($l(t.helper(tl),[e.source,Pl(ha(e),_a(v,S),!0)])):t.onError(Vi(32,k.loc))}else{if(b){if(f.has(b)){t.onError(Vi(38,_));continue}f.add(b),"default"===b&&(u=!0)}s.push(El(v,S))}}if(!c){const e=(e,t)=>El("default",n(e,t,r));a?p.length&&p.some((e=>Sa(e)))&&(u?t.onError(Vi(39,p[0].loc)):s.push(e(void 0,p))):s.push(e(void 0,o))}const h=l?2:ba(e.children)?3:1;let m=Tl(s.concat(El("_",Nl(h+"",!1))),r);return i.length&&(m=$l(t.helper(ol),[m,wl(i)])),{slots:m,hasDynamicSlots:l}}function _a(e,t,n){const o=[El("name",e),El("fn",t)];return null!=n&&o.push(El("key",Nl(String(n),!0))),Tl(o)}function ba(e){for(let t=0;t<e.length;t++){const n=e[t];switch(n.type){case 1:if(2===n.tagType||ba(n.children))return!0;break;case 9:if(ba(n.branches))return!0;break;case 10:case 11:if(ba(n.children))return!0}}return!1}function Sa(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():Sa(e.content))}const xa=new WeakMap,Ca=(e,t)=>function(){if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;const{tag:n,props:o}=e,r=1===e.tagType;let s=r?function(e,t,n=!1){let{tag:o}=e;const r=Ea(o),s=Jl(e,"is");if(s)if(r){const e=6===s.type?s.value&&Nl(s.value.content,!0):s.exp;if(e)return $l(t.helper(Yi),[e])}else 6===s.type&&s.value.content.startsWith("vue:")&&(o=s.value.content.slice(4));const i=!r&&ql(e,"is");if(i&&i.exp)return $l(t.helper(Yi),[i.exp]);const l=Bl(o)||t.isBuiltInComponent(o);if(l)return n||t.helper(l),l;return t.helper(Zi),t.components.add(o),sc(o,"component")}(e,t):`"${n}"`;const i=b(s)&&s.callee===Yi;let l,c,a,u,p,f,d=0,h=i||s===Bi||s===Li||!r&&("svg"===n||"foreignObject"===n);if(o.length>0){const n=ka(e,t,void 0,r,i);l=n.props,d=n.patchFlag,p=n.dynamicPropNames;const o=n.directives;f=o&&o.length?wl(o.map((e=>function(e,t){const n=[],o=xa.get(e);o?n.push(t.helperString(o)):(t.helper(Qi),t.directives.add(e.name),n.push(sc(e.name,"directive")));const{loc:r}=e;e.exp&&n.push(e.exp);e.arg&&(e.exp||n.push("void 0"),n.push(e.arg));if(Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const t=Nl("true",!1,r);n.push(Tl(e.modifiers.map((e=>El(e,t))),r))}return wl(n,e.loc)}(e,t)))):void 0,n.shouldUseBlock&&(h=!0)}if(e.children.length>0){s===ji&&(h=!0,d|=1024);if(r&&s!==Bi&&s!==ji){const{slots:n,hasDynamicSlots:o}=ya(e,t);c=n,o&&(d|=1024)}else if(1===e.children.length&&s!==Bi){const n=e.children[0],o=n.type,r=5===o||8===o;r&&0===Ic(n,t)&&(d|=1),c=r||2===o?n:e.children}else c=e.children}0!==d&&(a=String(d),p&&p.length&&(u=function(e){let t="[";for(let n=0,o=e.length;n<o;n++)t+=JSON.stringify(e[n]),n<o-1&&(t+=", ");return t+"]"}(p))),e.codegenNode=kl(t,s,l,c,a,u,f,!!h,!1,r,e.loc)};function ka(e,t,n=e.props,o,r,s=!1){const{tag:i,loc:c,children:a}=e;let u=[];const p=[],f=[],d=a.length>0;let h=!1,m=0,g=!1,v=!1,y=!1,b=!1,S=!1,x=!1;const C=[],k=e=>{u.length&&(p.push(Tl(wa(u),c)),u=[]),e&&p.push(e)},w=({key:e,value:n})=>{if(Vl(e)){const s=e.content,i=l(s);if(!i||o&&!r||"onclick"===s.toLowerCase()||"onUpdate:modelValue"===s||T(s)||(b=!0),i&&T(s)&&(x=!0),20===n.type||(4===n.type||8===n.type)&&Ic(n,t)>0)return;"ref"===s?g=!0:"class"===s?v=!0:"style"===s?y=!0:"key"===s||C.includes(s)||C.push(s),!o||"class"!==s&&"style"!==s||C.includes(s)||C.push(s)}else S=!0};for(let l=0;l<n.length;l++){const r=n[l];if(6===r.type){const{loc:e,name:n,value:o}=r;let s=!0;if("ref"===n&&(g=!0,t.scopes.vFor>0&&u.push(El(Nl("ref_for",!0),Nl("true")))),"is"===n&&(Ea(i)||o&&o.content.startsWith("vue:")))continue;u.push(El(Nl(n,!0,zl(e,0,n.length)),Nl(o?o.content:"",s,o?o.loc:e)))}else{const{name:n,arg:l,exp:a,loc:m}=r,g="bind"===n,v="on"===n;if("slot"===n){o||t.onError(Vi(40,m));continue}if("once"===n||"memo"===n)continue;if("is"===n||g&&Zl(l,"is")&&Ea(i))continue;if(v&&s)continue;if((g&&Zl(l,"key")||v&&d&&Zl(l,"vue:before-update"))&&(h=!0),g&&Zl(l,"ref")&&t.scopes.vFor>0&&u.push(El(Nl("ref_for",!0),Nl("true"))),!l&&(g||v)){S=!0,a?g?(k(),p.push(a)):k({type:14,loc:m,callee:t.helper(ul),arguments:o?[a]:[a,"true"]}):t.onError(Vi(g?34:35,m));continue}const y=t.directiveTransforms[n];if(y){const{props:n,needRuntime:o}=y(r,e,t);!s&&n.forEach(w),v&&l&&!Vl(l)?k(Tl(n,c)):u.push(...n),o&&(f.push(r),_(o)&&xa.set(r,o))}else E(n)||(f.push(r),d&&(h=!0))}}let N;if(p.length?(k(),N=p.length>1?$l(t.helper(sl),p,c):p[0]):u.length&&(N=Tl(wa(u),c)),S?m|=16:(v&&!o&&(m|=2),y&&!o&&(m|=4),C.length&&(m|=8),b&&(m|=32)),h||0!==m&&32!==m||!(g||x||f.length>0)||(m|=512),!t.inSSR&&N)switch(N.type){case 15:let e=-1,n=-1,o=!1;for(let t=0;t<N.properties.length;t++){const r=N.properties[t].key;Vl(r)?"class"===r.content?e=t:"style"===r.content&&(n=t):r.isHandlerKey||(o=!0)}const r=N.properties[e],s=N.properties[n];o?N=$l(t.helper(cl),[N]):(r&&!Vl(r.value)&&(r.value=$l(t.helper(il),[r.value])),s&&(y||4===s.value.type&&"["===s.value.content.trim()[0]||17===s.value.type)&&(s.value=$l(t.helper(ll),[s.value])));break;case 14:break;default:N=$l(t.helper(cl),[$l(t.helper(al),[N])])}return{props:N,directives:f,patchFlag:m,dynamicPropNames:C,shouldUseBlock:h}}function wa(e){const t=new Map,n=[];for(let o=0;o<e.length;o++){const r=e[o];if(8===r.key.type||!r.key.isStatic){n.push(r);continue}const s=r.key.content,i=t.get(s);i?("style"===s||"class"===s||l(s))&&Ta(i,r):(t.set(s,r),n.push(r))}return n}function Ta(e,t){17===e.value.type?e.value.elements.push(t.value):e.value=wl([e.value,t.value],e.loc)}function Ea(e){return"component"===e||"Component"===e}const Na=(e,t)=>{if(ec(e)){const{children:n,loc:o}=e,{slotName:r,slotProps:s}=function(e,t){let n,o='"default"';const r=[];for(let s=0;s<e.props.length;s++){const t=e.props[s];6===t.type?t.value&&("name"===t.name?o=JSON.stringify(t.value.content):(t.name=$(t.name),r.push(t))):"bind"===t.name&&Zl(t.arg,"name")?t.exp&&(o=t.exp):("bind"===t.name&&t.arg&&Vl(t.arg)&&(t.arg.content=$(t.arg.content)),r.push(t))}if(r.length>0){const{props:o,directives:s}=ka(e,t,r,!1,!1);n=o,s.length&&t.onError(Vi(36,s[0].loc))}return{slotName:o,slotProps:n}}(e,t),i=[t.prefixIdentifiers?"_ctx.$slots":"$slots",r,"{}","undefined","true"];let l=2;s&&(i[2]=s,l=3),n.length&&(i[3]=Pl([],n,!1,!1,o),l=4),t.scopeId&&!t.slotted&&(l=5),i.splice(l),e.codegenNode=$l(t.helper(nl),i,o)}};const Oa=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,$a=(e,t,n,o)=>{const{loc:r,modifiers:s,arg:i}=e;let l;if(4===i.type)if(i.isStatic){let e=i.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`);l=Nl(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?R($(e)):`on:${e}`,!0,i.loc)}else l=Ol([`${n.helperString(dl)}(`,i,")"]);else l=i,l.children.unshift(`${n.helperString(dl)}(`),l.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let a=n.cacheHandlers&&!c&&!n.inVOnce;if(c){const e=Wl(c.content),t=!(e||Oa.test(c.content)),n=c.content.includes(";");(t||a&&e)&&(c=Ol([`${t?"$event":"(...args)"} => ${n?"{":"("}`,c,n?"}":")"]))}let u={props:[El(l,c||Nl("() => {}",!1,r))]};return o&&(u=o(u)),a&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach((e=>e.key.isHandlerKey=!0)),u},Pa=(e,t,n)=>{const{exp:o,modifiers:r,loc:s}=e,i=e.arg;return 4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=`${i.content} || ""`),r.includes("camel")&&(4===i.type?i.content=i.isStatic?$(i.content):`${n.helperString(pl)}(${i.content})`:(i.children.unshift(`${n.helperString(pl)}(`),i.children.push(")"))),n.inSSR||(r.includes("prop")&&Aa(i,"."),r.includes("attr")&&Aa(i,"^")),!o||4===o.type&&!o.content.trim()?{props:[El(i,Nl("",!0,s))]}:{props:[El(i,o)]}},Aa=(e,t)=>{4===e.type?e.content=e.isStatic?t+e.content:`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Fa=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{const n=e.children;let o,r=!1;for(let e=0;e<n.length;e++){const t=n[e];if(Yl(t)){r=!0;for(let r=e+1;r<n.length;r++){const s=n[r];if(!Yl(s)){o=void 0;break}o||(o=n[e]=Ol([t],t.loc)),o.children.push(" + ",s),n.splice(r,1),r--}}}if(r&&(1!==n.length||0!==e.type&&(1!==e.type||0!==e.tagType||e.props.find((e=>7===e.type&&!t.directiveTransforms[e.name])))))for(let e=0;e<n.length;e++){const o=n[e];if(Yl(o)||8===o.type){const r=[];2===o.type&&" "===o.content||r.push(o),t.ssr||0!==Ic(o,t)||r.push("1"),n[e]={type:12,content:o,loc:o.loc,codegenNode:$l(t.helper(qi),r)}}}}},Ra=new WeakSet,Ma=(e,t)=>{if(1===e.type&&ql(e,"once",!0)){if(Ra.has(e)||t.inVOnce||t.inSSR)return;return Ra.add(e),t.inVOnce=!0,t.helper(hl),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0))}}},Va=(e,t,n)=>{const{exp:o,arg:r}=e;if(!o)return n.onError(Vi(41,e.loc)),Ia();const s=o.loc.source,i=4===o.type?o.content:s,l=n.bindingMetadata[s];if("props"===l||"props-aliased"===l)return Ia();if(!i.trim()||!Wl(i))return n.onError(Vi(42,o.loc)),Ia();const c=r||Nl("modelValue",!0),a=r?Vl(r)?`onUpdate:${$(r.content)}`:Ol(['"onUpdate:" + ',r]):"onUpdate:modelValue";let u;u=Ol([`${n.isTS?"($event: any)":"$event"} => ((`,o,") = $event)"]);const p=[El(c,e.exp),El(a,u)];if(e.modifiers.length&&1===t.tagType){const t=e.modifiers.map((e=>(jl(e)?e:JSON.stringify(e))+": true")).join(", "),n=r?Vl(r)?`${r.content}Modifiers`:Ol([r,' + "Modifiers"']):"modelModifiers";p.push(El(n,Nl(`{ ${t} }`,!1,e.loc,2)))}return Ia(p)};function Ia(e=[]){return{props:e}}const Ba=new WeakSet,La=(e,t)=>{if(1===e.type){const n=ql(e,"memo");if(!n||Ba.has(e))return;return Ba.add(e),()=>{const o=e.codegenNode||t.currentNode.codegenNode;o&&13===o.type&&(1!==e.tagType&&Ml(o,t),e.codegenNode=$l(t.helper(bl),[n.exp,Pl(void 0,o),"_cache",String(t.cached++)]))}}};function ja(e,t={}){const n=t.onError||Ri,o="module"===t.mode;!0===t.prefixIdentifiers?n(Vi(47)):o&&n(Vi(48));t.cacheHandlers&&n(Vi(49)),t.scopeId&&!o&&n(Vi(50));const r=y(e)?ac(e,t):e,[s,i]=[[Ma,ra,La,ca,Na,Ca,ga,Fa],{on:$a,bind:Pa,model:Va}];return Wc(r,a({},t,{prefixIdentifiers:false,nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:a({},i,t.directiveTransforms||{})})),Zc(r,a({},t,{prefixIdentifiers:false}))}const Ua=Symbol(""),Da=Symbol(""),Ha=Symbol(""),Wa=Symbol(""),za=Symbol(""),Ka=Symbol(""),Ga=Symbol(""),qa=Symbol(""),Ja=Symbol(""),Za=Symbol("");var Ya;let Qa;Ya={[Ua]:"vModelRadio",[Da]:"vModelCheckbox",[Ha]:"vModelText",[Wa]:"vModelSelect",[za]:"vModelDynamic",[Ka]:"withModifiers",[Ga]:"withKeys",[qa]:"vShow",[Ja]:"Transition",[Za]:"TransitionGroup"},Object.getOwnPropertySymbols(Ya).forEach((e=>{xl[e]=Ya[e]}));const Xa=t("style,iframe,script,noscript",!0),eu={isVoidTag:Z,isNativeTag:e=>q(e)||J(e),isPreTag:e=>"pre"===e,decodeEntities:function(e,t=!1){return Qa||(Qa=document.createElement("div")),t?(Qa.innerHTML=`<div foo="${e.replace(/"/g,""")}">`,Qa.children[0].getAttribute("foo")):(Qa.innerHTML=e,Qa.textContent)},isBuiltInComponent:e=>Il(e,"Transition")?Ja:Il(e,"TransitionGroup")?Za:void 0,getNamespace(e,t){let n=t?t.ns:0;if(t&&2===n)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some((e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content)))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(n=0);else t&&1===n&&("foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(n=0));if(0===n){if("svg"===e)return 1;if("math"===e)return 2}return n},getTextMode({tag:e,ns:t}){if(0===t){if("textarea"===e||"title"===e)return 1;if(Xa(e))return 2}return 0}},tu=(e,t)=>{const n=K(e);return Nl(JSON.stringify(n),!1,t,3)};function nu(e,t){return Vi(e,t)}const ou=t("passive,once,capture"),ru=t("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),su=t("left,right"),iu=t("onkeyup,onkeydown,onkeypress",!0),lu=(e,t)=>Vl(e)&&"onclick"===e.content.toLowerCase()?Nl(t,!0):4!==e.type?Ol(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,cu=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||t.removeNode()},au=[e=>{1===e.type&&e.props.forEach(((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:Nl("style",!0,t.loc),exp:tu(t.value.content,t.loc),modifiers:[],loc:t.loc})}))}],uu={cloak:()=>({props:[]}),html:(e,t,n)=>{const{exp:o,loc:r}=e;return o||n.onError(nu(53,r)),t.children.length&&(n.onError(nu(54,r)),t.children.length=0),{props:[El(Nl("innerHTML",!0,r),o||Nl("",!0))]}},text:(e,t,n)=>{const{exp:o,loc:r}=e;return o||n.onError(nu(55,r)),t.children.length&&(n.onError(nu(56,r)),t.children.length=0),{props:[El(Nl("textContent",!0),o?Ic(o,n)>0?o:$l(n.helperString(rl),[o],r):Nl("",!0))]}},model:(e,t,n)=>{const o=Va(e,t,n);if(!o.props.length||1===t.tagType)return o;e.arg&&n.onError(nu(58,e.arg.loc));const{tag:r}=t,s=n.isCustomElement(r);if("input"===r||"textarea"===r||"select"===r||s){let i=Ha,l=!1;if("input"===r||s){const o=Jl(t,"type");if(o){if(7===o.type)i=za;else if(o.value)switch(o.value.content){case"radio":i=Ua;break;case"checkbox":i=Da;break;case"file":l=!0,n.onError(nu(59,e.loc))}}else(function(e){return e.props.some((e=>!(7!==e.type||"bind"!==e.name||e.arg&&4===e.arg.type&&e.arg.isStatic)))})(t)&&(i=za)}else"select"===r&&(i=Wa);l||(o.needRuntime=n.helper(i))}else n.onError(nu(57,e.loc));return o.props=o.props.filter((e=>!(4===e.key.type&&"modelValue"===e.key.content))),o},on:(e,t,n)=>$a(e,t,n,(t=>{const{modifiers:o}=e;if(!o.length)return t;let{key:r,value:s}=t.props[0];const{keyModifiers:i,nonKeyModifiers:l,eventOptionModifiers:c}=((e,t,n,o)=>{const r=[],s=[],i=[];for(let l=0;l<t.length;l++){const n=t[l];ou(n)?i.push(n):su(n)?Vl(e)?iu(e.content)?r.push(n):s.push(n):(r.push(n),s.push(n)):ru(n)?s.push(n):r.push(n)}return{keyModifiers:r,nonKeyModifiers:s,eventOptionModifiers:i}})(r,o);if(l.includes("right")&&(r=lu(r,"onContextmenu")),l.includes("middle")&&(r=lu(r,"onMouseup")),l.length&&(s=$l(n.helper(Ka),[s,JSON.stringify(l)])),!i.length||Vl(r)&&!iu(r.content)||(s=$l(n.helper(Ga),[s,JSON.stringify(i)])),c.length){const e=c.map(F).join("");r=Vl(r)?Nl(`${r.content}${e}`,!0):Ol(["(",r,`) + "${e}"`])}return{props:[El(r,s)]}})),show:(e,t,n)=>{const{exp:o,loc:r}=e;return o||n.onError(nu(61,r)),{props:[],needRuntime:n.helper(qa)}}};const pu=Object.create(null);function fu(e,t){if(!y(e)){if(!e.nodeType)return r;e=e.innerHTML}const n=e,o=pu[n];if(o)return o;if("#"===e[0]){const t=document.querySelector(e);e=t?t.innerHTML:""}const s=a({hoistStatic:!0,onError:void 0,onWarn:r},t);s.isCustomElement||"undefined"==typeof customElements||(s.isCustomElement=e=>!!customElements.get(e));const{code:i}=function(e,t={}){return ja(e,a({},eu,t,{nodeTransforms:[cu,...au,...t.nodeTransforms||[]],directiveTransforms:a({},uu,t.directiveTransforms||{}),transformHoist:null}))}(e,s),l=new Function(i)();return l._rc=!0,pu[n]=l}return ls(fu),e.BaseTransition=Ln,e.BaseTransitionPropsValidators=Bn,e.Comment=kr,e.EffectScope=oe,e.Fragment=xr,e.KeepAlive=Zn,e.ReactiveEffect=me,e.Static=wr,e.Suspense=xn,e.Teleport=br,e.Text=Cr,e.Transition=Bs,e.TransitionGroup=oi,e.VueElement=Fs,e.assertNumber=function(e,t){},e.callWithAsyncErrorHandling=Ut,e.callWithErrorHandling=jt,e.camelize=$,e.capitalize=F,e.cloneVNode=Dr,e.compatUtils=null,e.compile=fu,e.computed=fs,e.createApp=(...e)=>{const t=Ni().createApp(...e),{mount:n}=t;return t.mount=e=>{const o=Ai(e);if(!o)return;const r=t._component;v(r)||r.render||r.template||(r.template=o.innerHTML),o.innerHTML="";const s=n(o,!1,o instanceof SVGElement);return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),s},t},e.createBlock=Fr,e.createCommentVNode=function(e="",t=!1){return t?(Nr(),Fr(kr,null,e)):jr(kr,null,e)},e.createElementBlock=function(e,t,n,o,r,s){return Ar(Lr(e,t,n,o,r,s,!0))},e.createElementVNode=Lr,e.createHydrationRenderer=fr,e.createPropsRestProxy=function(e,t){const n={};for(const o in e)t.includes(o)||Object.defineProperty(n,o,{enumerable:!0,get:()=>e[o]});return n},e.createRenderer=pr,e.createSSRApp=(...e)=>{const t=Oi().createApp(...e),{mount:n}=t;return t.mount=e=>{const t=Ai(e);if(t)return n(t,!0,t instanceof SVGElement)},t},e.createSlots=function(e,t){for(let n=0;n<t.length;n++){const o=t[n];if(d(o))for(let t=0;t<o.length;t++)e[o[t].name]=o[t].fn;else o&&(e[o.name]=o.key?(...e)=>{const t=o.fn(...e);return t&&(t.key=o.key),t}:o.fn)}return e},e.createStaticVNode=function(e,t){const n=jr(wr,null,e);return n.staticCount=t,n},e.createTextVNode=Hr,e.createVNode=jr,e.customRef=function(e){return new Mt(e)},e.defineAsyncComponent=function(e){v(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:s,suspensible:i=!0,onError:l}=e;let c,a=null,u=0;const p=()=>{let e;return a||(e=a=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),l)return new Promise(((t,n)=>{l(e,(()=>t((u++,a=null,p()))),(()=>n(e)),u+1)}));throw e})).then((t=>e!==a&&a?a:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),c=t,t))))};return Kn({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const e=Yr;if(c)return()=>qn(c,e);const t=t=>{a=null,Dt(t,e,13,!o)};if(i&&e.suspense)return p().then((t=>()=>qn(t,e))).catch((e=>(t(e),()=>o?jr(o,{error:e}):null)));const l=Ot(!1),u=Ot(),f=Ot(!!r);return r&&setTimeout((()=>{f.value=!1}),r),null!=s&&setTimeout((()=>{if(!l.value&&!u.value){const e=new Error(`Async component timed out after ${s}ms.`);t(e),u.value=e}}),s),p().then((()=>{l.value=!0,e.parent&&Jn(e.parent.vnode)&&Xt(e.parent.update)})).catch((e=>{t(e),u.value=e})),()=>l.value&&c?qn(c,e):u.value&&o?jr(o,{error:u.value}):n&&!f.value?jr(n):void 0}})},e.defineComponent=Kn,e.defineCustomElement=Ps,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=e=>Ps(e,Pi),e.defineSlots=function(){return null},e.effect=function(e,t){e.effect&&(e=e.effect.fn);const n=new me(e);t&&(a(n,t),t.scope&&re(n,t.scope)),t&&t.lazy||n.run();const o=n.run.bind(n);return o.effect=n,o},e.effectScope=function(e){return new oe(e)},e.getCurrentInstance=Qr,e.getCurrentScope=se,e.getTransitionRawChildren=zn,e.guardReactiveProps=Ur,e.h=ds,e.handleError=Dt,e.hasInjectionContext=function(){return!!(Yr||fn||Wo)},e.hydrate=Pi,e.initCustomFormatter=function(){},e.initDirectivesForSSR=Fi,e.inject=Ko,e.isMemoSame=ms,e.isProxy=St,e.isReactive=yt,e.isReadonly=_t,e.isRef=Nt,e.isRuntimeOnly=()=>!os,e.isShallow=bt,e.isVNode=Rr,e.markRaw=Ct,e.mergeDefaults=function(e,t){const n=No(e);for(const o in t){if(o.startsWith("__skip"))continue;let e=n[o];e?d(e)||v(e)?e=n[o]={type:e,default:t[o]}:e.default=t[o]:null===e&&(e=n[o]={default:t[o]}),e&&t[`__skip_${o}`]&&(e.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?d(e)&&d(t)?e.concat(t):a({},No(e),No(t)):e||t},e.mergeProps=Gr,e.nextTick=Qt,e.normalizeClass=G,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!y(t)&&(e.class=G(t)),n&&(e.style=D(n)),e},e.normalizeStyle=D,e.onActivated=Qn,e.onBeforeMount=io,e.onBeforeUnmount=uo,e.onBeforeUpdate=co,e.onDeactivated=Xn,e.onErrorCaptured=go,e.onMounted=lo,e.onRenderTracked=mo,e.onRenderTriggered=ho,e.onScopeDispose=function(e){ne&&ne.cleanups.push(e)},e.onServerPrefetch=fo,e.onUnmounted=po,e.onUpdated=ao,e.openBlock=Nr,e.popScopeId=function(){dn=null},e.provide=zo,e.proxyRefs=Rt,e.pushScopeId=function(e){dn=e},e.queuePostFlushCb=tn,e.reactive=ht,e.readonly=gt,e.ref=Ot,e.registerRuntimeCompiler=ls,e.render=$i,e.renderList=function(e,t,n,o){let r;const s=n&&n[o];if(d(e)||y(e)){r=new Array(e.length);for(let n=0,o=e.length;n<o;n++)r[n]=t(e[n],n,void 0,s&&s[n])}else if("number"==typeof e){r=new Array(e);for(let n=0;n<e;n++)r[n]=t(n+1,n,void 0,s&&s[n])}else if(b(e))if(e[Symbol.iterator])r=Array.from(e,((e,n)=>t(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);r=new Array(n.length);for(let o=0,i=n.length;o<i;o++){const i=n[o];r[o]=t(e[i],i,o,s&&s[o])}}else r=[];return n&&(n[o]=r),r},e.renderSlot=function(e,t,n={},o,r){if(fn.isCE||fn.parent&&Gn(fn.parent)&&fn.parent.isCE)return"default"!==t&&(n.name=t),jr("slot",n,o&&o());let s=e[t];s&&s._c&&(s._d=!1),Nr();const i=s&&So(s(n)),l=Fr(xr,{key:n.key||i&&i.key||`_${t}`},i||(o?o():[]),i&&1===e._?64:-2);return!r&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l},e.resolveComponent=function(e,t){return _o(vo,e,!0,t)||e},e.resolveDirective=function(e){return _o("directives",e)},e.resolveDynamicComponent=function(e){return y(e)?_o(vo,e,!1)||e:e||yo},e.resolveFilter=null,e.resolveTransitionHooks=Un,e.setBlockTracking=Pr,e.setDevtoolsHook=function t(n,o){var r,s;if(e.devtools=n,e.devtools)e.devtools.enabled=!0,cn.forEach((({event:t,args:n})=>e.devtools.emit(t,...n))),cn=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null==(s=null==(r=window.navigator)?void 0:r.userAgent)?void 0:s.includes("jsdom"))){(o.__VUE_DEVTOOLS_HOOK_REPLAY__=o.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{t(e,o)})),setTimeout((()=>{e.devtools||(o.__VUE_DEVTOOLS_HOOK_REPLAY__=null,cn=[])}),3e3)}else cn=[]},e.setTransitionHooks=Wn,e.shallowReactive=mt,e.shallowReadonly=function(e){return vt(e,!0,je,ct,ft)},e.shallowRef=function(e){return $t(e,!0)},e.ssrContextKey=hs,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=e=>y(e)?e:null==e?"":d(e)||b(e)&&(e.toString===x||!v(e.toString))?JSON.stringify(e,te,2):String(e),e.toHandlerKey=R,e.toHandlers=function(e,t){const n={};for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:R(o)]=e[o];return n},e.toRaw=xt,e.toRef=function(e,t,n){return Nt(e)?e:v(e)?new It(e):b(e)&&arguments.length>1?Bt(e,t,n):Ot(e)},e.toRefs=function(e){const t=d(e)?new Array(e.length):{};for(const n in e)t[n]=Bt(e,n);return t},e.toValue=function(e){return v(e)?e():At(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){Et(e)},e.unref=At,e.useAttrs=function(){return Eo().attrs},e.useCssModule=function(e="$style"){return n},e.useCssVars=function(e){const t=Qr();if(!t)return;const n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach((e=>Ms(e,n)))},o=()=>{const o=e(t.proxy);Rs(t.subTree,o),n(o)};Nn(o),lo((()=>{const e=new MutationObserver(o);e.observe(t.subTree.el.parentNode,{childList:!0}),po((()=>e.disconnect()))}))},e.useModel=function(e,t,n){const o=Qr();if(n&&n.local){const n=Ot(e[t]);return $n((()=>e[t]),(e=>n.value=e)),$n(n,(n=>{n!==e[t]&&o.emit(`update:${t}`,n)})),n}return{__v_isRef:!0,get value(){return e[t]},set value(e){o.emit(`update:${t}`,e)}}},e.useSSRContext=()=>{},e.useSlots=function(){return Eo().slots},e.useTransitionState=Vn,e.vModelCheckbox=pi,e.vModelDynamic=yi,e.vModelRadio=di,e.vModelSelect=hi,e.vModelText=ui,e.vShow=Ci,e.version=gs,e.warn=function(e,...t){},e.watch=$n,e.watchEffect=function(e,t){return Pn(e,null,t)},e.watchPostEffect=Nn,e.watchSyncEffect=function(e,t){return Pn(e,null,{flush:"sync"})},e.withAsyncContext=function(e){const t=Qr();let n=e();return ts(),S(n)&&(n=n.catch((e=>{throw es(t),e}))),[n,()=>es(t)]},e.withCtx=mn,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){const o=fn;if(null===o)return e;const r=us(o)||o.proxy,s=e.dirs||(e.dirs=[]);for(let i=0;i<t.length;i++){let[e,o,l,c=n]=t[i];e&&(v(e)&&(e={mounted:e,updated:e}),e.deep&&Rn(o),s.push({dir:e,instance:r,value:o,oldValue:void 0,arg:l,modifiers:c}))}return e},e.withKeys=(e,t)=>n=>{if(!("key"in n))return;const o=A(n.key);return t.some((e=>e===o||xi[e]===o))?e(n):void 0},e.withMemo=function(e,t,n,o){const r=n[o];if(r&&ms(r,e))return r;const s=t();return s.memo=e.slice(),n[o]=s},e.withModifiers=(e,t)=>(n,...o)=>{for(let e=0;e<t.length;e++){const o=Si[t[e]];if(o&&o(n,t))return}return e(n,...o)},e.withScopeId=e=>mn,e}({}); diff --git a/src/cdh/vue3/templatetags/vue3.py b/src/cdh/vue3/templatetags/vue3.py index 90c0f6b7..44a37d99 100644 --- a/src/cdh/vue3/templatetags/vue3.py +++ b/src/cdh/vue3/templatetags/vue3.py @@ -5,15 +5,19 @@ from functools import partial from django import template +from django.conf import settings +from django.core.serializers.json import DjangoJSONEncoder +from django.templatetags.static import static from django.utils.html import format_html from django.utils.safestring import mark_safe +from django.utils.translation import get_language register = template.Library() -class VueJSONEncoder(json.JSONEncoder): +class VueJSONEncoder(DjangoJSONEncoder): def encode(self, obj): - if hasattr(obj, '_wrapped'): + if hasattr(obj, "_wrapped"): return super().encode(obj._wrapped) return super().encode(obj) @@ -37,7 +41,26 @@ def prop_js(code, context): def event_prop(name): - return 'on' + name[0].upper() + name[1:] + return "on" + name[0].upper() + name[1:] + + +@register.simple_tag +def load_vue_libs(): + if settings.DEBUG: + vue = static("cdh.vue3/vue/vue.global.js") + vue_i18n = static("cdh.vue3/vue/vue-i18n.global.js") + else: + vue = static("cdh.vue3/vue/vue.global.prod.js") + vue_i18n = static("cdh.vue3/vue/vue-i18n.global.prod.js") + + return format_html( + """ +<script src="{vue}"></script> +<script src="{vue_i18n}"></script> + """, + vue=vue, + vue_i18n=vue_i18n, + ) @register.tag @@ -48,8 +71,8 @@ def vue(parser, token): # to specify an inline display style when required by adding the word # 'inline' in the tag argument list inline = False - if 'inline' in args: - args.remove('inline') + if "inline" in args: + args.remove("inline") inline = True # in props we store (per prop) a fucntion that takes a context @@ -60,10 +83,10 @@ def vue(parser, token): component = args[1] for i in range(2, len(args)): - if args[i][0] == ':': + if args[i][0] == ":": # prop binding - if '=' in args[i]: - (name, value) = args[i][1:].split('=', 1) + if "=" in args[i]: + (name, value) = args[i][1:].split("=", 1) if value[0] in ['"', "'"]: # :prop="thing", treat thing as a javascript value props[name] = partial(prop_js, value[1:-1]) @@ -75,12 +98,12 @@ def vue(parser, token): # :prop, is the same as :prop=prop (treat prop as a python value) props[name] = partial(prop_variable, name) - elif args[i][0] == '@': - (name, value) = args[i][1:].split('=', 1) + elif args[i][0] == "@": + (name, value) = args[i][1:].split("=", 1) # @event="thing", thing should be a javascript function props[event_prop(name)] = partial(prop_js, value[1:-1]) else: - (name, value) = args[i].split('=', 1) + (name, value) = args[i].split("=", 1) if value[0] in ['"', "'"]: props[name] = partial(prop_const, value[1:-1]) @@ -97,37 +120,53 @@ def render(self, context): binding_defs = [] for prop, value in self.props.items(): try: - binding_defs.append('data["{}"] = {};'.format(prop, value(context))) - except Exception: + val = value(context) + binding_defs.append('data["{}"] = {};'.format(prop, val)) + except Exception as e: + print(e) raise RuntimeError(f'Failed binding proeprty "{prop}"') - binding = mark_safe('\n'.join(binding_defs)) + binding = mark_safe("\n".join(binding_defs)) # add a random suffix to container id, to avoid collisions - suffix = ''.join(random.sample(string.ascii_lowercase, 5)) - container = '_'.join(self.component.split('.') + [suffix]) + suffix = "".join(random.sample(string.ascii_lowercase, 5)) + container = "_".join(self.component.split(".") + [suffix]) - style = 'display:inline' if self.inline else 'width:100%' + style = "display:inline" if self.inline else "width:100%" # Retrieve the CSP nonce if present - nonce = '' - if hasattr(context, 'request') and hasattr(context.request, - 'csp_nonce'): + nonce = "" + if hasattr(context, "request") and hasattr(context.request, "csp_nonce"): nonce = context.request.csp_nonce return format_html( - ''' + """ <div id="{container}" style="{style}"></div> <script nonce="{nonce}"> (function() {{ - let data = {{}}; - {binding} - createApp({component}, data).mount('#{container}') + if (typeof Vue !== "undefined") {{ + var createApp = Vue.createApp; + }} + let data = {{}}; + {binding} + const app = createApp({component}, data) + + if (typeof VueI18n !== "undefined") {{ + const i18n = VueI18n.createI18n({{ + legacy: false, + locale: '{language}', + fallbackLocale: 'en', + }}); + app.use(i18n); + }} + + app.mount('#{container}'); }})(); - </script>''', + </script>""", binding=binding, component=self.component, container=container, style=style, nonce=nonce, + language=get_language(), ) diff --git a/yarn.lock b/yarn.lock index 7ac04744..eddfc3ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -128,8 +128,8 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -"uu-bootstrap@git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.4.0": - version "1.4.0" - resolved "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#93f16f14e932c984c85c1aaff22c2116a8c84cfb" +"uu-bootstrap@git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#1.5.0-alpha.0": + version "1.5.0-alpha.0" + resolved "git+ssh://git@github.com/DH-IT-Portal-Development/bootstrap-theme.git#0bd740cae32d73770ed4ca7f4818612c8b4bff91" dependencies: bootstrap "5.3.1"