diff --git a/.gitignore b/.gitignore index 871e43c..e2c9817 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ workspace.xml **/.idea/ .sass-cache/ /services/pb_data/ +.env diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f1f409f..df524cc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,7 +39,7 @@ lint-data-manager: - cd services/data-manager - go mod download - golangci-lint --version - - golangci-lint run -v --skip-dirs=migrations --timeout=5m + - golangci-lint run -v --timeout=5m rules: - changes: - services/data-manager/**/* @@ -51,7 +51,7 @@ lint-ical: - cd services/ical - go mod download - golangci-lint --version - - golangci-lint run -v --skip-dirs=migrations --timeout=5m + - golangci-lint run -v --timeout=5m rules: - changes: - services/ical/**/* diff --git a/charts/ci-build-deploy.yml b/charts/ci-build-deploy.yml index 72d7f19..29a4d5a 100644 --- a/charts/ci-build-deploy.yml +++ b/charts/ci-build-deploy.yml @@ -17,13 +17,14 @@ docker build --pull \ -t $IMAGE_TAG \ -f $DOCKERFILE \ + --build-arg COMMIT_HASH=$CI_COMMIT_SHORT_SHA \ --target $BUILD_TARGET \ $BUILD_PATH - docker push "$IMAGE_TAG" artifacts: - paths: - - .env_file - expire_in: 1 hour + reports: + dotenv: build.env + expire_in: 1 day .build-data-manager-image: extends: .build-image @@ -32,7 +33,7 @@ BUILD_PATH: "./services" DOCKERFILE: "./services/data-manager/Dockerfile" after_script: - - echo "export DATA_MANAGER_IMAGE=$IMAGE_TAG" >> .env_file + - echo "DATA_MANAGER_IMAGE=$IMAGE_TAG" >> build.env build-data-manager-image-dev: extends: .build-data-manager-image @@ -59,7 +60,7 @@ build-data-manager-image-prod: BUILD_PATH: "./services" DOCKERFILE: "./services/ical/Dockerfile" after_script: - - echo "export ICAL_IMAGE=$IMAGE_TAG" >> .env_file + - echo "ICAL_IMAGE=$IMAGE_TAG" >> build.env build-ical-image-dev: extends: .build-ical-image @@ -86,7 +87,7 @@ build-ical-image-prod: BUILD_PATH: "./frontend" DOCKERFILE: "./frontend/Dockerfile" after_script: - - echo "export FRONTEND_IMAGE=$IMAGE_TAG" >> .env_file + - echo "FRONTEND_IMAGE=$IMAGE_TAG" >> build.env build-frontend-image-dev: extends: .build-frontend-image @@ -117,10 +118,9 @@ build-frontend-image-prod: CHART_FILE: $CI_PROJECT_DIR/charts/Chart.yaml before_script: - apk add --no-cache gettext - - echo "export HELM_ARTIFACT_JOB_NAME=$CI_JOB_NAME" >> .env_file - - echo "export PROJECT_URL=$PROJECT_URL" >> .env_file - - echo "export PROJECT_NAME=$PROJECT_NAME" >> .env_file - - source .env_file + - echo "HELM_ARTIFACT_JOB_NAME=$CI_JOB_NAME" >> package.env + - echo "PROJECT_URL=$PROJECT_URL" >> package.env + - echo "PROJECT_NAME=$PROJECT_NAME" >> package.env - echo "Updating deployment URLs..." - ': "${DATA_MANAGER_IMAGE:=$CI_REGISTRY_IMAGE/data-manager:$FALLBACK_TAG}"' - ': "${ICAL_IMAGE:=$CI_REGISTRY_IMAGE/ical:$FALLBACK_TAG}"' @@ -137,8 +137,9 @@ build-frontend-image-prod: artifacts: paths: - "*.tgz" - - .env_file - expire_in: 1 hour + reports: + dotenv: package.env + expire_in: 1 day package-helm-chart-dev: extends: .package-helm-chart @@ -191,7 +192,6 @@ trigger_deploy: image: alpine:latest before_script: - apk add --no-cache curl - - source .env_file script: - echo "Triggering deploy pipeline ..." - | diff --git a/charts/templates/deployment-data-manager.yaml b/charts/templates/deployment-data-manager.yaml index 29b1cb0..8b4ce1d 100644 --- a/charts/templates/deployment-data-manager.yaml +++ b/charts/templates/deployment-data-manager.yaml @@ -37,6 +37,9 @@ spec: - name: data-manager containerPort: {{ .Values.dataManager.service.targetPort }} protocol: TCP + - name: data-man-proto + containerPort: {{ .Values.dataManager.service.protobufTargetPort }} + protocol: TCP volumeMounts: {{- if .Values.persistence.enabled }} - name: {{ include "htwkalender.name" . }}-storage diff --git a/charts/templates/deployment-ical.yaml b/charts/templates/deployment-ical.yaml index 6454d8a..e4cf32c 100644 --- a/charts/templates/deployment-ical.yaml +++ b/charts/templates/deployment-ical.yaml @@ -33,6 +33,9 @@ spec: - name: ical containerPort: {{ .Values.ical.service.targetPort }} protocol: TCP + - name: ical-protobuf + containerPort: {{ .Values.ical.service.protobufTargetPort }} + protocol: TCP env: - name: DATA_MANAGER_URL value: {{ .Values.dataManager.service.name }} \ No newline at end of file diff --git a/charts/templates/service-data-manager.yaml b/charts/templates/service-data-manager.yaml index 331f2b0..f98c3de 100644 --- a/charts/templates/service-data-manager.yaml +++ b/charts/templates/service-data-manager.yaml @@ -15,3 +15,7 @@ spec: targetPort: {{ .Values.dataManager.service.targetPort }} protocol: TCP name: data-manager + - port: {{ .Values.dataManager.service.protobufPort }} + targetPort: {{ .Values.dataManager.service.protobufTargetPort }} + protocol: TCP + name: data-man-proto \ No newline at end of file diff --git a/charts/templates/service-ical.yaml b/charts/templates/service-ical.yaml index f93cd47..8015fa6 100644 --- a/charts/templates/service-ical.yaml +++ b/charts/templates/service-ical.yaml @@ -15,3 +15,7 @@ spec: targetPort: {{ .Values.ical.service.targetPort }} protocol: TCP name: ical + - port: {{ .Values.ical.service.protobufPort }} + targetPort: {{ .Values.ical.service.protobufTargetPort }} + protocol: TCP + name: ical-protobuf diff --git a/charts/values.yaml b/charts/values.yaml index e9d4e43..a22a06f 100644 --- a/charts/values.yaml +++ b/charts/values.yaml @@ -10,6 +10,8 @@ dataManager: name: &service_data_manager htwkalender-data-manager port: &service_data_manager_port 8090 targetPort: 8090 + protobufPort: 50051 + protobufTargetPort: 50051 ical: name: ical replicas: 2 @@ -20,6 +22,8 @@ ical: name: &service_ical htwkalender-ical port: &service_ical_port 8091 targetPort: 8091 + protobufPort: 50051 + protobufTargetPort: 50051 frontend: name: frontend host: &frontend_host "FRONTEND_URL" diff --git a/docker-compose.yml b/docker-compose.yml index 33d40b5..cbdefe9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,6 +43,8 @@ services: dockerfile: Dockerfile context: ./frontend target: prod + args: + - COMMIT_HASH=${COMMIT_HASH} # open port 8000 ports: - "8000:8000" diff --git a/frontend/Dockerfile b/frontend/Dockerfile index ead343c..f54973a 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -17,17 +17,25 @@ # build stage FROM docker.io/node:lts-alpine AS build +ARG COMMIT_HASH +ENV COMMIT_HASH=$COMMIT_HASH + WORKDIR /app COPY package*.json ./ RUN npm ci COPY / ./ +RUN echo "COMMIT_HASH=$COMMIT_HASH" >> .env.commit RUN npm run build # development stage FROM docker.io/node:lts-alpine AS dev +ARG COMMIT_HASH +ENV COMMIT_HASH=$COMMIT_HASH + WORKDIR /app COPY package*.json ./ +RUN echo "COMMIT_HASH=$COMMIT_HASH" >> .env.commit RUN npm install COPY . ./ diff --git a/frontend/public/primevue-sass-theme/themes/lara/lara-light/_variables.scss b/frontend/public/primevue-sass-theme/themes/lara/lara-light/_variables.scss index 13ab014..5aed6f0 100644 --- a/frontend/public/primevue-sass-theme/themes/lara/lara-light/_variables.scss +++ b/frontend/public/primevue-sass-theme/themes/lara/lara-light/_variables.scss @@ -664,7 +664,7 @@ $contrastMessageTextColor: $contrastButtonTextColor !default; $contrastMessageIconColor: $contrastButtonTextColor !default; //overlays -$overlayContentBorder: 0 none !default; +$overlayContentBorder: 0px solid $shade300 !default; $overlayContentBg: $panelContentBg !default; $overlayContainerShadow: 0 1px 3px rgba(0, 0, 0, 0.3) !default; diff --git a/frontend/public/themes/lara-light-blue/theme.css b/frontend/public/themes/lara-light-blue/theme.css index 0da7166..9ca1178 100644 --- a/frontend/public/themes/lara-light-blue/theme.css +++ b/frontend/public/themes/lara-light-blue/theme.css @@ -1,16 +1,5 @@ :root { - font-family: - "Twemoji Country Flags", - "Source Sans Pro", - -apple-system, - BlinkMacSystemFont, - Segoe UI, - Roboto, - Arial, - sans-serif, - Apple Color Emoji, - Segoe UI Emoji, - Segoe UI Symbol; + font-family: "Twemoji Country Flags", "Source Sans Pro", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; font-variation-settings: normal; --font-family: "Twemoji Country Flags", "Source Sans Pro", -apple-system, @@ -57,379 +46,379 @@ --surface-overlay: #ffffff; --surface-border: #dfe7ef; --surface-hover: #f6f9fc; - --focus-ring: 0 0 0 0.2rem #09af5e; + --focus-ring: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); --maskbg: rgba(0, 0, 0, 0.4); - --highlight-bg: #e9f1ed; - --highlight-text-color: #001e0f; + --highlight-bg: rgb(233.28, 240.52, 236.9978378378); + --highlight-text-color: rgb(0, 29.6, 15.2); color-scheme: light; } :root { - --blue-50: #f2f6fa; - --blue-100: #c2d3e7; - --blue-200: #91afd3; - --blue-300: #618cc0; - --blue-400: #3069ac; + --blue-50: rgb(242.25, 245.75, 249.9); + --blue-100: rgb(193.8, 210.6, 230.52); + --blue-200: rgb(145.35, 175.45, 211.14); + --blue-300: rgb(96.9, 140.3, 191.76); + --blue-400: rgb(48.45, 105.15, 172.38); --blue-500: #004699; - --blue-600: #003c82; - --blue-700: #00316b; - --blue-800: #002754; - --blue-900: #001c3d; - --green-50: #f2faf6; - --green-100: #c2e6d5; - --green-200: #91d2b3; - --green-300: #61be91; - --green-400: #30aa70; + --blue-600: rgb(0, 59.5, 130.05); + --blue-700: rgb(0, 49, 107.1); + --blue-800: rgb(0, 38.5, 84.15); + --blue-900: rgb(0, 28, 61.2); + --green-50: rgb(242.25, 249.75, 246.15); + --green-100: rgb(193.8, 229.8, 212.52); + --green-200: rgb(145.35, 209.85, 178.89); + --green-300: rgb(96.9, 189.9, 145.26); + --green-400: rgb(48.45, 169.95, 111.63); --green-500: #00964e; - --green-600: #008042; - --green-700: #006937; - --green-800: #00532b; - --green-900: #003c1f; - --yellow-50: #fffef2; - --yellow-100: #fffbc2; - --yellow-200: #fff791; - --yellow-300: #fff461; - --yellow-400: #fff030; + --green-600: rgb(0, 127.5, 66.3); + --green-700: rgb(0, 105, 54.6); + --green-800: rgb(0, 82.5, 42.9); + --green-900: rgb(0, 60, 31.2); + --yellow-50: rgb(255, 254.1, 242.25); + --yellow-100: rgb(255, 250.68, 193.8); + --yellow-200: rgb(255, 247.26, 145.35); + --yellow-300: rgb(255, 243.84, 96.9); + --yellow-400: rgb(255, 240.42, 48.45); --yellow-500: #ffed00; - --yellow-600: #d9c900; - --yellow-700: #b3a600; - --yellow-800: #8c8200; - --yellow-900: #665f00; - --cyan-50: #f2fafe; - --cyan-100: #c2e8f8; - --cyan-200: #91d5f3; - --cyan-300: #61c3ee; - --cyan-400: #30b0e8; + --yellow-600: rgb(216.75, 201.45, 0); + --yellow-700: rgb(178.5, 165.9, 0); + --yellow-800: rgb(140.25, 130.35, 0); + --yellow-900: rgb(102, 94.8, 0); + --cyan-50: rgb(242.25, 250.15, 253.6); + --cyan-100: rgb(193.8, 231.72, 248.28); + --cyan-200: rgb(145.35, 213.29, 242.96); + --cyan-300: rgb(96.9, 194.86, 237.64); + --cyan-400: rgb(48.45, 176.43, 232.32); --cyan-500: #009ee3; - --cyan-600: #0086c1; - --cyan-700: #006f9f; - --cyan-800: #00577d; - --cyan-900: #003f5b; - --pink-50: #fef2f9; - --pink-100: #f9c2e0; - --pink-200: #f491c7; - --pink-300: #ef61ae; - --pink-400: #ea3096; + --cyan-600: rgb(0, 134.3, 192.95); + --cyan-700: rgb(0, 110.6, 158.9); + --cyan-800: rgb(0, 86.9, 124.85); + --cyan-900: rgb(0, 63.2, 90.8); + --pink-50: rgb(253.7, 242.25, 248.5); + --pink-100: rgb(248.76, 193.8, 223.8); + --pink-200: rgb(243.82, 145.35, 199.1); + --pink-300: rgb(238.88, 96.9, 174.4); + --pink-400: rgb(233.94, 48.45, 149.7); --pink-500: #e5007d; - --pink-600: #c3006a; - --pink-700: #a00058; - --pink-800: #7e0045; - --pink-900: #5c0032; - --indigo-50: #f7f7fe; - --indigo-100: #dadafc; - --indigo-200: #bcbdf9; - --indigo-300: #9ea0f6; - --indigo-400: #8183f4; + --pink-600: rgb(194.65, 0, 106.25); + --pink-700: rgb(160.3, 0, 87.5); + --pink-800: rgb(125.95, 0, 68.75); + --pink-900: rgb(91.6, 0, 50); + --indigo-50: rgb(247.2, 247.35, 254.3); + --indigo-100: rgb(217.56, 218.28, 251.64); + --indigo-200: rgb(187.92, 189.21, 248.98); + --indigo-300: rgb(158.28, 160.14, 246.32); + --indigo-400: rgb(128.64, 131.07, 243.66); --indigo-500: #6366f1; - --indigo-600: #5457cd; - --indigo-700: #4547a9; - --indigo-800: #363885; - --indigo-900: #282960; - --teal-50: #f3fbfb; - --teal-100: #c7eeea; - --teal-200: #9ae0d9; - --teal-300: #6dd3c8; - --teal-400: #41c5b7; + --indigo-600: rgb(84.15, 86.7, 204.85); + --indigo-700: rgb(69.3, 71.4, 168.7); + --indigo-800: rgb(54.45, 56.1, 132.55); + --indigo-900: rgb(39.6, 40.8, 96.4); + --teal-50: rgb(243.25, 251.45, 250.55); + --teal-100: rgb(198.6, 237.96, 233.64); + --teal-200: rgb(153.95, 224.47, 216.73); + --teal-300: rgb(109.3, 210.98, 199.82); + --teal-400: rgb(64.65, 197.49, 182.91); --teal-500: #14b8a6; - --teal-600: #119c8d; - --teal-700: #0e8174; - --teal-800: #0b655b; - --teal-900: #084a42; - --orange-50: #fff8f3; - --orange-100: #feddc7; - --orange-200: #fcc39b; - --orange-300: #fba86f; - --orange-400: #fa8e42; + --teal-600: rgb(17, 156.4, 141.1); + --teal-700: rgb(14, 128.8, 116.2); + --teal-800: rgb(11, 101.2, 91.3); + --teal-900: rgb(8, 73.6, 66.4); + --orange-50: rgb(254.7, 248, 243.35); + --orange-100: rgb(253.56, 221.4, 199.08); + --orange-200: rgb(252.42, 194.8, 154.81); + --orange-300: rgb(251.28, 168.2, 110.54); + --orange-400: rgb(250.14, 141.6, 66.27); --orange-500: #f97316; - --orange-600: #d46213; - --orange-700: #ae510f; - --orange-800: #893f0c; - --orange-900: #642e09; - --bluegray-50: #f7f8f9; - --bluegray-100: #dadee3; - --bluegray-200: #bcc3cd; - --bluegray-300: #9fa9b7; - --bluegray-400: #818ea1; + --orange-600: rgb(211.65, 97.75, 18.7); + --orange-700: rgb(174.3, 80.5, 15.4); + --orange-800: rgb(136.95, 63.25, 12.1); + --orange-900: rgb(99.6, 46, 8.8); + --bluegray-50: rgb(247.25, 248.05, 249.2); + --bluegray-100: rgb(217.8, 221.64, 227.16); + --bluegray-200: rgb(188.35, 195.23, 205.12); + --bluegray-300: rgb(158.9, 168.82, 183.08); + --bluegray-400: rgb(129.45, 142.41, 161.04); --bluegray-500: #64748b; - --bluegray-600: #556376; - --bluegray-700: #465161; - --bluegray-800: #37404c; - --bluegray-900: #282e38; - --purple-50: #fbf7ff; - --purple-100: #ead6fd; - --purple-200: #dab6fc; - --purple-300: #c996fa; - --purple-400: #b975f9; + --bluegray-600: rgb(85, 98.6, 118.15); + --bluegray-700: rgb(70, 81.2, 97.3); + --bluegray-800: rgb(55, 63.8, 76.45); + --bluegray-900: rgb(40, 46.4, 55.6); + --purple-50: rgb(250.65, 246.5, 254.6); + --purple-100: rgb(234.12, 214.2, 253.08); + --purple-200: rgb(217.59, 181.9, 251.56); + --purple-300: rgb(201.06, 149.6, 250.04); + --purple-400: rgb(184.53, 117.3, 248.52); --purple-500: #a855f7; - --purple-600: #8f48d2; - --purple-700: #763cad; - --purple-800: #5c2f88; - --purple-900: #432263; - --red-50: #fef5f3; - --red-100: #f9cdc4; - --red-200: #f4a695; - --red-300: #ef7f66; - --red-400: #ea5738; + --purple-600: rgb(142.8, 72.25, 209.95); + --purple-700: rgb(117.6, 59.5, 172.9); + --purple-800: rgb(92.4, 46.75, 135.85); + --purple-900: rgb(67.2, 34, 98.8); + --red-50: rgb(253.7, 244.65, 242.7); + --red-100: rgb(248.76, 205.32, 195.96); + --red-200: rgb(243.82, 165.99, 149.22); + --red-300: rgb(238.88, 126.66, 102.48); + --red-400: rgb(233.94, 87.33, 55.74); --red-500: #e53009; - --red-600: #c32908; - --red-700: #a02206; - --red-800: #7e1a05; - --red-900: #5c1304; - --primary-50: #f2faf6; - --primary-100: #c2e5d4; - --primary-200: #91d1b2; - --primary-300: #61bd90; - --primary-400: #30a86e; + --red-600: rgb(194.65, 40.8, 7.65); + --red-700: rgb(160.3, 33.6, 6.3); + --red-800: rgb(125.95, 26.4, 4.95); + --red-900: rgb(91.6, 19.2, 3.6); + --primary-50: rgb(242.25, 249.65, 246.05); + --primary-100: rgb(193.8, 229.32, 212.04); + --primary-200: rgb(145.35, 208.99, 178.03); + --primary-300: rgb(96.9, 188.66, 144.02); + --primary-400: rgb(48.45, 168.33, 110.01); --primary-500: #00944c; - --primary-600: #007e41; - --primary-700: #006835; - --primary-800: #00512a; - --primary-900: #003b1e; - --primary-24-50: rgba(253, 254, 254, 0.962); - --primary-24-100: rgba(244, 251, 248, 0.8176); - --primary-24-200: rgba(231, 245, 238, 0.6732); - --primary-24-300: rgba(209, 236, 222, 0.5288); - --primary-24-400: rgba(161, 216, 189, 0.3844); + --primary-600: rgb(0, 125.8, 64.6); + --primary-700: rgb(0, 103.6, 53.2); + --primary-800: rgb(0, 81.4, 41.8); + --primary-900: rgb(0, 59.2, 30.4); + --primary-24-50: rgba(253.1828978622, 254.2375296912, 253.7244655582, 0.962); + --primary-24-100: rgba(244.4724770642, 250.5825688073, 247.6100917431, 0.8176); + --primary-24-200: rgba(231.2147505423, 245.0195227766, 238.3036876356, 0.6732); + --primary-24-300: rgba(208.5909980431, 235.5264187867, 222.4227005871, 0.5288); + --primary-24-400: rgba(161.2556732224, 215.6641452345, 189.1951588502, 0.3844); --primary-24-500: rgba(0, 148, 76, 0.24); - --primary-24-600: rgba(0, 65, 33, 0.354); - --primary-24-700: rgba(0, 36, 18, 0.468); - --primary-24-800: rgba(0, 21, 11, 0.582); - --primary-24-900: rgba(0, 12, 6, 0.696); - --htwk-yellow-50: #fffef2; - --htwk-yellow-100: #fffbc2; - --htwk-yellow-200: #fff791; - --htwk-yellow-300: #fff461; - --htwk-yellow-400: #fff030; + --primary-24-600: rgba(0, 64.5128205128, 33.1282051282, 0.354); + --primary-24-700: rgba(0, 35.724137931, 18.3448275862, 0.468); + --primary-24-800: rgba(0, 21.1428571429, 10.8571428571, 0.582); + --primary-24-900: rgba(0, 12.3333333333, 6.3333333333, 0.696); + --htwk-yellow-50: rgb(255, 254.1, 242.25); + --htwk-yellow-100: rgb(255, 250.68, 193.8); + --htwk-yellow-200: rgb(255, 247.26, 145.35); + --htwk-yellow-300: rgb(255, 243.84, 96.9); + --htwk-yellow-400: rgb(255, 240.42, 48.45); --htwk-yellow-500: #ffed00; - --htwk-yellow-600: #d9c900; - --htwk-yellow-700: #b3a600; - --htwk-yellow-800: #8c8200; - --htwk-yellow-900: #665f00; - --htwk-yellow-24-50: rgba(255, 255, 253, 0.962); - --htwk-yellow-24-100: rgba(255, 254, 244, 0.8176); - --htwk-yellow-24-200: rgba(255, 253, 231, 0.6732); - --htwk-yellow-24-300: rgba(255, 252, 209, 0.5288); - --htwk-yellow-24-400: rgba(255, 248, 161, 0.3844); + --htwk-yellow-600: rgb(216.75, 201.45, 0); + --htwk-yellow-700: rgb(178.5, 165.9, 0); + --htwk-yellow-800: rgb(140.25, 130.35, 0); + --htwk-yellow-900: rgb(102, 94.8, 0); + --htwk-yellow-24-50: rgba(255, 254.8717339667, 253.1828978622, 0.962); + --htwk-yellow-24-100: rgba(255, 254.2568807339, 244.4724770642, 0.8176); + --htwk-yellow-24-200: rgba(255, 253.3210412148, 231.2147505423, 0.6732); + --htwk-yellow-24-300: rgba(255, 251.7240704501, 208.5909980431, 0.5288); + --htwk-yellow-24-400: rgba(255, 248.3827534039, 161.2556732224, 0.3844); --htwk-yellow-24-500: rgba(255, 237, 0, 0.24); - --htwk-yellow-24-600: rgba(111, 103, 0, 0.354); - --htwk-yellow-24-700: rgba(62, 57, 0, 0.468); - --htwk-yellow-24-800: rgba(36, 34, 0, 0.582); - --htwk-yellow-24-900: rgba(21, 20, 0, 0.696); - --htwk-yellow-16-50: rgba(255, 255, 254, 0.958); - --htwk-yellow-16-100: rgba(255, 255, 248, 0.7984); - --htwk-yellow-16-200: rgba(255, 254, 239, 0.6388); - --htwk-yellow-16-300: rgba(255, 253, 223, 0.4792); - --htwk-yellow-16-400: rgba(255, 250, 186, 0.3196); + --htwk-yellow-24-600: rgba(111.1538461538, 103.3076923077, 0, 0.354); + --htwk-yellow-24-700: rgba(61.5517241379, 57.2068965517, 0, 0.468); + --htwk-yellow-24-800: rgba(36.4285714286, 33.8571428571, 0, 0.582); + --htwk-yellow-24-900: rgba(21.25, 19.75, 0, 0.696); + --htwk-yellow-16-50: rgba(255, 254.9179954442, 253.8382687927, 0.958); + --htwk-yellow-16-100: rgba(255, 254.5189309577, 248.1848552339, 0.7984); + --htwk-yellow-16-200: rgba(255, 253.8919112384, 239.3020758769, 0.6388); + --htwk-yellow-16-300: rgba(255, 252.7635270541, 223.3166332665, 0.4792); + --htwk-yellow-16-400: rgba(255, 250.1318864775, 186.0350584307, 0.3196); --htwk-yellow-16-500: rgba(255, 237, 0, 0.16); - --htwk-yellow-16-600: rgba(84, 78, 0, 0.286); - --htwk-yellow-16-700: rgba(43, 40, 0, 0.412); - --htwk-yellow-16-800: rgba(24, 23, 0, 0.538); - --htwk-yellow-16-900: rgba(14, 13, 0, 0.664); - --htwk-yellow-01-50: rgba(255, 255, 254, 0.955); - --htwk-yellow-01-100: rgba(255, 255, 251, 0.784); - --htwk-yellow-01-200: rgba(255, 254, 245, 0.613); - --htwk-yellow-01-300: rgba(255, 254, 235, 0.442); - --htwk-yellow-01-400: rgba(255, 252, 208, 0.271); + --htwk-yellow-16-600: rgba(84.1747572816, 78.2330097087, 0, 0.286); + --htwk-yellow-16-700: rgba(43.0120481928, 39.9759036145, 0, 0.412); + --htwk-yellow-16-800: rgba(24.4978165939, 22.768558952, 0, 0.538); + --htwk-yellow-16-900: rgba(13.9726027397, 12.9863013699, 0, 0.664); + --htwk-yellow-01-50: rgba(255, 254.9502762431, 254.2955801105, 0.955); + --htwk-yellow-01-100: rgba(255, 254.7057220708, 250.8310626703, 0.784); + --htwk-yellow-01-200: rgba(255, 254.3126110124, 245.2619893428, 0.613); + --htwk-yellow-01-300: rgba(255, 253.5765306122, 234.8341836735, 0.442); + --htwk-yellow-01-400: rgba(255, 251.7013574661, 208.2692307692, 0.271); --htwk-yellow-01-500: rgba(255, 237, 0, 0.1); - --htwk-yellow-01-600: rgba(59, 54, 0, 0.235); - --htwk-yellow-01-700: rgba(28, 26, 0, 0.37); - --htwk-yellow-01-800: rgba(15, 14, 0, 0.505); - --htwk-yellow-01-900: rgba(9, 8, 0, 0.64); - --htwk-magenta-50: #fef2f9; - --htwk-magenta-100: #f9c2e0; - --htwk-magenta-200: #f491c7; - --htwk-magenta-300: #ef61ae; - --htwk-magenta-400: #ea3096; + --htwk-yellow-01-600: rgba(58.5810810811, 54.4459459459, 0, 0.235); + --htwk-yellow-01-700: rgba(27.890625, 25.921875, 0, 0.37); + --htwk-yellow-01-800: rgba(15.4120879121, 14.3241758242, 0, 0.505); + --htwk-yellow-01-900: rgba(8.6440677966, 8.0338983051, 0, 0.64); + --htwk-magenta-50: rgb(253.7, 242.25, 248.5); + --htwk-magenta-100: rgb(248.76, 193.8, 223.8); + --htwk-magenta-200: rgb(243.82, 145.35, 199.1); + --htwk-magenta-300: rgb(238.88, 96.9, 174.4); + --htwk-magenta-400: rgb(233.94, 48.45, 149.7); --htwk-magenta-500: #e5007d; - --htwk-magenta-600: #c3006a; - --htwk-magenta-700: #a00058; - --htwk-magenta-800: #7e0045; - --htwk-magenta-900: #5c0032; - --htwk-rot-50: #fef5f3; - --htwk-rot-100: #f9cdc4; - --htwk-rot-200: #f4a695; - --htwk-rot-300: #ef7f66; - --htwk-rot-400: #ea5738; + --htwk-magenta-600: rgb(194.65, 0, 106.25); + --htwk-magenta-700: rgb(160.3, 0, 87.5); + --htwk-magenta-800: rgb(125.95, 0, 68.75); + --htwk-magenta-900: rgb(91.6, 0, 50); + --htwk-rot-50: rgb(253.7, 244.65, 242.7); + --htwk-rot-100: rgb(248.76, 205.32, 195.96); + --htwk-rot-200: rgb(243.82, 165.99, 149.22); + --htwk-rot-300: rgb(238.88, 126.66, 102.48); + --htwk-rot-400: rgb(233.94, 87.33, 55.74); --htwk-rot-500: #e53009; - --htwk-rot-600: #c32908; - --htwk-rot-700: #a02206; - --htwk-rot-800: #7e1a05; - --htwk-rot-900: #5c1304; - --htwk-gruen-50: #f2faf6; - --htwk-gruen-100: #c2e6d5; - --htwk-gruen-200: #91d2b3; - --htwk-gruen-300: #61be91; - --htwk-gruen-400: #30aa70; + --htwk-rot-600: rgb(194.65, 40.8, 7.65); + --htwk-rot-700: rgb(160.3, 33.6, 6.3); + --htwk-rot-800: rgb(125.95, 26.4, 4.95); + --htwk-rot-900: rgb(91.6, 19.2, 3.6); + --htwk-gruen-50: rgb(242.25, 249.75, 246.15); + --htwk-gruen-100: rgb(193.8, 229.8, 212.52); + --htwk-gruen-200: rgb(145.35, 209.85, 178.89); + --htwk-gruen-300: rgb(96.9, 189.9, 145.26); + --htwk-gruen-400: rgb(48.45, 169.95, 111.63); --htwk-gruen-500: #00964e; - --htwk-gruen-600: #008042; - --htwk-gruen-700: #006937; - --htwk-gruen-800: #00532b; - --htwk-gruen-900: #003c1f; - --htwk-cyan-50: #f2fafe; - --htwk-cyan-100: #c2e8f8; - --htwk-cyan-200: #91d5f3; - --htwk-cyan-300: #61c3ee; - --htwk-cyan-400: #30b0e8; + --htwk-gruen-600: rgb(0, 127.5, 66.3); + --htwk-gruen-700: rgb(0, 105, 54.6); + --htwk-gruen-800: rgb(0, 82.5, 42.9); + --htwk-gruen-900: rgb(0, 60, 31.2); + --htwk-cyan-50: rgb(242.25, 250.15, 253.6); + --htwk-cyan-100: rgb(193.8, 231.72, 248.28); + --htwk-cyan-200: rgb(145.35, 213.29, 242.96); + --htwk-cyan-300: rgb(96.9, 194.86, 237.64); + --htwk-cyan-400: rgb(48.45, 176.43, 232.32); --htwk-cyan-500: #009ee3; - --htwk-cyan-600: #0086c1; - --htwk-cyan-700: #006f9f; - --htwk-cyan-800: #00577d; - --htwk-cyan-900: #003f5b; - --htwk-blau-50: #f2f6fa; - --htwk-blau-100: #c2d3e7; - --htwk-blau-200: #91afd3; - --htwk-blau-300: #618cc0; - --htwk-blau-400: #3069ac; + --htwk-cyan-600: rgb(0, 134.3, 192.95); + --htwk-cyan-700: rgb(0, 110.6, 158.9); + --htwk-cyan-800: rgb(0, 86.9, 124.85); + --htwk-cyan-900: rgb(0, 63.2, 90.8); + --htwk-blau-50: rgb(242.25, 245.75, 249.9); + --htwk-blau-100: rgb(193.8, 210.6, 230.52); + --htwk-blau-200: rgb(145.35, 175.45, 211.14); + --htwk-blau-300: rgb(96.9, 140.3, 191.76); + --htwk-blau-400: rgb(48.45, 105.15, 172.38); --htwk-blau-500: #004699; - --htwk-blau-600: #003c82; - --htwk-blau-700: #00316b; - --htwk-blau-800: #002754; - --htwk-blau-900: #001c3d; - --htwk-silbergrau-50: #fcfcfc; - --htwk-silbergrau-100: #eff1f1; - --htwk-silbergrau-200: #e3e5e6; - --htwk-silbergrau-300: #d7dadc; - --htwk-silbergrau-400: #caced1; + --htwk-blau-600: rgb(0, 59.5, 130.05); + --htwk-blau-700: rgb(0, 49, 107.1); + --htwk-blau-800: rgb(0, 38.5, 84.15); + --htwk-blau-900: rgb(0, 28, 61.2); + --htwk-silbergrau-50: rgb(251.75, 252, 252.15); + --htwk-silbergrau-100: rgb(239.4, 240.6, 241.32); + --htwk-silbergrau-200: rgb(227.05, 229.2, 230.49); + --htwk-silbergrau-300: rgb(214.7, 217.8, 219.66); + --htwk-silbergrau-400: rgb(202.35, 206.4, 208.83); --htwk-silbergrau-500: #bec3c6; - --htwk-silbergrau-600: #a2a6a8; - --htwk-silbergrau-700: #85898b; - --htwk-silbergrau-800: #696b6d; - --htwk-silbergrau-900: #4c4e4f; - --htwk-silbergrau-80-50: #fcfdfd; - --htwk-silbergrau-80-100: #f3f4f4; - --htwk-silbergrau-80-200: #e9eceb; - --htwk-silbergrau-80-300: #dfe4e2; - --htwk-silbergrau-80-400: #d5dbda; + --htwk-silbergrau-600: rgb(161.5, 165.75, 168.3); + --htwk-silbergrau-700: rgb(133, 136.5, 138.6); + --htwk-silbergrau-800: rgb(104.5, 107.25, 108.9); + --htwk-silbergrau-900: rgb(76, 78, 79.2); + --htwk-silbergrau-80-50: rgb(252.4, 252.8, 252.7); + --htwk-silbergrau-80-100: rgb(242.52, 244.44, 243.96); + --htwk-silbergrau-80-200: rgb(232.64, 236.08, 235.22); + --htwk-silbergrau-80-300: rgb(222.76, 227.72, 226.48); + --htwk-silbergrau-80-400: rgb(212.88, 219.36, 217.74); --htwk-silbergrau-80-500: #cbd3d1; - --htwk-silbergrau-80-600: #adb3b2; - --htwk-silbergrau-80-700: #8e9492; - --htwk-silbergrau-80-800: #707473; - --htwk-silbergrau-80-900: #515454; - --htwk-silbergrau-60-50: #fdfdfd; - --htwk-silbergrau-60-100: #f6f7f7; - --htwk-silbergrau-60-200: #eef1f0; - --htwk-silbergrau-60-300: #e7ebe9; - --htwk-silbergrau-60-400: #dfe4e3; + --htwk-silbergrau-80-600: rgb(172.55, 179.35, 177.65); + --htwk-silbergrau-80-700: rgb(142.1, 147.7, 146.3); + --htwk-silbergrau-80-800: rgb(111.65, 116.05, 114.95); + --htwk-silbergrau-80-900: rgb(81.2, 84.4, 83.6); + --htwk-silbergrau-60-50: rgb(253.05, 253.35, 253.25); + --htwk-silbergrau-60-100: rgb(245.64, 247.08, 246.6); + --htwk-silbergrau-60-200: rgb(238.23, 240.81, 239.95); + --htwk-silbergrau-60-300: rgb(230.82, 234.54, 233.3); + --htwk-silbergrau-60-400: rgb(223.41, 228.27, 226.65); --htwk-silbergrau-60-500: #d8dedc; - --htwk-silbergrau-60-600: #b8bdbb; - --htwk-silbergrau-60-700: #979b9a; - --htwk-silbergrau-60-800: #777a79; - --htwk-silbergrau-60-900: #565958; - --htwk-silbergrau-40-50: #fefefe; - --htwk-silbergrau-40-100: #f9faf9; - --htwk-silbergrau-40-200: #f4f6f5; - --htwk-silbergrau-40-300: #eff1f1; - --htwk-silbergrau-40-400: #eaedec; + --htwk-silbergrau-60-600: rgb(183.6, 188.7, 187); + --htwk-silbergrau-60-700: rgb(151.2, 155.4, 154); + --htwk-silbergrau-60-800: rgb(118.8, 122.1, 121); + --htwk-silbergrau-60-900: rgb(86.4, 88.8, 88); + --htwk-silbergrau-40-50: rgb(253.7, 253.9, 253.85); + --htwk-silbergrau-40-100: rgb(248.76, 249.72, 249.48); + --htwk-silbergrau-40-200: rgb(243.82, 245.54, 245.11); + --htwk-silbergrau-40-300: rgb(238.88, 241.36, 240.74); + --htwk-silbergrau-40-400: rgb(233.94, 237.18, 236.37); --htwk-silbergrau-40-500: #e5e9e8; - --htwk-silbergrau-40-600: #c3c6c5; - --htwk-silbergrau-40-700: #a0a3a2; - --htwk-silbergrau-40-800: #7e8080; - --htwk-silbergrau-40-900: #5c5d5d; - --htwk-grau-140-50: #f4f4f4; - --htwk-grau-140-100: #c8c9ca; - --htwk-grau-140-200: #9d9fa0; - --htwk-grau-140-300: #727576; - --htwk-grau-140-400: #464a4c; + --htwk-silbergrau-40-600: rgb(194.65, 198.05, 197.2); + --htwk-silbergrau-40-700: rgb(160.3, 163.1, 162.4); + --htwk-silbergrau-40-800: rgb(125.95, 128.15, 127.6); + --htwk-silbergrau-40-900: rgb(91.6, 93.2, 92.8); + --htwk-grau-140-50: rgb(243.6, 243.85, 243.95); + --htwk-grau-140-100: rgb(200.28, 201.48, 201.96); + --htwk-grau-140-200: rgb(156.96, 159.11, 159.97); + --htwk-grau-140-300: rgb(113.64, 116.74, 117.98); + --htwk-grau-140-400: rgb(70.32, 74.37, 75.99); --htwk-grau-140-500: #1b2022; - --htwk-grau-140-600: #171b1d; - --htwk-grau-140-700: #131618; - --htwk-grau-140-800: #0f1213; - --htwk-grau-140-900: #0b0d0e; - --htwk-grau-120-50: #f4f4f5; - --htwk-grau-120-100: #cacccd; - --htwk-grau-120-200: #a1a4a5; - --htwk-grau-120-300: #777c7d; - --htwk-grau-120-400: #4e5355; + --htwk-grau-140-600: rgb(22.95, 27.2, 28.9); + --htwk-grau-140-700: rgb(18.9, 22.4, 23.8); + --htwk-grau-140-800: rgb(14.85, 17.6, 18.7); + --htwk-grau-140-900: rgb(10.8, 12.8, 13.6); + --htwk-grau-120-50: rgb(244.05, 244.4, 244.5); + --htwk-grau-120-100: rgb(202.44, 204.12, 204.6); + --htwk-grau-120-200: rgb(160.83, 163.84, 164.7); + --htwk-grau-120-300: rgb(119.22, 123.56, 124.8); + --htwk-grau-120-400: rgb(77.61, 83.28, 84.9); --htwk-grau-120-500: #242b2d; - --htwk-grau-120-600: #1f2526; - --htwk-grau-120-700: #191e20; - --htwk-grau-120-800: #141819; - --htwk-grau-120-900: #0e1112; - --htwk-grau-50: whitesmoke; - --htwk-grau-100: #cdcfcf; - --htwk-grau-200: #a5a9aa; - --htwk-grau-300: #7d8284; - --htwk-grau-400: #565c5f; + --htwk-grau-120-600: rgb(30.6, 36.55, 38.25); + --htwk-grau-120-700: rgb(25.2, 30.1, 31.5); + --htwk-grau-120-800: rgb(19.8, 23.65, 24.75); + --htwk-grau-120-900: rgb(14.4, 17.2, 18); + --htwk-grau-50: rgb(244.55, 244.95, 245.1); + --htwk-grau-100: rgb(204.84, 206.76, 207.48); + --htwk-grau-200: rgb(165.13, 168.57, 169.86); + --htwk-grau-300: rgb(125.42, 130.38, 132.24); + --htwk-grau-400: rgb(85.71, 92.19, 94.62); --htwk-grau-500: #2e3639; - --htwk-grau-600: #272e30; - --htwk-grau-700: #202628; - --htwk-grau-800: #191e1f; - --htwk-grau-900: #121617; - --htwk-grau-80-50: #f7f7f7; - --htwk-grau-80-100: #d7d8d9; - --htwk-grau-80-200: #b7babb; - --htwk-grau-80-300: #979b9c; - --htwk-grau-80-400: #777d7e; + --htwk-grau-600: rgb(39.1, 45.9, 48.45); + --htwk-grau-700: rgb(32.2, 37.8, 39.9); + --htwk-grau-800: rgb(25.3, 29.7, 31.35); + --htwk-grau-900: rgb(18.4, 21.6, 22.8); + --htwk-grau-80-50: rgb(246.6, 246.95, 247.05); + --htwk-grau-80-100: rgb(214.68, 216.36, 216.84); + --htwk-grau-80-200: rgb(182.76, 185.77, 186.63); + --htwk-grau-80-300: rgb(150.84, 155.18, 156.42); + --htwk-grau-80-400: rgb(118.92, 124.59, 126.21); --htwk-grau-80-500: #575e60; - --htwk-grau-80-600: #4a5052; - --htwk-grau-80-700: #3d4243; - --htwk-grau-80-800: #303435; - --htwk-grau-80-900: #232626; - --htwk-grau-60-50: #f9f9f9; - --htwk-grau-60-100: #e1e2e2; - --htwk-grau-60-200: #c9cbcc; - --htwk-grau-60-300: #b1b4b5; - --htwk-grau-60-400: #999d9f; + --htwk-grau-80-600: rgb(73.95, 79.9, 81.6); + --htwk-grau-80-700: rgb(60.9, 65.8, 67.2); + --htwk-grau-80-800: rgb(47.85, 51.7, 52.8); + --htwk-grau-80-900: rgb(34.8, 37.6, 38.4); + --htwk-grau-60-50: rgb(248.7, 248.95, 249.05); + --htwk-grau-60-100: rgb(224.76, 225.96, 226.44); + --htwk-grau-60-200: rgb(200.82, 202.97, 203.83); + --htwk-grau-60-300: rgb(176.88, 179.98, 181.22); + --htwk-grau-60-400: rgb(152.94, 156.99, 158.61); --htwk-grau-60-500: #818688; - --htwk-grau-60-600: #6e7274; - --htwk-grau-60-700: #5a5e5f; - --htwk-grau-60-800: #474a4b; - --htwk-grau-60-900: #343636; - --htwk-grau-40-50: #fbfbfb; - --htwk-grau-40-100: #ebecec; - --htwk-grau-40-200: #dbdcdd; - --htwk-grau-40-300: #cbcdcd; - --htwk-grau-40-400: #bbbdbe; + --htwk-grau-60-600: rgb(109.65, 113.9, 115.6); + --htwk-grau-60-700: rgb(90.3, 93.8, 95.2); + --htwk-grau-60-800: rgb(70.95, 73.7, 74.8); + --htwk-grau-60-900: rgb(51.6, 53.6, 54.4); + --htwk-grau-40-50: rgb(250.8, 250.95, 251); + --htwk-grau-40-100: rgb(234.84, 235.56, 235.8); + --htwk-grau-40-200: rgb(218.88, 220.17, 220.6); + --htwk-grau-40-300: rgb(202.92, 204.78, 205.4); + --htwk-grau-40-400: rgb(186.96, 189.39, 190.2); --htwk-grau-40-500: #abaeaf; - --htwk-grau-40-600: #919495; - --htwk-grau-40-700: #787a7b; - --htwk-grau-40-800: #5e6060; - --htwk-grau-40-900: #444646; - --htwk-dunkelblau-50: #f2f4f6; - --htwk-dunkelblau-100: #c2cbd1; - --htwk-dunkelblau-200: #92a1ad; - --htwk-dunkelblau-300: #627889; - --htwk-dunkelblau-400: #324e65; + --htwk-grau-40-600: rgb(145.35, 147.9, 148.75); + --htwk-grau-40-700: rgb(119.7, 121.8, 122.5); + --htwk-grau-40-800: rgb(94.05, 95.7, 96.25); + --htwk-grau-40-900: rgb(68.4, 69.6, 70); + --htwk-dunkelblau-50: rgb(242.35, 244.1, 245.5); + --htwk-dunkelblau-100: rgb(194.28, 202.68, 209.4); + --htwk-dunkelblau-200: rgb(146.21, 161.26, 173.3); + --htwk-dunkelblau-300: rgb(98.14, 119.84, 137.2); + --htwk-dunkelblau-400: rgb(50.07, 78.42, 101.1); --htwk-dunkelblau-500: #022541; - --htwk-dunkelblau-600: #021f37; - --htwk-dunkelblau-700: #011a2e; - --htwk-dunkelblau-800: #011424; - --htwk-dunkelblau-900: #010f1a; - --htwk-dunkelblau-80-50: #f5f6f7; - --htwk-dunkelblau-80-100: #ced5db; - --htwk-dunkelblau-80-200: #a8b4be; - --htwk-dunkelblau-80-300: #8193a1; - --htwk-dunkelblau-80-400: #5b7184; + --htwk-dunkelblau-600: rgb(1.7, 31.45, 55.25); + --htwk-dunkelblau-700: rgb(1.4, 25.9, 45.5); + --htwk-dunkelblau-800: rgb(1.1, 20.35, 35.75); + --htwk-dunkelblau-900: rgb(0.8, 14.8, 26); + --htwk-dunkelblau-80-50: rgb(244.85, 246.25, 247.4); + --htwk-dunkelblau-80-100: rgb(206.28, 213, 218.52); + --htwk-dunkelblau-80-200: rgb(167.71, 179.75, 189.64); + --htwk-dunkelblau-80-300: rgb(129.14, 146.5, 160.76); + --htwk-dunkelblau-80-400: rgb(90.57, 113.25, 131.88); --htwk-dunkelblau-80-500: #345067; - --htwk-dunkelblau-80-600: #2c4458; - --htwk-dunkelblau-80-700: #243848; - --htwk-dunkelblau-80-800: #1d2c39; - --htwk-dunkelblau-80-900: #152029; - --htwk-dunkelblau-60-50: #f7f8f9; - --htwk-dunkelblau-60-100: #dbe0e4; - --htwk-dunkelblau-60-200: #bec7ce; - --htwk-dunkelblau-60-300: #a1aeb8; - --htwk-dunkelblau-60-400: #8495a3; + --htwk-dunkelblau-80-600: rgb(44.2, 68, 87.55); + --htwk-dunkelblau-80-700: rgb(36.4, 56, 72.1); + --htwk-dunkelblau-80-800: rgb(28.6, 44, 56.65); + --htwk-dunkelblau-80-900: rgb(20.8, 32, 41.2); + --htwk-dunkelblau-60-50: rgb(247.4, 248.45, 249.3); + --htwk-dunkelblau-60-100: rgb(218.52, 223.56, 227.64); + --htwk-dunkelblau-60-200: rgb(189.64, 198.67, 205.98); + --htwk-dunkelblau-60-300: rgb(160.76, 173.78, 184.32); + --htwk-dunkelblau-60-400: rgb(131.88, 148.89, 162.66); --htwk-dunkelblau-60-500: #677c8d; - --htwk-dunkelblau-60-600: #586978; - --htwk-dunkelblau-60-700: #485763; - --htwk-dunkelblau-60-800: #39444e; - --htwk-dunkelblau-60-900: #293238; - --htwk-dunkelblau-40-50: #fafbfb; - --htwk-dunkelblau-40-100: #e7eaed; - --htwk-dunkelblau-40-200: #d3d9de; - --htwk-dunkelblau-40-300: #c0c8d0; - --htwk-dunkelblau-40-400: #acb8c1; + --htwk-dunkelblau-60-600: rgb(87.55, 105.4, 119.85); + --htwk-dunkelblau-60-700: rgb(72.1, 86.8, 98.7); + --htwk-dunkelblau-60-800: rgb(56.65, 68.2, 77.55); + --htwk-dunkelblau-60-900: rgb(41.2, 49.6, 56.4); + --htwk-dunkelblau-40-50: rgb(249.9, 250.6, 251.2); + --htwk-dunkelblau-40-100: rgb(230.52, 233.88, 236.76); + --htwk-dunkelblau-40-200: rgb(211.14, 217.16, 222.32); + --htwk-dunkelblau-40-300: rgb(191.76, 200.44, 207.88); + --htwk-dunkelblau-40-400: rgb(172.38, 183.72, 193.44); --htwk-dunkelblau-40-500: #99a7b3; - --htwk-dunkelblau-40-600: #828e98; - --htwk-dunkelblau-40-700: #6b757d; - --htwk-dunkelblau-40-800: #545c62; - --htwk-dunkelblau-40-900: #3d4348; - --htwk-schwarz-50: #f2f2f2; - --htwk-schwarz-100: #c2c2c2; - --htwk-schwarz-200: #919191; - --htwk-schwarz-300: #616161; - --htwk-schwarz-400: #303030; + --htwk-dunkelblau-40-600: rgb(130.05, 141.95, 152.15); + --htwk-dunkelblau-40-700: rgb(107.1, 116.9, 125.3); + --htwk-dunkelblau-40-800: rgb(84.15, 91.85, 98.45); + --htwk-dunkelblau-40-900: rgb(61.2, 66.8, 71.6); + --htwk-schwarz-50: rgb(242.25, 242.25, 242.25); + --htwk-schwarz-100: rgb(193.8, 193.8, 193.8); + --htwk-schwarz-200: rgb(145.35, 145.35, 145.35); + --htwk-schwarz-300: rgb(96.9, 96.9, 96.9); + --htwk-schwarz-400: rgb(48.45, 48.45, 48.45); --htwk-schwarz-500: black; --htwk-schwarz-600: black; --htwk-schwarz-700: black; @@ -455,75 +444,39 @@ border: 0 none; color: #6b7280; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker - .ql-picker-label:hover { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover { color: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker - .ql-picker-label:hover - .ql-stroke { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke { stroke: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker - .ql-picker-label:hover - .ql-fill { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill { fill: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-label { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label { color: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-label - .ql-stroke { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke { stroke: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-label - .ql-fill { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill { fill: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-options { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options { background: #ffffff; border: 0 none; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); border-radius: 6px; padding: 0.75rem 0; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-options - .ql-picker-item { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item { color: #4b5563; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded - .ql-picker-options - .ql-picker-item:hover { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover { color: #4b5563; background: #f3f4f6; } -.p-editor-container - .p-editor-toolbar.ql-snow - .ql-picker.ql-expanded:not(.ql-icon-picker) - .ql-picker-item { +.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item { padding: 0.75rem 1.25rem; } .p-editor-container .p-editor-content { @@ -567,14 +520,8 @@ fill: #00944c; } .p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label, -.p-editor-container - .ql-snow.ql-toolbar - .ql-picker-label.ql-active - .ql-picker-label, -.p-editor-container - .ql-snow.ql-toolbar - .ql-picker-item.ql-selected - .ql-picker-label { +.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label, +.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label { color: #00944c; } @@ -639,9 +586,7 @@ .p-connected-overlay { opacity: 0; transform: scaleY(0.8); - transition: - transform 0.12s cubic-bezier(0, 0, 0.2, 1), - opacity 0.12s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1); } .p-connected-overlay-visible { opacity: 1; @@ -661,9 +606,7 @@ opacity: 0; } .p-connected-overlay-enter-active { - transition: - transform 0.12s cubic-bezier(0, 0, 0.2, 1), - opacity 0.12s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1); } .p-connected-overlay-leave-active { transition: opacity 0.1s linear; @@ -725,7 +668,7 @@ .p-link:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-component-overlay-enter { animation: p-component-overlay-enter-animation 150ms forwards; @@ -841,7 +784,7 @@ .p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-multiple-container { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-autocomplete .p-autocomplete-multiple-container { @@ -849,15 +792,10 @@ gap: 0.5rem; outline-color: transparent; } - .p-autocomplete - .p-autocomplete-multiple-container - .p-autocomplete-input-token { + .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token { padding: 0.375rem 0; } - .p-autocomplete - .p-autocomplete-multiple-container - .p-autocomplete-input-token - input { + .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input { font-family: var(--font-family); font-feature-settings: var(--font-feature-settings, normal); font-size: 1rem; @@ -871,15 +809,10 @@ color: #4b5563; border-radius: 16px; } - .p-autocomplete - .p-autocomplete-multiple-container - .p-autocomplete-token - .p-autocomplete-token-icon { + .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon { margin-left: 0.5rem; } - .p-autocomplete - .p-autocomplete-multiple-container - .p-autocomplete-token.p-focus { + .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token.p-focus { background: #e5e7eb; color: #4b5563; } @@ -912,17 +845,13 @@ margin-bottom: 0; } .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-autocomplete-panel - .p-autocomplete-items - .p-autocomplete-item.p-highlight.p-focus { + .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-autocomplete-panel - .p-autocomplete-items - .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus { + .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:not(.p-highlight):not(.p-disabled).p-focus { color: #4b5563; background: #f3f4f6; } @@ -992,9 +921,7 @@ .p-datepicker-multiple-month .p-datepicker-group-container { display: flex; } - .p-datepicker-multiple-month - .p-datepicker-group-container - .p-datepicker-group { + .p-datepicker-multiple-month .p-datepicker-group-container .p-datepicker-group { flex: 1 1 auto; } /* DatePicker Table */ @@ -1067,7 +994,7 @@ .p-calendar:not(.p-calendar-disabled).p-focus > .p-inputtext { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-datepicker { @@ -1103,10 +1030,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover, @@ -1119,7 +1043,7 @@ .p-datepicker .p-datepicker-header .p-datepicker-next:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-datepicker .p-datepicker-header .p-datepicker-title { line-height: 2rem; @@ -1127,21 +1051,12 @@ .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year, .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month { color: #4b5563; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; font-weight: 100; padding: 0.5rem; } - .p-datepicker - .p-datepicker-header - .p-datepicker-title - .p-datepicker-year:enabled:hover, - .p-datepicker - .p-datepicker-header - .p-datepicker-title - .p-datepicker-month:enabled:hover { + .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover, + .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover { color: #00944c; } .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month { @@ -1170,13 +1085,13 @@ outline-color: transparent; } .p-datepicker table td > span.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-datepicker table td > span:focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-datepicker table td.p-datepicker-today > span { background: #d1d5db; @@ -1184,8 +1099,8 @@ border-color: transparent; } .p-datepicker table td.p-datepicker-today > span.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-datepicker .p-datepicker-buttonbar { padding: 1rem 0; @@ -1205,10 +1120,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-datepicker .p-timepicker button:enabled:hover { @@ -1219,7 +1131,7 @@ .p-datepicker .p-timepicker button:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-datepicker .p-timepicker button:last-child { margin-top: 0.2em; @@ -1242,8 +1154,8 @@ border-radius: 6px; } .p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-datepicker .p-yearpicker { margin: 0.5rem 0; @@ -1254,8 +1166,8 @@ border-radius: 6px; } .p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-datepicker.p-datepicker-multiple-month .p-datepicker-group { border-left: 1px solid #e5e7eb; @@ -1275,59 +1187,38 @@ .p-datepicker.p-datepicker-mobile table td { padding: 0; } - .p-datepicker:not(.p-disabled) - table - td - span:not(.p-highlight):not(.p-disabled) { + .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled) { outline-color: transparent; } - .p-datepicker:not(.p-disabled) - table - td - span:not(.p-highlight):not(.p-disabled):hover { + .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover { background: #f3f4f6; } - .p-datepicker:not(.p-disabled) - table - td - span:not(.p-highlight):not(.p-disabled):focus { + .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-datepicker:not(.p-disabled) - .p-monthpicker - .p-monthpicker-month:not(.p-disabled) { + .p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled) { outline-color: transparent; } - .p-datepicker:not(.p-disabled) - .p-monthpicker - .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover { + .p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover { background: #f3f4f6; } - .p-datepicker:not(.p-disabled) - .p-monthpicker - .p-monthpicker-month:not(.p-disabled):focus { + .p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-datepicker:not(.p-disabled) - .p-yearpicker - .p-yearpicker-year:not(.p-disabled) { + .p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled) { outline-color: transparent; } - .p-datepicker:not(.p-disabled) - .p-yearpicker - .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover { + .p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover { background: #f3f4f6; } - .p-datepicker:not(.p-disabled) - .p-yearpicker - .p-yearpicker-year:not(.p-disabled):focus { + .p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-cascadeselect { display: inline-flex; @@ -1406,11 +1297,7 @@ .p-cascadeselect { background: #ffffff; border: 1px solid #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; outline-color: transparent; } @@ -1420,7 +1307,7 @@ .p-cascadeselect:not(.p-disabled).p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-cascadeselect.p-variant-filled { @@ -1472,43 +1359,27 @@ transition: box-shadow 0.2s; border-radius: 0; } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item:first-child { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:first-child { margin-top: 0; } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item:last-child { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:last-child { margin-bottom: 0; } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight { + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item.p-highlight.p-focus { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus { color: #4b5563; background: #f3f4f6; } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item - .p-cascadeselect-item-content { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content { padding: 0.75rem 1.25rem; } - .p-cascadeselect-panel - .p-cascadeselect-items - .p-cascadeselect-item - .p-cascadeselect-group-icon { + .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon { font-size: 0.875rem; } .p-checkbox { @@ -1551,11 +1422,7 @@ height: 22px; color: #4b5563; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-checkbox .p-checkbox-box .p-checkbox-icon { @@ -1574,17 +1441,15 @@ .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box { border-color: #00944c; } - .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight - .p-checkbox-box { - border-color: #001e0f; - background: #001e0f; + .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box { + border-color: rgb(0, 29.6, 15.2); + background: rgb(0, 29.6, 15.2); color: #ffffff; } - .p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) - .p-checkbox-box { + .p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-checkbox.p-invalid > .p-checkbox-box { @@ -1596,15 +1461,11 @@ .p-checkbox.p-variant-filled.p-highlight .p-checkbox-box { background: #00944c; } - .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) - .p-checkbox-box { + .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box { background-color: #f3f4f6; } - .p-checkbox.p-variant-filled:not(.p-disabled):has( - .p-checkbox-input:hover - ).p-highlight - .p-checkbox-box { - background: #001e0f; + .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box { + background: rgb(0, 29.6, 15.2); } .p-input-filled .p-checkbox .p-checkbox-box { background-color: #f3f4f6; @@ -1612,15 +1473,11 @@ .p-input-filled .p-checkbox.p-highlight .p-checkbox-box { background: #00944c; } - .p-input-filled - .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) - .p-checkbox-box { + .p-input-filled .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box { background-color: #f3f4f6; } - .p-input-filled - .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight - .p-checkbox-box { - background: #001e0f; + .p-input-filled .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box { + background: rgb(0, 29.6, 15.2); } .p-chips { display: inline-flex; @@ -1667,7 +1524,7 @@ .p-chips:not(.p-disabled).p-focus .p-chips-multiple-container { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-chips .p-chips-multiple-container { @@ -1703,20 +1560,10 @@ border-color: #e53009; } .p-colorpicker-panel .p-colorpicker-color { - background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%), - linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%); + background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%); } .p-colorpicker-panel .p-colorpicker-hue { - background: linear-gradient( - 0deg, - red 0, - #ff0 17%, - #0f0 33%, - #0ff 50%, - #00f 67%, - #f0f 83%, - red - ); + background: linear-gradient(0deg, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red); } .p-colorpicker-preview { width: 2rem; @@ -1814,11 +1661,7 @@ .p-dropdown { background: #ffffff; border: 1px solid #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; outline-color: transparent; } @@ -1828,7 +1671,7 @@ .p-dropdown:not(.p-disabled).p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-dropdown.p-variant-filled { @@ -1853,8 +1696,7 @@ .p-dropdown .p-dropdown-label.p-placeholder { color: #6b7280; } - .p-dropdown .p-dropdown-label:focus, - .p-dropdown .p-dropdown-label:enabled:focus { + .p-dropdown .p-dropdown-label:focus, .p-dropdown .p-dropdown-label:enabled:focus { outline: 0 none; box-shadow: none; } @@ -1915,15 +1757,13 @@ margin-bottom: 0; } .p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-dropdown-panel - .p-dropdown-items - .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus { + .p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus { color: #4b5563; background: #f3f4f6; } @@ -2108,9 +1948,7 @@ flex: 0 0 auto; } .p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label, - .p-inputnumber-buttons-horizontal - .p-button.p-inputnumber-button - .p-button-label { + .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label { display: none; } .p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up { @@ -2133,9 +1971,7 @@ display: flex; flex-direction: column; } - .p-inputnumber-buttons-stacked - .p-inputnumber-button-group - .p-button.p-inputnumber-button { + .p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button { flex: 1 1 auto; } .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up { @@ -2236,11 +2072,7 @@ } .p-inputswitch .p-inputswitch-slider { background: #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 30px; outline-color: transparent; } @@ -2260,19 +2092,16 @@ background: #ffffff; transform: translateX(1.25rem); } - .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover) - .p-inputswitch-slider { + .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover) .p-inputswitch-slider { background: #b7bcc5; } - .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover).p-highlight - .p-inputswitch-slider { - background: #00592e; + .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover).p-highlight .p-inputswitch-slider { + background: rgb(0, 88.8, 45.6); } - .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:focus-visible) - .p-inputswitch-slider { + .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:focus-visible) .p-inputswitch-slider { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-inputswitch.p-invalid > .p-inputswitch-slider { border-color: #e53009; @@ -2288,11 +2117,7 @@ background: #ffffff; padding: 0.75rem 0.75rem; border: 1px solid #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; appearance: none; border-radius: 6px; outline-color: transparent; @@ -2303,7 +2128,7 @@ .p-inputtext:enabled:focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-inputtext.p-invalid.p-component { @@ -2422,11 +2247,7 @@ color: #4b5563; border: 1px solid #d1d5db; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-listbox .p-listbox-header { @@ -2464,8 +2285,8 @@ margin-bottom: 0; } .p-listbox .p-listbox-list .p-listbox-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-listbox .p-listbox-list .p-listbox-item-group { margin: 0; @@ -2482,25 +2303,22 @@ .p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-listbox:not(.p-disabled) - .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus { + .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus { color: #4b5563; background: #f3f4f6; } - .p-listbox:not(.p-disabled) - .p-listbox-item:not(.p-highlight):not(.p-disabled):hover { + .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover { color: #4b5563; background: #f3f4f6; } - .p-listbox:not(.p-disabled) - .p-listbox-item:not(.p-highlight):not(.p-disabled):hover.p-focus { + .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover.p-focus { color: #4b5563; background: #f3f4f6; } .p-listbox.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-listbox.p-invalid { @@ -2597,11 +2415,7 @@ .p-multiselect { background: #ffffff; border: 1px solid #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; outline-color: transparent; } @@ -2611,7 +2425,7 @@ .p-multiselect:not(.p-disabled).p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-multiselect.p-variant-filled { @@ -2625,11 +2439,7 @@ } .p-multiselect .p-multiselect-label { padding: 0.75rem 0.75rem; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-multiselect .p-multiselect-label.p-placeholder { color: #6b7280; @@ -2641,9 +2451,7 @@ color: #4b5563; border-radius: 16px; } - .p-multiselect.p-multiselect-chip - .p-multiselect-token - .p-multiselect-token-icon { + .p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon { margin-left: 0.5rem; } .p-multiselect .p-multiselect-trigger { @@ -2675,16 +2483,10 @@ border-top-right-radius: 6px; border-top-left-radius: 6px; } - .p-multiselect-panel - .p-multiselect-header - .p-multiselect-filter-container - .p-inputtext { + .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext { padding-right: 1.75rem; } - .p-multiselect-panel - .p-multiselect-header - .p-multiselect-filter-container - .p-multiselect-filter-icon { + .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon { right: 0.75rem; color: #6b7280; } @@ -2699,25 +2501,18 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } - .p-multiselect-panel - .p-multiselect-header - .p-multiselect-close:enabled:hover { + .p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover { color: #374151; border-color: transparent; background: #f3f4f6; } - .p-multiselect-panel - .p-multiselect-header - .p-multiselect-close:focus-visible { + .p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-multiselect-panel .p-multiselect-items { padding: 0.75rem 0; @@ -2738,17 +2533,13 @@ margin-bottom: 0; } .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-multiselect-panel - .p-multiselect-items - .p-multiselect-item.p-highlight.p-focus { + .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-multiselect-panel - .p-multiselect-items - .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus { + .p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus { color: #4b5563; background: #f3f4f6; } @@ -2795,7 +2586,7 @@ padding: 1.25rem; background: #ffffff; color: #4b5563; - border: 0 none; + border: 0px solid #e5e7eb; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); border-radius: 6px; } @@ -2863,11 +2654,7 @@ height: 22px; color: #4b5563; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-radiobutton .p-radiobutton-box .p-radiobutton-icon { @@ -2880,25 +2667,20 @@ border-color: #00944c; background: #00944c; } - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) - .p-radiobutton-box { + .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box { border-color: #00944c; } - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight - .p-radiobutton-box { - border-color: #001e0f; - background: #001e0f; + .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box { + border-color: rgb(0, 29.6, 15.2); + background: rgb(0, 29.6, 15.2); } - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight - .p-radiobutton-box - .p-radiobutton-icon { + .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box .p-radiobutton-icon { background-color: #ffffff; } - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) - .p-radiobutton-box { + .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-radiobutton.p-invalid > .p-radiobutton-box { @@ -2910,17 +2692,11 @@ .p-radiobutton.p-variant-filled.p-highlight .p-radiobutton-box { background: #00944c; } - .p-radiobutton.p-variant-filled:not(.p-disabled):has( - .p-radiobutton-input:hover - ) - .p-radiobutton-box { + .p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box { background-color: #f3f4f6; } - .p-radiobutton.p-variant-filled:not(.p-disabled):has( - .p-radiobutton-input:hover - ).p-highlight - .p-radiobutton-box { - background: #001e0f; + .p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box { + background: rgb(0, 29.6, 15.2); } .p-input-filled .p-radiobutton .p-radiobutton-box { background-color: #f3f4f6; @@ -2928,15 +2704,11 @@ .p-input-filled .p-radiobutton.p-highlight .p-radiobutton-box { background: #00944c; } - .p-input-filled - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) - .p-radiobutton-box { + .p-input-filled .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box { background-color: #f3f4f6; } - .p-input-filled - .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight - .p-radiobutton-box { - background: #001e0f; + .p-input-filled .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box { + background: rgb(0, 29.6, 15.2); } .p-rating { position: relative; @@ -2960,11 +2732,7 @@ } .p-rating .p-rating-item .p-rating-icon { color: #4b5563; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; font-size: 1.143rem; } .p-rating .p-rating-item .p-rating-icon.p-icon { @@ -2977,30 +2745,22 @@ .p-rating .p-rating-item.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-rating .p-rating-item.p-rating-item-active .p-rating-icon { color: #00944c; } - .p-rating:not(.p-disabled):not(.p-readonly) - .p-rating-item:hover - .p-rating-icon { + .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon { color: #00944c; } - .p-rating:not(.p-disabled):not(.p-readonly) - .p-rating-item:hover - .p-rating-icon.p-rating-cancel { + .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon.p-rating-cancel { color: #e73d3e; } .p-selectbutton .p-button { background: #ffffff; border: 1px solid #d1d5db; color: #4b5563; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-selectbutton .p-button .p-button-icon-left, .p-selectbutton .p-button .p-button-icon-right { @@ -3011,12 +2771,8 @@ border-color: #d1d5db; color: #4b5563; } - .p-selectbutton - .p-button:not(.p-disabled):not(.p-highlight):hover - .p-button-icon-left, - .p-selectbutton - .p-button:not(.p-disabled):not(.p-highlight):hover - .p-button-icon-right { + .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left, + .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right { color: #374151; } .p-selectbutton .p-button.p-highlight { @@ -3029,8 +2785,8 @@ color: #ffffff; } .p-selectbutton .p-button.p-highlight:hover { - background: #00592e; - border-color: #00592e; + background: rgb(0, 88.8, 45.6); + border-color: rgb(0, 88.8, 45.6); color: #ffffff; } .p-selectbutton .p-button.p-highlight:hover .p-button-icon-left, @@ -3095,17 +2851,13 @@ background: #ffffff; border: 2px solid #00944c; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-slider .p-slider-handle:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-slider .p-slider-range { background: #00944c; @@ -3167,11 +2919,7 @@ .p-treeselect { background: #ffffff; border: 1px solid #d1d5db; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; outline-color: transparent; } @@ -3181,7 +2929,7 @@ .p-treeselect:not(.p-disabled).p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-treeselect.p-variant-filled { @@ -3195,11 +2943,7 @@ } .p-treeselect .p-treeselect-label { padding: 0.75rem 0.75rem; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-treeselect .p-treeselect-label.p-placeholder { color: #6b7280; @@ -3279,11 +3023,7 @@ background: #ffffff; border: 1px solid #d1d5db; color: #4b5563; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-togglebutton .p-button .p-button-icon-left, @@ -3299,45 +3039,28 @@ .p-togglebutton.p-highlight .p-button .p-button-icon-right { color: #ffffff; } - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not( - .p-highlight - ) - .p-button { + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button { background: #f3f4f6; border-color: #d1d5db; color: #4b5563; } - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not( - .p-highlight - ) - .p-button - .p-button-icon-left, - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not( - .p-highlight - ) - .p-button - .p-button-icon-right { + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button .p-button-icon-left, + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button .p-button-icon-right { color: #374151; } - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight - .p-button { - background: #00592e; - border-color: #00592e; + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button { + background: rgb(0, 88.8, 45.6); + border-color: rgb(0, 88.8, 45.6); color: #ffffff; } - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight - .p-button - .p-button-icon-left, - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight - .p-button - .p-button-icon-right { + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button .p-button-icon-left, + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button .p-button-icon-right { color: #ffffff; } - .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:focus-visible) - .p-button { + .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:focus-visible) .p-button { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-togglebutton.p-invalid > .p-button { @@ -3404,23 +3127,19 @@ border: 1px solid #00944c; padding: 0.75rem 1.25rem; font-size: 1rem; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; outline-color: transparent; } .p-button:not(:disabled):hover { - background: #00592e; + background: rgb(0, 88.8, 45.6); color: #ffffff; - border-color: #00592e; + border-color: rgb(0, 88.8, 45.6); } .p-button:not(:disabled):active { - background: #001e0f; + background: rgb(0, 29.6, 15.2); color: #ffffff; - border-color: #001e0f; + border-color: rgb(0, 29.6, 15.2); } .p-button.p-button-outlined { background-color: transparent; @@ -3478,7 +3197,7 @@ .p-button:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-button .p-button-label { transition-duration: 0.2s; @@ -3504,10 +3223,7 @@ background-color: #ffffff; } .p-button.p-button-raised { - box-shadow: - 0 3px 1px -2px rgba(0, 0, 0, 0.2), - 0 2px 2px 0 rgba(0, 0, 0, 0.14), - 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } .p-button.p-button-rounded { border-radius: 2rem; @@ -3590,19 +3306,15 @@ border: 1px solid; } .p-button.p-button-secondary.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-secondary - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-secondary - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-secondary > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-secondary > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(100, 116, 139, 0.04); color: #64748b; border: 1px solid; } .p-button.p-button-secondary.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-secondary - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-secondary - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-secondary > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-secondary > .p-button.p-button-outlined:not(:disabled):active { background: rgba(100, 116, 139, 0.16); color: #64748b; border: 1px solid; @@ -3615,19 +3327,15 @@ border-color: transparent; } .p-button.p-button-secondary.p-button-text:not(:disabled):hover, - .p-button-group.p-button-secondary - > .p-button.p-button-text:not(:disabled):hover, - .p-splitbutton.p-button-secondary - > .p-button.p-button-text:not(:disabled):hover { + .p-button-group.p-button-secondary > .p-button.p-button-text:not(:disabled):hover, + .p-splitbutton.p-button-secondary > .p-button.p-button-text:not(:disabled):hover { background: rgba(100, 116, 139, 0.04); border-color: transparent; color: #64748b; } .p-button.p-button-secondary.p-button-text:not(:disabled):active, - .p-button-group.p-button-secondary - > .p-button.p-button-text:not(:disabled):active, - .p-splitbutton.p-button-secondary - > .p-button.p-button-text:not(:disabled):active { + .p-button-group.p-button-secondary > .p-button.p-button-text:not(:disabled):active, + .p-splitbutton.p-button-secondary > .p-button.p-button-text:not(:disabled):active { background: rgba(100, 116, 139, 0.16); border-color: transparent; color: #64748b; @@ -3666,19 +3374,15 @@ border: 1px solid; } .p-button.p-button-info.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-info - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-info - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-info > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-info > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(0, 70, 153, 0.04); color: #004699; border: 1px solid; } .p-button.p-button-info.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-info - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-info - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-info > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-info > .p-button.p-button-outlined:not(:disabled):active { background: rgba(0, 70, 153, 0.16); color: #004699; border: 1px solid; @@ -3738,19 +3442,15 @@ border: 1px solid; } .p-button.p-button-success.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-success - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-success - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-success > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-success > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(0, 150, 78, 0.04); color: #00964e; border: 1px solid; } .p-button.p-button-success.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-success - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-success - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-success > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-success > .p-button.p-button-outlined:not(:disabled):active { background: rgba(0, 150, 78, 0.16); color: #00964e; border: 1px solid; @@ -3763,19 +3463,15 @@ border-color: transparent; } .p-button.p-button-success.p-button-text:not(:disabled):hover, - .p-button-group.p-button-success - > .p-button.p-button-text:not(:disabled):hover, - .p-splitbutton.p-button-success - > .p-button.p-button-text:not(:disabled):hover { + .p-button-group.p-button-success > .p-button.p-button-text:not(:disabled):hover, + .p-splitbutton.p-button-success > .p-button.p-button-text:not(:disabled):hover { background: rgba(0, 150, 78, 0.04); border-color: transparent; color: #00964e; } .p-button.p-button-success.p-button-text:not(:disabled):active, - .p-button-group.p-button-success - > .p-button.p-button-text:not(:disabled):active, - .p-splitbutton.p-button-success - > .p-button.p-button-text:not(:disabled):active { + .p-button-group.p-button-success > .p-button.p-button-text:not(:disabled):active, + .p-splitbutton.p-button-success > .p-button.p-button-text:not(:disabled):active { background: rgba(0, 150, 78, 0.16); border-color: transparent; color: #00964e; @@ -3814,19 +3510,15 @@ border: 1px solid; } .p-button.p-button-warning.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-warning - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-warning - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-warning > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-warning > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(249, 115, 22, 0.04); color: #f97316; border: 1px solid; } .p-button.p-button-warning.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-warning - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-warning - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-warning > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-warning > .p-button.p-button-outlined:not(:disabled):active { background: rgba(249, 115, 22, 0.16); color: #f97316; border: 1px solid; @@ -3839,19 +3531,15 @@ border-color: transparent; } .p-button.p-button-warning.p-button-text:not(:disabled):hover, - .p-button-group.p-button-warning - > .p-button.p-button-text:not(:disabled):hover, - .p-splitbutton.p-button-warning - > .p-button.p-button-text:not(:disabled):hover { + .p-button-group.p-button-warning > .p-button.p-button-text:not(:disabled):hover, + .p-splitbutton.p-button-warning > .p-button.p-button-text:not(:disabled):hover { background: rgba(249, 115, 22, 0.04); border-color: transparent; color: #f97316; } .p-button.p-button-warning.p-button-text:not(:disabled):active, - .p-button-group.p-button-warning - > .p-button.p-button-text:not(:disabled):active, - .p-splitbutton.p-button-warning - > .p-button.p-button-text:not(:disabled):active { + .p-button-group.p-button-warning > .p-button.p-button-text:not(:disabled):active, + .p-splitbutton.p-button-warning > .p-button.p-button-text:not(:disabled):active { background: rgba(249, 115, 22, 0.16); border-color: transparent; color: #f97316; @@ -3890,19 +3578,15 @@ border: 1px solid; } .p-button.p-button-help.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-help - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-help - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-help > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-help > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(168, 85, 247, 0.04); color: #a855f7; border: 1px solid; } .p-button.p-button-help.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-help - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-help - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-help > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-help > .p-button.p-button-outlined:not(:disabled):active { background: rgba(168, 85, 247, 0.16); color: #a855f7; border: 1px solid; @@ -3962,19 +3646,15 @@ border: 1px solid; } .p-button.p-button-danger.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-danger - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-danger - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-danger > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-danger > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(239, 68, 68, 0.04); color: #ef4444; border: 1px solid; } .p-button.p-button-danger.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-danger - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-danger - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-danger > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-danger > .p-button.p-button-outlined:not(:disabled):active { background: rgba(239, 68, 68, 0.16); color: #ef4444; border: 1px solid; @@ -3987,19 +3667,15 @@ border-color: transparent; } .p-button.p-button-danger.p-button-text:not(:disabled):hover, - .p-button-group.p-button-danger - > .p-button.p-button-text:not(:disabled):hover, - .p-splitbutton.p-button-danger - > .p-button.p-button-text:not(:disabled):hover { + .p-button-group.p-button-danger > .p-button.p-button-text:not(:disabled):hover, + .p-splitbutton.p-button-danger > .p-button.p-button-text:not(:disabled):hover { background: rgba(239, 68, 68, 0.04); border-color: transparent; color: #ef4444; } .p-button.p-button-danger.p-button-text:not(:disabled):active, - .p-button-group.p-button-danger - > .p-button.p-button-text:not(:disabled):active, - .p-splitbutton.p-button-danger - > .p-button.p-button-text:not(:disabled):active { + .p-button-group.p-button-danger > .p-button.p-button-text:not(:disabled):active, + .p-splitbutton.p-button-danger > .p-button.p-button-text:not(:disabled):active { background: rgba(239, 68, 68, 0.16); border-color: transparent; color: #ef4444; @@ -4038,19 +3714,15 @@ border: 1px solid; } .p-button.p-button-contrast.p-button-outlined:not(:disabled):hover, - .p-button-group.p-button-contrast - > .p-button.p-button-outlined:not(:disabled):hover, - .p-splitbutton.p-button-contrast - > .p-button.p-button-outlined:not(:disabled):hover { + .p-button-group.p-button-contrast > .p-button.p-button-outlined:not(:disabled):hover, + .p-splitbutton.p-button-contrast > .p-button.p-button-outlined:not(:disabled):hover { background: rgba(31, 41, 55, 0.04); color: #1f2937; border: 1px solid; } .p-button.p-button-contrast.p-button-outlined:not(:disabled):active, - .p-button-group.p-button-contrast - > .p-button.p-button-outlined:not(:disabled):active, - .p-splitbutton.p-button-contrast - > .p-button.p-button-outlined:not(:disabled):active { + .p-button-group.p-button-contrast > .p-button.p-button-outlined:not(:disabled):active, + .p-splitbutton.p-button-contrast > .p-button.p-button-outlined:not(:disabled):active { background: rgba(31, 41, 55, 0.16); color: #1f2937; border: 1px solid; @@ -4063,31 +3735,27 @@ border-color: transparent; } .p-button.p-button-contrast.p-button-text:not(:disabled):hover, - .p-button-group.p-button-contrast - > .p-button.p-button-text:not(:disabled):hover, - .p-splitbutton.p-button-contrast - > .p-button.p-button-text:not(:disabled):hover { + .p-button-group.p-button-contrast > .p-button.p-button-text:not(:disabled):hover, + .p-splitbutton.p-button-contrast > .p-button.p-button-text:not(:disabled):hover { background: rgba(31, 41, 55, 0.04); border-color: transparent; color: #1f2937; } .p-button.p-button-contrast.p-button-text:not(:disabled):active, - .p-button-group.p-button-contrast - > .p-button.p-button-text:not(:disabled):active, - .p-splitbutton.p-button-contrast - > .p-button.p-button-text:not(:disabled):active { + .p-button-group.p-button-contrast > .p-button.p-button-text:not(:disabled):active, + .p-splitbutton.p-button-contrast > .p-button.p-button-text:not(:disabled):active { background: rgba(31, 41, 55, 0.16); border-color: transparent; color: #1f2937; } .p-button.p-button-link { - color: #001e0f; + color: rgb(0, 29.6, 15.2); background: transparent; border: transparent; } .p-button.p-button-link:not(:disabled):hover { background: transparent; - color: #001e0f; + color: rgb(0, 29.6, 15.2); border-color: transparent; } .p-button.p-button-link:not(:disabled):hover .p-button-label { @@ -4095,12 +3763,12 @@ } .p-button.p-button-link:not(:disabled):focus { background: transparent; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: transparent; } .p-button.p-button-link:not(:disabled):active { background: transparent; - color: #001e0f; + color: rgb(0, 29.6, 15.2); border-color: transparent; } .p-speeddial { @@ -4124,9 +3792,7 @@ .p-speeddial-item { transform: scale(0); opacity: 0; - transition: - transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - opacity 0.8s; + transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, opacity 0.8s; will-change: transform; } .p-speeddial-action { @@ -4187,7 +3853,7 @@ .p-speeddial-item.p-focus > .p-speeddial-action { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-speeddial-action { width: 3rem; @@ -4195,10 +3861,7 @@ background: #4b5563; color: #fff; outline-color: transparent; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } .p-speeddial-action:hover { background: #022354; @@ -4233,8 +3896,7 @@ .p-speeddial-quarter-circle .p-speeddial-item { margin: 0; } - .p-speeddial-circle .p-speeddial-item:first-child, - .p-speeddial-circle .p-speeddial-item:last-child, + .p-speeddial-circle .p-speeddial-item:first-child, .p-speeddial-circle .p-speeddial-item:last-child, .p-speeddial-semi-circle .p-speeddial-item:first-child, .p-speeddial-semi-circle .p-speeddial-item:last-child, .p-speeddial-quarter-circle .p-speeddial-item:first-child, @@ -4252,8 +3914,7 @@ .p-splitbutton .p-splitbutton-defaultbutton, .p-splitbutton.p-button-rounded > .p-splitbutton-defaultbutton.p-button, .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button, - .p-splitbutton.p-button-outlined - > .p-splitbutton-defaultbutton.p-button-outlined.p-button:hover { + .p-splitbutton.p-button-outlined > .p-splitbutton-defaultbutton.p-button-outlined.p-button:hover { flex: 1 1 auto; border-top-right-radius: 0; border-bottom-right-radius: 0; @@ -4284,10 +3945,7 @@ border-radius: 2rem; } .p-splitbutton.p-button-raised { - box-shadow: - 0 3px 1px -2px rgba(0, 0, 0, 0.2), - 0 2px 2px 0 rgba(0, 0, 0, 0.14), - 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } .p-carousel { display: flex; @@ -4355,10 +4013,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; margin: 0.5rem; } @@ -4372,7 +4027,7 @@ .p-carousel .p-carousel-content .p-carousel-next:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-carousel .p-carousel-indicators { padding: 1rem; @@ -4385,18 +4040,15 @@ background-color: #d1d5db; width: 2rem; height: 0.5rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 0; } .p-carousel .p-carousel-indicators .p-carousel-indicator button:hover { background: #9ca3af; } .p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-datatable { position: relative; @@ -4467,18 +4119,11 @@ overflow: hidden; white-space: nowrap; } - .p-datatable-resizable-table - > .p-datatable-thead - > tr - > th.p-resizable-column:not(.p-frozen-column) { + .p-datatable-resizable-table > .p-datatable-thead > tr > th.p-resizable-column:not(.p-frozen-column) { background-clip: padding-box; position: relative; } - .p-datatable-resizable-table-fit - > .p-datatable-thead - > tr - > th.p-resizable-column:last-child - .p-column-resizer { + .p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-resizable-column:last-child .p-column-resizer { display: none; } .p-datatable .p-column-resizer { @@ -4653,35 +4298,33 @@ height: 1.143rem; min-width: 1.143rem; line-height: 1.143rem; - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); margin-left: 0.5rem; } .p-datatable .p-sortable-column:not(.p-highlight):hover { background: #f3f4f6; color: #374151; } - .p-datatable - .p-sortable-column:not(.p-highlight):hover - .p-sortable-column-icon { + .p-datatable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon { color: #374151; } .p-datatable .p-sortable-column.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon { - color: #001e0f; + color: rgb(0, 29.6, 15.2); } .p-datatable .p-sortable-column.p-highlight:hover { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-datatable .p-sortable-column.p-highlight:hover .p-sortable-column-icon { - color: #001e0f; + color: rgb(0, 29.6, 15.2); } .p-datatable .p-sortable-column:focus-visible { - box-shadow: inset 0 0 0 0.15rem #09af5e; + box-shadow: inset 0 0 0 0.15rem rgb(9.21, 174.99, 94.3402702703); outline: 0 none; } .p-datatable .p-datatable-tbody > tr { @@ -4705,10 +4348,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td .p-row-toggler:enabled:hover, @@ -4725,7 +4365,7 @@ .p-datatable .p-datatable-tbody > tr > td .p-row-editor-cancel:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; @@ -4734,50 +4374,33 @@ font-weight: 0; } .p-datatable .p-datatable-tbody > tr:focus-visible { - outline: 0.15rem solid #09af5e; + outline: 0.15rem solid rgb(9.21, 174.99, 94.3402702703); outline-offset: -0.15rem; } .p-datatable .p-datatable-tbody > tr.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-datatable .p-datatable-tbody > tr.p-highlight-contextmenu { - outline: 0.15rem solid #09af5e; + outline: 0.15rem solid rgb(9.21, 174.99, 94.3402702703); outline-offset: -0.15rem; } .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-top > td { - box-shadow: inset 0 2px 0 0 #e9f1ed; + box-shadow: inset 0 2px 0 0 rgb(233.28, 240.52, 236.9978378378); } .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td { - box-shadow: inset 0 -2px 0 0 #e9f1ed; + box-shadow: inset 0 -2px 0 0 rgb(233.28, 240.52, 236.9978378378); } - .p-datatable.p-datatable-hoverable-rows - .p-datatable-tbody - > tr:not(.p-highlight):hover { + .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody > tr:not(.p-highlight):hover { background: #f3f4f6; color: #4b5563; } .p-datatable .p-column-resizer-helper { background: #00944c; } - .p-datatable.p-datatable-scrollable - > .p-datatable-wrapper - > .p-datatable-table - > .p-datatable-thead, - .p-datatable.p-datatable-scrollable - > .p-datatable-wrapper - > .p-datatable-table - > .p-datatable-tfoot, - .p-datatable.p-datatable-scrollable - > .p-datatable-wrapper - > .p-virtualscroller - > .p-datatable-table - > .p-datatable-thead, - .p-datatable.p-datatable-scrollable - > .p-datatable-wrapper - > .p-virtualscroller - > .p-datatable-table - > .p-datatable-tfoot { + .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-thead, + .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tfoot, .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-thead, + .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot { background-color: #f9fafb; } .p-datatable .p-datatable-loading-icon { @@ -4814,10 +4437,7 @@ .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td { border-width: 1px 0 1px 1px; } - .p-datatable.p-datatable-gridlines - .p-datatable-tbody - > tr:last-child - > td:last-child { + .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child { border-width: 1px; } .p-datatable.p-datatable-gridlines .p-datatable-tfoot > tr > td { @@ -4826,72 +4446,36 @@ .p-datatable.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child { border-width: 1px 1px 1px 1px; } - .p-datatable.p-datatable-gridlines - .p-datatable-thead - + .p-datatable-tfoot - > tr - > td { + .p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td { border-width: 0 0 1px 1px; } - .p-datatable.p-datatable-gridlines - .p-datatable-thead - + .p-datatable-tfoot - > tr - > td:last-child { + .p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child { border-width: 0 1px 1px 1px; } - .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has( - .p-datatable-tbody - ) - .p-datatable-tbody - > tr - > td { + .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td { border-width: 0 0 1px 1px; } - .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has( - .p-datatable-tbody - ) - .p-datatable-tbody - > tr - > td:last-child { + .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child { border-width: 0 1px 1px 1px; } - .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has( - .p-datatable-tfoot - ) - .p-datatable-tbody - > tr:last-child - > td { + .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td { border-width: 0 0 0 1px; } - .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has( - .p-datatable-tfoot - ) - .p-datatable-tbody - > tr:last-child - > td:last-child { + .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child { border-width: 0 1px 0 1px; } .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd { background: #f8f8fa; } - .p-datatable.p-datatable-striped - .p-datatable-tbody - > tr.p-row-odd.p-highlight { - background: #e9f1ed; - color: #001e0f; + .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight { + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } - .p-datatable.p-datatable-striped - .p-datatable-tbody - > tr.p-row-odd.p-highlight - .p-row-toggler { - color: #001e0f; + .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight .p-row-toggler { + color: rgb(0, 29.6, 15.2); } - .p-datatable.p-datatable-striped - .p-datatable-tbody - > tr.p-row-odd.p-highlight - .p-row-toggler:hover { - color: #001e0f; + .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight .p-row-toggler:hover { + color: rgb(0, 29.6, 15.2); } .p-datatable.p-datatable-sm .p-datatable-header { padding: 0.5rem 0.5rem; @@ -4966,10 +4550,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-column-filter-menu-button:hover { @@ -4977,20 +4558,18 @@ border-color: transparent; background: #f3f4f6; } - .p-column-filter-menu-button.p-column-filter-menu-button-open, - .p-column-filter-menu-button.p-column-filter-menu-button-open:hover { + .p-column-filter-menu-button.p-column-filter-menu-button-open, .p-column-filter-menu-button.p-column-filter-menu-button-open:hover { background: #f3f4f6; color: #374151; } - .p-column-filter-menu-button.p-column-filter-menu-button-active, - .p-column-filter-menu-button.p-column-filter-menu-button-active:hover { - background: #e9f1ed; - color: #001e0f; + .p-column-filter-menu-button.p-column-filter-menu-button-active, .p-column-filter-menu-button.p-column-filter-menu-button-active:hover { + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-column-filter-menu-button:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-column-filter-clear-button { width: 2rem; @@ -4999,10 +4578,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-column-filter-clear-button:hover { @@ -5013,7 +4589,7 @@ .p-column-filter-clear-button:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-column-filter-overlay { background: #ffffff; @@ -5026,9 +4602,7 @@ .p-column-filter-overlay .p-column-filter-row-items { padding: 0.75rem 0; } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item { margin: 0; padding: 0.75rem 1.25rem; border: 0 none; @@ -5037,38 +4611,26 @@ transition: box-shadow 0.2s; border-radius: 0; } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item:first-child { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:first-child { margin-top: 0; } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item:last-child { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:last-child { margin-bottom: 0; } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight { + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover { color: #4b5563; background: #f3f4f6; } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-row-item:focus-visible { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.15rem #09af5e; + box-shadow: inset 0 0 0 0.15rem rgb(9.21, 174.99, 94.3402702703); } - .p-column-filter-overlay - .p-column-filter-row-items - .p-column-filter-separator { + .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator { border-top: 1px solid #e5e7eb; margin: 0.25rem 0; } @@ -5085,14 +4647,10 @@ padding: 1.25rem; border-bottom: 1px solid #e5e7eb; } - .p-column-filter-overlay-menu - .p-column-filter-constraint - .p-column-filter-matchmode-dropdown { + .p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown { margin-bottom: 0.5rem; } - .p-column-filter-overlay-menu - .p-column-filter-constraint - .p-column-filter-remove-button { + .p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button { margin-top: 0.5rem; } .p-column-filter-overlay-menu .p-column-filter-constraint:last-child { @@ -5145,17 +4703,13 @@ background: #ffffff; border: 1px solid #e5e7eb; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-orderlist .p-orderlist-list-container.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-orderlist .p-orderlist-header { @@ -5177,9 +4731,7 @@ border: 0 none; color: #4b5563; background: transparent; - transition: - transform 0.2s, - box-shadow 0.2s; + transition: transform 0.2s, box-shadow 0.2s; } .p-orderlist .p-orderlist-list .p-orderlist-item:first-child { margin-top: 0; @@ -5191,9 +4743,7 @@ background: #f3f4f6; color: #4b5563; } - .p-orderlist - .p-orderlist-list - .p-orderlist-item:not(.p-highlight):hover.p-focus { + .p-orderlist .p-orderlist-list .p-orderlist-item:not(.p-highlight):hover.p-focus { color: #4b5563; background: #f3f4f6; } @@ -5202,20 +4752,16 @@ background: #f3f4f6; } .p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-orderlist.p-orderlist-striped - .p-orderlist-list - .p-orderlist-item:nth-child(even) { + .p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even) { background: #f8f8fa; } - .p-orderlist.p-orderlist-striped - .p-orderlist-list - .p-orderlist-item:nth-child(even):hover { + .p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even):hover { background: #f3f4f6; } .p-organizationchart-table { @@ -5262,22 +4808,16 @@ .p-organizationchart-selectable-node { cursor: pointer; } - .p-organizationchart - .p-organizationchart-node-content.p-organizationchart-selectable-node:not( - .p-highlight - ):hover { + .p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover { background: #f3f4f6; color: #4b5563; } .p-organizationchart .p-organizationchart-node-content.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } - .p-organizationchart - .p-organizationchart-node-content.p-highlight - .p-node-toggler - i { - color: #9dbeae; + .p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i { + color: rgb(156.78, 189.52, 173.5924324324); } .p-organizationchart .p-organizationchart-line-down { background: #e5e7eb; @@ -5302,12 +4842,10 @@ border-radius: 50%; outline-color: transparent; } - .p-organizationchart - .p-organizationchart-node-content - .p-node-toggler:focus-visible { + .p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-paginator-default { display: flex; @@ -5415,9 +4953,9 @@ border-radius: 50%; } .p-paginator .p-paginator-pages .p-paginator-page.p-highlight { - background: #e9f1ed; - border-color: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + border-color: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover { background: #f3f4f6; @@ -5462,17 +5000,13 @@ background: #ffffff; border: 1px solid #e5e7eb; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-picklist .p-picklist-list-wrapper.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); border-color: #00944c; } .p-picklist .p-picklist-header { @@ -5494,9 +5028,7 @@ border: 0 none; color: #4b5563; background: transparent; - transition: - transform 0.2s, - box-shadow 0.2s; + transition: transform 0.2s, box-shadow 0.2s; } .p-picklist .p-picklist-list .p-picklist-item:first-child { margin-top: 0; @@ -5508,9 +5040,7 @@ background: #f3f4f6; color: #4b5563; } - .p-picklist - .p-picklist-list - .p-picklist-item:not(.p-highlight):hover.p-focus { + .p-picklist .p-picklist-list .p-picklist-item:not(.p-highlight):hover.p-focus { color: #4b5563; background: #f3f4f6; } @@ -5519,20 +5049,16 @@ background: #f3f4f6; } .p-picklist .p-picklist-list .p-picklist-item.p-highlight { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } .p-picklist .p-picklist-list .p-picklist-item.p-highlight.p-focus { background: rgba(0, 148, 76, 0.24); } - .p-picklist.p-picklist-striped - .p-picklist-list - .p-picklist-item:nth-child(even) { + .p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(even) { background: #f8f8fa; } - .p-picklist.p-picklist-striped - .p-picklist-list - .p-picklist-item:nth-child(even):hover { + .p-picklist.p-picklist-striped .p-picklist-list .p-picklist-item:nth-child(even):hover { background: #f3f4f6; } .p-timeline { @@ -5558,24 +5084,16 @@ .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) { flex-direction: row-reverse; } - .p-timeline-vertical.p-timeline-alternate - .p-timeline-event:nth-child(odd) - .p-timeline-event-opposite { + .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(odd) .p-timeline-event-opposite { text-align: right; } - .p-timeline-vertical.p-timeline-alternate - .p-timeline-event:nth-child(odd) - .p-timeline-event-content { + .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(odd) .p-timeline-event-content { text-align: left; } - .p-timeline-vertical.p-timeline-alternate - .p-timeline-event:nth-child(even) - .p-timeline-event-opposite { + .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) .p-timeline-event-opposite { text-align: left; } - .p-timeline-vertical.p-timeline-alternate - .p-timeline-event:nth-child(even) - .p-timeline-event-content { + .p-timeline-vertical.p-timeline-alternate .p-timeline-event:nth-child(even) .p-timeline-event-content { text-align: right; } .p-timeline-event { @@ -5626,8 +5144,7 @@ .p-timeline-bottom .p-timeline-event { flex-direction: column-reverse; } - .p-timeline-horizontal.p-timeline-alternate - .p-timeline-event:nth-child(even) { + .p-timeline-horizontal.p-timeline-alternate .p-timeline-event:nth-child(even) { flex-direction: column-reverse; } .p-timeline .p-timeline-event-marker { @@ -5736,7 +5253,7 @@ .p-tree .p-tree-container .p-treenode:focus > .p-treenode-content { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.15rem #09af5e; + box-shadow: inset 0 0 0 0.15rem rgb(9.21, 174.99, 94.3402702703); } .p-tree .p-tree-container .p-treenode .p-treenode-content { border-radius: 6px; @@ -5751,29 +5268,18 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content - .p-tree-toggler:enabled:hover { + .p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover { color: #374151; border-color: transparent; background: #f3f4f6; } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content - .p-tree-toggler:focus-visible { + .p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon { margin-right: 0.5rem; @@ -5782,46 +5288,22 @@ .p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox { margin-right: 0.5rem; } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content - .p-checkbox.p-indeterminate - .p-checkbox-icon { + .p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox.p-indeterminate .p-checkbox-icon { color: #4b5563; } .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content.p-highlight - .p-tree-toggler, - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content.p-highlight - .p-treenode-icon { - color: #001e0f; + .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler, + .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon { + color: rgb(0, 29.6, 15.2); } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content.p-highlight - .p-tree-toggler:hover, - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content.p-highlight - .p-treenode-icon:hover { - color: #001e0f; + .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover, + .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover { + color: rgb(0, 29.6, 15.2); } - .p-tree - .p-tree-container - .p-treenode - .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover { + .p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover { background: #f3f4f6; color: #4b5563; } @@ -5972,14 +5454,7 @@ .p-treetable-scrollable-both .p-treetable-thead > tr > th, .p-treetable-scrollable-both .p-treetable-tbody > tr > td, .p-treetable-scrollable-both .p-treetable-tfoot > tr > td, - .p-treetable-scrollable-horizontal - .p-treetable-thead - > tr - > th - .p-treetable-scrollable-horizontal - .p-treetable-tbody - > tr - > td, + .p-treetable-scrollable-horizontal .p-treetable-thead > tr > th .p-treetable-scrollable-horizontal .p-treetable-tbody > tr > td, .p-treetable-scrollable-horizontal .p-treetable-tfoot > tr > td { flex: 0 0 auto; } @@ -6038,7 +5513,7 @@ background: #f9fafb; } .p-treetable .p-sortable-column { - outline-color: #09af5e; + outline-color: rgb(9.21, 174.99, 94.3402702703); } .p-treetable .p-sortable-column .p-sortable-column-icon { color: #374151; @@ -6049,25 +5524,23 @@ height: 1.143rem; min-width: 1.143rem; line-height: 1.143rem; - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); margin-left: 0.5rem; } .p-treetable .p-sortable-column:not(.p-highlight):hover { background: #f3f4f6; color: #374151; } - .p-treetable - .p-sortable-column:not(.p-highlight):hover - .p-sortable-column-icon { + .p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon { color: #374151; } .p-treetable .p-sortable-column.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon { - color: #001e0f; + color: rgb(0, 29.6, 15.2); } .p-treetable .p-treetable-tbody > tr { background: #ffffff; @@ -6087,10 +5560,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; margin-right: 0.5rem; } @@ -6102,44 +5572,33 @@ .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler + .p-checkbox { margin-right: 0.5rem; } - .p-treetable - .p-treetable-tbody - > tr - > td - .p-treetable-toggler - + .p-checkbox.p-indeterminate - .p-checkbox-icon { + .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler + .p-checkbox.p-indeterminate .p-checkbox-icon { color: #4b5563; } .p-treetable .p-treetable-tbody > tr:focus-visible { - outline: 0.15rem solid #09af5e; + outline: 0.15rem solid rgb(9.21, 174.99, 94.3402702703); outline-offset: -0.15rem; } .p-treetable .p-treetable-tbody > tr.p-highlight { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-treetable .p-treetable-tbody > tr.p-highlight .p-treetable-toggler { - color: #001e0f; + color: rgb(0, 29.6, 15.2); } .p-treetable .p-treetable-tbody > tr.p-highlight .p-treetable-toggler:hover { - color: #001e0f; + color: rgb(0, 29.6, 15.2); } - .p-treetable.p-treetable-hoverable-rows - .p-treetable-tbody - > tr:not(.p-highlight):hover { + .p-treetable.p-treetable-hoverable-rows .p-treetable-tbody > tr:not(.p-highlight):hover { background: #f3f4f6; color: #4b5563; } - .p-treetable.p-treetable-hoverable-rows - .p-treetable-tbody - > tr:not(.p-highlight):hover - .p-treetable-toggler { + .p-treetable.p-treetable-hoverable-rows .p-treetable-tbody > tr:not(.p-highlight):hover .p-treetable-toggler { color: #4b5563; } .p-treetable .p-column-resizer-helper { @@ -6231,38 +5690,27 @@ transition: box-shadow 0.2s; outline-color: transparent; } - .p-accordion - .p-accordion-header - .p-accordion-header-link - .p-accordion-toggle-icon { + .p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon { margin-right: 0.5rem; } - .p-accordion - .p-accordion-header:not(.p-disabled) - .p-accordion-header-link:focus-visible { + .p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.2rem #09af5e; + box-shadow: inset 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-accordion - .p-accordion-header:not(.p-highlight):not(.p-disabled):hover - .p-accordion-header-link { + .p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link { background: #f3f4f6; border-color: #e5e7eb; color: #374151; } - .p-accordion - .p-accordion-header:not(.p-disabled).p-highlight - .p-accordion-header-link { + .p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link { background: #f9fafb; border-color: #e5e7eb; color: #374151; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } - .p-accordion - .p-accordion-header:not(.p-disabled).p-highlight:hover - .p-accordion-header-link { + .p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link { border-color: #e5e7eb; background: #f3f4f6; color: #374151; @@ -6284,10 +5732,7 @@ .p-card { background: #ffffff; color: #4b5563; - box-shadow: - 0 2px 1px -1px rgba(0, 0, 0, 0.2), - 0 1px 1px 0 rgba(0, 0, 0, 0.14), - 0 1px 3px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); border-radius: 6px; } .p-card .p-card-body { @@ -6341,10 +5786,7 @@ } .p-fieldset.p-fieldset-toggleable .p-fieldset-legend { padding: 0; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a { padding: 1.25rem; @@ -6359,7 +5801,7 @@ .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:hover { color: #374151; @@ -6480,10 +5922,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-panel .p-panel-header .p-panel-header-icon:enabled:hover { @@ -6494,7 +5933,7 @@ .p-panel .p-panel-header .p-panel-header-icon:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-panel.p-panel-toggleable .p-panel-header { padding: 0.75rem 1.25rem; @@ -6569,17 +6008,13 @@ .p-scrollpanel .p-scrollpanel-bar { background: #f9fafb; border: 0 none; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-scrollpanel .p-scrollpanel-bar:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-splitter { display: flex; @@ -6636,25 +6071,18 @@ color: #4b5563; } .p-splitter .p-splitter-gutter { - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; background: #f9fafb; } .p-splitter .p-splitter-gutter .p-splitter-gutter-handle { background: #e5e7eb; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-splitter .p-splitter-gutter .p-splitter-gutter-handle:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-splitter .p-splitter-gutter-resizing { background: #e5e7eb; @@ -6691,7 +6119,7 @@ .p-stepper-header .p-stepper-action:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-stepper.p-stepper-readonly .p-stepper-header { cursor: auto; @@ -6741,30 +6169,22 @@ line-height: 2rem; font-size: 1.143rem; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } .p-stepper .p-stepper-header .p-stepper-action .p-stepper-title { margin-left: 0.5rem; color: #6b7280; font-weight: 0; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } - .p-stepper - .p-stepper-header - .p-stepper-action:not(.p-disabled):focus-visible { + .p-stepper .p-stepper-header .p-stepper-action:not(.p-disabled):focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-stepper .p-stepper-header.p-highlight .p-stepper-number { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-stepper .p-stepper-header.p-highlight .p-stepper-title { color: #4b5563; @@ -6772,7 +6192,7 @@ .p-stepper .p-stepper-header:not(.p-disabled):focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-stepper .p-stepper-header:has(~ .p-highlight) .p-stepper-separator { background-color: #00944c; @@ -6820,14 +6240,10 @@ height: auto; margin-inline-start: calc(1.75rem + 2px); } - .p-stepper.p-stepper-vertical - .p-stepper-panel:has(~ .p-stepper-panel-active) - .p-stepper-separator { + .p-stepper.p-stepper-vertical .p-stepper-panel:has(~ .p-stepper-panel-active) .p-stepper-separator { background-color: #00944c; } - .p-stepper.p-stepper-vertical - .p-stepper-panel:last-of-type - .p-stepper-content { + .p-stepper.p-stepper-vertical .p-stepper-panel:last-of-type .p-stepper-content { padding-left: 3rem; } .p-tabview-nav-container { @@ -6910,18 +6326,12 @@ margin: 0 0 -2px 0; outline-color: transparent; } - .p-tabview - .p-tabview-nav - li - .p-tabview-nav-link:not(.p-disabled):focus-visible { + .p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.2rem #09af5e; + box-shadow: inset 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-tabview - .p-tabview-nav - li:not(.p-highlight):not(.p-disabled):hover - .p-tabview-nav-link { + .p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link { background: #ffffff; border-color: #9ca3af; color: #6b7280; @@ -6935,17 +6345,14 @@ background: #ffffff; color: #00944c; width: 3rem; - box-shadow: - 0 3px 1px -2px rgba(0, 0, 0, 0.2), - 0 2px 2px 0 rgba(0, 0, 0, 0.14), - 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); border-radius: 0; outline-color: transparent; } .p-tabview .p-tabview-nav-btn.p-link:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.2rem #09af5e; + box-shadow: inset 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-tabview .p-tabview-panels { background: #ffffff; @@ -7001,9 +6408,7 @@ opacity: 0; } .p-confirm-popup-enter-active { - transition: - transform 0.12s cubic-bezier(0, 0, 0.2, 1), - opacity 0.12s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1); } .p-confirm-popup-leave-active { transition: opacity 0.1s linear; @@ -7044,7 +6449,7 @@ .p-confirm-popup { background: #ffffff; color: #4b5563; - border: 0 none; + border: 0px solid #e5e7eb; border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } @@ -7069,14 +6474,14 @@ } .p-confirm-popup:before { border-style: solid; - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #f2f2f2; + border-color: rgba(229, 231, 235, 0); + border-bottom-color: rgb(215.8869565217, 218.8956521739, 224.9130434783); } .p-confirm-popup.p-confirm-popup-flipped:after { border-top-color: #ffffff; } .p-confirm-popup.p-confirm-popup-flipped:before { - border-top-color: #ffffff; + border-top-color: #e5e7eb; } .p-confirm-popup .p-confirm-popup-icon { font-size: 1.5rem; @@ -7208,7 +6613,7 @@ .p-dialog { border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); - border: 0 none; + border: 0px solid #e5e7eb; } .p-dialog .p-dialog-header { border-bottom: 0 none; @@ -7229,10 +6634,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; margin-right: 0.5rem; } @@ -7244,7 +6646,7 @@ .p-dialog .p-dialog-header .p-dialog-header-icon:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-dialog .p-dialog-header .p-dialog-header-icon:last-child { margin-right: 0; @@ -7298,9 +6700,7 @@ opacity: 0; } .p-overlaypanel-enter-active { - transition: - transform 0.12s cubic-bezier(0, 0, 0.2, 1), - opacity 0.12s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1); } .p-overlaypanel-leave-active { transition: opacity 0.1s linear; @@ -7337,7 +6737,7 @@ .p-overlaypanel { background: #ffffff; color: #4b5563; - border: 0 none; + border: 0px solid #e5e7eb; border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } @@ -7349,17 +6749,14 @@ color: #ffffff; width: 2rem; height: 2rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 50%; position: absolute; top: -1rem; right: -1rem; } .p-overlaypanel .p-overlaypanel-close:enabled:hover { - background: #00592e; + background: rgb(0, 88.8, 45.6); color: #ffffff; } .p-overlaypanel:after { @@ -7369,14 +6766,14 @@ } .p-overlaypanel:before { border-style: solid; - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #f2f2f2; + border-color: rgba(229, 231, 235, 0); + border-bottom-color: rgb(215.8869565217, 218.8956521739, 224.9130434783); } .p-overlaypanel.p-overlaypanel-flipped:after { border-top-color: #ffffff; } .p-overlaypanel.p-overlaypanel-flipped:before { - border-top-color: #ffffff; + border-top-color: #e5e7eb; } .p-sidebar-mask { display: none; @@ -7509,7 +6906,7 @@ .p-sidebar { background: #ffffff; color: #4b5563; - border: 0 none; + border: 0px solid #e5e7eb; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); } .p-sidebar .p-sidebar-header { @@ -7527,10 +6924,7 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover, @@ -7543,7 +6937,7 @@ .p-sidebar .p-sidebar-header .p-sidebar-icon:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-sidebar .p-sidebar-header + .p-sidebar-content { padding-top: 0; @@ -7632,8 +7026,8 @@ display: flex; flex-wrap: wrap; } - .p-fileupload > input[type="file"], - .p-fileupload-basic input[type="file"] { + .p-fileupload > input[type=file], + .p-fileupload-basic input[type=file] { display: none; } .p-fluid .p-fileupload .p-button { @@ -7663,7 +7057,7 @@ .p-fileupload .p-fileupload-buttonbar .p-button.p-fileupload-choose.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-fileupload .p-fileupload-content { background: #ffffff; @@ -7675,7 +7069,7 @@ } .p-fileupload .p-fileupload-content.p-fileupload-highlight { border: 1px dashed #00944c; - background-color: #e9f1ed; + background-color: rgb(233.28, 240.52, 236.9978378378); } .p-fileupload .p-fileupload-file { padding: 1rem; @@ -7703,14 +7097,14 @@ margin-top: 0; } .p-fileupload-choose:not(.p-disabled):hover { - background: #00592e; + background: rgb(0, 88.8, 45.6); color: #ffffff; - border-color: #00592e; + border-color: rgb(0, 88.8, 45.6); } .p-fileupload-choose:not(.p-disabled):active { - background: #001e0f; + background: rgb(0, 29.6, 15.2); color: #ffffff; - border-color: #001e0f; + border-color: rgb(0, 29.6, 15.2); } .p-breadcrumb { overflow-x: auto; @@ -7752,7 +7146,7 @@ .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-text { color: #4b5563; @@ -7842,127 +7236,61 @@ padding: 0.75rem 1.25rem; user-select: none; } - .p-contextmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-contextmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-contextmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-contextmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-contextmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-contextmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } .p-contextmenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-contextmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-contextmenu .p-menuitem-separator { @@ -8080,60 +7408,50 @@ .p-dock .p-dock-item.p-focus { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.15rem #09af5e; + box-shadow: inset 0 0 0 0.15rem rgb(9.21, 174.99, 94.3402702703); } .p-dock .p-dock-link { width: 4rem; height: 4rem; } .p-dock.p-dock-top .p-dock-item-second-prev, - .p-dock.p-dock-top .p-dock-item-second-next, - .p-dock.p-dock-bottom .p-dock-item-second-prev, + .p-dock.p-dock-top .p-dock-item-second-next, .p-dock.p-dock-bottom .p-dock-item-second-prev, .p-dock.p-dock-bottom .p-dock-item-second-next { margin: 0 0.9rem; } .p-dock.p-dock-top .p-dock-item-prev, - .p-dock.p-dock-top .p-dock-item-next, - .p-dock.p-dock-bottom .p-dock-item-prev, + .p-dock.p-dock-top .p-dock-item-next, .p-dock.p-dock-bottom .p-dock-item-prev, .p-dock.p-dock-bottom .p-dock-item-next { margin: 0 1.3rem; } - .p-dock.p-dock-top .p-dock-item-current, - .p-dock.p-dock-bottom .p-dock-item-current { + .p-dock.p-dock-top .p-dock-item-current, .p-dock.p-dock-bottom .p-dock-item-current { margin: 0 1.5rem; } .p-dock.p-dock-left .p-dock-item-second-prev, - .p-dock.p-dock-left .p-dock-item-second-next, - .p-dock.p-dock-right .p-dock-item-second-prev, + .p-dock.p-dock-left .p-dock-item-second-next, .p-dock.p-dock-right .p-dock-item-second-prev, .p-dock.p-dock-right .p-dock-item-second-next { margin: 0.9rem 0; } .p-dock.p-dock-left .p-dock-item-prev, - .p-dock.p-dock-left .p-dock-item-next, - .p-dock.p-dock-right .p-dock-item-prev, + .p-dock.p-dock-left .p-dock-item-next, .p-dock.p-dock-right .p-dock-item-prev, .p-dock.p-dock-right .p-dock-item-next { margin: 1.3rem 0; } - .p-dock.p-dock-left .p-dock-item-current, - .p-dock.p-dock-right .p-dock-item-current { + .p-dock.p-dock-left .p-dock-item-current, .p-dock.p-dock-right .p-dock-item-current { margin: 1.5rem 0; } - .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container, - .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container { + .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container, .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container { overflow-x: auto; width: 100%; } - .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container .p-dock-list, - .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container .p-dock-list { + .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container .p-dock-list, .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container .p-dock-list { margin: 0 auto; } - .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container, - .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container { + .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container, .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container { overflow-y: auto; height: 100%; } - .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container .p-dock-list, - .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container .p-dock-list { + .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container .p-dock-list, .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container .p-dock-list { margin: auto 0; } .p-dock.p-dock-mobile .p-dock-list .p-dock-item { @@ -8208,19 +7526,11 @@ .p-megamenu-vertical .p-megamenu-root-list { flex-direction: column; } - .p-megamenu-vertical:not(.p-megamenu-mobile) - .p-megamenu-root-list - > .p-menuitem-active - > .p-megamenu-panel { + .p-megamenu-vertical:not(.p-megamenu-mobile) .p-megamenu-root-list > .p-menuitem-active > .p-megamenu-panel { left: 100%; top: 0; } - .p-megamenu-vertical - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content - > .p-menuitem-link - > .p-submenu-icon { + .p-megamenu-vertical .p-megamenu-root-list > .p-menuitem > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { margin-left: auto; } .p-megamenu-grid { @@ -8308,127 +7618,61 @@ padding: 0.75rem 1.25rem; user-select: none; } - .p-megamenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-megamenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-megamenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-megamenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-megamenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } .p-megamenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-megamenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-megamenu .p-megamenu-panel { @@ -8459,75 +7703,35 @@ min-width: 12.5rem; padding: 0.5rem 0; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content { color: #4b5563; transition: box-shadow 0.2s; border-radius: 6px; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link { padding: 0.75rem 1.25rem; user-select: none; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; margin-left: 0.5rem; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-megamenu.p-megamenu-horizontal - .p-megamenu-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-megamenu.p-megamenu-mobile.p-megamenu-vertical { @@ -8539,10 +7743,7 @@ height: 2rem; color: #6b7280; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-megamenu.p-megamenu-mobile .p-megamenu-button:hover { @@ -8552,7 +7753,7 @@ .p-megamenu.p-megamenu-mobile .p-megamenu-button:focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-megamenu.p-megamenu-mobile .p-megamenu-root-list { padding: 0.5rem 0; @@ -8567,45 +7768,21 @@ .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-submenu-icon { font-size: 0.875rem; } - .p-megamenu.p-megamenu-mobile - .p-megamenu-root-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon { margin-left: auto; transition: transform 0.2s; } - .p-megamenu.p-megamenu-mobile - .p-megamenu-root-list - .p-menuitem.p-menuitem-active - > .p-menuitem-content - > .p-menuitem-link - > .p-submenu-icon { + .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-menuitem.p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { transform: rotate(-180deg); } - .p-megamenu.p-megamenu-mobile - .p-megamenu-root-list - .p-submenu-list - .p-submenu-icon { + .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-submenu-list .p-submenu-icon { transition: transform 0.2s; transform: rotate(90deg); } - .p-megamenu.p-megamenu-mobile - .p-megamenu-root-list - .p-submenu-list - .p-menuitem-active - > .p-menuitem-content - > .p-menuitem-link - > .p-submenu-icon { + .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-submenu-list .p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { transform: rotate(-90deg); } - .p-megamenu.p-megamenu-mobile - .p-megamenu-root-list - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-megamenu.p-megamenu-mobile .p-megamenu-root-list .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 2.25rem; } .p-menu ul { @@ -8662,104 +7839,50 @@ color: #6b7280; } .p-menu .p-menuitem.p-highlight > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-menu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-menu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-menu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } .p-menu .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-menu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-menu.p-menu-overlay { @@ -8825,12 +7948,7 @@ left: 100%; top: 0; } - .p-menubar - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon { margin-left: auto; } .p-menubar .p-menubar-end { @@ -8887,67 +8005,30 @@ transition: box-shadow 0.2s; border-radius: 6px; } - .p-menubar - .p-menubar-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link { + .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link { padding: 0.75rem 1.25rem; user-select: none; } - .p-menubar - .p-menubar-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menubar-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-menubar - .p-menubar-root-list - > .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; margin-left: 0.5rem; } - .p-menubar - .p-menubar-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-menubar - .p-menubar-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menubar-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-menubar - .p-menubar-root-list - > .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-menubar .p-menuitem { @@ -8969,127 +8050,61 @@ padding: 0.75rem 1.25rem; user-select: none; } - .p-menubar - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-menubar - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-menubar .p-menuitem.p-highlight > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-menubar - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-menubar - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-menubar - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } .p-menubar .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-menubar - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-menubar .p-submenu-list { @@ -9112,10 +8127,7 @@ height: 2rem; color: #6b7280; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-menubar.p-menubar-mobile .p-menubar-button:hover { @@ -9125,7 +8137,7 @@ .p-menubar.p-menubar-mobile .p-menubar-button:focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-menubar.p-menubar-mobile .p-menubar-root-list { padding: 0.5rem 0; @@ -9140,97 +8152,33 @@ .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-icon { font-size: 0.875rem; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon { margin-left: auto; transition: transform 0.2s; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-menuitem.p-menuitem-active - > .p-menuitem-content - > .p-menuitem-link - > .p-submenu-icon { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-menuitem.p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { transform: rotate(-180deg); } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-submenu-icon { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-submenu-icon { transition: transform 0.2s; transform: rotate(90deg); } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem-active - > .p-menuitem-content - > .p-menuitem-link - > .p-submenu-icon { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon { transform: rotate(-90deg); } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 2.25rem; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 3.75rem; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 5.25rem; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 6.75rem; } - .p-menubar.p-menubar-mobile - .p-menubar-root-list - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-submenu-list - .p-menuitem - .p-menuitem-content - .p-menuitem-link { + .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link { padding-left: 8.25rem; } .p-panelmenu .p-panelmenu-header-action { @@ -9272,45 +8220,28 @@ transition: box-shadow 0.2s; outline-color: transparent; } - .p-panelmenu - .p-panelmenu-header - .p-panelmenu-header-content - .p-panelmenu-header-action { + .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action { color: #6b7280; padding: 1.25rem; font-weight: 100; } - .p-panelmenu - .p-panelmenu-header - .p-panelmenu-header-content - .p-panelmenu-header-action - .p-submenu-icon { + .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-submenu-icon { margin-right: 0.5rem; } - .p-panelmenu - .p-panelmenu-header - .p-panelmenu-header-content - .p-panelmenu-header-action - .p-menuitem-icon { + .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-action .p-menuitem-icon { margin-right: 0.5rem; } - .p-panelmenu - .p-panelmenu-header:not(.p-disabled):focus-visible - .p-panelmenu-header-content { + .p-panelmenu .p-panelmenu-header:not(.p-disabled):focus-visible .p-panelmenu-header-content { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.2rem #09af5e; + box-shadow: inset 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-panelmenu - .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover - .p-panelmenu-header-content { + .p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover .p-panelmenu-header-content { background: #f3f4f6; border-color: #e5e7eb; color: #374151; } - .p-panelmenu - .p-panelmenu-header:not(.p-disabled).p-highlight - .p-panelmenu-header-content { + .p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight .p-panelmenu-header-content { background: #f9fafb; border-color: #e5e7eb; color: #374151; @@ -9318,9 +8249,7 @@ border-bottom-left-radius: 0; margin-bottom: 0; } - .p-panelmenu - .p-panelmenu-header:not(.p-disabled).p-highlight:hover - .p-panelmenu-header-content { + .p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight:hover .p-panelmenu-header-content { border-color: #e5e7eb; background: #f3f4f6; color: #374151; @@ -9353,177 +8282,76 @@ transition: box-shadow 0.2s; border-radius: 0; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem - > .p-menuitem-content - .p-menuitem-link { + .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link { color: #4b5563; padding: 0.75rem 1.25rem; user-select: none; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem.p-highlight - > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content { + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-panelmenu - .p-panelmenu-content - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-panelmenu - .p-panelmenu-content - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-panelmenu - .p-panelmenu-content - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } - .p-panelmenu - .p-panelmenu-content - .p-menuitem.p-highlight.p-focus - > .p-menuitem-content { + .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-panelmenu - .p-panelmenu-content - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-panelmenu - .p-panelmenu-content - .p-menuitem - .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon { margin-right: 0.5rem; } .p-panelmenu .p-panelmenu-content .p-menuitem-separator { border-top: 1px solid #e5e7eb; margin: 0.25rem 0; } - .p-panelmenu - .p-panelmenu-content - .p-submenu-list:not(.p-panelmenu-root-list) { + .p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-list) { padding: 0 0 0 1rem; } .p-panelmenu .p-panelmenu-panel { @@ -9598,11 +8426,11 @@ .p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-steps .p-steps-item.p-highlight .p-steps-number { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-steps .p-steps-item.p-highlight .p-steps-title { font-weight: 0; @@ -9676,18 +8504,12 @@ .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon { margin-right: 0.5rem; } - .p-tabmenu - .p-tabmenu-nav - .p-tabmenuitem - .p-menuitem-link:not(.p-disabled):focus-visible { + .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: inset 0 0 0 0.2rem #09af5e; + box-shadow: inset 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } - .p-tabmenu - .p-tabmenu-nav - .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover - .p-menuitem-link { + .p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link { background: #ffffff; border-color: #9ca3af; color: #6b7280; @@ -9779,127 +8601,61 @@ padding: 0.75rem 1.25rem; user-select: none; } - .p-tieredmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-tieredmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon { + .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon { color: #6b7280; margin-right: 0.5rem; } - .p-tieredmenu - .p-menuitem - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content { - color: #001e0f; - background: #e9f1ed; + color: rgb(0, 29.6, 15.2); + background: rgb(233.28, 240.52, 236.9978378378); } - .p-tieredmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { - color: #001e0f; + .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text { + color: rgb(0, 29.6, 15.2); } - .p-tieredmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-tieredmenu - .p-menuitem.p-highlight - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { - color: #001e0f; + .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon { + color: rgb(0, 29.6, 15.2); } .p-tieredmenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content { background: rgba(0, 148, 76, 0.24); } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content { color: #4b5563; background: #f3f4f6; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-text { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-menuitem-icon, - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content - .p-menuitem-link - .p-submenu-icon { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon, + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon { color: #4b5563; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover { color: #4b5563; background: #f3f4f6; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-text { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text { color: #4b5563; } - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-menuitem-icon, - .p-tieredmenu - .p-menuitem:not(.p-highlight):not(.p-disabled) - > .p-menuitem-content:hover - .p-menuitem-link - .p-submenu-icon { + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon, + .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon { color: #6b7280; } .p-tieredmenu .p-menuitem-separator { @@ -10032,10 +8788,7 @@ } .p-message-leave-active { overflow: hidden; - transition: - max-height 0.3s cubic-bezier(0, 1, 0, 1), - opacity 0.3s, - margin 0.15s; + transition: max-height 0.3s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin 0.15s; } .p-message-leave-active .p-message-close { display: none; @@ -10052,10 +8805,7 @@ height: 2rem; border-radius: 50%; background: transparent; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-message .p-message-close:hover { @@ -10064,7 +8814,7 @@ .p-message .p-message-close:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-message.p-message-info { background: rgba(219, 234, 254, 0.7); @@ -10202,22 +8952,12 @@ overflow: hidden; } .p-toast-message-enter-active { - -webkit-transition: - transform 0.3s, - opacity 0.3s; - transition: - transform 0.3s, - opacity 0.3s; + -webkit-transition: transform 0.3s, opacity 0.3s; + transition: transform 0.3s, opacity 0.3s; } .p-toast-message-leave-active { - -webkit-transition: - max-height 0.45s cubic-bezier(0, 1, 0, 1), - opacity 0.3s, - margin-bottom 0.3s; - transition: - max-height 0.45s cubic-bezier(0, 1, 0, 1), - opacity 0.3s, - margin-bottom 0.3s; + -webkit-transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s; + transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s; } .p-toast { opacity: 1; @@ -10237,10 +8977,7 @@ .p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon { font-size: 2rem; } - .p-toast - .p-toast-message - .p-toast-message-content - .p-toast-message-icon.p-icon { + .p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon.p-icon { width: 2rem; height: 2rem; } @@ -10255,10 +8992,7 @@ height: 2rem; border-radius: 50%; background: transparent; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-toast .p-toast-message .p-toast-icon-close:hover { @@ -10267,7 +9001,7 @@ .p-toast .p-toast-message .p-toast-icon-close:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-toast .p-toast-message.p-toast-message-info { background: rgba(219, 234, 254, 0.7); @@ -10374,15 +9108,11 @@ opacity: 0; transition: opacity 0.2s ease-in-out; } - .p-galleria-item-nav-onhover - .p-galleria-item-wrapper:hover - .p-galleria-item-nav { + .p-galleria-item-nav-onhover .p-galleria-item-wrapper:hover .p-galleria-item-nav { pointer-events: all; opacity: 1; } - .p-galleria-item-nav-onhover - .p-galleria-item-wrapper:hover - .p-galleria-item-nav.p-disabled { + .p-galleria-item-nav-onhover .p-galleria-item-wrapper:hover .p-galleria-item-nav.p-disabled { pointer-events: none; } .p-galleria-caption { @@ -10500,29 +9230,25 @@ display: flex; z-index: 1; } - .p-galleria-indicator-onitem.p-galleria-indicators-top - .p-galleria-indicators { + .p-galleria-indicator-onitem.p-galleria-indicators-top .p-galleria-indicators { top: 0; left: 0; width: 100%; align-items: flex-start; } - .p-galleria-indicator-onitem.p-galleria-indicators-right - .p-galleria-indicators { + .p-galleria-indicator-onitem.p-galleria-indicators-right .p-galleria-indicators { right: 0; top: 0; height: 100%; align-items: flex-end; } - .p-galleria-indicator-onitem.p-galleria-indicators-bottom - .p-galleria-indicators { + .p-galleria-indicator-onitem.p-galleria-indicators-bottom .p-galleria-indicators { bottom: 0; left: 0; width: 100%; align-items: flex-end; } - .p-galleria-indicator-onitem.p-galleria-indicators-left - .p-galleria-indicators { + .p-galleria-indicator-onitem.p-galleria-indicators-left .p-galleria-indicators { left: 0; top: 0; height: 100%; @@ -10581,10 +9307,7 @@ color: #f9fafb; width: 4rem; height: 4rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 50%; } .p-galleria .p-galleria-close .p-galleria-close-icon { @@ -10603,10 +9326,7 @@ color: #f9fafb; width: 4rem; height: 4rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 6px; margin: 0 0.5rem; } @@ -10634,48 +9354,34 @@ background-color: #d1d5db; width: 1rem; height: 1rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 50%; } .p-galleria .p-galleria-indicators .p-galleria-indicator button:hover { background: #9ca3af; } .p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button { - background: #e9f1ed; - color: #001e0f; + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } - .p-galleria.p-galleria-indicators-bottom .p-galleria-indicator, - .p-galleria.p-galleria-indicators-top .p-galleria-indicator { + .p-galleria.p-galleria-indicators-bottom .p-galleria-indicator, .p-galleria.p-galleria-indicators-top .p-galleria-indicator { margin-right: 0.5rem; } - .p-galleria.p-galleria-indicators-left .p-galleria-indicator, - .p-galleria.p-galleria-indicators-right .p-galleria-indicator { + .p-galleria.p-galleria-indicators-left .p-galleria-indicator, .p-galleria.p-galleria-indicators-right .p-galleria-indicator { margin-bottom: 0.5rem; } .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators { background: rgba(0, 0, 0, 0.5); } - .p-galleria.p-galleria-indicator-onitem - .p-galleria-indicators - .p-galleria-indicator - button { + .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button { background: rgba(255, 255, 255, 0.4); } - .p-galleria.p-galleria-indicator-onitem - .p-galleria-indicators - .p-galleria-indicator - button:hover { + .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover { background: rgba(255, 255, 255, 0.6); } - .p-galleria.p-galleria-indicator-onitem - .p-galleria-indicators - .p-galleria-indicator.p-highlight - button { - background: #e9f1ed; - color: #001e0f; + .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button { + background: rgb(233.28, 240.52, 236.9978378378); + color: rgb(0, 29.6, 15.2); } .p-galleria .p-galleria-thumbnail-container { background: rgba(0, 0, 0, 0.9); @@ -10688,10 +9394,7 @@ color: #f9fafb; width: 2rem; height: 2rem; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; border-radius: 50%; } .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover, @@ -10699,17 +9402,13 @@ background: rgba(255, 255, 255, 0.1); color: #f9fafb; } - .p-galleria - .p-galleria-thumbnail-container - .p-galleria-thumbnail-item-content { + .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content { outline-color: transparent; } - .p-galleria - .p-galleria-thumbnail-container - .p-galleria-thumbnail-item-content:focus-visible { + .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-galleria-mask { --maskbg: rgba(0, 0, 0, 0.9); @@ -10782,10 +9481,7 @@ .p-image-preview-indicator { background-color: transparent; color: #f8f9fa; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } .p-image-preview-indicator .p-icon { width: 1.5rem; @@ -10803,10 +9499,7 @@ width: 3rem; height: 3rem; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; margin-right: 0.5rem; } .p-image-action.p-link:last-child { @@ -11006,16 +9699,13 @@ .p-chip .p-chip-remove-icon { margin-left: 0.5rem; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-chip .p-chip-remove-icon:focus-visible { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-chip .p-chip-remove-icon:focus { outline: 0 none; @@ -11037,11 +9727,7 @@ .p-inplace .p-inplace-display { padding: 0.75rem 0.75rem; border-radius: 6px; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; outline-color: transparent; } .p-inplace .p-inplace-display:not(.p-disabled):hover { @@ -11051,7 +9737,7 @@ .p-inplace .p-inplace-display:focus { outline: 0 none; outline-offset: 0; - box-shadow: 0 0 0 0.2rem #09af5e; + box-shadow: 0 0 0 0.2rem rgb(9.21, 174.99, 94.3402702703); } .p-metergroup { display: flex; @@ -11170,10 +9856,8 @@ left: 0; bottom: 0; will-change: left, right; - -webkit-animation: p-progressbar-indeterminate-anim 2.1s - cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; - animation: p-progressbar-indeterminate-anim 2.1s - cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + -webkit-animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; + animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } .p-progressbar-indeterminate .p-progressbar-value::after { content: ""; @@ -11183,10 +9867,8 @@ left: 0; bottom: 0; will-change: left, right; - -webkit-animation: p-progressbar-indeterminate-anim-short 2.1s - cubic-bezier(0.165, 0.84, 0.44, 1) infinite; - animation: p-progressbar-indeterminate-anim-short 2.1s - cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + -webkit-animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; + animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; -webkit-animation-delay: 1.15s; animation-delay: 1.15s; } @@ -11291,9 +9973,7 @@ stroke-dasharray: 89, 200; stroke-dashoffset: 0; stroke: #ff5757; - animation: - p-progress-spinner-dash 1.5s ease-in-out infinite, - p-progress-spinner-color 6s ease-in-out infinite; + animation: p-progress-spinner-dash 1.5s ease-in-out infinite, p-progress-spinner-color 6s ease-in-out infinite; stroke-linecap: round; } @keyframes p-progress-spinner-rotate { @@ -11316,8 +9996,7 @@ } } @keyframes p-progress-spinner-color { - 100%, - 0% { + 100%, 0% { stroke: #ff5757; } 40% { @@ -11326,8 +10005,7 @@ 66% { stroke: #1ea97c; } - 80%, - 90% { + 80%, 90% { stroke: #cc8925; } } @@ -11386,10 +10064,7 @@ height: 3rem; border-radius: 50%; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } .p-scrolltop.p-link { background: rgba(0, 0, 0, 0.7); @@ -11438,12 +10113,7 @@ border-radius: 6px; } .p-skeleton:after { - background: linear-gradient( - 90deg, - rgba(255, 255, 255, 0), - rgba(255, 255, 255, 0.4), - rgba(255, 255, 255, 0) - ); + background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0)); } .p-tag { display: inline-flex; @@ -11537,28 +10207,16 @@ } .p-selectbutton > .p-button, .p-togglebutton.p-button { - transition: - background-color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-accordion .p-accordion-header .p-accordion-header-link { - transition: - background-color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-tabview .p-tabview-nav li .p-tabview-nav-link { - transition: - background-color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link { - transition: - background-color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button { background-color: #00944c; @@ -11567,46 +10225,25 @@ background-color: #00944c; } .p-button:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #4affa7, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(74, 255, 166.9459459459), 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-secondary:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #b0b9c6, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(176.1945606695, 185.2656903766, 198.3054393305), 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-success:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #00964e, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #00964e, 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-info:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #4d9eff, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(76.5, 158.1666666667, 255), 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-warning:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #fcb98b, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(252, 185, 138.5), 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-help:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #d4aafb, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(211.5, 170, 251), 0 1px 2px 0 rgb(0, 0, 0); } .p-button.p-button-danger:enabled:focus { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #f7a2a2, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(247, 161.5, 161.5), 0 1px 2px 0 rgb(0, 0, 0); } .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-top > td { box-shadow: inset 0 2px 0 0 #00944c; @@ -11615,10 +10252,7 @@ box-shadow: inset 0 -2px 0 0 #00944c; } .p-speeddial-item.p-focus > .p-speeddial-action { - box-shadow: - 0 0 0 2px #ffffff, - 0 0 0 4px #4affa7, - 0 1px 2px 0 rgb(0, 0, 0); + box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgb(74, 255, 166.9459459459), 0 1px 2px 0 rgb(0, 0, 0); } .p-toast-message { backdrop-filter: blur(10px); @@ -11628,12 +10262,7 @@ } .p-picklist-buttons .p-button, .p-orderlist-controls .p-button { - transition: - opacity 0.2s, - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: opacity 0.2s, background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } .p-steps .p-steps-item.p-highlight .p-steps-number { background: #00944c; @@ -11689,11 +10318,7 @@ background: #00944c; /*#93c5fd*/ border: 1px solid #00944c; /*#93c5fd*/ font-size: 1rem; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; display: flex; align-items: center; @@ -11740,11 +10365,7 @@ background: #ffffff; /*#071426*/ border: 1px solid #1b2022; /*#0b213f*/ color: rgba(255, 255, 255, 0.87); - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } :root .fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button:hover, :root .fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button:hover, @@ -11753,34 +10374,16 @@ border-color: #1b2022; /*#0b213f*/ color: rgba(255, 255, 255, 0.87); } -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-dayGridMonth-button.fc-button-active, -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-timeGridWeek-button.fc-button-active, -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-timeGridDay-button.fc-button-active { +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active, +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active, +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active { background: #00944c; /*#93c5fd*/ border-color: #00944c; /*#93c5fd*/ color: #ffffff; /*#1c2127*/ } -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-dayGridMonth-button.fc-button-active:hover, -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-timeGridWeek-button.fc-button-active:hover, -:root - .fc.fc-unthemed - .fc-toolbar - .fc-button.fc-timeGridDay-button.fc-button-active:hover { +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active:hover, +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active:hover, +:root .fc.fc-unthemed .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active:hover { background: #00944c; border-color: rgba(0, 148, 76, 0.24); color: #ffffff; /*#1c2127*/ @@ -11829,12 +10432,7 @@ background: #ffffff; /*#071426*/ color: rgba(255, 255, 255, 0.87); } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-popover - .fc-popover-header - .fc-popover-close { +:root .fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close { opacity: 1; display: flex; align-items: center; @@ -11848,35 +10446,17 @@ border: 0 none; background: transparent; border-radius: 50%; - transition: - background-color 0.2s, - color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, box-shadow 0.2s; } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-popover - .fc-popover-header - .fc-popover-close:before { +:root .fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:before { content: "\e90b"; } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-popover - .fc-popover-header - .fc-popover-close:hover { +:root .fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:hover { color: rgba(255, 255, 255, 0.87); border-color: transparent; background: rgba(255, 255, 255, 0.03); } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-popover - .fc-popover-header - .fc-popover-close:focus { +:root .fc.fc-theme-standard .fc-view-harness .fc-popover .fc-popover-header .fc-popover-close:focus { outline: 0 none; outline-offset: 0; box-shadow: 0 0 0 0.2rem rgba(0, 148, 76, 0.5); /*rgba(147, 197, 253, 0.5)*/ @@ -11893,25 +10473,14 @@ background: #00944c; border-color: rgba(0, 148, 76, 0.24); } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-event.fc-daygrid-block-event - .fc-event-main { +:root .fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-block-event .fc-event-main { color: #ffffff; /*#1c2127*/ } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-event.fc-daygrid-dot-event - .fc-daygrid-event-dot { +:root .fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-dot-event .fc-daygrid-event-dot { background: #00944c; border-color: rgba(0, 148, 76, 0.24); } -:root - .fc.fc-theme-standard - .fc-view-harness - .fc-event.fc-daygrid-dot-event:hover { +:root .fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-dot-event:hover { background: rgba(255, 255, 255, 0.03); color: rgba(255, 255, 255, 0.87); } @@ -11923,11 +10492,7 @@ background: #00944c; /*#93c5fd*/ border: 1px solid #00944c; /*#93c5fd*/ font-size: 1rem; - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; border-radius: 6px; } :root .fc.fc-theme-standard .fc-toolbar .fc-button:enabled:hover { @@ -11956,11 +10521,7 @@ text-indent: 0; font-size: 1rem; } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button - .fc-icon-chevron-left:before { +:root .fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-left:before { content: "\e900"; } :root .fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-right { @@ -11968,11 +10529,7 @@ text-indent: 0; font-size: 1rem; } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button - .fc-icon-chevron-right:before { +:root .fc.fc-theme-standard .fc-toolbar .fc-button .fc-icon-chevron-right:before { content: "\e901"; } :root .fc.fc-theme-standard .fc-toolbar .fc-button:focus { @@ -11986,11 +10543,7 @@ background: #ffffff; /*#071426*/ border: 1px solid #1b2022; /*#0b213f*/ color: rgba(255, 255, 255, 0.87); - transition: - background-color 0.2s, - color 0.2s, - border-color 0.2s, - box-shadow 0.2s; + transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; } :root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button:hover, :root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button:hover, @@ -11999,50 +10552,23 @@ border-color: #1b2022; /*#0b213f*/ color: rgba(255, 255, 255, 0.87); } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-dayGridMonth-button.fc-button-active, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridWeek-button.fc-button-active, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridDay-button.fc-button-active { +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active { background: #00944c; /*#93c5fd*/ border-color: #00944c; /*#93c5fd*/ color: #ffffff; /*#1c2127*/ } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-dayGridMonth-button.fc-button-active:hover, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridWeek-button.fc-button-active:hover, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridDay-button.fc-button-active:hover { +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button.fc-button-active:hover, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button.fc-button-active:hover, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button.fc-button-active:hover { background: #00944c; border-color: rgba(0, 148, 76, 0.24); color: #ffffff; /*#1c2127*/ } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-dayGridMonth-button:not(:disabled):focus, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridWeek-button:not(:disabled):focus, -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button.fc-timeGridDay-button:not(:disabled):focus { +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-dayGridMonth-button:not(:disabled):focus, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridWeek-button:not(:disabled):focus, +:root .fc.fc-theme-standard .fc-toolbar .fc-button.fc-timeGridDay-button:not(:disabled):focus { outline: 0 none; outline-offset: 0; box-shadow: 0 0 0 0.2rem rgba(0, 148, 76, 0.5); /*rgba(147, 197, 253, 0.5)*/ @@ -12051,11 +10577,7 @@ :root .fc.fc-theme-standard .fc-toolbar .fc-button-group .fc-button { border-radius: 0; } -:root - .fc.fc-theme-standard - .fc-toolbar - .fc-button-group - .fc-button:first-child { +:root .fc.fc-theme-standard .fc-toolbar .fc-button-group .fc-button:first-child { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } diff --git a/frontend/public/themes/lara-light-blue/theme.css.map b/frontend/public/themes/lara-light-blue/theme.css.map index 9eabf2c..7fd60d0 100644 --- a/frontend/public/themes/lara-light-blue/theme.css.map +++ b/frontend/public/themes/lara-light-blue/theme.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../primevue-sass-theme/themes/lara/lara-light/_variables.scss","../../primevue-sass-theme/theme-base/_colors.scss","../../primevue-sass-theme/theme-base/components/input/_editor.scss","../../primevue-sass-theme/themes/lara/lara-light/green/theme.scss","../../primevue-sass-theme/theme-base/_components.scss","../../primevue-sass-theme/theme-base/_common.scss","../../primevue-sass-theme/theme-base/_mixins.scss","../../primevue-sass-theme/theme-base/components/input/_autocomplete.scss","../../primevue-sass-theme/theme-base/components/input/_calendar.scss","../../primevue-sass-theme/theme-base/components/input/_cascadeselect.scss","../../primevue-sass-theme/theme-base/components/input/_checkbox.scss","../../primevue-sass-theme/theme-base/components/input/_chips.scss","../../primevue-sass-theme/theme-base/components/input/_colorpicker.scss","../../primevue-sass-theme/theme-base/components/input/_dropdown.scss","../../primevue-sass-theme/theme-base/components/input/_floatlabel.scss","../../primevue-sass-theme/theme-base/components/input/_iconfield.scss","../../primevue-sass-theme/theme-base/components/input/_inputotp.scss","../../primevue-sass-theme/theme-base/components/input/_inputgroup.scss","../../primevue-sass-theme/theme-base/components/input/_inputicon.scss","../../primevue-sass-theme/theme-base/components/input/_inputnumber.scss","../../primevue-sass-theme/theme-base/components/input/_inputswitch.scss","../../primevue-sass-theme/theme-base/components/input/_inputtext.scss","../../primevue-sass-theme/theme-base/components/input/_knob.scss","../../primevue-sass-theme/theme-base/components/input/_listbox.scss","../../primevue-sass-theme/theme-base/components/input/_multiselect.scss","../../primevue-sass-theme/theme-base/components/input/_password.scss","../../primevue-sass-theme/theme-base/components/input/_radiobutton.scss","../../primevue-sass-theme/theme-base/components/input/_rating.scss","../../primevue-sass-theme/theme-base/components/input/_selectbutton.scss","../../primevue-sass-theme/theme-base/components/input/_slider.scss","../../primevue-sass-theme/theme-base/components/input/_textarea.scss","../../primevue-sass-theme/theme-base/components/input/_treeselect.scss","../../primevue-sass-theme/theme-base/components/input/_togglebutton.scss","../../primevue-sass-theme/theme-base/components/button/_button.scss","../../primevue-sass-theme/theme-base/components/button/_speeddial.scss","../../primevue-sass-theme/theme-base/components/button/_splitbutton.scss","../../primevue-sass-theme/theme-base/components/data/_carousel.scss","../../primevue-sass-theme/theme-base/components/data/_datatable.scss","../../primevue-sass-theme/theme-base/components/data/_dataview.scss","../../primevue-sass-theme/theme-base/components/data/_filter.scss","../../primevue-sass-theme/theme-base/components/data/_orderlist.scss","../../primevue-sass-theme/theme-base/components/data/_organizationchart.scss","../../primevue-sass-theme/theme-base/components/data/_paginator.scss","../../primevue-sass-theme/theme-base/components/data/_picklist.scss","../../primevue-sass-theme/theme-base/components/data/_timeline.scss","../../primevue-sass-theme/theme-base/components/data/_tree.scss","../../primevue-sass-theme/theme-base/components/data/_treetable.scss","../../primevue-sass-theme/theme-base/components/panel/_accordion.scss","../../primevue-sass-theme/theme-base/components/panel/_card.scss","../../primevue-sass-theme/theme-base/components/panel/_fieldset.scss","../../primevue-sass-theme/theme-base/components/panel/_divider.scss","../../primevue-sass-theme/theme-base/components/panel/_panel.scss","../../primevue-sass-theme/theme-base/components/panel/_scrollpanel.scss","../../primevue-sass-theme/theme-base/components/panel/_splitter.scss","../../primevue-sass-theme/theme-base/components/panel/_stepper.scss","../../primevue-sass-theme/theme-base/components/panel/_tabview.scss","../../primevue-sass-theme/theme-base/components/panel/_toolbar.scss","../../primevue-sass-theme/theme-base/components/overlay/_confirmpopup.scss","../../primevue-sass-theme/theme-base/components/overlay/_dialog.scss","../../primevue-sass-theme/theme-base/components/overlay/_overlaypanel.scss","../../primevue-sass-theme/theme-base/components/overlay/_sidebar.scss","../../primevue-sass-theme/theme-base/components/overlay/_tooltip.scss","../../primevue-sass-theme/theme-base/components/file/_fileupload.scss","../../primevue-sass-theme/theme-base/components/menu/_breadcrumb.scss","../../primevue-sass-theme/theme-base/components/menu/_contextmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_dock.scss","../../primevue-sass-theme/theme-base/components/menu/_megamenu.scss","../../primevue-sass-theme/theme-base/components/menu/_menu.scss","../../primevue-sass-theme/theme-base/components/menu/_menubar.scss","../../primevue-sass-theme/theme-base/components/menu/_panelmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_steps.scss","../../primevue-sass-theme/theme-base/components/menu/_tabmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_tieredmenu.scss","../../primevue-sass-theme/theme-base/components/messages/_inlinemessage.scss","../../primevue-sass-theme/theme-base/components/messages/_message.scss","../../primevue-sass-theme/theme-base/components/messages/_toast.scss","../../primevue-sass-theme/theme-base/components/multimedia/_galleria.scss","../../primevue-sass-theme/theme-base/components/multimedia/_image.scss","../../primevue-sass-theme/theme-base/components/misc/_avatar.scss","../../primevue-sass-theme/theme-base/components/misc/_badge.scss","../../primevue-sass-theme/theme-base/components/misc/_blockui.scss","../../primevue-sass-theme/theme-base/components/misc/_chip.scss","../../primevue-sass-theme/theme-base/components/misc/_inplace.scss","../../primevue-sass-theme/theme-base/components/misc/_metergroup.scss","../../primevue-sass-theme/theme-base/components/misc/_progressbar.scss","../../primevue-sass-theme/theme-base/components/misc/_progressspinner.scss","../../primevue-sass-theme/theme-base/components/misc/_ripple.scss","../../primevue-sass-theme/theme-base/components/misc/_scrolltop.scss","../../primevue-sass-theme/theme-base/components/misc/_skeleton.scss","../../primevue-sass-theme/theme-base/components/misc/_tag.scss","../../primevue-sass-theme/theme-base/components/misc/_terminal.scss","../../primevue-sass-theme/themes/lara/lara-light/_extensions.scss"],"names":[],"mappings":"AAk3BA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACp6BJ;EAKoB;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;EARI;EAGA;EAAA;EAAA;EAAA;EAAA;EAKJ;EAAA;EAAA;EAAA;;;ACZZ;EACI,YFwCE;EEvCF,yBFuDM;EEtDN,wBFsDM;;AEpDN;EACI,QFuXO;;AErXP;EACI,QFqCN;;AElCE;EACI,MFiCN;;AE7BM;EACI;EACA,OF2BV;;AEzBU;EACI,OFyBd;;AEvBc;EACI,QFsBlB;;AEnBc;EACI,MFkBlB;;AEZU;EACI,OFWd;;AETc;EACI,QFQlB;;AELc;EACI,MFIlB;;AEAU;EACI,YFRd;EESc,QFyFJ;EExFI,YFyFJ;EExFI,eFMV;EELU,SFiEN;;AE/DM;EACI,OFRlB;;AEUkB;EACI,OFXtB;EEYsB,YFjBtB;;AEuBc;EACI,SFoDN;;AE5ClB;EACI,4BFlBM;EEmBN,2BFnBM;;AEqBN;EACI,QF0TQ;;AEvTZ;EACI,YF3CF;EE4CE,OFrCF;EEsCE,4BF5BE;EE6BF,2BF7BE;;AEiCV;AAAA;EAEI,OF7CE;;AE+CF;AAAA;EACI,QFhDF;;AEmDF;AAAA;EACI,MFpDF;;AEwDN;AAAA;AAAA;EAGI,OCzGO;;AD2GP;AAAA;AAAA;EACI,QC5GG;;AD+GP;AAAA;AAAA;EACI,MChHG;;ADmHP;AAAA;AAAA;EACI,OCpHG;;;ACGf;ECJA;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACC;IACA;IACA;IACA;IACA;IACG;IACA;;EAGJ;IACC;;AAGD;EACA;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;AAGJ;EACA;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAIJ;IACC;;EAGD;IACI;IACA;IACA,WL3EM;IK4EN,aL3EQ;;EK8EZ;IACI,kBLnEI;IKoEJ,qBL5EgB;;EK+EpB;IACI,SLzEa;;EK4EjB;IACI,OL1ES;;EK6Eb;IACI,OLpGM;;EKuGV;IACI,WLxFe;;EK2FnB;IACI,OL5Fe;IK6Ff,QL7Fe;;EKgGnB;IACI;IACA;IACA,WL5GM;IK6GN,eLzGU;IK0GV;;EAEA;IC/JH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EK2Fb;IACI;;EAGJ;IACI;;EAIA;IACI;MACI;;IAEJ;MACI;;;EAIR;IACI;MACI;;IAEJ;MACI;;;EE/LZ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI;;EAIA;IACI;;EAKJ;IACI,cJ/GG;;EIoHP;IDnGP,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EIyHX;IACI;IACA,KP5DO;IO6DP;;EAEA;IACI;;EAEA;IACI;IACA;IACA,WPvCG;IOwCH,OPvFN;IOwFM;IACA;;EAIR;IACI;IACA,YPnGF;IOoGE,OPhGF;IOiGE,ePsqBO;;EOpqBP;IACI,aPnFD;;EOsFH;IACI,YP5GN;IO6GM,OPzGN;;EO8GN;ID9HH,cNqCY;;EO8Fb;IACI,YP3HM;IO4HN,OPrHM;IOsHN,QP3BgB;IO4BhB,eP7GU;IO8GV,YP5BgB;;EO8BhB;IACI,SPrDU;;EOuDV;IACI,QP9CS;IO+CT,SPxDU;IOyDV,QPlDS;IOmDT,OPjIF;IOkIE,YP1DK;IO2DL,YPrHQ;IOsHR,ePrDe;;EOuDf;IACI;;EAGJ;IACI;;EAGJ;IACI,OJ1LK;II2LL,YJxLF;;EI0LE;IACI,YJzLD;;EI8LH;IACI,OPzJV;IO0JU,YP/JV;;EOoKF;IACI,QPofS;IOnfT,SPofU;IOnfV,OPjKF;IOkKE,YP1KF;IO2KE,aPqfa;;EQxsBzB;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;;EAGJ;IACI;;AAGJ;EACA;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;AAGJ;EACA;AAAA;IAEI;;EAKA;IFzHH,cNqCY;;EQwFT;IF1IH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EKgKf;IACI,SRwKa;IQvKb,YR3HM;IQ4HN,ORrHM;IQsHN,QRlES;IQmET,eR7GU;;EQ+GV;IACI,YRjIE;IQkIF,QRhCY;IQiCZ,YRhCY;;EQkCZ;IACI,YRtIF;;EQ0IN;IACI,SR8Je;IQ7Jf,ORrIE;IQsIF,YR7IE;IQ8IF,aRgKkB;IQ/JlB,QRrDe;IQsDf,eR4Jc;IQ3Jd,yBRhIM;IQiIN,wBRjIM;;EQmIN;AAAA;IF2CJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;AAAA;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;AAAA;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EQkHL;IACI,aR/GM;;EQiHN;AAAA;IAEI,ORvJN;IQwJM,YR3IM;IQ4IN,aR8IU;IQ7IV,SR8IW;;EQ5IX;AAAA;IACI,OL3ML;;EK+MH;IACI,cRjJD;;EQsJX;IACI,WRlKE;IQmKF,QRiHa;;EQ/Gb;IACI,SR4He;;EQ1Hf;IACI,OR6HO;IQ5HP,QR6HQ;;EQzHhB;IACI,SRsHa;;EQpHb;IACI,ORoHO;IQnHP,QRoHQ;IQnHR,eRoHc;IQnHd,YR7KI;IQ8KJ,QRmHQ;IQlHR;;EAEA;IACI,OL3OC;IK4OD,YLzON;;EK4OE;IF7Of,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EQ0KG;IACI,YR9MV;IQ+MU,OR5MV;IQ6MU,cRqGc;;EQnGd;IACI,OL3PH;IK4PG,YLzPV;;EKgQV;IACI,SR4FkB;IQ3FlB,YR1MC;;EQ4MD;IACI;;EAIR;IACI,YRlNC;IQmND,SRmFmB;;EQjFnB;IF7CJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EQwMD;IACI;;EAIR;IACI,WR0EoB;;EQvExB;IACI,SRqEsB;;EQhE1B;IACI;;EAIR;IACI,QR6Ba;;EQ3Bb;IACI,SR2Ca;IQ1Cb,YRnPQ;IQoPR,eRxPE;;EQ0PF;IACI,OLhTK;IKiTL,YL9SF;;EKmTV;IACI,QRca;;EQZb;IACI,SR4Ba;IQ3Bb,YRlQQ;IQmQR,eRvQE;;EQyQF;IACI,OL/TK;IKgUL,YL7TF;;EKmUN;IACI,aR5QH;IQ6QG,eRFK;IQGL,cRHK;IQIL;IACA;;EAEA;IACI;IACA;;EAGJ;IACI;;EAOJ;AAAA;IAEI,SRUW;;EQFX;IACI;;EAEA;IACI,YRlUd;;EQqUU;IFzWnB,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EQySG;IACI;;EAEA;IACI,YRlVd;;EQqVU;IFzXnB,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EQyTG;IACI;;EAEA;IACI,YRlWd;;EQqWU;IFzYnB,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;ES/Eb;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAIJ;IACI,YTpDM;ISqDN,QTMS;ISLT,YTnCmB;ISoCnB,eTtCU;ISuCV;;EAEA;IACI,cNlGO;;EMqGX;IHpFH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EMyGX;IACI,kBTjEE;;ESmEF;IACI,kBTpEF;;ESuEF;IACI,kBT1EF;;ES8EN;IACI;IACA;IACA,ST5BM;;ES8BN;IACI,OT9EF;;ESiFF;IACI;IACA;;EAIR;IACI;IACA,OTzFE;IS0FF,OTzBkB;IS0BlB,yBThFM;ISiFN,4BTjFM;;ESoFV;IH9GH,cNqCY;;ES8Eb;IACI,YT3GM;IS4GN,OTrGM;ISsGN,QTXgB;ISYhB,eT7FU;IS8FV,YTZgB;;ESchB;IACI,STrCU;;ESuCV;IACI,QT9BS;IS+BT,QTjCS;ISkCT,OThHF;ISiHE,YTzCK;IS0CL,YTpGQ;ISqGR,eTpCe;;ESsCf;IACI;;EAGJ;IACI;;EAGJ;IACI,ONzKK;IM0KL,YNvKF;;EMyKE;IACI,YNxKD;;EM6KH;IACI,OTxIV;ISyIU,YT9IV;;ESkJE;IACI,STvEM;;ES0EV;IACI,WTigBa;;EUlsB7B;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAIJ;IACI,OV0OW;IUzOX,QV0OY;;EUxOZ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QV6NQ;IU5NR,eVsBM;;EUnBV;IACI,QVwNQ;IUvNR;IACA,OVoNO;IUnNP,QVoNQ;IUnNR,OVIE;IUHF,eVaM;IUZN,YVce;IUbf;;EAEA;IACI,qBVSQ;IURR,OP7CO;IO8CP,WV6MU;;EU3MV;IACI,OV0MM;IUzMN,QVyMM;;EUnMd;IACI,cP7DG;IO8DH,YP9DG;;EOoEH;IACI,cPrED;;EOyEC;IACI,cPvEC;IOwED,YPxEC;IOyED,OPxED;;EO8EP;IJjEX,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EOwFX;IJ1DH,cNqCY;;EU0BL;IACI,kBVrDF;;EUyDE;IACI,YPnGD;;EOyGC;IACI,kBVjEV;;EUqEU;IACI,YP5GH;;EOsHb;IACI,kBVjFF;;EUqFE;IACI,YP/HD;;EOqIC;IACI,kBV7FV;;EUiGU;IACI,YPxIH;;EQFrB;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAMI;IACI,cRnDG;;EQwDP;ILvCP,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EQ6DX;IACI;IACA;;EAEA;IACI;IACA,cXJG;IWKH,YX1BF;IW2BE,OXvBF;IWwBE,eX+uBO;;EW7uBP;IACI,YX/BN;IWgCM,OX5BN;;EW+BE;IACI,aXfD;;EWmBP;IACI;;EAEA;IACI;IACA;IACA,WXKG;IWJH,OX3CN;IW4CM;IACA;;EAKZ;ILlEH,cNqCY;;EYpEb;IACI;;EAGJ;IACI;;EAIJ;IACI,OZ2QqB;IY1QrB,QZ2QsB;;EYxQ1B;IACI,YZwQW;IYvQX,QZwQe;;EYtQf;AAAA;IAEI,cZoBE;;EYhBV;IACI,YZkHgB;;Ea3IpB;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,YbzDM;Ia0DN,QbCS;IaAT,YbxCmB;IayCnB,eb3CU;Ia4CV;;EAEA;IACI,cVvGO;;EU0GX;IPzFH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EU8GX;IACI,YbtEE;;EawEF;IACI,kBbzEF;;Ea4EF;IACI,kBb/EF;;EaiFE;IACI;;EAMR;IACI;;EAIR;IACI;IACA;;EAEA;IACI,Ob5FF;;Ea+FF;IAEI;IACA;;EAIR;IACI;IACA,ObxGE;IayGF,ObxCkB;IayClB,yBb/FM;IagGN,4BbhGM;;EamGV;IACI,Ob/GE;IagHF,Ob/CkB;;EakDtB;IPlIH,cNqCY;;EakGb;IACI,Yb/HM;IagIN,ObzHM;Ia0HN,Qb/BgB;IagChB,ebjHU;IakHV,YbhCgB;;EakChB;IACI,Sb7CgB;Ia8ChB,eb1Ce;Ia2Cf,ObhIE;IaiIF,YbxIE;IayIF,QbhDe;IaiDf,yBb1HM;Ia2HN,wBb3HM;;Ea6HN;IACI;IACA;;EAGJ;IACI;IACA,Ob/IF;;EamJN;IACI,Sb7EU;;Ea+EV;IACI,QbtES;IauET,SbhFU;IaiFV,Qb1ES;Ia2ET,ObzJF;Ia0JE,YblFK;IamFL,Yb7IQ;Ia8IR,eb7Ee;;Ea+Ef;IACI;;EAGJ;IACI;;EAGJ;IACI,OVlNK;IUmNL,YVhNF;;EUkNE;IACI,YVjND;;EUsNH;IACI,ObjLV;IakLU,YbvLV;;Ea2LE;IACI;IACA;IACA,cbxKD;;Ea4KP;IACI,QbsdS;IardT,SbsdU;IardV,Ob/LF;IagME,YbxMF;IayME,abuda;;EapdjB;IACI,Sb/HU;IagIV,ObvMF;IawME,YbhIK;;EcvHjB;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAOI;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;;EC3CJ;IACI;;EAGJ;IACI;IACA;IACA;;ECRJ;IACI;IACA;IACA,KhB8DW;;EgB3Df;IACI;IACA;;ECPJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;AAAA;AAAA;IAII;IACA;;EAIJ;IACI,YjBcM;IiBbN,OjBiBM;IiBhBN,YjBqES;IiBpET,ajBoES;IiBnET,ejBmES;IiBlET,SjB4DU;IiB3DV,WjB6EsB;;EiB3EtB;IACI,cjB8DK;;EiBzDT;AAAA;AAAA;IAGI;IACA;;EAEA;AAAA;AAAA;IACI;;EAGJ;AAAA;AAAA;IACI;;EAEA;AAAA;AAAA;IACI;;EAMhB;AAAA;AAAA;AAAA;AAAA;IAKI,wBjBVU;IiBWV,2BjBXU;;EiBcd;IACI,wBjBfU;IiBgBV,2BjBhBU;;EiBmBd;AAAA;AAAA;AAAA;AAAA;IAKI,yBjBxBU;IiByBV,4BjBzBU;;EiB4Bd;IACI,yBjB7BU;IiB8BV,4BjB9BU;;EiBmCN;IACI;;EAEA;IACI,OjBqDK;;EkBrJrB;AAAA;IAEI;;EAGJ;IACI;IACA,OlBuCM;;EkBpCV;IACI;IACA,OlBkCM;;EmB9CV;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IbxEH,cNqCY;;EmBuCT;IACI,kBnBlEE;;EmBoEF;IACI,kBnBrEF;;EmBwEF;IACI,kBnB3EF;;EoBtCV;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAIJ;IACI,OpBiVc;IoBhVd,QpBiVe;;EoB/Uf;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,epBoUiB;;EoBjUrB;IACI,YpBHE;IoBIF,YpBWe;IoBVf,epB8TiB;IoB7TjB;;EAEA;IACI,YpBbF;IoBcE,OpB0TY;IoBzTZ,QpB0Ta;IoBzTb,MpB2Tc;IoB1Td;IACA,epBwTmB;IoBvTnB,qBpBDQ;;EoBMZ;IACI,YjBhEG;;EiBkEH;IACI,YpB5BN;IoB6BM;;EAOJ;IACI,YpBySa;;EoBrSb;IACI,YjB/ED;;EiBqFP;IdlFX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EoBeT;Id/DH,cNqCY;;EqBpEb;IACI;;EAIJ;IACI;IACA;IACA,WrBsFe;IqBrFf,OrBsCM;IqBrCN,YrB8BM;IqB7BN,SrBkFU;IqBjFV,QrBuFS;IqBtFT,YrB8CmB;IqB7CnB;IACA,erB0CU;IqBzCV;;EAEA;IACI,clBlBO;;EkBqBX;IfJH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EkByBX;IfKH,cNqCY;;EqBtCT;IACI,kBrBWE;;EqBTF;IACI,kBrBQF;;EqBLF;IACI,kBrBEF;;EqBEN;IfyKA;IAJA;;EehKA;IfoKA;IAJA;;Ee1JJ;IACI;IACA,OrBTM;IqBUN,qBrBEgB;;EqBCpB;IACI,OrBQS;;EqBLb;IACI;;EAGJ;IACI;;EAGJ;IACI;;EfwHH;IepHG,OrB9BM;;EMqJT;IevHG,OrB9BM;;EMwJT;Ie1HG,OrB9BM;;EM2JT;Ie7HG,OrB9BM;;EqBkCN;IACI,kBrBvCE;;EqByCF;IACI,kBrB1CF;;EqB6CF;IACI,kBrBhDF;;EqBsDN;IfqHA;IAJA;;Ee1GA;If8GA;IAJA;;EgB/MJ;IACI;IACA;;EAEJ;IACI;IACA;IACA;;EAEJ;IACI;IACA;;EAGJ;IACI;MACI;;;EChBR;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,YvBIM;IuBHN,OvBUM;IuBTN,QvB6DS;IuB5DT,evBkBU;IuBjBV,YvBmBmB;IuBlBnB;;EAEA;IACI,SvBqFgB;IuBpFhB,evBwFe;IuBvFf,OvBEE;IuBDF,YvBNE;IuBOF,QvBkFe;IuBjFf,yBvBQM;IuBPN,wBvBOM;;EuBLN;IACI;;EAGJ;IACI;IACA,OvBZF;;EuBgBN;IACI,SvBsDU;IuBrDV;;EAEA;IACI,QvB4DS;IuB3DT,SvBkDU;IuBjDV,QvBwDS;IuBvDT,OvBvBF;IuBwBE,YvBVQ;IuBWR,evBsDe;;EuBpDf;IACI;;EAGJ;IACI;;EAGJ;IACI,OpB/EK;IoBgFL,YpB7EF;;EoBiFN;IACI,QvB0mBS;IuBzmBT,SvB0mBU;IuBzmBV,OvB3CF;IuB4CE,YvBpDF;IuBqDE,avB2mBa;;EuBxmBjB;IACI,SvBqBU;IuBpBV,OvBnDF;IuBoDE,YvBoBK;;EuBbD;IACI,YpBlGD;;EoBuGH;IACI,OvBlEV;IuBmEU,YvBxEV;;EuB2EM;IACI,OvBvEV;IuBwEU,YvB7EV;;EuB+EU;IACI,OvB3Ed;IuB4Ec,YvBjFd;;EuBwFN;IjBhHH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EoBqIX;IjBvGH,cNqCY;;EwBlEb;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,YxBtEM;IwBuEN,QxBZS;IwBaT,YxBrDmB;IwBsDnB,exBxDU;IwByDV;;EAEA;IACI,crBpHO;;EqBuHX;IlBtGH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EqB2HX;IACI,YxBnFE;;EwBqFF;IACI,kBxBtFF;;EwByFF;IACI,kBxB5FF;;EwBgGN;IACI,SxB5CM;IwB6CN,YxB/Ee;;EwBiFf;IACI,OxB/FF;;EwBoGF;IACI;IACA,cxBpFG;IwBqFH,YxB1GF;IwB2GE,OxBvGF;IwBwGE,exB+pBO;;EwB7pBP;IACI,axB1FD;;EwB+FX;IACI;IACA,OxBnHE;IwBoHF,OxBnDkB;IwBoDlB,yBxB1GM;IwB2GN,4BxB3GM;;EwB8GV;IlBxIH,cNqCY;;EwB2GD;IACI;;EAOhB;IACI,YxBhJM;IwBiJN,OxB1IM;IwB2IN,QxBhDgB;IwBiDhB,exBlIU;IwBmIV,YxBjDgB;;EwBmDhB;IACI,SxB9DgB;IwB+DhB,exB3De;IwB4Df,OxBjJE;IwBkJF,YxBzJE;IwB0JF,QxBjEe;IwBkEf,yBxB3IM;IwB4IN,wBxB5IM;;EwB+IF;IACI;;EAGJ;IACI;IACA,OxBhKN;;EwBoKF;IACI,cxBnJG;;EwBsJP;IACI,axBvJG;IMuKX,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EwB6IT;IACI,SxBxGU;;EwB0GV;IACI,QxBjGS;IwBkGT,SxB3GU;IwB4GV,QxBrGS;IwBsGT,OxBpLF;IwBqLE,YxB7GK;IwB8GL,YxBxKQ;IwByKR,exBxGe;;EwB0Gf;IACI;;EAGJ;IACI;;EAGJ;IACI,OrB7OK;IqB8OL,YrB3OF;;EqB6OE;IACI,YrB5OD;;EqBiPH;IACI,OxB5MV;IwB6MU,YxBlNV;;EwBsNE;IACI,cxBjMD;;EwBqMP;IACI,QxB6bS;IwB5bT,SxB6bU;IwB5bV,OxBxNF;IwByNE,YxBjOF;IwBkOE,axB8ba;;EwB3bjB;IACI,SxBxJU;IwByJV,OxBhOF;IwBiOE,YxBzJK;;EyBvHjB;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAKA;InBEH,cNqCY;;EyBlCb;IACI,SzB0WiB;IyBzWjB,YzBIM;IyBHN,OzBUM;IyBTN,QzBylBkB;IyBxlBlB,YzBoGgB;IyBnGhB,ezBiBU;;EyBfV;IACI,ezBqBO;IyBpBP,YzBDE;;EyBIE;IACI,YzB+FA;;EyB5FJ;IACI,YzB4FE;;EyBzFN;IACI,YzByFE;;E0BjJlB;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAIJ;IACI,O1ByOc;I0BxOd,Q1ByOe;;E0BvOf;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,Q1B4NW;I0B3NX;;EAGJ;IACI,Q1BuNW;I0BtNX,Y1BbE;I0BcF,O1BmNU;I0BlNV,Q1BmNW;I0BlNX,O1BTE;I0BUF;IACA,Y1BCe;I0BAf;;EAEA;IACI,O1B8MS;I0B7MT,Q1B6MS;I0B5MT,qB1BNQ;I0BOR,kBvB5DO;;EuBiEX;IACI,cvBtEG;IuBuEH,YvBvEG;;EuB6EH;IACI,cvB9ED;;EuBkFC;IACI,cvBhFC;IuBiFD,YvBjFC;;EuBmFD;IACI,kBvBnFL;;EuB0FP;IpB7EX,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EuBoGX;IpBtEH,cNqCY;;E0BsCL;IACI,kB1BjEF;;E0BqEE;IACI,YvB/GD;;EuBqHC;IACI,kB1B7EV;;E0BiFU;IACI,YvBxHH;;EuBkIb;IACI,kB1B7FF;;E0BiGE;IACI,YvB3ID;;EuBiJC;IACI,kB1BzGV;;E0B6GU;IACI,YvBpJH;;EwBFrB;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,K3B4CW;;E2B1CX;IACI;IACA;;EAEA;IACI,O3BoBF;I2BnBE,Y3B+BW;I2B9BX,W3BsRQ;;E2BpRR;IACI,O3BmRI;I2BlRJ,Q3BkRI;;E2B/QR;IACI,O3B+QO;;E2B3Qf;IrBnCP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E2BjCD;IACI,OxB9CD;;EwBsDC;IACI,OxBvDL;;EwByDK;IACI,O3B0PI;;E4BrTxB;IACI,Y5BuCE;I4BtCF,Q5B2RY;I4B1RZ,O5B4CE;I4B3CF,Y5BuDe;;E4BrDf;AAAA;IAEI,O5BsCF;;E4BnCF;IACI,Y5B8BF;I4B7BE,c5B+BF;I4B9BE,O5BiCF;;E4B/BE;AAAA;IAEI,O5B8BN;;E4B1BF;IACI,YzBtBG;IyBuBH,czBvBG;IyBwBH,OzBpBO;;EyBsBP;AAAA;IAEI,OzBxBG;;EyB2BP;IACI,YzB9BG;IyB+BH,czB/BG;IyBgCH,OzB9BG;;EyBgCH;AAAA;IAEI,OzBlCD;;EyBwCf;ItBdH,cNqCY;;E6BlEb;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAIJ;IACI,Y7BCM;I6BAN,Q7BiRU;I6BhRV,e7BaU;;E6BXV;IACI,Q7B8QgB;;E6B5QhB;IACI;IACA;;EAIR;IACI,O7BsQa;;E6BpQb;IACI;IACA;;EAIR;IACI,Q7B+PY;I6B9PZ,O7B6PW;I6B5PX,Y7B3BE;I6B4BF,Q7B8PY;I6B7PZ,e7B8PkB;I6B7PlB,Y7BXe;I6BYf;;EAEA;IvBnEP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E6BDT;IACI,Y1B9EO;I0B+EP,e7BvBM;;E6B2BN;IACI,Y1BpFG;I0BqFH,c1BrFG;;E2BDf;IACI;IACA;;EAGJ;IACI;;ECJJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,Y/BfM;I+BgBN,Q/B2CS;I+B1CT,Y/BEmB;I+BDnB,e/BDU;I+BEV;;EAEA;IACI,c5B7DO;;E4BgEX;IzB/CH,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;E4BoEX;IACI,Y/B5BE;;E+B8BF;IACI,kB/B/BF;;E+BkCF;IACI,kB/BrCF;;E+ByCN;IACI,S/BWM;I+BVN,Y/BxBe;;E+B0Bf;IACI,O/BxCF;;E+B6CF;IACI;IACA,c/B7BG;I+B8BH,Y/BnDF;I+BoDE,O/BhDF;I+BiDE,e/BstBO;;E+BltBf;IACI;IACA,O/BxDE;I+ByDF,O/BQkB;I+BPlB,yB/B/CM;I+BgDN,4B/BhDM;;E+BmDV;IzB7EH,cNqCY;;E+BgDD;IACI;;EAOhB;IACI,Y/BrFM;I+BsFN,O/B/EM;I+BgFN,Q/BWgB;I+BVhB,e/BvEU;I+BwEV,Y/BUgB;;E+BPZ;IACI;;EAGJ;IACI,S/BnBU;I+BoBV,O/B3FF;I+B4FE,Y/BpBK;;E+B0Bb;IACI,Y/BxGE;;E+B0GF;IACI,kB/B3GF;;E+B8GF;IACI,kB/BjHF;;EgCxCV;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QhCgQY;IgC/PZ,ehC2BM;;EgCxBV;IACI,YhCME;IgCLF,QhC0PY;IgCzPZ,OhCWE;IgCVF,YhCsBe;IgCrBf;;EAEA;AAAA;IAEI,OhCIF;;EgCCF;IACI,Y7B/CG;I6BgDH,c7BhDG;I6BiDH,O7B7CO;;E6B+CP;AAAA;IAEI,O7BjDG;;E6ByDH;IACI,YhCrBV;IgCsBU,chCpBV;IgCqBU,OhClBV;;EgCoBU;AAAA;IAEI,OhCrBd;;EgC2BM;IACI,Y7BzED;I6B0EC,c7B1ED;I6B2EC,O7BzED;;E6B2EC;AAAA;IAEI,O7B7EL;;E6BoFP;I1BvEX,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;E6B8FX;I1BhEH,cNqCY;;EiCpEb;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAIJ;IACI,O9BjEe;I8BkEf,Y9BtEW;I8BuEX,QjCiFU;IiChFV,SjC2EW;IiC1EX,WjCrBM;IiCsBN,YjChBmB;IiCiBnB,ejCnBU;IiCoBV;;EAEA;IACI,Y9B7EW;I8B8EX,O9B5EW;I8B6EX,c9B/EW;;E8BkFf;IACI,Y9BlFa;I8BmFb,O9BlFW;I8BmFX,c9BpFa;;E8BuFjB;IACI;IACA,O9B5FO;I8B6FP,QjCuEc;;EiCrEd;IACI;IACA,O9BjGG;I8BkGH,QjCkEU;;EiC/Dd;IACI;IACA,O9BvGG;I8BwGH,QjC4DU;;EiCzDd;IACI,OjC/DF;IiCgEE,cjChEF;;EiCkEE;IACI,YjCvEN;IiCwEM,OjCpEN;;EiCuEE;IACI,YjC3EN;IiC4EM,OjCzEN;;EiC8EN;IACI;IACA,O9B7HO;I8B8HP;;EAEA;IACI;IACA,O9BlIG;I8BmIH;;EAGJ;IACI;IACA,O9BxIG;I8ByIH;;EAGJ;IACI,OjChGF;;EiCkGE;IACI,YjCvGN;IiCwGM,OjCpGN;;EiCuGE;IACI,YjC3GN;IiC4GM,OjCzGN;;EiC8GN;I3BtJH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EiCiFT;IACI,qBjCvGY;;EiC0GhB;IACK,cjCrGM;;EiCwGX;IACI,ajCzGO;;EiC4GX;IACI,YjC7GO;;EiCgHX;IACG,ejCjHQ;;EiCoHX;IACI,ajCrHO;IiCsHP,WjCjIE;IiCkIF,QjClIE;IiCmIF,ajCnIE;IiCoIF,O9BxLO;I8ByLP,kB9BrLW;;E8BwLf;IACI,YjC9BY;;EiCiChB;IACI,ejCjCmB;;EiCoCvB;IACI,OjCjDa;IiCkDb,SjCjDe;;EiCmDf;AAAA;IAEI;;EAGJ;IACI;IACA,QjC3DS;;EiC+DjB;I3BDA;IAJA;;E2BSI;I3BLJ;;E2BUA;I3BVA;IAJA;;E2BkBI;I3BdJ;;E2BoBI;IACI,ajCxKG;;EiC2KP;IACI;;EAMR;IACI;;EAGJ;IACI,OjClGa;;EiCqGjB;IACI;;EAEA;IACI;;EAKZ;IACI,OjCzFsB;IiC0FtB,YjC3Fe;IiC4Ff,QjC1FmB;;EiC4FnB;IACI,YjC5FgB;IiC6FhB,OjC/FkB;IiCgGlB,cjC5FyB;;EiC+F7B;IACI,YjC5FoB;;EiC+FxB;IACI,YjCnGiB;IiCoGjB,OjCzGkB;IiC0GlB,cjCnG0B;;EiCsG9B;IACI;IACA,OjChHW;IiCiHX,QjCtHc;;EiCwHd;IACI;IACA,OjCrHO;IiCsHP,QjC3HU;;EiC8Hd;IACI;IACA,OjC3HO;IiC4HP,QjCjIU;;EiCqIlB;IACI;IACA,OjClIW;IiCmIX;;EAEA;IACI;IACA;IACA,OjCxIO;;EiC2IX;IACI;IACA;IACA,OjC9IO;;EiCmJnB;IACI,OjCxIiB;IiCyIjB,YjC1IW;IiC2IX,QjCzIc;;EiC2Id;IACI,YjC3IY;IiC4IZ,OjC9Ia;IiC+Ib,cjC3IqB;;EiC8IzB;IACI,YjC3Ie;;EiC8InB;IACI,YjClJY;IiCmJZ,OjCxJa;IiCyJb,cjClJqB;;EiCqJzB;IACI;IACA,OjC/JO;IiCgKP,QjChLc;;EiCkLd;IACI;IACA,OjCpKG;IiCqKH,QjCrLU;;EiCwLd;IACI;IACA,OjC1KG;IiC2KH,QjC3LU;;EiC+LlB;IACI;IACA,OjCjLO;IiCkLP;;EAEA;IACI;IACA;IACA,OjCvLG;;EiC0LP;IACI;IACA;IACA,OjC7LG;;EiCkMf;IACI,OjCvLoB;IiCwLpB,YjCzLc;IiC0Ld,QjCxLiB;;EiC0LjB;IACI,YjC1Le;IiC2Lf,OjC7LgB;IiC8LhB,cjC1LwB;;EiC6L5B;IACI,YjC1LkB;;EiC6LtB;IACI,YjCjMe;IiCkMf,OjCvMgB;IiCwMhB,cjCjMwB;;EiCoM5B;IACI;IACA,OjC9MU;IiC+MV,QjC1Oc;;EiC4Od;IACI;IACA,OjCnNM;IiCoNN,QjC/OU;;EiCkPd;IACI;IACA,OjCzNM;IiC0NN,QjCrPU;;EiCyPlB;IACI;IACA,OjChOU;IiCiOV;;EAEA;IACI;IACA;IACA,OjCtOM;;EiCyOV;IACI;IACA;IACA,OjC5OM;;EiCiPlB;IACI,OjCtOoB;IiCuOpB,YjCxOa;IiCyOb,QjCvOiB;;EiCyOjB;IACI,YjCzOc;IiC0Od,OjC5OgB;IiC6OhB,cjCzOuB;;EiC4O3B;IACI,YjCzOkB;;EiC4OtB;IACI,YjChPe;IiCiPf,OjCtPgB;IiCuPhB,cjChPwB;;EiCmP5B;IACI;IACA,OjC7PS;IiC8PT,QjCpSc;;EiCsSd;IACI;IACA,OjClQK;IiCmQL,QjCzSU;;EiC4Sd;IACI;IACA,OjCxQK;IiCyQL,QjC/SU;;EiCmTlB;IACI;IACA,OjC/QS;IiCgRT;;EAEA;IACI;IACA;IACA,OjCrRK;;EiCwRT;IACI;IACA;IACA,OjC3RK;;EiCgSjB;IACI,OjCrRiB;IiCsRjB,YjCvRU;IiCwRV,QjCtRc;;EiCwRd;IACI,YjCxRW;IiCyRX,OjC3Ra;IiC4Rb,cjCxRoB;;EiC2RxB;IACI,YjCxRe;;EiC2RnB;IACI,YjC/RY;IiCgSZ,OjCrSa;IiCsSb,cjC/RqB;;EiCkSzB;IACI;IACA,OjC5SM;IiC6SN,QjC9Vc;;EiCgWd;IACI;IACA,OjCjTE;IiCkTF,QjCnWU;;EiCsWd;IACI;IACA,OjCvTE;IiCwTF,QjCzWU;;EiC6WlB;IACI;IACA,OjC9TM;IiC+TN;;EAEA;IACI;IACA;IACA,OjCpUE;;EiCuUN;IACI;IACA;IACA,OjC1UE;;EiC+Ud;IACI,OjCpUmB;IiCqUnB,YjCtUY;IiCuUZ,QjCrUgB;;EiCuUhB;IACI,YjCvUa;IiCwUb,OjC1Ue;IiC2Uf,cjCvUsB;;EiC0U1B;IACI,YjCvUiB;;EiC0UrB;IACI,YjC9Uc;IiC+Ud,OjCpVe;IiCqVf,cjC9UuB;;EiCiV3B;IACI;IACA,OjC3VQ;IiC4VR,QjCxZc;;EiC0Zd;IACI;IACA,OjChWI;IiCiWJ,QjC7ZU;;EiCgad;IACI;IACA,OjCtWI;IiCuWJ,QjCnaU;;EiCualB;IACI;IACA,OjC7WQ;IiC8WR;;EAEA;IACI;IACA;IACA,OjCnXI;;EiCsXR;IACI;IACA;IACA,OjCzXI;;EiC+XZ;IACI,OjCpXiB;IiCqXjB,YjCjjBE;IiCkjBF,QjCrXc;;EiCuXd;IACI,YjCtjBF;IiCujBE,OjC1Xa;IiC2Xb,cjCxjBF;;EiC2jBF;IACI,YjCvXe;;EiC0XnB;IACI,YjCjkBF;IiCkkBE,OjCpYa;IiCqYb,cjCnkBF;;EiCskBF;IACI;IACA,OjCtkBF;IiCukBE,QjCndU;;EiCqdV;IACI;IACA,OjC3kBN;IiC4kBM,QjCxdM;;EiC2dV;IACI;IACA,OjCjlBN;IiCklBM,QjC9dM;;EiCked;IACI;IACA,OjCxlBF;IiCylBE;;EAEA;IACI;IACA;IACA,OjC9lBN;;EiCimBE;IACI;IACA;IACA,OjCpmBN;;EiC0mBV;IACI,O9BxpBiB;I8BypBjB;IACA;;EAEA;IACI;IACA,O9B9pBa;I8B+pBb;;EAEA;IACI,iBjC7amB;;EiCib3B;IACI;IACA,YjClbe;IiCmbf;;EAGJ;IACI;IACA,O9B9qBa;I8B+qBb;;ECjrBR;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAKA;IACI,OlC0vBe;IkCzvBf,QlC0vBgB;;EkCxvBhB;IACI,WlCwvBkB;;EkCrvBtB;IACI,OlCovBkB;IkCnvBlB,QlCmvBkB;;EkC9uB9B;IACI;;EAIA;I5B/FH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EkC2Bb;IACI,OlCouBmB;IkCnuBnB,QlCouBoB;IkCnuBpB,YlC9DM;IkC+DN,OlCquBuB;IkCpuBvB;IACA,YlCpDkB;;EkCsDlB;IACI,YlC+tBiB;IkC9tBjB,OlCguBwB;;EkC3tB5B;IACI;;EAEA;IACI,elC7DG;;EkCmEX;IACI;;EAEA;IACI,YlCvEG;;EkC6EX;IACI;;EAEA;IACI,clCjFG;;EkCuFX;IACI;;EAEA;IACI,alC3FG;;EkCmGX;AAAA;AAAA;IACI;;EAEA;AAAA;AAAA;AAAA;AAAA;IAEI;;EAKZ;IACI,kBlC5GI;IkC6GJ,elCtHU;;EmCzDd;IACI;IACA;;EAGJ;AAAA;AAAA;AAAA;IAII;IACA;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,enCsBU;;EmCpBV;IACI,enC2HmB;;EmCzHnB;IACI,enCwHe;;EmCpHvB;IACI,YnCkHY;;EoChKpB;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;;EAMI;AAAA;I9B8JJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;I8BlKQ,QpCZG;;EMiLP;AAAA;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;AAAA;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EoCCT;IACI,SpCiqBmB;;EoC/pBnB;IACI,cpCpBG;IoCqBH,epCrBG;;EoCuBH;IACI,kBpC5CN;IoC6CM,OpC6pBQ;IoC5pBR,QpC6pBS;IoC5pBT,YpC/BM;IoCgCN,epCypBe;;EoCvpBf;IACI,YpClDV;;EoCuDM;IACI,YjC9FN;IiC+FM,OjClGC;;EkCJrB;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;AAAA;IAGI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;AAGJ;EACA;AAAA;AAAA;IAGI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;AAAA;IAEI;IACA;;EAGJ;AAAA;IAEI;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;;AAGJ;EACA;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAKA;IACI,crC6TsB;IqC5TtB;;EAGJ;IACI,crCyTyB;IqCxTzB;;EAGJ;IACI,YrC/ME;IqCgNF,OrCzME;IqC0MF,QrCiQW;IqChQX,crCiQgB;IqChQhB,SrCoQY;IqCnQZ,arCkQgB;;EqC/PpB;IACI,YrCxNE;IqCyNF,OrClNE;IqCmNF,QrCgSW;IqC/RX,crCgSgB;IqC/RhB,SrCmSY;IqClSZ,arCiSgB;;EqC9RpB;IACI,YrCgSmB;IqC/RnB,SrCuPgB;IqCtPhB,QrC0Pe;IqCzPf,crC0PoB;IqCzPpB,arCuPoB;IqCtPpB,OrC/NE;IqCgOF,YrCvOE;IqCwOF,YrCpNY;;EqCuNhB;IACI,YrCqRmB;IqCpRnB,SrCqQgB;IqCpQhB,QrCwQe;IqCvQf,crCwQoB;IqCvQpB,arCqQoB;IqCpQpB,OrC1OE;IqC2OF,YrClPE;;EqCsPF;IACI,OrChPF;IqCiPE,arCjOG;;EqCoOP;IACI;IACA,QrC0OkB;IqCzOlB,WrCyOkB;IqCxOlB,arCwOkB;IqCvOlB,OlCrSS;IkCsST,YlCnSE;IkCoSF,arC3OG;;EqC8OP;IACI,YrCrQF;IqCsQE,OrChQF;;EqCkQE;IACI,OrCnQN;;EqCuQF;IACI,YlCjTE;IkCkTF,OlCrTS;;EkCuTT;IACI,OlCxTK;;EkC2TT;IACI,YlCzTF;IkC0TE,OlC7TK;;EkC+TL;IACI,OlChUC;;EkCqUb;IACI,YrC1Mc;IqC2Md;;EAKJ;IACI,YrCzSF;IqC0SE,OrCnSF;IqCoSE,YrCtRQ;;EqCwRR;IACI,YrCoNW;IqCnNX,QrCgMK;IqC/LL,crCgMU;IqC/LV,SrCgMM;;EqC9LN;AAAA;AAAA;AAAA;I/BpHZ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;AAAA;AAAA;AAAA;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;AAAA;AAAA;AAAA;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EqCmRG;IACI,crCnSL;;EqCsSC;IACI,arC8JQ;;EqC1JhB;IACI;IACA;;EAGJ;IACI,YlC1WF;IkC2WE,OlC9WK;;EkCiXT;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAMR;IACI,YrC5VF;IqC6VE,OrCxVF;;EqC4VN;IACI,YlC3YO;;EkCgZP;AAAA;AAAA;IAEI,kBrC1WF;;EqC8WN;IACI,WrCrVa;;EqCuVb;IACI,OrCxVS;IqCyVT,QrCzVS;;EqC8Vb;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAKI;IACI;;EAEA;IACI;;EAQR;IACI;;EAEA;IACI;;EAKJ;IACI;;EAEA;IACI;;EASZ;IACI;;EAEA;IACI;;EAQR;IACI;;EAEA;IACI;;EAQR;IACI;;EAEA;IACI;;EASJ;IACI;;EAEA;IACI;;EAUhB;IACI,YrCWI;;EqCTJ;IACI,YlCrgBN;IkCsgBM,OlCzgBC;;EkC2gBD;IACI,OlC5gBH;;EkC8gBG;IACI,OlC/gBP;;EkCwhBb;I/B7UJ;;E+BiVI;I/BjVJ;;E+BqVI;I/BrVJ;;E+ByVI;I/BzVJ;;E+B6VI;I/B7VJ;;E+BmWI;I/BnWJ;;E+BuWI;I/BvWJ;;E+B2WI;I/B3WJ;;E+B+WI;I/B/WJ;;E+BmXI;I/BnXJ;;EgC/MA;IACI,ctC0iBsB;IsCziBtB;;EAGJ;IACI,ctCsiByB;IsCriBzB;;EAGJ;IACI,YtC8BE;IsC7BF,OtCoCE;IsCnCF,QtC8eW;IsC7eX,ctC8egB;IsC7ehB,StCifY;IsChfZ,atC+egB;;EsC5epB;IACI,YtCoBE;IsCnBF,OtC0BE;IsCzBF,QtC6hBe;IsC5hBf,StC2hBgB;;EsCxhBpB;IACI,YtCcE;IsCbF,OtCoBE;IsCnBF,QtCsgBW;IsCrgBX,ctCsgBgB;IsCrgBhB,StCygBY;IsCxgBZ,atCugBgB;IsCtgBhB,2BtCwBM;IsCvBN,4BtCuBM;;EuCzDV;AAAA;IAEI,avC8DO;;EuC1Df;IACI,OvC2Ea;IuC1Eb,QvC2Ec;IuC1Ed,OvCqCM;IuCpCN,QvC2Ec;IuC1Ed,YvCyEU;IuCxEV,evC8EoB;IuC7EpB,YvC+CkB;IuC9ClB;;EAEA;IACI,OvC+BE;IuC9BF,cvCsEoB;IuCrEpB,YvCuBE;;EuCpBN;IAEI,YvCkBE;IuCjBF,OvCuBE;;EuCpBN;IAEI,YpCvBM;IoCwBN,OpC3Ba;;EoC8BjB;IjC5BH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EuCvCb;IACI,OvCyCa;IuCxCb,QvCyCc;IuCxCd,OvCGM;IuCFN,QvCyCc;IuCxCd,YvCuCU;IuCtCV,evC4CoB;IuC3CpB,YvCakB;IuCZlB;;EAEA;IACI,OvCHE;IuCIF,cvCoCoB;IuCnCpB,YvCXE;;EuCcN;IjClDH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EuClBb;IACI,YvCtBM;IuCuBN,OvChBM;IuCiBN,QvC0EgB;IuCzEhB,evCRU;IuCSV,YvCyEgB;IuCxEhB,WvC6mBO;;EuC3mBP;IACI,SvC+CU;;EuC7CV;IACI,QvCsDS;IuCrDT,SvC4CU;IuC3CV,QvCkDS;IuCjDT,OvC7BF;IuC8BE,YvC0CK;IuCzCL,YvCjBQ;IuCkBR,evC+Ce;;EuC7Cf;IACI;;EAGJ;IACI;;EAGJ;IACI,OpCtFK;IoCuFL,YpCpFF;;EoCuFF;IACI,OvChDN;IuCiDM,YvCtDN;;EuCyDE;IjC1EX,SNmDa;IMlDV,gBNmDgB;IMlDhB,YNqGsB;;EuCxBlB;IACI,YvC1CH;IuC2CG,QvCmmBS;;EuC7lBjB;IACI,SvCgBgB;IuCfhB,evCmBe;IuClBf,OvCnEE;IuCoEF,YvC3EE;IuC4EF,QvCae;IuCZf,yBvC7DM;IuC8DN,wBvC9DM;;EuCiEV;IACI,SvCkRa;IuCjRb,evC7DC;;EuC+DD;IACI,evC/DG;;EuCkEP;IACI,YvCnEG;;EuCsEP;IACI;;EAIR;IACI,SvCsQY;;EuCnQhB;IACI,SvC6Pa;;EwC7YrB;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAKA;IACI,SxCoWa;;EwClWb;IACI,exCoBG;;EwChBX;IACI,YxCTE;IwCUF,QxCuVY;IwCtVZ,exCMM;IwCLN,YxCOe;IwCNf;;EAEA;IlCrCP,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EqC2DX;IACI,OxCbE;IwCcF,SxCmUY;IwClUZ,axCiUe;;EwC9TnB;IACI,OxCpBE;IwCqBF,SxCiDU;IwChDV;;EAEA;IACI,YxCiUQ;;EwC9TZ;IACI,SxC0CU;IwCzCV,QxCkDS;IwCjDT,QxC+CS;IwC9CT,OxChCF;IwCiCE,YxCuCK;IwCtCL;;EAEA;IACI;;EAGJ;IACI;;EAGJ;IACI,YxClDN;IwCmDM,OxC9CN;;EwCgDM;IACI,OxCjDV;IwCkDU,YxCvDV;;EwC2DE;IACI,OxCvDN;IwCwDM,YxC7DN;;EwCgEE;IACI,OrCvGK;IqCwGL,YrCrGF;;EqCuGE;IACI,YrCtGD;;EqC8GP;IACI,YxCmRO;;EwCjRP;IACI,YxCjFV;;EyC1CV;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAMI;IACI,YzCfF;IyCgBE,OzCXF;;EyCcF;IACI,YtCvDE;IsCwDF,OtC3DS;;EsC8DL;IACI;;EAMhB;IACI,YzC/BE;;EyCkCN;IACI,czC2TY;IyC1TZ,czCpCE;;EyCuCN;IACI,YzCsTY;IyCrTZ,czCzCE;;EyC4CN;IACI,QzCiTY;IyChTZ,YzCjDE;IyCkDF,OzC3CE;IyC4CF,SzCkTa;;EyC/SjB;IACI;IACA;IACA;IACA;;EAEA;InC9FP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E0C/Eb;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAIJ;IACI,Y1CFM;I0CGN,O1CGM;I0CFN,Q1C+ba;I0C9bb,c1C+bkB;I0C9blB,S1C+bc;I0C9bd,e1CUU;;E0CRV;AAAA;AAAA;AAAA;IAII,kB1C2bY;I0C1bZ,Q1C2bgB;I0C1bhB,O1CTE;I0CUF,W1C6Fa;I0C5Fb,Q1C4Fa;I0C3Fb,Q1C6bgB;I0C5bhB,Y1CEY;I0CDZ,e1C0bsB;;E0CxbtB;AAAA;AAAA;AAAA;IACI,Y1CrBF;I0CsBE,c1CobsB;I0CnbtB,O1CjBF;;E0CqBN;IACI,wB1CgbsB;I0C/atB,2B1C+asB;;E0C5a1B;IACI,yB1C2asB;I0C1atB,4B1C0asB;;E0Cva1B;IACI,a1ChBO;I0CiBP,c1CjBO;I0CkBP,Q1CmEa;;E0CjEb;IACI;;EAIR;IACI,a1C1BO;I0C2BP,c1C3BO;;E0C6BP;IACI,W1CuDS;;E0CnDjB;IACI,kB1C6YY;I0C5YZ,Q1C6YgB;I0C5YhB,O1CvDE;I0CwDF,W1C+Ca;I0C9Cb,Q1C8Ca;I0C7Cb,Q1C+YgB;I0C9YhB;;EAIA;IACI,kB1CkYQ;I0CjYR,Q1CkYY;I0CjYZ,O1ClEF;I0CmEE,W1CoCS;I0CnCT,Q1CmCS;I0ClCT,Q1CoYY;I0CnYZ,Y1CvDQ;I0CwDR,e1CiYkB;;E0C/XlB;IACI,YvCjHF;IuCkHE,cvClHF;IuCmHE,OvCtHK;;EuCyHT;IACI,Y1CpFN;I0CqFM,c1CqXkB;I0CpXlB,O1ChFN;;E2ChDV;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;IAEI;;EAKA;IACI,S3CwWa;;E2CtWb;IACI,e3CwBG;;E2CpBX;IACI,Y3CLE;I2CMF,Q3C2VY;I2C1VZ,e3CUM;I2CTN,Y3CWe;I2CVf;;EAEA;IrCjCP,SN0Da;IMzDV,gBN0DgB;IMzDhB,YN2DS;IM1DZ,cHpBc;;EwCuDX;IACI,O3CTE;I2CUF,S3CuUY;I2CtUZ,a3CqUe;;E2ClUnB;IACI,O3ChBE;I2CiBF,S3CqDU;I2CpDV;;EAEA;IACI,Y3CqUQ;;E2ClUZ;IACI,S3C8CU;I2C7CV,Q3CsDS;I2CrDT,Q3CmDS;I2ClDT,O3C5BF;I2C6BE,Y3C2CK;I2C1CL;;EAEA;IACI;;EAGJ;IACI;;EAGJ;IACI,Y3C9CN;I2C+CM,O3C1CN;;E2C4CM;IACI,O3C7CV;I2C8CU,Y3CnDV;;E2CuDE;IACI,O3CnDN;I2CoDM,Y3CzDN;;E2C4DE;IACI,OxCnGK;IwCoGL,YxCjGF;;EwCmGE;IACI,YxClGD;;EwC0GP;IACI,Y3CuRO;;E2CrRP;IACI,Y3C7EV;;E4C1CV;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI,Q5CgdmB;I4C/cnB,e5C8cyB;I4C7czB,O5C2ckB;I4C1clB,Q5C2cmB;I4C1cnB,kBzCjHW;;EyCoHf;IACI,kB5C/EE;;E4CmFF;AAAA;IAEI,S5C6byB;;E4C1b7B;IACI,O5CgcgB;;E4C3bpB;AAAA;IAEI,S5Cmb2B;;E4Chb/B;IACI,Q5CqbgB;;E6CpkB5B;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,Q7CqTgB;I6CpThB,Y7C7CM;I6C8CN,O7CvCM;I6CwCN,S7CsTiB;I6CrTjB,e7C/BU;;E6CkCN;IACI,S7C2dK;I6C1dL;;EAEA;IvCtEX,SNmDa;IMlDV,gBNmDgB;IMlDhB,YNqGsB;;E6C7Bd;IACI,e7C3CF;I6C4CE,Y7CxCI;I6CyCJ,S7CkdQ;;E6ChdR;IACI,c7CzCL;IMuKX,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E6C8BG;IACI,c7C9CL;I6C+CK,O7CjEV;;E6CoEM;IACI,c7CnDL;;E6CsDS;IACI,O7CxElB;;E6C6EM;IACI,Y1CtHN;I0CuHM,O1C1HC;;E0C4HD;AAAA;IAEI,O1C9HH;;E0CgIG;AAAA;IACI,O1CjIP;;E0CsIL;IACI,Y7CjGV;I6CkGU,O7C7FV;;E6CmGN;IACI,e7CnFO;;E6CqFP;IACI;IACA;;EAGJ;IACI;IACA,O7C9GF;;E6CkHN;IACI,S7CwZiB;;E6CrZrB;IACI,W7ClGa;;E6CoGb;IACI,O7CrGS;I6CsGT,Q7CtGS;;E8CnErB;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;AAGJ;EACA;IACI;;EAGJ;AAAA;AAAA;IAGI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;;EAGJ;AAAA;AAAA;IAGI;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;AAAA;AAAA;AAAA;AAAA;IAKI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAKA;IACI,c9C+XsB;I8C9XtB;;EAGJ;IACI,c9C2XyB;I8C1XzB;;EAGJ;IACI,Y9C7IE;I8C8IF,O9CvIE;I8CwIF,Q9CmUW;I8ClUX,c9CmUgB;I8ClUhB,S9CsUY;I8CrUZ,a9CoUgB;;E8CjUpB;IACI,Y9CtJE;I8CuJF,O9ChJE;I8CiJF,Q9CkWW;I8CjWX,c9CkWgB;I8CjWhB,S9CqWY;I8CpWZ,a9CmWgB;;E8ChWpB;IACI,Y9CkWmB;I8CjWnB,S9CyTgB;I8CxThB,Q9C4Te;I8C3Tf,c9C4ToB;I8C3TpB,a9CyToB;I8CxTpB,O9C7JE;I8C8JF,Y9CrKE;I8CsKF,Y9ClJY;;E8CqJhB;IACI,Y9CuVmB;I8CtVnB,S9CuUgB;I8CtUhB,Q9C0Ue;I8CzUf,c9C0UoB;I8CzUpB,a9CuUoB;I8CtUpB,O9CxKE;I8CyKF,Y9ChLE;;E8CmLN;IACI,e3C3NY;;E2C6NZ;IACI,O9ChLF;I8CiLE,a9CjKG;;E8CoKP;IACI;IACA,Q9C0SkB;I8CzSlB,W9CySkB;I8CxSlB,a9CwSkB;I8CvSlB,O3CrOS;I2CsOT,Y3CnOE;I2CoOF,a9C3KG;;E8C8KP;IACI,Y9CrMF;I8CsME,O9ChMF;;E8CkME;IACI,O9CnMN;;E8CuMF;IACI,Y3CjPE;I2CkPF,O3CrPS;;E2CuPT;IACI,O3CxPK;;E2C8Pb;IACI,Y9C3NF;I8C4NE,O9CrNF;I8CsNE,Y9CxMQ;;E8C0MR;IACI,Y9CkSW;I8CjSX,Q9C8QK;I8C7QL,c9C8QU;I8C7QV,S9C8QM;;E8C5QN;IxCtCZ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;IwCiCgB,c9C/ML;;EMiLP;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E8CkMO;IACI,c9ClNT;;E8CqNa;IACI,O9CvOtB;;E8C8OE;IACI;IACA;;EAGJ;IACI,Y3C5RF;I2C6RE,O3ChSK;;E2CkSL;IACI,O3CnSC;;E2CqSD;IACI,O3CtSH;;E2C+Sb;IACI,Y9C1QF;I8C2QE,O9CtQF;;E8CwQE;IACI,O9CzQN;;E8C8QN;IACI,Y3C7TO;;E2CgUX;AAAA;IAEI,Y9C1RE;;E8C6RN;IACI,W9CpQa;;E8CsQb;IACI,O9CvQS;I8CwQT,Q9CxQS;;E8C6Qb;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAKI;IACI;;EAOJ;IACI;;EAOJ;IACI;;EAOZ;IxC3KJ;;EwC+KI;IxC/KJ;;EwCmLI;IxCnLJ;;EwCuLI;IxCvLJ;;EwC2LI;IxC3LJ;;EwCiMI;IxCjMJ;;EwCqMI;IxCrMJ;;EwCyMI;IxCzMJ;;EwC6MI;IxC7MJ;;EwCiNI;IxCjNJ;;EyC/MJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAMI;IACI,S/C4WQ;I+C3WR,Q/CuWO;I+CtWP,O/CuBF;I+CtBE,Y/CiBF;I+ChBE,a/CuWW;I+CtWX,e/C+BE;I+C9BF,Y/CkCQ;I+CjCR;;EAEA;IACI,c/CiCD;;E+C3BC;IzCzBf,SNgEa;IM/DV;IACA;;EyC8BQ;IACI,Y/CHN;I+CIM,c/CHN;I+CIM,O/CCN;;E+CIE;IACI,Y/CZN;I+CaM,c/CXN;I+CYM,O/CPN;I+CQM;IACA;;EAIA;IACI,c/CnBV;I+CoBU,Y/CrBV;I+CsBU,O/ChBV;;E+CsBN;IACI,S/CsUa;I+CrUb,Q/CiUY;I+ChUZ,Y/CjCE;I+CkCF,O/C3BE;I+C4BF;IACA;IACA;IACA,4B/CrBM;I+CsBN,2B/CtBM;;E+CyBV;IACI,e/CkUU;;EgDtZlB;IACI,YhDwCM;IgDvCN,OhD8CM;IgD7CN,YhD0dQ;IgDzdR,ehDsDU;;EgDpDV;IACI,ShD+cS;;EgD5cb;IACI,WhD4cW;IgD3cX,ahD4cc;IgD3cd,ehDoDO;;EgDjDX;IACI,ahDwcgB;IgDvchB,ehD+CO;IgD9CP,OhD4BE;;EgDzBN;IACI,ShDocY;;EgDjchB;IACI,ShDicW;;EiD3dnB;AAAA;IAEI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,QjDoXgB;IiDnXhB,YjDkBM;IiDjBN,OjDwBM;IiDvBN,ejDiCU;;EiD/BV;IACI,SjDsWY;IiDrWZ,QjDiWW;IiDhWX,OjDmBE;IiDlBF,YjDWE;IiDVF,ajDiWe;IiDhWf,ejDyBM;;EiDrBN;IACI;IACA,YjDsBU;;EiDpBV;IACI,SjDwVI;IiDvVJ,OjDMN;IiDLM,ejDcF;IiDbE,YjDiBI;IiDhBJ;;EAEA;IACI,cjDgBL;;EiDbC;I3C7Cf,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EiDxBG;IACI,OjDRV;;EiDYE;IACI,YjDnBN;IiDoBM,cjDnBN;IiDoBM,OjDfN;;EiDoBN;IACI,SjDwUa;;EkD7YrB;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAIA;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAMJ;IACI,kBlD1BE;;EkD6BN;IACI,QlDkuBiB;IkDjuBjB,SlDkuBkB;;EkDhuBlB;IACI;;EAGJ;IACI;;EAIR;IACI,QlDutBe;IkDttBf,SlDutBgB;;EkDrtBhB;IACI;;EAGJ;IACI;;EC3FZ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAKA;IACI,QnDsWW;ImDrWX,SnDyWY;ImDxWZ,YnDgBE;ImDfF,OnDsBE;ImDrBF,yBnD8BM;ImD7BN,wBnD6BM;;EmD3BN;IACI,anDiWW;;EmD9Vf;I7CqMJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EmDvCL;IACI,SnDyVkB;;EmDrV1B;IACI,SnD+Va;ImD9Vb,QnD0VY;ImDzVZ,YnDRE;ImDSF,OnDFE;ImDGF;;EAEA;IACI,4BnDIE;ImDHF,2BnDGE;;EmDCV;IACI,SnDuVY;ImDtVZ,QnDmVW;ImDlVX,YnDrBE;ImDsBF,OnDfE;ImDgBF,4BnDNM;ImDON,2BnDPM;ImDQN;;ECjER;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAKA;IACI,YpDlBE;IoDmBF,QpDqZgB;IoDpZhB,YpDFe;IoDGf;;EAEA;I9C1DP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EqD/Eb;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAIJ;IACI,QrD2UgB;IqD1UhB,YrDvBM;IqDwBN,erDPU;IqDQV,OrDlBM;;EqDoBN;IACI,YrDRc;IqDSd,YrD5BE;;EqD8BF;IACI,YrD7BF;IqD8BE,YrDdW;IqDeX;;EAEA;I/CtEX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EqDGT;IACI,YrDxCE;;EsDzCV;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAEA;IACI;;EAIR;IACI;IACA;IACA;IACA;IACA;;EAEA;IhD7BH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EsDvCb;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAKA;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI,StDdO;;EsDgBP;IACI,YtDpBQ;IsDqBR,etDzBE;IsD0BF,YtD3CF;IsD4CE;;EAEA;IACI,OtDxCN;IsDyCM,QtDikBC;IsDhkBD;IACA,YtDlDN;IsDmDM,WtDgkBM;IsD/jBN,QtDgkBO;IsD/jBP,atD+jBO;IsD9jBP,WtD+jBS;IsD9jBT,etDgkBa;IsD/jBb,YtDpCM;;EsDuCV;IACI,atDpCD;IsDqCC,OtDvDN;IsDwDM,atD0jBY;IsDzjBZ,YtD3CM;;EsD8CV;IhDpGX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EsDiCD;IACI,YnD1GF;ImD2GE,OnD9GK;;EmDiHT;IACI,OtDvEN;;EsD2EF;IhDpHP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EsDiDG;IACI,kBnDhIL;;EmDsIX;IACI,YtDhGE;IsDiGF,StDoQa;IsDnQb,OtD3FE;;EsD8FN;IACI,kBtDnGE;IsDoGF;IACA;IACA;IACA,YtDrFY;;EsDwFhB;IACI;IACA;;EAEA;IACI;IACA;IACA,YtDpHF;IsDqHE,OtD9GF;;EsDiHF;IACI;IACA;IACA;;EAEA;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAKI;IACI,kBnD3LT;;EmDiMC;IACI;;ECnMpB;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI,YvDjCE;IuDkCF,QvDoWU;IuDnWV,cvDoWe;;EuDlWf;IACI,cvDoWU;;EuDlWV;IACI,QvDkWK;IuDjWL,cvDkWU;IuDjWV,cvDkWU;IuDjWV,YvD5CN;IuD6CM,OvDvCN;IuDwCM,SvD2SI;IuD1SJ,avDySO;IuDxSP,yBvD/BF;IuDgCE,wBvDhCF;IuDiCE,YvD7BI;IuD8BJ,QvD+VK;IuD9VL;;EAEA;IjDlFf,SNgEa;IM/DV;IACA;;EiDsFY;IACI,YvD7DV;IuD8DU,cvDzDV;IuD0DU,OvDzDV;;EuD8DM;IACI,YvDrEV;IuDsEU,cpD7GL;IoD8GK,OpD9GL;;EoDoHX;IACI,YvD9EE;IuD+EF,OpDtHO;IoDuHP,OvD6Ba;IuD5Bb,YvDuCY;IuDtCZ;IACA;;EAEA;IjDjHP,SNgEa;IM/DV;IACA;;EiDoHA;IACI,YvD3FE;IuD4FF,SvDyQa;IuDxQb,QvD+Tc;IuD9Td,OvDvFE;IuDwFF,4BvD9EM;IuD+EN,2BvD/EM;;EwDzDd;IACI;IACA;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;IACA;;EAGJ;AAAA;IAEI;IACA;;EAIJ;IACI,YxDmBM;IwDlBN,QxDsWe;IwDrWf,SxDyWgB;IwDxWhB,exDgCU;IwD/BV,KxDsCW;;EwDpCX;IACI;;EC7BR;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAIJ;IACI,YzDhCM;IyDiCN,OzD1BM;IyD2BN,QzDqjBkB;IyDpjBlB,ezDlBU;IyDmBV,YzDqjBoB;;EyDnjBpB;IACI,SzD8Ta;;EyD3TjB;IACI;IACA,SzD4jBmB;;EyD1jBnB;IACI;IACA;;EAEA;IACI;;EAKZ;IACI;IACA;IACA,qBzD3DE;;EyD8DN;IACI;IAGI;IACA;;EASJ;IACI,kBzD7EF;;EyDgFF;IAEQ,kBzDlFN;;EyD0FN;IACI;;EAEA;IACI;IACA;;EAIR;IACI;;EC5IR;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;;AAGJ;AACA;EACA;IACI;;EAEJ;IACI;;EAEJ;AAAA;IAEI;IACA;;AAGJ;EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAQI;IACA;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAgBI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;;EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;IAMI;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;IACA;;EAEJ;IACI;;EAGJ;IACI;IACA;;EAIJ;IACI,e1D1EU;I0D2EV,Y1D6foB;I0D5fpB,Q1D0fkB;;E0DxflB;IACI,e1D6fY;I0D5fZ,Y1DjGE;I0DkGF,O1D1FE;I0D2FF,S1D8fa;I0D7fb,yB1DnFM;I0DoFN,wB1DpFM;;E0DsFN;IACI,a1Dufa;I0Dtfb,W1DufU;;E0Dpfd;IpDmFJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;IoDxFQ,c1DtFG;;EMiLP;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E0DyED;IACI;;EAKZ;IACI,Y1DvHE;I0DwHF,O1DjHE;I0DkHF,S1Dyec;;E0Dved;IACI,4B1D3GE;I0D4GF,2B1D5GE;;E0DgHV;IACI,Y1DieY;I0DheZ,Y1DnIE;I0DoIF,O1D7HE;I0D8HF,S1D+da;I0D9db;IACA;IACA,K1DhHO;I0DiHP,4B1DxHM;I0DyHN,2B1DzHM;;E0D6HN;IACI;;EAGJ;IACI;;ECzLZ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,Y3DlCM;I2DmCN,O3D5BM;I2D6BN,Q3DmjBkB;I2DljBlB,e3DpBU;I2DqBV,Y3DmjBoB;;E2DjjBpB;IACI,S3D4Ta;;E2DzTjB;IACI,YxDpFO;IwDqFP,OxDjFW;IwDkFX,O3DLS;I2DMT,Q3DLU;I2DMV,Y3D7Bc;I2D8Bd;IACA;IACA;IACA;;EAEA;IACI,YxD7FO;IwD8FP,OxD5FO;;EwDgGf;IACI;IACA;IACA,qB3DhEE;;E2DmEN;IACI;IAGI;IACA;;EASJ;IACI,kB3DlFF;;E2DqFF;IAEQ,kB3DvFN;;E4DxCV;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;AAGJ;AACA;EACA;AAAA;IAEI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;IAEI;;EAEJ;AAAA;IAEI;;AAGJ;EACA;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;AAAA;AAAA;IAII;IACA;;EAGJ;IACI;AAAA;AAAA;AAAA;MAII;;;EAKR;IACI,Y5D/GM;I4DgHN,O5DzGM;I4D0GN,Q5DsekB;I4DrelB,Y5DueoB;;E4DrepB;IACI,S5DoOY;;E4DlOZ;IACI,a5Duea;I4Dteb,W5DueU;;E4Dped;AAAA;ItDmEJ,ONrJa;IMsJb,QNrJc;IMsJd,ON3LM;IM4LN,QNrJc;IMsJd,YNvJU;IMwJV,eNlJoB;IMmJpB,YNjLkB;IMkLlB;;EAGI;AAAA;IAeJ,ONhNM;IMiNN,cNzKwB;IM0KxB,YNxNM;;EMgNN;AAAA;IApPH,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E4D0FL;IACI;;EAIR;IACI,S5D8Na;;E6D7YrB;IACI;IACA;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAKA;IACI,Y7DXE;I6DYF,O7DnBE;I6DoBF,S7DiCM;I6DhCN,Y7D8EY;I6D7EZ,e7DLM;;E6DSN;IACI,oB7DpBF;;E6DyBF;IACI,mB7D1BF;;E6D+BF;IACI,kB7DhCF;;E6DqCF;IACI,qB7DtCF;;E8D/CV;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI,Y9DNE;I8DOF,S9DiVY;I8DhVZ,Q9D4UW;I8D3UX,O9DFE;I8DGF;IACA,yB9DKM;I8DJN,wB9DIM;I8DHN,K9DUO;;E8DPH;IxDnDX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E8DhBT;IACI,Y9DxBE;I8DyBF,S9D0YmB;I8DzYnB,Q9DuUY;I8DtUZ,O9DpBE;I8DqBF,4B9DXM;I8DYN,2B9DZM;;E8DcN;IACI,Q9DoYmB;I8DnYnB,kB3DlEE;;E2DsEV;IACI,S9DgYgB;I8D/XhB,Q9D8Xe;I8D7Xf,e9DvBM;I8DwBN,K9DjBO;I8DkBP,e9DlBO;;E8DoBP;IACI;;EAIR;IACI,e9D1BO;;E8D6BX;IACI,c9D9BO;;E8DiCX;IACI,Q9DwWqB;;E8DpWrB;IACI,S9DkbU;;E8D7ad;IACI;;EAMR;IACI,Y3DjHW;I2DkHX,O3DhHW;I2DiHX,c3DnHW;;E2DsHf;IACI,Y3DtHa;I2DuHb,O3DtHW;I2DuHX,c3DxHa;;E4DJrB;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAIJ;IACI,Y/DMM;I+DLN,Q/D+oBQ;I+D9oBR,e/DqBU;I+DpBV,S/D0qBe;;E+DtqBP;IACI,Y/DmBI;I+DlBJ,e/DcF;I+DbE;;EAEA;IzDxCf,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E+D7BG;IACI,O/DJV;;E+DOM;IACI,O/DTV;;E+DaE;IACI;IACA,O/DdN;;E+DkBM;IACI,O/DnBV;;E+DsBM;IACI,O/DxBV;;EgE9CV;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAIJ;IACI,ShEgqBiB;IgE/pBjB,YhELM;IgEMN,OhECM;IgEAN,QhE2pBe;IgE1pBf,YhE2pBe;IgE1pBf,ehEQU;IgEPV,WhE8nBO;;EgE5nBP;IACI;;EAGJ;IACI,ShEmpBa;IgElpBb,YhElBE;IgEmBF,QhE+oBW;IgE9oBX,YhE+oBW;IgE9oBX,ehEJM;;EgEOV;I1D7BA,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EgEsBN;IACI,YhENC;IgEOD,QhEuoBa;;EgEpoBjB;IACI,WhEwnBqB;;EgEtnBrB;IACI,OhEqnBiB;IgEpnBjB,QhEonBiB;;EiElsB7B;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;;AAGJ;AACA;EACA;IACI;IACA;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAKA;IACI,YjEivBC;IiEhvBD,QjEivBK;IiEhvBL,SjEivBM;IiEhvBN,ejEivBW;;EiE/uBX;IACI;;EAIR;IACI,SjEiuBU;IiEhuBV,ejEhEM;;EiEkEN;I3DlGP,SNmDa;IMlDV,gBNmDgB;IMlDhB,YNqGsB;;EiEAtB;IACI,OjEstBU;IiErtBV,QjEstBW;;EiEjtBX;AAAA;AAAA;IAEI;;EAGJ;AAAA;AAAA;IAEI;;EAGJ;IACI;;EAMJ;AAAA;AAAA;IAEI;;EAGJ;AAAA;AAAA;IAEI;;EAGJ;IACI;;EAOA;IACI;IACA;;EAEA;IACI;;EAOR;IACI;IACA;;EAEA;IACI;;EAMR;IACI;IACA;;ECnMhB;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;AAAA;AAAA;AAAA;AAAA;IAKI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAIJ;IACI,SlEqjBmB;IkEpjBnB,YlE3HM;IkE4HN,OlEtHM;IkEuHN,QlE4gBQ;IkE3gBR,elE9GU;;EkEgHV;IACI;;EAGJ;I5D1IA,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EkEmIN;IACI,YlE1IE;IkE2IF,OlEpIE;IkEqIF,QlEshBW;IkErhBX,YlEshBW;IkErhBX,elE7HM;;EkEgIV;IACI,QlEygBa;IkExgBb,SlEygBc;IkExgBd,OlE5IE;IkE6IF,YlErJE;IkEsJF,alE0gBiB;IkEzgBjB,yBlEtIM;IkEuIN,wBlEvIM;;EkE0IV;IACI,SlEwgBa;IkEvgBb,WlE2eG;;EkEzeH;IACI,YlEzIH;IkE0IG,QlEogBS;;EkEhgBjB;IACI,WlEkeG;IkEjeH,SlE6fa;;EM1jBjB;IACI,ONpGE;IMqGF,YNvFY;IMwFZ,eN5FM;;EM8FN;IACI,SN4hBK;IM3hBL;;EAEA;IACI,ON7GN;;EMgHE;IACI,ONlHN;IMmHM,cNjGD;;EMoGH;IACI,ONvHN;IMwHM,aNtGD;;EM6GH;IACI,ON/HN;IMgIM,YNrIN;;EMwIU;IACI,ONpId;;EMuIU;IACI,ONzId;;EkE6KF;IACI;IACA,SlE2fW;;EkExff;IACI,OlE/IK;IkEgJL,QlE/IM;IkEgJN,OlErLF;IkEsLE,elE1IY;IkE2IZ,YlEzKU;IkE0KV;;EAEA;IACI,OlE3LN;IkE4LM,YlEhMN;;EkEmME;I5DvOX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EkEmKL;IACI,SlEydS;IkExdT,YlE5MF;IkE6ME,QlEqdO;IkEpdP,YlEqdO;;EkEndP;IACI,YlE1LP;IkE2LO,QlEmdK;;EkEhdT;IACI,WlEoca;;EkE9bL;IACI;IACA;;EASA;IACI;;EAQhB;IACI;IACA;;EAMQ;IACI;;E5DvEhB;IACI;;E6D3NpB;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAIJ;IACI,SnEurBiB;ImEtrBjB,YnEkBM;ImEjBN,OnEwBM;ImEvBN,QnE0pBQ;ImEzpBR,enEgCU;ImE/BV,WnEspBO;;EmEppBP;I7DOA,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EmEdN;IACI,YnEOE;ImENF,QnEwqBW;ImEvqBX,YnEwqBW;;EmErqBf;IACI,QnE4pBa;ImE3pBb,SnE4pBc;ImE3pBd,OnEOE;ImENF,YnEFE;ImEGF,anE6pBiB;ImE5pBjB,yBnE2pBmB;ImE1pBnB,wBnE0pBmB;;EmEvpBvB;IACI,YnEcC;ImEbD,QnE2pBa;;EoE7sBrB;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAIJ;IACI,SpE4mBmB;IoE3mBnB,YpEpEM;IoEqEN,OpE/DM;IoEgEN,QpEmkBQ;IoElkBR,epEvDU;;EoEyDV;IACI;;E9D+BJ;IACI,ONpGE;IMqGF,YNvFY;IMwFZ,eN5FM;;EM8FN;IACI,SN4hBK;IM3hBL;;EAEA;IACI,ON7GN;;EMgHE;IACI,ONlHN;IMmHM,cNjGD;;EMoGH;IACI,ONvHN;IMwHM,aNtGD;;EM6GH;IACI,ON/HN;IMgIM,YNrIN;;EMwIU;IACI,ONpId;;EMuIU;IACI,ONzId;;EoE4EN;I9DvFA,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EoEgFN;IACI,SpE6kBa;IoE5kBb,YpExFE;IoEyFF,QpEykBW;IoExkBX,YpEykBW;IoExkBX,WpE6iBG;IoE5iBH,epE3EM;;EoE6EN;IACI,YpExEH;IoEyEG,QpEqkBS;;EoElkBb;IACI,WpEsjBiB;;EoEjjBrB;IACI,OpEhEK;IoEiEL,QpEhEM;IoEiEN,OpEtGF;IoEuGE,epE3DY;IoE4DZ,YpE1FU;IoE2FV;;EAEA;IACI,OpE5GN;IoE6GM,YpEjHN;;EoEoHE;I9DxJX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EoEoFL;IACI,SpEwiBS;IoEviBT,YpE7HF;IoE8HE,QpEoiBO;IoEniBP,YpEoiBO;;EoEliBP;IACI,YpE3GP;IoE4GO,QpEkiBK;;EoE/hBT;IACI,WpEmhBa;;EoE7gBL;IACI;IACA;;EASA;IACI;;EAQhB;IACI;IACA;;EAMQ;IACI;;E9DQhB;IACI;;EADJ;IACI;;EADJ;IACI;;EADJ;IACI;;EADJ;IACI;;E+D3NpB;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAKA;IACI;;EAEA;IACI,QrEsVO;IqErVP,OrEMF;IqELE;IACA,erEeE;IqEdF,YrEkBQ;IqEjBR;;EAEA;IACI,OrEDN;IqEEM,SrEiVI;IqEhVJ,arE+UO;;EqE7UP;IACI,crEYL;;EqETC;IACI,crEQL;;EqEDC;I/DnDf,SNgEa;IM/DV;IACA;;E+DwDQ;IACI,YrE7BN;IqE8BM,crE7BN;IqE8BM,OrEzBN;;EqE8BE;IACI,YrEtCN;IqEuCM,crErCN;IqEsCM,OrEjCN;IqEkCM;IACA;IACA;;EAIA;IACI,crE9CV;IqE+CU,YrEhDV;IqEiDU,OrE3CV;;EqEiDN;IACI,SrE0mBa;IqEzmBb,QrEsSY;IqErSZ,YrE5DE;IqE6DF,OrEtDE;IqEuDF;IACA;IACA;IACA,4BrEhDM;IqEiDN,2BrEjDM;;EqEmDN;IACI;;EAGJ;I/D7EJ,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EqEuEU;IACI,crEtDT;;EqE4DP;IACI,YrE9DH;IqE+DG,QrE+kBS;;EqE5kBb;IACI,SrEuba;;EqEnbrB;IACI,erE8QU;;EsEnZlB;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAMI;IACI;IACA,YtECQ;IsEAR,etEJE;IsEKF,YtEtBF;IsEuBE;;EAEA;IACI,OtEnBN;IsEoBM,QtEslBC;IsErlBD,YtE5BN;IsE6BM,WtEslBM;IsErlBN,QtEslBO;IsErlBP,atEqlBO;IsEplBP,WtEqlBS;IsEplBT;IACA,etEqlBa;;EsEllBjB;IACI,YtEdD;IsEeC,OtEjCN;;EsEoCE;IhE5EX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EsESD;IACI,YnElFF;ImEmFE,OnEtFK;;EmEyFT;IACI,atEkkBY;IsEjkBZ,OtEhDN;;EsEoDF;IACI;IACA,YtEtCH;IsEuCG;IACA;IACA;IACA;IACA;IACA;;EC3GZ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAKA;IACI,YvEHE;IuEIF,QvEkYU;IuEjYV,cvEkYe;;EuEhYf;IACI,cvEkYU;;EuEhYV;IACI,QvEgYK;IuE/XL,cvEgYU;IuE/XV,cvEgYU;IuE/XV,YvEdN;IuEeM,OvETN;IuEUM,SvEyUI;IuExUJ,avEuUO;IuEtUP,yBvEDF;IuEEE,wBvEFF;IuEGE,YvECI;IuEAJ,QvE6XK;IuE5XL;;EAEA;IACI,cvEDL;;EuEIC;IjExDf,SNgEa;IM/DV;IACA;;EiE4DY;IACI,YvEnCV;IuEoCU,cvE/BV;IuEgCU,OvE/BV;;EuEoCM;IACI,YvE3CV;IuE4CU,cpEnFL;IoEoFK,OpEpFL;;EqEDf;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;AAAA;IAEI;;EAGJ;IACI;;EAIJ;IACI,SxEypBiB;IwExpBjB,YxEZM;IwEaN,OxENM;IwEON,QxE4nBQ;IwE3nBR,exEEU;IwEDV,WxEwnBO;;EwEtnBP;IACI,YxEnBE;IwEoBF,QxE8oBW;IwE7oBX,YxE8oBW;;EwE3oBf;IACI;;EAGJ;IACI,SxEuoBa;IwEtoBb,YxE9BE;IwE+BF,QxEmoBW;IwEloBX,YxEmoBW;IwEloBX,exEhBM;;EwEmBV;IlEzCA,QN4FiB;;EM1FjB;IACI;;EAGJ;IACI;;EAGJ;IACI,ONCE;IMAF,YNcY;IMbZ,eNqoBc;;EMnoBd;IACI,ONJF;IMKE,SNgoBK;IM/nBL;;EAEA;IACI,ONTN;;EMYE;IACI,ONdN;IMeM,cNGD;;EMAH;IACI,ONnBN;;EMyBF;IACI,OHpES;IGqET,YHlEE;;EGqEE;IACI,OHzEC;;EG4EL;IACI,OH7EC;;EGmFT;IACI,YH/EG;;EGsFP;IACI,ONjDN;IMkDM,YNvDN;;EM0DU;IACI,ONtDd;;EMyDU;IACI,ON1Dd;;EM8DM;IACI,ON/DV;IMgEU,YNrEV;;EMwEc;IACI,ONpElB;;EMuEc;IACI,ONzElB;;EMiFE;IACI,ONjFN;IMkFM,YNvFN;;EM0FU;IACI,ONtFd;;EMyFU;IACI,ON3Fd;;EwEkCN;IACI,YxElBC;IwEmBD,QxE2nBa;;EwExnBjB;IACI,WxE4mBqB;;EwE1mBrB;IACI,OxEymBiB;IwExmBjB,QxEwmBiB;;EyElsB7B;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAIJ;IACI,SzEuEU;IyEtEV,QzE6jBiB;IyE5jBjB,ezEiCU;;EyE/BV;IACI,YzE0kBO;IyEzkBP,QzE0kBW;IyEzkBX,czE0jBkB;IyEzjBlB,OzEykBc;;EyEvkBd;IACI,OzEukBU;;EyEnkBlB;IACI,YzEmkBU;IyElkBV,QzEmkBc;IyElkBd,czE+iBkB;IyE9iBlB,OzEkkBiB;;EyEhkBjB;IACI,OzEgkBa;;EyE5jBrB;IACI,YzE4jBU;IyE3jBV,QzE4jBc;IyE3jBd,czEoiBkB;IyEniBlB,OzE2jBiB;;EyEzjBjB;IACI,OzEyjBa;;EyErjBrB;IACI,YzEqjBQ;IyEpjBR,QzEqjBY;IyEpjBZ,czEyhBkB;IyExhBlB,OzEojBe;;EyEljBf;IACI,OzEkjBW;;EyE7iBf;IACI,YzEkGO;IyEjGP,QzE6iBa;IyE5iBb,czE6gBc;IyE5gBd,OzEgGc;;EyE9Fd;IACI,OzE6FU;;EyEvFlB;IACI,YzEpCF;IyEqCE,QzEoiBY;IyEniBZ,czEggBc;IyE/fd,OzEqJa;;EyEnJb;IACI,OzEkJS;;EyE7IrB;IACI,WzEofmB;IyEnfnB,czElCO;;EyEqCX;IACI,WzEgfmB;;EyE5enB;IACI;;EC3GZ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAIJ;IACI,Q1EwhBW;I0EvhBX,e1EKU;;E0EHV;IACI,S1EqhBQ;;E0ElhBZ;IACI,O1EuBS;I0EtBT,Q1EuBU;I0EtBV,e1E6BgB;I0E5BhB;IACA,Y1EHc;I0EId;;EAEA;IACI;;EAGJ;IpEhEP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E0EJT;IACI,Y1EyhBO;I0ExhBP,Q1EyhBW;I0ExhBX,c1E+fY;I0E9fZ,O1EwhBc;;E0EthBd;IACI,O1EshBU;;E0EnhBd;IACI,O1EkhBU;;E0E9gBlB;IACI,Y1E8gBU;I0E7gBV,Q1E8gBc;I0E7gBd,c1EgfY;I0E/eZ,O1E6gBiB;;E0E3gBjB;IACI,O1E2gBa;;E0ExgBjB;IACI,O1EugBa;;E0EngBrB;IACI,Y1EmgBU;I0ElgBV,Q1EmgBc;I0ElgBd,c1EieY;I0EheZ,O1EkgBiB;;E0EhgBjB;IACI,O1EggBa;;E0E7fjB;IACI,O1E4fa;;E0ExfrB;IACI,Y1EwfQ;I0EvfR,Q1EwfY;I0EvfZ,c1EkdY;I0EjdZ,O1Eufe;;E0Erff;IACI,O1EqfW;;E0Elff;IACI,O1EifW;;E0E5ef;IACI,Y1EiCO;I0EhCP,Q1E4ea;I0E3eb,c1EkcQ;I0EjcR,O1E+Bc;;E0E7Bd;IACI,O1E4BU;;E0EzBd;IACI,O1EwBU;;E0ElBlB;IACI,Y1EzGF;I0E0GE,Q1E+dY;I0E9dZ,c1EibQ;I0EhbR,O1EgFa;;E0E9Eb;IACI,O1E6ES;;E0E1Eb;IACI,O1EyES;;E0EpErB;IACI,W1Eqaa;I0Epab,a1EqagB;;E0ElapB;IACI,W1E+Za;I0E9Zb,c1EhHO;;E0EmHX;IACI,O1E0Za;I0EzZb,Q1EyZa;;E2E9kBrB;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAIJ;IACI,S3EqhBU;;E2EnhBV;IACI,Q3E8gBK;I2E7gBL,Y3EghBK;I2E/gBL,e3EvBM;;E2EyBN;IACI,S3E0gBE;I2EzgBF,c3E0gBM;;E2ExgBN;IACI,Q3EogBQ;;E2EjgBZ;IACI,W3E+fG;;E2E7fH;IACI,O3E4fD;I2E3fC,Q3E2fD;;E2EvfP;IACI,a3E6fO;;E2E1fX;IACI,Q3E0fG;;E2EtfX;IACI,O3E6eO;I2E5eP,Q3E4eO;I2E3eP,e3ErBY;I2EsBZ;IACA,Y3ErDU;I2EsDV;;EAEA;IACI;;EAGJ;IrElHX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E2E8CL;IACI,Y3EueG;I2EteH,Q3EueO;I2EteP,c3E6cQ;I2E5cR,O3EseU;;E2EpeV;AAAA;IAEI,O3EmeM;;E2E/dd;IACI,Y3E+dM;I2E9dN,Q3E+dU;I2E9dV,c3EicQ;I2EhcR,O3E8da;;E2E5db;AAAA;IAEI,O3E2dS;;E2EvdjB;IACI,Y3EudM;I2EtdN,Q3EudU;I2EtdV,c3EqbQ;I2EpbR,O3Esda;;E2Epdb;AAAA;IAEI,O3EmdS;;E2E/cjB;IACI,Y3E+cI;I2E9cJ,Q3E+cQ;I2E9cR,c3EyaQ;I2ExaR,O3E8cW;;E2E5cX;AAAA;IAEI,O3E2cO;;E2EtcX;IACI,Y3ELG;I2EMH,Q3EscS;I2ErcT,c3E4ZI;I2E3ZJ,O3EPU;;E2ESV;AAAA;IAEI,O3EXM;;E2EiBd;IACI,Y3E5IN;I2E6IM,Q3E4bQ;I2E3bR,c3E8YI;I2E7YJ,O3E6CS;;E2E3CT;AAAA;IAEI,O3EyCK;;E4E7OzB;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;IACA;;EAGJ;AAAA;IAEI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;AAAA;IAEI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;AAGJ;AACA;EACA;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;IACA;;EAGJ;AAAA;IAEI;IACA;;AAGJ;EACA;IACI;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;AAAA;IAEI;IACA;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;AAAA;IAEI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;AAGJ;EACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;AAGJ;EACA;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;IACA;;EAGJ;IACI;;AAGJ;EACA;IACI;;EAGJ;IACI;;EAKA;IACI,Q5E4diB;I4E3djB,Y5E6da;I4E5db,O5ExPE;I4EyPF,O5E+dgB;I4E9dhB,Q5E+diB;I4E9djB,Y5ExOc;I4EyOd,e5E8duB;;E4E5dvB;IACI,W5Eode;;E4EjdnB;IACI,O5Egde;I4E/cf,Q5E+ce;;E4E5cnB;IACI,Y5E8cc;I4E7cd,O5EzQF;;E4E6QN;IACI,Y5E8ciB;I4E7cjB,O5E/QE;I4EgRF,O5EkdoB;I4EjdpB,Q5EkdqB;I4EjdrB,Y5E/Pc;I4EgQd,e5EnQM;I4EoQN,Q5E0cqB;;E4ExcrB;AAAA;IAEI,W5EucmB;;E4EpcvB;IACI,O5Eube;I4Etbf,Q5Esbe;;E4Elbf;IACI,Y5E8bc;I4E7bd,O5EnSN;;E4EwSN;IACI,Y5E6bW;I4E5bX,O5E1SE;I4E2SF,S5E6bgB;;E4E1bpB;IACI,S5E2bmB;;E4Exbf;IACI,kB5EhTN;I4EiTM,O5E0bQ;I4EzbR,Q5E0bS;I4EzbT,Y5EnSM;I4EoSN,e5Esbe;;E4Epbf;IACI,Y5EtTV;;E4E2TM;IACI,YzElWN;IyEmWM,OzEtWC;;EyE8Wb;IACI,c5EnTG;;E4EyTP;IACI,e5E1TG;;E4E+TP;IACI,Y5EyZgB;;E4EtZZ;IACI,Y5EsZO;;E4EpZP;IACI,Y5EoZQ;;E4E/YZ;IACI,YzEtYV;IyEuYU,OzE1YH;;EyEiZjB;IACI,Y5EuYsB;I4EtYtB,S5EuY2B;;E4ErY3B;AAAA;IAEI,Q5E3VG;I4E4VH,kB5EmYkB;I4ElYlB,O5EpXF;I4EqXE,O5EsYqB;I4ErYrB,Q5EsYsB;I4ErYtB,Y5EpWU;I4EqWV,e5EkY4B;;E4EhY5B;AAAA;IACI,Y5E6XmB;I4E5XnB,O5E5XN;;E4EgYF;IACI;;EAEA;ItEtaX,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;E4EoWb;IACI;;ECpbJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;EAEJ;IACI;;EAEJ;AAAA;IAEI;IACA;;EAIJ;IACI;;EAGJ;IACI;IACA,O7EuxBwB;I6EtxBxB,Y7EpBkB;;E6EsBlB;IACI,O7E2xBwB;I6E1xBxB,Q7E0xBwB;;E6EpxBxB;IACI,kB7E4wBa;;E6EvwBzB;IACI,S7EowBwB;;E6EjwB5B;IACI,O7EowByB;I6EnwBzB,kB7EkwBsB;I6EjwBtB,O7EqwByB;I6EpwBzB,Q7EqwB0B;I6EpwB1B,e7EswBgC;I6ErwBhC,Y7E9CkB;I6E+ClB,c7E3CW;;E6E6CX;IACI;;EAGJ;IACI,O7EyvB0B;I6ExvB1B,kB7EuvBuB;;E6EpvB3B;IACI,W7EuvBwB;;E6EpvB5B;IACI,O7EmvBwB;I6ElvBxB,Q7EkvBwB;;E8E92BhC;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAIJ;IACI,kB9EEM;I8EDN,e9EeU;;E8EbV;IACI;IACA;IACA;;EAEA;IACI;;EAIR;IACI;IACA;IACA;;EAEA;IACI;;EAMR;IACI;;ECnER;IACI;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;;EAIJ;IACI,Y5ElCW;I4EmCX,O5E/Be;I4EgCf,W/EwsBW;I+EvsBX,a/EssBa;I+ErsBb,W/EmsBW;I+ElsBX,Q/EmsBS;I+ElsBT,a/EksBS;;E+EhsBT;IACI,kB/E8HW;I+E7HX,O/E8HkB;;E+E3HtB;IACI,kB/E+IU;I+E9IV,O/E+IgB;;E+E5IpB;IACI,kB/E+HO;I+E9HP,O/E+Ha;;E+E5HjB;IACI,kB/EgJS;I+E/IT,O/EgJgB;;E+E7IpB;IACI,kB/EiKQ;I+EhKR,O/EiKe;;E+E7Jf;IACI,kB/EoGO;I+EnGP,O/EoGc;;E+EjGlB;IACI,kB/E1BF;I+E2BE,O/EiKa;;E+E7JrB;IACI;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;;EC3FR;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,ehF2CU;;EiFvDd;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAIJ;IACI,kBjFiBM;IiFhBN,OjFoBM;IiFnBN,ejF0xBe;IiFzxBf;;EAEA;IACI;IACA;IACA;;EAGJ;IACI,cjF0BO;;EiFvBX;IACI;IACA;IACA;IACA,cjFmBO;;EiFhBX;IACI,ajFeO;IiFdP,ejFOM;IiFNN,YjFSc;IiFRd;;EAEA;I3EhDP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EiFrBL;IACI;;EC3DZ;IACI;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAKA;IACI,SlFwEM;IkFvEN,elFmCM;IkFlCN,YlFoCe;IkFnCf;;EAEA;IACI,YlFeF;IkFdE,OlFmBF;;EkFhBF;I5EzBP,SNsEa;IMrEV,gBNsEgB;IMrEhB,YNuES;;EmF7Eb;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;;EAGJ;IACI;;EAIJ;IACI;;EAEA;IACI,YnFDE;ImFEF,enFYM;;EmFTV;IACI,QnFmnBW;ImFlnBX,YhFjDO;;EgFqDP;IACI,KnFSG;;EmFNP;IACI,YhF1DG;IgF2DH;IACA;IACA;;EAGJ;IACI;IACA;;EAGJ;IACI,KnFPG;;EmFUP;IACI;;EAIR;IACI;;EAEA;IACI;;EAGJ;IACI,wBnF9BE;ImF+BF,2BnF/BE;;EmFkCN;IACI,yBnFnCE;ImFoCF,4BnFpCE;;EmFwCV;IACI;;EAEA;IACI;IACA;;EAGJ;IACI,wBnFjDE;ImFkDF,yBnFlDE;;EmFqDN;IACI,2BnFtDE;ImFuDF,4BnFvDE;;EoFzDd;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;MACI;MACA;;IAEJ;MACI;MACA;;IAEJ;MACI;MACA;;;EAGR;IACI;MACI;MACA;;IAEJ;MACI;MACA;;IAEJ;MACI;MACA;;;EAIR;IACI;MACI;MACA;;IAEJ;MACI;MACA;;IAEJ;MACI;MACA;;;EAGR;IACI;MACI;MACA;;IAEJ;MACI;MACA;;IAEJ;MACI;MACA;;;EAKR;IACI,QpFqjBe;IoFpjBf,QpFmjBe;IoFljBf,YpFtEM;IoFuEN,epFzDU;;EoF2DV;IACI;IACA;IACA,YjFtHO;;EiFyHX;IACI,OjFtHW;IiFuHX,apFuiBW;;EqFnqBnB;IACI;IACA;IACA;IACA;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAIJ;IACI;;EAGJ;IACI;IACA;IACA,QrFilBmB;IqFhlBnB;IACA;;EAGJ;IACI;MACI;;;EAIR;IACI;MACI;MACA;;IAEJ;MACI;MACA;;IAEJ;MACI;MACA;;;EAIR;IACI;MAEI,QrFojBe;;IqFljBnB;MACI,QrFqiBc;;IqFniBlB;MACI,QrFsiBiB;;IqFpiBrB;MAEI,QrFsiBiB;;;EsF/mBzB;IACI;IACA;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;MACI;MACA;;;ECzBR;IACI;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;;EAIJ;IACI,OvF0xBY;IuFzxBZ,QvF0xBa;IuFzxBb,evF0xBmB;IuFzxBnB,YvFqGgB;IuFpGhB,YvFqBkB;;EuFnBlB;IACI,YvFixBK;;EuF/wBL;IACI,YvF+wBM;;EuF3wBd;IACI,WvF8wBW;IuF7wBX,OvFVE;;EuFYF;IACI,OvF0wBO;IuFzwBP,QvFywBO;;EwFh0BnB;IACI;;EAGJ;IACI;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGJ;IACI;;EAGJ;IACI;;EAGJ;IACI;MACI;;IAEJ;MACI;;;EAKR;IACI,kBxFQM;IwFPN,exFqBU;;EwFnBV;IACI;;ECrCR;IACI;IACA;IACA;;EAGJ;AAAA;AAAA;IAGI;;EAGJ;IACI;;EAIJ;IACI,YtFnBW;IsFoBX,OtFhBe;IsFiBf,WzFutBW;IyFttBX,azFqtBa;IyFptBb,SzFutBQ;IyFttBR,ezFgCU;;EyF9BV;IACI,kBzFoKU;IyFnKV,OzFoKgB;;EyFjKpB;IACI,kBzFoJO;IyFnJP,OzFoJa;;EyFjJjB;IACI,kBzFqKS;IyFpKT,OzFqKgB;;EyFlKpB;IACI,kBzFsLQ;IyFrLR,OzFsLe;;EyFlLf;IACI,kBzFyHO;IyFxHP,OzFyHc;;EyFtHlB;IACI,kBzFLF;IyFME,OzFsLa;;EyFlLrB;IACI,WzFirBO;;EyF/qBP;IACI;;EAGJ;IACI,OzF0qBG;IyFzqBH,QzFyqBG;;E0F7uBf;IACC;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAID;IACC,Y1FeS;I0FdT,O1FqBS;I0FpBT,Q1F8WmB;I0F7WnB,S1FiXoB;;E0F/WpB;IACC;IACA;IACA,W1F6DiB;;;A2F3FnB;EACI;IACI;;EAGJ;AAAA;IAEI;;EAKI;IACI;;EAQA;IACI;;EASJ;IACI;;EAOZ;IACI,kBxF1CG;;EwF+CP;IACI,kBxFhDG;;EwFqDP;IAtDJ;;EA0DI;IA1DJ;;EA8DI;IA9DJ;;EAkEI;IAlEJ;;EAsEI;IAtEJ;;EA0EI;IA1EJ;;EA8EI;IA9EJ;;EAsFY;IACI;;EAGJ;IACI;;EAOZ;IAlGJ;;EAuGA;IACI;;EAGJ;IACI;;EAGJ;AAAA;IAEI;;EAMQ;IACI,YxFvHL;IwFwHK,OxFpHD;;EwF6HH;IACI,YxFlIL;IwFmIK,OxF/HD;;;AAYjB;EACE;;AAGF;AACE;AACA;EAEA;;AAGF;EACE,YAxBe,SAwBgB;EAC/B;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE,YAvCe,SAuCgB;;AAGjC;EACE;;AAGF;EACE;EACA;EACA,OAjDe,SAiDW;;AAG5B;EACE,YArDe,SAqDgB;EAC/B;;AAGF;EACE,OA1De,SA0DW;EAC1B;EACA;EACA;EACA,YACQ;EAIR;EACA;EACA;;AAGF;EACE;EACA,OA1Ee,SA0EW;EAC1B;;AAGF;EACE;EACA,OAhFe,SAgFW;EAC1B;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EAGE,YAvHe,SAuHgB;EAC/B;EACA;EACA,YACQ;;AAMV;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;AAAA;AAAA;EAGE;EACA;EACA,OA9Ie,SA8IW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA,OA5Je,SA4JW;;AAG5B;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE,YA3Le,SA2LgB;EAC/B;EACA;;AAGF;EACE;EACA;;AAGF;EACE,YAtMe,SAsMgB;;AAGjC;EACE;EACA;;AAGF;EACE;EACA;EACA,YAjNe,SAiNgB;EAC/B;;AAGF;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACQ;;AAKV;EAKE;;AAGF;EAKE;EACA;EACA;;AAGF;EAKE;EACA;EACA;;AAGF;EACE;EACA;EACA,YA5Qe,SA4QgB;EAC/B;EACA;;AAGF;EACE,OAlRe,SAkRW;EAC1B;EACA;;AAGF;EAIE,OA3Re,SA2RW;;AAG5B;EAIE;EACA;;AAGF;EACE;EACA;;AAGF;EACE,YA5Se,SA4SgB;;AAGjC;EACE,OAhTe,SAgTW;EAC1B;EACA;EACA;EACA,YACQ;EAIR;;AAGF;EACE;EACA,OA9Te,SA8TW;EAC1B;;AAGF;EACE;EACA,OApUe,SAoUW;EAC1B;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA,OAhVe,SAgVW;EAC1B;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EAGE,YAlXe,SAkXgB;EAC/B;EACA;EACA,YACQ;;AAMV;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;AAAA;AAAA;EASE;EACA;EACA,OA/Ye,SA+YW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA,OA7Ze,SA6ZW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA","file":"theme.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../primevue-sass-theme/themes/lara/lara-light/_variables.scss","../../primevue-sass-theme/theme-base/_colors.scss","../../primevue-sass-theme/theme-base/components/input/_editor.scss","../../primevue-sass-theme/themes/lara/lara-light/green/theme.scss","../../primevue-sass-theme/theme-base/_components.scss","../../primevue-sass-theme/theme-base/_common.scss","../../primevue-sass-theme/theme-base/_mixins.scss","../../primevue-sass-theme/theme-base/components/input/_autocomplete.scss","../../primevue-sass-theme/theme-base/components/input/_calendar.scss","../../primevue-sass-theme/theme-base/components/input/_cascadeselect.scss","../../primevue-sass-theme/theme-base/components/input/_checkbox.scss","../../primevue-sass-theme/theme-base/components/input/_chips.scss","../../primevue-sass-theme/theme-base/components/input/_colorpicker.scss","../../primevue-sass-theme/theme-base/components/input/_dropdown.scss","../../primevue-sass-theme/theme-base/components/input/_floatlabel.scss","../../primevue-sass-theme/theme-base/components/input/_iconfield.scss","../../primevue-sass-theme/theme-base/components/input/_inputotp.scss","../../primevue-sass-theme/theme-base/components/input/_inputgroup.scss","../../primevue-sass-theme/theme-base/components/input/_inputicon.scss","../../primevue-sass-theme/theme-base/components/input/_inputnumber.scss","../../primevue-sass-theme/theme-base/components/input/_inputswitch.scss","../../primevue-sass-theme/theme-base/components/input/_inputtext.scss","../../primevue-sass-theme/theme-base/components/input/_knob.scss","../../primevue-sass-theme/theme-base/components/input/_listbox.scss","../../primevue-sass-theme/theme-base/components/input/_multiselect.scss","../../primevue-sass-theme/theme-base/components/input/_password.scss","../../primevue-sass-theme/theme-base/components/input/_radiobutton.scss","../../primevue-sass-theme/theme-base/components/input/_rating.scss","../../primevue-sass-theme/theme-base/components/input/_selectbutton.scss","../../primevue-sass-theme/theme-base/components/input/_slider.scss","../../primevue-sass-theme/theme-base/components/input/_textarea.scss","../../primevue-sass-theme/theme-base/components/input/_treeselect.scss","../../primevue-sass-theme/theme-base/components/input/_togglebutton.scss","../../primevue-sass-theme/theme-base/components/button/_button.scss","../../primevue-sass-theme/theme-base/components/button/_speeddial.scss","../../primevue-sass-theme/theme-base/components/button/_splitbutton.scss","../../primevue-sass-theme/theme-base/components/data/_carousel.scss","../../primevue-sass-theme/theme-base/components/data/_datatable.scss","../../primevue-sass-theme/theme-base/components/data/_dataview.scss","../../primevue-sass-theme/theme-base/components/data/_filter.scss","../../primevue-sass-theme/theme-base/components/data/_orderlist.scss","../../primevue-sass-theme/theme-base/components/data/_organizationchart.scss","../../primevue-sass-theme/theme-base/components/data/_paginator.scss","../../primevue-sass-theme/theme-base/components/data/_picklist.scss","../../primevue-sass-theme/theme-base/components/data/_timeline.scss","../../primevue-sass-theme/theme-base/components/data/_tree.scss","../../primevue-sass-theme/theme-base/components/data/_treetable.scss","../../primevue-sass-theme/theme-base/components/panel/_accordion.scss","../../primevue-sass-theme/theme-base/components/panel/_card.scss","../../primevue-sass-theme/theme-base/components/panel/_fieldset.scss","../../primevue-sass-theme/theme-base/components/panel/_divider.scss","../../primevue-sass-theme/theme-base/components/panel/_panel.scss","../../primevue-sass-theme/theme-base/components/panel/_scrollpanel.scss","../../primevue-sass-theme/theme-base/components/panel/_splitter.scss","../../primevue-sass-theme/theme-base/components/panel/_stepper.scss","../../primevue-sass-theme/theme-base/components/panel/_tabview.scss","../../primevue-sass-theme/theme-base/components/panel/_toolbar.scss","../../primevue-sass-theme/theme-base/components/overlay/_confirmpopup.scss","../../primevue-sass-theme/theme-base/components/overlay/_dialog.scss","../../primevue-sass-theme/theme-base/components/overlay/_overlaypanel.scss","../../primevue-sass-theme/theme-base/components/overlay/_sidebar.scss","../../primevue-sass-theme/theme-base/components/overlay/_tooltip.scss","../../primevue-sass-theme/theme-base/components/file/_fileupload.scss","../../primevue-sass-theme/theme-base/components/menu/_breadcrumb.scss","../../primevue-sass-theme/theme-base/components/menu/_contextmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_dock.scss","../../primevue-sass-theme/theme-base/components/menu/_megamenu.scss","../../primevue-sass-theme/theme-base/components/menu/_menu.scss","../../primevue-sass-theme/theme-base/components/menu/_menubar.scss","../../primevue-sass-theme/theme-base/components/menu/_panelmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_steps.scss","../../primevue-sass-theme/theme-base/components/menu/_tabmenu.scss","../../primevue-sass-theme/theme-base/components/menu/_tieredmenu.scss","../../primevue-sass-theme/theme-base/components/messages/_inlinemessage.scss","../../primevue-sass-theme/theme-base/components/messages/_message.scss","../../primevue-sass-theme/theme-base/components/messages/_toast.scss","../../primevue-sass-theme/theme-base/components/multimedia/_galleria.scss","../../primevue-sass-theme/theme-base/components/multimedia/_image.scss","../../primevue-sass-theme/theme-base/components/misc/_avatar.scss","../../primevue-sass-theme/theme-base/components/misc/_badge.scss","../../primevue-sass-theme/theme-base/components/misc/_blockui.scss","../../primevue-sass-theme/theme-base/components/misc/_chip.scss","../../primevue-sass-theme/theme-base/components/misc/_inplace.scss","../../primevue-sass-theme/theme-base/components/misc/_metergroup.scss","../../primevue-sass-theme/theme-base/components/misc/_progressbar.scss","../../primevue-sass-theme/theme-base/components/misc/_progressspinner.scss","../../primevue-sass-theme/theme-base/components/misc/_ripple.scss","../../primevue-sass-theme/theme-base/components/misc/_scrolltop.scss","../../primevue-sass-theme/theme-base/components/misc/_skeleton.scss","../../primevue-sass-theme/theme-base/components/misc/_tag.scss","../../primevue-sass-theme/theme-base/components/misc/_terminal.scss","../../primevue-sass-theme/themes/lara/lara-light/_extensions.scss"],"names":[],"mappings":"AA44BA;EACE,aACE;EAWF;EACA;EACA;AAAA;AAAA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC38BF;EAKU;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;EAPE;EAEA;EAAA;EAAA;EAAA;EAAA;EAKF;EAAA;EAAA;EAAA;;;ACXN;EACE,YFwCO;EEvCP,yBFiEW;EEhEX,wBFgEW;;AE9DX;EACE,QF8Yc;;AE5Yd;EACE,QFqCG;;AElCL;EACE,MFiCG;;AE7BH;EACE;EACA,OF2BC;;AEzBD;EACE,OFyBD;;AEvBC;EACE,QFsBH;;AEnBC;EACE,MFkBH;;AEZD;EACE,OFWD;;AETC;EACE,QFQH;;AELC;EACE,MFIH;;AEAD;EACE,YFRD;EESC,QF0GS;EEzGT,YF0GS;EEzGT,eFgBG;EEfH,SFkFO;;AEhFP;EACE,OFRH;;AEUG;EACE,OFXL;EEYK,YFjBL;;AEuBC;EACE,SFqES;;AE7DrB;EACE,4BFRW;EESX,2BFTW;;AEWX;EACE,QFiVe;;AE9UjB;EACE,YF3CK;EE4CL,OFrCK;EEsCL,4BFlBS;EEmBT,2BFnBS;;AEuBb;AAAA;EAEE,OF7CO;;AE+CP;AAAA;EACE,QFhDK;;AEmDP;AAAA;EACE,MFpDK;;AEwDT;AAAA;AAAA;EAGE,OCzGW;;AD2GX;AAAA;AAAA;EACE,QC5GS;;AD+GX;AAAA;AAAA;EACE,MChHS;;ADmHX;AAAA;AAAA;EACE,OCpHS;;;ACGf;ECJA;AAAA;IAEE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;IACA;IACA,YACE;;EAIJ;IACE;IACA;;EAGF;IACE;IACA;IACA;;AAGF;EACA;IACE;IACA;;EAGF;IACE;;EAGF;IACE,YACE;;EAIJ;IACE;;AAGF;EACA;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAIF;IACE;;EAGF;IACE;IACA;IACA,WLvES;IKwET,aLvEW;;EK0Eb;IACE,kBLxDO;IKyDP,qBLxEmB;;EK2ErB;AAAA;IAEE,SL/DgB;;EKkElB;IACE,OLhEW;;EKmEb;IACE,OL3GS;;EK8GX;IACE,WL9EkB;;EKiFpB;IACE,OLlFkB;IKmFlB,QLnFkB;;EKsFpB;IACE;IACA;IACA,WLzGS;IK0GT,eLtGa;IKuGb;;EAEA;ICtKA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EKiFd;IACE;;EAGF;IACE;;EAIA;IACE;MACE;;IAEF;MACE;;;EAIJ;IACE;MACE;;IAEF;MACE;;;EEtMN;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE;;EAIA;IACE;;EAKF;IACE,cJ/GS;;EIoHX;IDnGF,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EIyHb;IACE;IACA,KP3CY;IO4CZ;;EAEA;IACE;;EAEA;IACE;IACA;IACA,WPtBY;IOuBZ,OPvFG;IOwFH;IACA;;EAIJ;IACE;IACA,YPnGK;IOoGL,OPhGK;IOiGL,ePgsBa;;EO9rBb;IACE,aPlEQ;;EOqEV;IACE,YP5GG;IO6GH,OPzGG;;EO8GT;ID9HA,cNsDW;;EO6Eb;IACE,YP3HS;IO4HT,OPrHS;IOsHT,QPVmB;IOWnB,ePnGa;IOoGb,YPXmB;;EOanB;IACE,SPpCe;;EOsCf;IACE,QP7BgB;IO8BhB,SPvCiB;IOwCjB,QPjCgB;IOkChB,OPjIK;IOkIL,YPzCY;IO0CZ,YPpGe;IOqGf,ePpCsB;;EOsCtB;IACE;;EAGF;IACE;;EAGF;IACE,OJtLa;IIuLb,YJpLM;;EIsLN;IACE,YJjLS;;EIsLX;IACE,OPzJC;IO0JD,YP/JC;;EOoKP;IACE,QP8gBgB;IO7gBhB,SP8gBiB;IO7gBjB,OPjKK;IOkKL,YP1KK;IO2KL,aP+gBoB;;EQluB1B;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;AAGF;EACA;IACE;;EAGF;IACE;;AAGF;EACA;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;;EAGF;IACE;;AAGF;EACA;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;AAGF;EACA;AAAA;IAEE;;EAKA;IFzHA,cNsDW;;EQuEX;IF1IA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EKgKf;IACE,SR+LgB;IQ9LhB,YR3HS;IQ4HT,ORrHS;IQsHT,QRjDY;IQkDZ,eRnGa;;EQqGb;IACE,YRjIO;IQkIP,QRfiB;IQgBjB,YRfiB;;EQiBjB;IACE,YRtIK;;EQ0IT;IACE,SRqLoB;IQpLpB,ORrIO;IQsIP,YR7IO;IQ8IP,aRuLuB;IQtLvB,QRpCoB;IQqCpB,eRmLmB;IQlLnB,yBRtHW;IQuHX,wBRvHW;;EQyHX;AAAA;IF+CF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;AAAA;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;AAAA;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EQiGV;IACE,aR9Fa;;EQgGb;AAAA;IAEE,ORvJG;IQwJH,YR5HN;IQ6HM,aRqKmB;IQpKnB,SRqKoB;;EQnKpB;AAAA;IACE,OL3MK;;EK+MT;IACE,cRhIQ;;EQqId;IACE,WRxJO;IQyJP,QRwIkB;;EQtIlB;IACE,SRmJsB;;EQjJtB;IACE,ORoJgB;IQnJhB,QRoJiB;;EQhJrB;IACE,SR6IoB;;EQ3IpB;IACE,OR2IgB;IQ1IhB,QR2IiB;IQ1IjB,eR2IuB;IQ1IvB,YR5Ja;IQ6Jb,QR0IiB;IQzIjB;;EAEA;IACE,OLvOW;IKwOX,YLrOI;;EKwON;IF7ON,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EQyJN;IACE,YR9MC;IQ+MD,OR5MC;IQ6MD,cR4HyB;;EQ1HzB;IACE,OLvPS;IKwPT,YLrPE;;EK4PZ;IACE,SRmHuB;IQlHvB,YRzLM;;EQ2LN;IACE;;EAIJ;IACE,YRjMM;IQkMN,SR0GwB;;EQxGxB;IFzCF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EQuLR;IACE;;EAIJ;IACE,WRiG2B;;EQ9F7B;IACE,SR4F6B;;EQvF/B;IACE;;EAIJ;IACE,QRoDkB;;EQlDlB;IACE,SRkEoB;IQjEpB,YRlOe;IQmOf,eR9OS;;EQgPT;IACE,OL5Sa;IK6Sb,YL1SM;;EK+SZ;IACE,QRqCkB;;EQnClB;IACE,SRmDoB;IQlDpB,YRjPe;IQkPf,eR7PS;;EQ+PT;IACE,OL3Ta;IK4Tb,YLzTM;;EK+TV;IACE,aR3PI;IQ4PJ,eRqBY;IQpBZ,cRoBY;IQnBZ;IACA;;EAEA;IACE;IACA;;EAGF;IACE;;EAOF;AAAA;IAEE,SRiCoB;;EQzBpB;IACE;;EAEA;IACE,YRlUD;;EQqUD;IFzWR,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EQwRN;IACE;;EAEA;IACE,YRlVD;;EQqVD;IFzXR,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EQwSN;IACE;;EAEA;IACE,YRlWD;;EQqWD;IFzYR,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EShGd;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAIF;IACE,YTpDS;ISqDT,QTuBY;IStBZ,YTxBA;ISyBA,eT5Ba;IS6Bb;;EAEA;IACE,cNlGW;;EMqGb;IHpFA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EMyGb;IACE,kBTjEO;;ESmEP;IACE,kBTpEK;;ESuEP;IACE,kBT1EK;;ES8ET;IACE;IACA;IACA,STXW;;ESaX;IACE,OT9EK;;ESiFP;IACE;IACA;;EAIJ;IACE;IACA,OTzFO;IS0FP,OTRsB;ISStB,yBTtEW;ISuEX,4BTvEW;;ES0Eb;IH9GA,cNsDW;;ES6Db;IACE,YT3GS;IS4GT,OTrGS;ISsGT,QTMmB;ISLnB,eTnFa;ISoFb,YTKmB;;ESHnB;IACE,STpBe;;ESsBf;IACE,QTbgB;ISchB,QThBgB;ISiBhB,OThHK;ISiHL,YTxBY;ISyBZ,YTnFe;ISoFf,eTnBsB;;ESqBtB;IACE;;EAGF;IACE;;EAGF;IACE,ONrKa;IMsKb,YNnKM;;EMqKN;IACE,YNhKS;;EMqKX;IACE,OTxIC;ISyID,YT9IC;;ESkJL;IACE,STtDe;;ESyDjB;IACE,WT2hBsB;;EU5tB9B;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAIF;IACE,OViQc;IUhQd,QViQe;;EU/Pf;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QVoPa;IUnPb,eVgCW;;EU7Bb;IACE,QV+Oa;IU9Ob;IACA,OV2OY;IU1OZ,QV2Oa;IU1Ob,OVIO;IUHP,eVuBW;IUtBX,YVyBF;IUxBE;;EAEA;IACE,qBVmBe;IUlBf,OPzCa;IO0Cb,WVoOiB;;EUlOjB;IACE,OViOe;IUhOf,QVgOe;;EU1NnB;IACE,cP7DS;IO8DT,YP9DS;;EOoET;IACE,cPrEO;;EOyEP;IACE,cPnEW;IOoEX,YPpEW;IOqEX,OPpES;;EO0Eb;IJjEJ,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EOwFb;IJ1DA,cNsDW;;EUST;IACE,kBVrDK;;EUyDL;IACE,YPnGO;;EOyGP;IACE,kBVjEC;;EUqED;IACE,YPxGS;;EOkHjB;IACE,kBVjFK;;EUqFL;IACE,YP/HO;;EOqIP;IACE,kBV7FC;;EUiGD;IACE,YPpIS;;EQNrB;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAME;IACE,cRnDS;;EQwDX;ILvCF,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EQ6Db;IACE;IACA;;EAEA;IACE;IACA,cXaU;IWZV,YX1BK;IW2BL,OXvBK;IWwBL,eXywBa;;EWvwBb;IACE,YX/BG;IWgCH,OX5BG;;EW+BL;IACE,aXEQ;;EWEZ;IACE;;EAEA;IACE;IACA;IACA,WXsBY;IWrBZ,OX3CG;IW4CH;IACA;;EAKN;ILlEA,cNsDW;;EYrFb;IACE;;EAIF;IACE;;EAaF;IACE,OZwRwB;IYvRxB,QZwRyB;;EYrR3B;IACE,YZqRc;IYpRd,QZqRkB;;EYnRlB;AAAA;IAEE,cZUO;;EYNX;IACE,YZyHmB;;Ea5JrB;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,YbzDS;Ia0DT,QbkBY;IajBZ,Yb7BA;Ia8BA,ebjCa;IakCb;;EAEA;IACE,cVvGW;;EU0Gb;IPzFA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EU8Gb;IACE,YbtEO;;EawEP;IACE,kBbzEK;;Ea4EP;IACE,kBb/EK;;EaiFL;IACE;;EAMJ;IACE;;EAIJ;IACE;IACA;;EAEA;IACE,Ob5FK;;Ea+FP;IAEE;IACA;;EAIJ;IACE;IACA,ObxGO;IayGP,ObvBsB;IawBtB,yBbrFW;IasFX,4BbtFW;;EayFb;IACE,Ob/GO;IagHP,Ob9BsB;;EaiCxB;IPlIA,cNsDW;;EaiFb;IACE,Yb/HS;IagIT,ObzHS;Ia0HT,QbdmB;IaenB,ebvGa;IawGb,YbfmB;;EaiBnB;IACE,Sb5BqB;Ia6BrB,ebzBoB;Ia0BpB,ObhIO;IaiIP,YbxIO;IayIP,Qb/BoB;IagCpB,yBbhHW;IaiHX,wBbjHW;;EamHX;IACE;IACA;;EAGF;IACE;IACA,Ob/IK;;EamJT;IACE,Sb5De;;Ea8Df;IACE,QbrDgB;IasDhB,Sb/DiB;IagEjB,QbzDgB;Ia0DhB,ObzJK;Ia0JL,YbjEY;IakEZ,Yb5He;Ia6Hf,eb5DsB;;Ea8DtB;IACE;;EAGF;IACE;;EAGF;IACE,OV9Ma;IU+Mb,YV5MM;;EU8MN;IACE,YVzMS;;EU8MX;IACE,ObjLC;IakLD,YbvLC;;Ea2LL;IACE;IACA;IACA,cbvJQ;;Ea2JZ;IACE,QbgfgB;Ia/ehB,SbgfiB;Ia/ejB,Ob/LK;IagML,YbxMK;IayML,abifoB;;Ea9etB;IACE,Sb9GiB;Ia+GjB,ObvMK;IawML,Yb/GY;;EcxIlB;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAOE;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;;EC3CF;IACE;;EAGF;IACE;IACA;IACA;;ECRF;IACE;IACA;IACA,KhB+Ec;;EgB5EhB;IACE;IACA;;ECPF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;AAAA;AAAA;IAIE;IACA;;EAIF;IACE,YjBcS;IiBbT,OjBiBS;IiBhBT,YjBsFY;IiBrFZ,ajBqFY;IiBpFZ,ejBoFY;IiBnFZ,SjB6Ea;IiB5Eb,WjB8FwB;;EiB5FxB;IACE,cjB+EU;;EiB1EZ;AAAA;AAAA;IAGE;IACA;;EAEA;AAAA;AAAA;IACE;;EAGF;AAAA;AAAA;IACE;;EAEA;AAAA;AAAA;IACE;;EAMR;AAAA;AAAA;AAAA;AAAA;IAKE;IACA,2BjBDa;;EiBIf;IACE,wBjBLa;IiBMb,2BjBNa;;EiBSf;AAAA;AAAA;AAAA;AAAA;IAKE,yBjBda;IiBeb,4BjBfa;;EiBkBf;IACE,yBjBnBa;IiBoBb,4BjBpBa;;EiByBX;IACE;;EAEA;IACE,OjBsEc;;EkBtKtB;AAAA;IAEE;;EAGF;IACE;IACA,OlBuCS;;EkBpCX;IACE;IACA,OlBkCS;;EmB9CX;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAIE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IAGE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAKA;Ib5EA,cNsDW;;EmB0BX;IACE,kBnBtEO;;EmBwEP;IACE,kBnBzEK;;EmB4EP;IACE,kBnB/EK;;EoBtCX;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAIF;IACE,OpBwWiB;IoBvWjB,QpBwWkB;;EoBtWlB;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,epB2VsB;;EoBxVxB;IACE,YpBHO;IoBIP,YpBsBF;IoBrBE,epBqVsB;IoBpVtB;;EAEA;IACE,YpBbK;IoBcL,OpBiVmB;IoBhVnB,QpBiVoB;IoBhVpB,MpBkVqB;IoBjVrB;IACA,epB+U0B;IoB9U1B,qBpBSe;;EoBJjB;IACE,YjBhES;;EiBkET;IACE,YpB5BG;IoB6BH;;EAOF;IACE,YpBgUsB;;EoB5TtB;IACE,YjB3ES;;EiBiFb;IdlFJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EoBFZ;Id/DA,cNsDW;;EqBrFb;IACE;;EAIF;IACE;IACA;IACA,WrBuGkB;IqBtGlB,OrBsCS;IqBrCT,YrB8BS;IqB7BT,SrBmGa;IqBlGb,QrBwGY;IqBvGZ,YrByDA;IqBxDA;IACA,erBoDa;IqBnDb;;EAEA;IACE,clBlBW;;EkBqBb;IfJA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EkByBb;IfKA,cNsDW;;EqBvDX;IACE,kBrBWO;;EqBTP;IACE,kBrBQK;;EqBLP;IACE,kBrBEK;;EqBET;If8KA;IAJA;;EerKA;IfyKA;IAJA;;Ee/JF;IACE;IACA,OrBTS;IqBUT,qBrBYmB;;EqBTrB;IACE,OrByBW;;EqBtBb;IACE;;EAGF;IACE;;EAGF;IACE;;Ef6HA;IezHA,OrB9BS;;EM0JT;Ie5HA,OrB9BS;;EM6JT;Ie/HA,OrB9BS;;EMgKT;IelIA,OrB9BS;;EqBkCT;IACE,kBrBvCO;;EqByCP;IACE,kBrB1CK;;EqB6CP;IACE,kBrBhDK;;EqBsDT;If0HA;IAJA;;Ee/GA;IfmHA;IAJA;;EgBpNF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;;EAGF;IACE;MACE;;;EChBJ;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAIF;IACE,YvBIS;IuBHT,OvBUS;IuBTT,QvB8EY;IuB7EZ,evB4Ba;IuB3Bb,YvB8BA;IuB7BA;;EAEA;IACE,SvBsGqB;IuBrGrB,evByGoB;IuBxGpB,OvBEO;IuBDP,YvBNO;IuBOP,QvBmGoB;IuBlGpB,yBvBkBW;IuBjBX,wBvBiBW;;EuBfX;IACE;;EAGF;IACE;IACA,OvBZK;;EuBgBT;IACE,SvBuEe;IuBtEf;;EAEA;IACE,QvB6EgB;IuB5EhB,SvBmEiB;IuBlEjB,QvByEgB;IuBxEhB,OvBvBK;IuBwBL,YvBOe;IuBNf,evBuEsB;;EuBrEtB;IACE;;EAGF;IACE;;EAGF;IACE,OpB3Ea;IoB4Eb,YpBzEM;;EoB6EV;IACE,QvBooBgB;IuBnoBhB,SvBooBiB;IuBnoBjB,OvB3CK;IuB4CL,YvBpDK;IuBqDL,avBqoBoB;;EuBloBtB;IACE,SvBsCiB;IuBrCjB,OvBnDK;IuBoDL,YvBqCY;;EuB9BV;IACE,YpB1FS;;EoB+FX;IACE,OvBlEC;IuBmED,YvBxEC;;EuB2EH;IACE,OvBvEC;IuBwED,YvB7EC;;EuB+ED;IACE,OvB3ED;IuB4EC,YvBjFD;;EuBwFT;IjBhHA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EoBqIb;IjBvGA,cNsDW;;EwBnFb;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAIF;IACE,YxBtES;IwBuET,QxBKY;IwBJZ,YxB1CA;IwB2CA,exB9Ca;IwB+Cb;;EAEA;IACE,crBpHW;;EqBuHb;IlBtGA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EqB2Hb;IACE,YxBnFO;;EwBqFP;IACE,kBxBtFK;;EwByFP;IACE,kBxB5FK;;EwBgGT;IACE,SxB3BW;IwB4BX,YxBpEF;;EwBsEE;IACE,OxB/FK;;EwBoGP;IACE;IACA,cxBnEU;IwBoEV,YxB1GK;IwB2GL,OxBvGK;IwBwGL,exByrBa;;EwBvrBb;IACE,axBzEQ;;EwB8Ed;IACE;IACA,OxBnHO;IwBoHP,OxBlCsB;IwBmCtB,yBxBhGW;IwBiGX,4BxBjGW;;EwBoGb;IlBxIA,cNsDW;;EwB0FP;IACE;;EAMR;IACE,YxB/IS;IwBgJT,OxBzIS;IwB0IT,QxB9BmB;IwB+BnB,exBvHa;IwBwHb,YxB/BmB;;EwBiCnB;IACE,SxB5CqB;IwB6CrB,exBzCoB;IwB0CpB,OxBhJO;IwBiJP,YxBxJO;IwByJP,QxB/CoB;IwBgDpB,yBxBhIW;IwBiIX,wBxBjIW;;EwBoIT;IACE;;EAGF;IACE;IACA,OxB/JG;;EwBmKP;IACE,cxBjIU;;EwBoIZ;IACE,axBrIU;IM0Jd,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EwB2HZ;IACE,SxBtFe;;EwBwFf;IACE,QxB/EgB;IwBgFhB,SxBzFiB;IwB0FjB,QxBnFgB;IwBoFhB,OxBnLK;IwBoLL,YxB3FY;IwB4FZ,YxBtJe;IwBuJf,exBtFsB;;EwBwFtB;IACE;;EAGF;IACE;;EAGF;IACE,OrBxOa;IqByOb,YrBtOM;;EqBwON;IACE,YrBnOS;;EqBwOX;IACE,OxB3MC;IwB4MD,YxBjNC;;EwBqNL;IACE,cxB/KQ;;EwBmLZ;IACE,QxBwdgB;IwBvdhB,SxBwdiB;IwBvdjB,OxBvNK;IwBwNL,YxBhOK;IwBiOL,axBydoB;;EwBtdtB;IACE,SxBtIiB;IwBuIjB,OxB/NK;IwBgOL,YxBvIY;;EyBxIlB;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAKA;InBEA,cNsDW;;EyBnDb;IACE,SzBiYoB;IyBhYpB,YzBIS;IyBHT,OzBUS;IyBTT,QzBmnBqB;IyBlnBrB,YzBqHmB;IyBpHnB,ezB2Ba;;EyBzBb;IACE,ezBsCY;IyBrCZ,YzBDO;;EyBIL;IACE,YzBgHS;;EyB7GX;IACE,YzB6GW;;EyB1Gb;IACE,YzB0GW;;E0BlKnB;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAIF;IACE,O1BgQiB;I0B/PjB,Q1BgQkB;;E0B9PlB;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,Q1BmPgB;I0BlPhB;;EAGF;IACE,Q1B8OgB;I0B7OhB,Y1BbO;I0BcP,O1B0Oe;I0BzOf,Q1B0OgB;I0BzOhB,O1BTO;I0BUP;IACA,Y1BYF;I0BXE;;EAEA;IACE,O1BqOgB;I0BpOhB,Q1BoOgB;I0BnOhB,qB1BIe;I0BHf,kBvBxDa;;EuB6Df;IACE,cvBtES;IuBuET,YvBvES;;EuB6ET;IACE,cvB9EO;;EuBkFP;IACE,cvB5EW;IuB6EX,YvB7EW;;EuB+EX;IACE,kBvB/EO;;EuBsFb;IpB7EJ,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EuBoGb;IpBtEA,cNsDW;;E0BqBT;IACE,kB1BjEK;;E0BqEL;IACE,YvB/GO;;EuBqHP;IACE,kB1B7EC;;E0BiFD;IACE,YvBpHS;;EuB8HjB;IACE,kB1B7FK;;E0BiGL;IACE,YvB3IO;;EuBiJP;IACE,kB1BzGC;;E0B6GD;IACE,YvBhJS;;EwBNrB;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAIF;IACE,K3B6Dc;;E2B3Dd;IACE;IACA;;EAEA;IACE,O3BoBK;I2BnBL,Y3B0CJ;I2BzCI,W3B6Se;;E2B3Sf;IACE,O3B0Sa;I2BzSb,Q3BySa;;E2BtSf;IACE,O3BsSgB;;E2BlSpB;IrBnCF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E2BlDR;IACE,OxB9CO;;EwBsDP;IACE,OxBvDK;;EwByDL;IACE,O3BiRiB;;E4B5U3B;IACE,Y5BuCO;I4BtCP,Q5BkTiB;I4BjTjB,O5B4CO;I4B3CP,Y5BkEF;;E4BhEE;AAAA;IAEE,O5BsCK;;E4BnCP;IACE,Y5B8BK;I4B7BL,c5B+BK;I4B9BL,O5BiCK;;E4B/BL;AAAA;IAEE,O5B8BG;;E4B1BP;IACE,YzBtBS;IyBuBT,czBvBS;IyBwBT,OzBhBa;;EyBkBb;AAAA;IAEE,OzBpBW;;EyBuBb;IACE,YzB1BW;IyB2BX,czB3BW;IyB4BX,OzB1BW;;EyB4BX;AAAA;IAEE,OzB9BS;;EyBoCjB;ItBdA,cNsDW;;E6BnFb;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAIF;IACE,Y7BCS;I6BAT,Q7BwSa;I6BvSb,e7BuBa;;E6BrBb;IACE,Q7BqSqB;;E6BnSrB;IACE;IACA;;EAIJ;IACE,O7B6RkB;;E6B3RlB;IACE;IACA;;EAIJ;IACE,Q7BsRiB;I6BrRjB,O7BoRgB;I6BnRhB,Y7B3BO;I6B4BP,Q7BqRiB;I6BpRjB,e7BqRuB;I6BpRvB;IACA;;EAEA;IvBnEF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E6BlBZ;IACE,Y1B9EW;I0B+EX,e7BbW;;E6BiBX;IACE,Y1BpFS;I0BqFT,c1BrFS;;E2BDf;IACE;IACA;;EAGF;IACE;;ECJF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,Y/BfS;I+BgBT,Q/B4DY;I+B3DZ,Y/BaA;I+BZA,e/BSa;I+BRb;;EAEA;IACE,c5B7DW;;E4BgEb;IzB/CA,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;E4BoEb;IACE,Y/B5BO;;E+B8BP;IACE,kB/B/BK;;E+BkCP;IACE,kB/BrCK;;E+ByCT;IACE,S/B4BW;I+B3BX,Y/BbF;;E+BeE;IACE,O/BxCK;;E+B6CP;IACE;IACA,c/BZU;I+BaV,Y/BnDK;I+BoDL,O/BhDK;I+BiDL,e/BgvBa;;E+B5uBjB;IACE;IACA,O/BxDO;I+ByDP,O/ByBsB;I+BxBtB,yB/BrCW;I+BsCX,4B/BtCW;;E+ByCb;IzB7EA,cNsDW;;E+B+BP;IACE;;EAMR;IACE,Y/BpFS;I+BqFT,O/B9ES;I+B+ET,Q/B6BmB;I+B5BnB,e/B5Da;I+B6Db,Y/B4BmB;;E+BzBjB;IACE;;EAGF;IACE,S/BDiB;I+BEjB,O/B1FK;I+B2FL,Y/BFY;;E+BQhB;IACE,Y/BvGO;;E+ByGP;IACE,kB/B1GK;;E+B6GP;IACE,kB/BhHK;;EgCxCX;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QhCuRiB;IgCtRjB,ehCqCW;;EgClCb;IACE,YhCMO;IgCLP,QhCiRiB;IgChRjB,OhCWO;IgCVP,YhCiCF;IgChCE;;EAEA;AAAA;IAEE,OhCIK;;EgCCP;IACE,Y7B/CS;I6BgDT,c7BhDS;I6BiDT,O7BzCa;;E6B2Cb;AAAA;IAEE,O7B7CW;;E6BqDX;IACE,YhCrBC;IgCsBD,chCpBC;IgCqBD,OhClBC;;EgCoBD;AAAA;IAEE,OhCrBD;;EgC2BH;IACE,Y7BrES;I6BsET,c7BtES;I6BuET,O7BrES;;E6BuET;AAAA;IAEE,O7BzEO;;E6BgFb;I1BvEJ,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;E6B8Fb;I1BhEA,cNsDW;;EiCrFb;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAIF;IACE,O9B9DiB;I8B+DjB,Y9BvEa;I8BwEb,QjCiGa;IiChGb,SjC2Fc;IiC1Fd,WjCZS;IiCaT,YjCNA;IiCOA,ejCVa;IiCWb;;EAEA;IACE,Y9B1Ee;I8B2Ef,O9BzEe;I8B0Ef,c9B5Ee;;E8B+EjB;IACE,Y9B/EiB;I8BgFjB,O9B/Ee;I8BgFf,c9BjFiB;;E8BoFnB;IACE;IACA,O9B7FW;I8B8FX,QjC0FmB;;EiCxFnB;IACE;IACA,O9BlGS;I8BmGT,QjCqFiB;;EiClFnB;IACE;IACA,O9BxGS;I8ByGT,QjC+EiB;;EiC5EnB;IACE,OjChEK;IiCiEL,cjCjEK;;EiCmEL;IACE,YjCxEG;IiCyEH,OjCrEG;;EiCwEL;IACE,YjC5EG;IiC6EH,OjC1EG;;EiC+ET;IACE;IACA,O9B9HW;I8B+HX;;EAEA;IACE;IACA,O9BnIS;I8BoIT;;EAGF;IACE;IACA,O9BzIS;I8B0IT;;EAGF;IACE,OjCjGK;;EiCmGL;IACE,YjCxGG;IiCyGH,OjCrGG;;EiCwGL;IACE,YjC5GG;IiC6GH,OjC1GG;;EiC+GT;I3BvJA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EiCiEZ;IACE,qBjC9FiB;;EiCiGnB;IACE,cjCrFY;;EiCwFd;IACE,ajCzFY;;EiC4Fd;IACE,YjC7FY;;EiCgGd;IACE,ejCjGY;;EiCoGd;IACE,ajCrGY;IiCsGZ,WjCxHO;IiCyHP,QjCzHO;IiC0HP,ajC1HO;IiC2HP,O9BzLW;I8B0LX,kB9BlLe;;E8BqLjB;IACE,YjCbF;;EiCgBA;IACE,ejCdwB;;EiCiB1B;IACE,OjCjCkB;IiCkClB,SjCjCoB;;EiCmCpB;AAAA;IAEE;;EAGF;IACE;IACA,QjC3CgB;;EiC+CpB;I3BGA;IAJA;;E2BKE;I3BDF;;E2BMA;I3BNA;IAJA;;E2BcE;I3BVF;;E2BgBE;IACE,ajCxJU;;EiC2JZ;IACE;;EAMJ;IACE;;EAGF;IACE,OjClFkB;;EiCqFpB;IACE;;EAEA;IACE;;EAKN;AAAA;AAAA;IAGE,OjCxEyB;IiCyEzB,YjC1EkB;IiC2ElB,QjCzEsB;;EiC2EtB;AAAA;AAAA;IACE,YjC3EqB;IiC4ErB,OjC9EuB;IiC+EvB,cjC3E8B;;EiC8EhC;AAAA;AAAA;IACE,YjC3EyB;;EiC8E3B;AAAA;AAAA;IACE,YjClFsB;IiCmFtB,OjCxFuB;IiCyFvB,cjClF+B;;EiCqFjC;AAAA;AAAA;IACE;IACA,OjC/FgB;IiCgGhB,QjCrGmB;;EiCuGnB;AAAA;AAAA;IACE;IACA,OjCpGc;IiCqGd,QjC1GiB;;EiC6GnB;AAAA;AAAA;IACE;IACA,OjC1Gc;IiC2Gd,QjChHiB;;EiCoHrB;AAAA;AAAA;IACE;IACA,OjCjHgB;IiCkHhB;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCvHc;;EiC0HhB;AAAA;AAAA;IACE;IACA;IACA,OjC7Hc;;EiCkIpB;AAAA;AAAA;IAGE,OjCzHoB;IiC0HpB,YjC3Ha;IiC4Hb,QjC1HiB;;EiC4HjB;AAAA;AAAA;IACE,YjC5HgB;IiC6HhB,OjC/HkB;IiCgIlB,cjC5HyB;;EiC+H3B;AAAA;AAAA;IACE,YjC5HoB;;EiC+HtB;AAAA;AAAA;IACE,YjCnIiB;IiCoIjB,OjCzIkB;IiC0IlB,cjCnI0B;;EiCsI5B;AAAA;AAAA;IACE;IACA,OjChJW;IiCiJX,QjCjKmB;;EiCmKnB;AAAA;AAAA;IACE;IACA,OjCrJS;IiCsJT,QjCtKiB;;EiCyKnB;AAAA;AAAA;IACE;IACA,OjC3JS;IiC4JT,QjC5KiB;;EiCgLrB;AAAA;AAAA;IACE;IACA,OjClKW;IiCmKX;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCxKS;;EiC2KX;AAAA;AAAA;IACE;IACA;IACA,OjC9KS;;EiCmLf;AAAA;AAAA;IAGE,OjC1KuB;IiC2KvB,YjC5KgB;IiC6KhB,QjC3KoB;;EiC6KpB;AAAA;AAAA;IACE,YjC7KmB;IiC8KnB,OjChLqB;IiCiLrB,cjC7K4B;;EiCgL9B;AAAA;AAAA;IACE,YjC1KuB;;EiC6KzB;AAAA;AAAA;IACE,YjCpLoB;IiCqLpB,OjC1LqB;IiC2LrB,cjCpL6B;;EiCuL/B;AAAA;AAAA;IACE;IACA,OjCjMc;IiCkMd,QjC7NmB;;EiC+NnB;AAAA;AAAA;IACE;IACA,OjCtMY;IiCuMZ,QjClOiB;;EiCqOnB;AAAA;AAAA;IACE;IACA,OjC5MY;IiC6MZ,QjCxOiB;;EiC4OrB;AAAA;AAAA;IACE;IACA,OjCnNc;IiCoNd;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCzNY;;EiC4Nd;AAAA;AAAA;IACE;IACA;IACA,OjC/NY;;EiCoOlB;AAAA;AAAA;IAGE,OjCxNuB;IiCyNvB,YjC1NgB;IiC2NhB,QjCzNoB;;EiC2NpB;AAAA;AAAA;IACE,YjC3NmB;IiC4NnB,OjC9NqB;IiC+NrB,cjC3N4B;;EiC8N9B;AAAA;AAAA;IACE,YjC3NuB;;EiC8NzB;AAAA;AAAA;IACE,YjClOoB;IiCmOpB,OjCxOqB;IiCyOrB,cjClO6B;;EiCqO/B;AAAA;AAAA;IACE;IACA,OjC/Oc;IiCgPd,QjCzRmB;;EiC2RnB;AAAA;AAAA;IACE;IACA,OjCpPY;IiCqPZ,QjC9RiB;;EiCiSnB;AAAA;AAAA;IACE;IACA,OjC1PY;IiC2PZ,QjCpSiB;;EiCwSrB;AAAA;AAAA;IACE;IACA,OjCjQc;IiCkQd;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCvQY;;EiC0Qd;AAAA;AAAA;IACE;IACA;IACA,OjC7QY;;EiCkRlB;AAAA;AAAA;IAGE,OjCzQoB;IiC0QpB,YjC3Qa;IiC4Qb,QjC1QiB;;EiC4QjB;AAAA;AAAA;IACE,YjC5QgB;IiC6QhB,OjC/QkB;IiCgRlB,cjC5QyB;;EiC+Q3B;AAAA;AAAA;IACE,YjC5QoB;;EiC+QtB;AAAA;AAAA;IACE,YjCnRiB;IiCoRjB,OjCzRkB;IiC0RlB,cjCnR0B;;EiCsR5B;AAAA;AAAA;IACE;IACA,OjChSW;IiCiSX,QjCrVmB;;EiCuVnB;AAAA;AAAA;IACE;IACA,OjCrSS;IiCsST,QjC1ViB;;EiC6VnB;AAAA;AAAA;IACE;IACA,OjC3SS;IiC4ST,QjChWiB;;EiCoWrB;AAAA;AAAA;IACE;IACA,OjClTW;IiCmTX;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCxTS;;EiC2TX;AAAA;AAAA;IACE;IACA;IACA,OjC9TS;;EiCmUf;AAAA;AAAA;IAGE,OjC1TsB;IiC2TtB,YjC5Te;IiC6Tf,QjC3TmB;;EiC6TnB;AAAA;AAAA;IACE,YjC7TkB;IiC8TlB,OjChUoB;IiCiUpB,cjC7T2B;;EiCgU7B;AAAA;AAAA;IACE,YjC7TsB;;EiCgUxB;AAAA;AAAA;IACE,YjCpUmB;IiCqUnB,OjC1UoB;IiC2UpB,cjCpU4B;;EiCuU9B;AAAA;AAAA;IACE;IACA,OjCjVa;IiCkVb,QjCjZmB;;EiCmZnB;AAAA;AAAA;IACE;IACA,OjCtVW;IiCuVX,QjCtZiB;;EiCyZnB;AAAA;AAAA;IACE;IACA,OjC5VW;IiC6VX,QjC5ZiB;;EiCgarB;AAAA;AAAA;IACE;IACA,OjCnWa;IiCoWb;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjCzWW;;EiC4Wb;AAAA;AAAA;IACE;IACA;IACA,OjC/WW;;EiCqXf;AAAA;AAAA;IAGE,OjC5WsB;IiC6WtB,YjChkBO;IiCikBP,QjC7WmB;;EiC+WnB;AAAA;AAAA;IACE,YjCrkBK;IiCskBL,OjClXoB;IiCmXpB,cjCvkBK;;EiC0kBP;AAAA;AAAA;IACE,YjC/WsB;;EiCkXxB;AAAA;AAAA;IACE,YjChlBK;IiCilBL,OjC5XoB;IiC6XpB,cjCllBK;;EiCqlBP;AAAA;AAAA;IACE;IACA,OjCrlBK;IiCslBL,QjC9ciB;;EiCgdjB;AAAA;AAAA;IACE;IACA,OjC1lBG;IiC2lBH,QjCnde;;EiCsdjB;AAAA;AAAA;IACE;IACA,OjChmBG;IiCimBH,QjCzde;;EiC6dnB;AAAA;AAAA;IACE;IACA,OjCvmBK;IiCwmBL;;EAEA;AAAA;AAAA;IACE;IACA;IACA,OjC7mBG;;EiCgnBL;AAAA;AAAA;IACE;IACA;IACA,OjCnnBG;;EiCynBX;IACE,O9BnqBmB;I8BoqBnB;IACA;;EAEA;IACE;IACA,O9BzqBiB;I8B0qBjB;;EAEA;IACE,iBjCra0B;;EiCya9B;IACE;IACA,YjC1aoB;IiC2apB;;EAGF;IACE;IACA,O9BzrBiB;I8B0rBjB;;EChsBJ;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA,YACE;IAEF;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAKA;IACE,OlCkxBmB;IkCjxBnB,QlCkxBoB;;EkChxBpB;IACE,WlCgxBwB;;EkC7wB1B;IACE,OlC4wBwB;IkC3wBxB,QlC2wBwB;;EkCtwB9B;IACE;;EAIA;I5BjGA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EkCYd;IACE,OlC4vBqB;IkC3vBrB,QlC4vBsB;IkC3vBtB,YlChES;IkCiET,OlC6vByB;IkC5vBzB;IACA,YlCvCA;;EkCyCA;IACE,YlCuvBqB;IkCtvBrB,OlCwvB4B;;EkCnvB9B;IACE;;EAEA;IACE,elC9CU;;EkCoDd;IACE;;EAEA;IACE,YlCxDU;;EkC8Dd;IACE;;EAEA;IACE,clClEU;;EkCwEd;IACE;;EAEA;IACE,alC5EU;;EkCoFd;AAAA;AAAA;IACE;;EAEA;AAAA;AAAA;AAAA;AAAA;IAEE;;EAKN;IACE,kBlC7FO;IkC8FP,elC9Ga;;EmCnEf;IACE;IACA;;EAGF;AAAA;AAAA;AAAA;IAKE;IACA;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,enC+Ba;;EmC7Bb;IACE,enC8IwB;;EmC5IxB;IACE,enC2IsB;;EmCvI1B;IACE,YnCmIF;;EoClLF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;AAGF;EACA;IACE;;EAGF;IACE;IACA;;AAGF;EACA;IACE;;EAGF;IACE;;EAME;AAAA;I9BkKF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;I8BtKI,QpCKU;;EMoKZ;AAAA;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;AAAA;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EoChBZ;IACE,SpC2rBwB;;EoCzrBxB;IACE,cpCHU;IoCIV,epCJU;;EoCMV;IACE,kBpC5CG;IoC6CH,OpCurBiB;IoCtrBjB,QpCurBkB;IoCtrBlB,YpChBN;IoCiBM,epCmrBwB;;EoCjrBxB;IACE,YpClDC;;EoCuDH;IACE,YjC1FI;IiC2FJ,OjC9FW;;EkCRrB;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;AAAA;IAGE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;AAGF;EACA;AAAA;AAAA;IAGE;IACA;;EAGF;IAIE;IACA;;EAGF;IAKE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;AAAA;IAEE;IACA;;EAGF;AAAA;IAEE;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;;AAGF;EACA;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAKA;IACE,crCgV2B;IqC/U3B;;EAGF;IACE,crC4U8B;IqC3U9B;;EAGF;IACE,YrCtNO;IqCuNP,OrChNO;IqCiNP,QrCoRgB;IqCnRhB,crCoRqB;IqCnRrB,SrCuRiB;IqCtRjB,arCqRoB;;EqClRtB;IACE,YrC/NO;IqCgOP,OrCzNO;IqC0NP,QrCmTgB;IqClThB,crCmTqB;IqClTrB,SrCsTiB;IqCrTjB,arCoToB;;EqCjTtB;IACE,YrCmTwB;IqClTxB,SrC0QqB;IqCzQrB,QrC6QoB;IqC5QpB,crC6QyB;IqC5QzB,arC0QwB;IqCzQxB,OrCtOO;IqCuOP,YrC9OO;IqC+OP,YrC1MiB;;EqC6MnB;IACE,YrCwSwB;IqCvSxB,SrCwRqB;IqCvRrB,QrC2RoB;IqC1RpB,crC2RyB;IqC1RzB,arCwRwB;IqCvRxB,OrCjPO;IqCkPP,YrCzPO;;EqC6PP;IACE,OrCvPK;IqCwPL,arCvNU;;EqC0NZ;IACE;IACA,QrC6PyB;IqC5PzB,WrC4PyB;IqC3PzB,arC2PyB;IqC1PzB,OlCxSe;IkCySf,YlCtSQ;IkCuSR,arCjOU;;EqCoOZ;IACE,YrC5QK;IqC6QL,OrCvQK;;EqCyQL;IACE,OrC1QG;;EqC8QP;IACE,YlCpTQ;IkCqTR,OlCxTe;;EkC0Tf;IACE,OlC3Ta;;EkC8Tf;IACE,YlC5TM;IkC6TN,OlChUa;;EkCkUb;IACE,OlCnUW;;EkCwUjB;IACE,YrChMqB;IqCiMrB;;EAKF;IACE,YrChTK;IqCiTL,OrC1SK;IqC2SL,YrC5Qe;;EqC8Qf;IACE,YrCuOoB;IqCtOpB,QrCmNc;IqClNd,crCmNmB;IqClNnB,SrCmNe;;EqCjNf;AAAA;AAAA;AAAA;I/BvHN,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;AAAA;AAAA;AAAA;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;AAAA;AAAA;AAAA;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EqCyQN;IACE,crCzRM;;EqC4RR;IACE,arCiLkB;;EqC7KtB;IACE;IACA;;EAGF;IACE,YlC7WM;IkC8WN,OlCjXa;;EkCoXf;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAMJ;IACE,YrCnWK;IqCoWL,OrC/VK;;EqCmWT;IACE,YlClZW;;EkC0ZX;AAAA;AAAA;IAEE,kBrCpXK;;EqCwXT;IACE,WrC9UkB;;EqCgVlB;IACE,OrCjVgB;IqCkVhB,QrClVgB;;EqCuVlB;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAKE;IACE;;EAEA;IACE;;EAQJ;IACE;;EAEA;IACE;;EAKF;IACE;;EAEA;IACE;;EASN;IACE;;EAEA;IACE;;EAQJ;IACE;;EAEA;IACE;;EAQJ;IACE;;EAEA;IACE;;EASF;IACE;;EAEA;IACE;;EAUR;IACE,YrC2Ba;;EqCzBb;IACE,YlC3gBI;IkC4gBJ,OlC/gBW;;EkCihBX;IACE,OlClhBS;;EkCohBT;IACE,OlCrhBO;;EkC8hBjB;I/BlVF;;E+BsVE;I/BtVF;;E+B0VE;I/B1VF;;E+B8VE;I/B9VF;;E+BkWE;I/BlWF;;E+BwWE;I/BxWF;;E+B4WE;I/B5WF;;E+BgXE;I/BhXF;;E+BoXE;I/BpXF;;E+BwXE;I/BxXF;;EgCpNA;IACE,ctCokB2B;IsCnkB3B;;EAGF;IACE,ctCgkB8B;IsC/jB9B;;EAGF;IACE,YtC8BO;IsC7BP,OtCoCO;IsCnCP,QtCwgBgB;IsCvgBhB,ctCwgBqB;IsCvgBrB,StC2gBiB;IsC1gBjB,atCygBoB;;EsCtgBtB;IACE,YtCoBO;IsCnBP,OtC0BO;IsCzBP,QtCujBoB;IsCtjBpB,StCqjBqB;;EsCljBvB;IACE,YtCcO;IsCbP,OtCoBO;IsCnBP,QtCgiBgB;IsC/hBhB,ctCgiBqB;IsC/hBrB,StCmiBiB;IsCliBjB,atCiiBoB;IsChiBpB,2BtCkCW;IsCjCX,4BtCiCW;;EuCnEb;AAAA;IAEE,avC+EY;;EuC3EhB;IACE,OvC4FgB;IuC3FhB,QvC4FiB;IuC3FjB,OvCqCS;IuCpCT,QvC4FiB;IuC3FjB,YvC0Fa;IuCzFb,evC+FuB;IuC9FvB,YvC8DA;IuC7DA;;EAEA;IACE,OvC+BO;IuC9BP,cvCuFyB;IuCtFzB,YvCuBO;;EuCpBT;IAEE,YvCkBO;IuCjBP,OvCuBO;;EuCpBT;IAEE,YpCnBU;IoCoBV,OpCvBiB;;EoC0BnB;IjC5BA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EuCzDd;IACE,OvC2DgB;IuC1DhB,QvC2DiB;IuC1DjB,OvCIS;IuCHT,QvC2DiB;IuC1DjB,YvCyDa;IuCxDb,evC8DuB;IuC7DvB,YvC6BA;IuC5BA;;EAEA;IACE,OvCFO;IuCGP,cvCsDyB;IuCrDzB,YvCVO;;EuCaT;IjCjDA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EuCpCd;IACE,YvCrBS;IuCsBT,OvCfS;IuCgBT,QvC4FmB;IuC3FnB,evCGa;IuCFb,YvC2FmB;IuC1FnB,WvCwoBU;;EuCtoBV;IACE,SvCiEe;;EuC/Df;IACE,QvCwEgB;IuCvEhB,SvC8DiB;IuC7DjB,QvCoEgB;IuCnEhB,OvC5BK;IuC6BL,YvC4DY;IuC3DZ,YvCCe;IuCAf,evCiEsB;;EuC/DtB;IACE;;EAGF;IACE;;EAGF;IACE,OpCjFa;IoCkFb,YpC/EM;;EoCkFR;IACE,OvC/CG;IuCgDH,YvCrDG;;EuCwDL;IjCzEJ,SNoEa;IMnEb,gBNoEmB;IMnEnB,YNsHyB;;EuC1CvB;IACE,YvCxBI;IuCyBJ,QvC8nBgB;;EuCxnBpB;IACE,SvCkCqB;IuCjCrB,evCqCoB;IuCpCpB,OvClEO;IuCmEP,YvC1EO;IuC2EP,QvC+BoB;IuC9BpB,yBvClDW;IuCmDX,wBvCnDW;;EuCsDb;IACE,SvC0SkB;IuCzSlB,evC3CM;;EuC6CN;IACE,evC7CU;;EuCgDZ;IACE,YvCjDU;;EuCoDZ;IACE;;EAIJ;IACE,SvC8RiB;;EuC3RnB;IACE,SvCqRkB;;EwCpatB;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAKA;IACE,SxC2XkB;;EwCzXlB;IACE,exCqCU;;EwCjCd;IACE,YxCTO;IwCUP,QxC8WiB;IwC7WjB,exCgBW;IwCfX,YxCkBF;IwCjBE;;EAEA;IlCrCF,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EqC2Db;IACE,OxCbO;IwCcP,SxC0ViB;IwCzVjB,axCwVoB;;EwCrVtB;IACE,OxCpBO;IwCqBP,SxCkEe;IwCjEf;;EAEA;IACE,YxCwVe;;EwCrVjB;IACE,SxC2DiB;IwC1DjB,QxCmEgB;IwClEhB,QxCgEgB;IwC/DhB,OxChCK;IwCiCL,YxCwDY;IwCvDZ,YACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE,YxCpDG;IwCqDH,OxChDG;;EwCkDH;IACE,OxCnDC;IwCoDD,YxCzDC;;EwC6DL;IACE,OxCzDG;IwC0DH,YxC/DG;;EwCkEL;IACE,OrCrGa;IqCsGb,YrCnGM;;EqCqGN;IACE,YrChGS;;EqCwGb;IACE,YxCwSgB;;EwCtShB;IACE,YxCnFC;;EyC1CX;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAME;IACE,YzCfK;IyCgBL,OzCXK;;EyCcP;IACE,YtCnDQ;IsCoDR,OtCvDe;;EsC0Db;IACE;;EAMR;IACE,YzC/BO;;EyCkCT;IACE,czCkViB;IyCjVjB,czCpCO;;EyCuCT;IACE,YzC6UiB;IyC5UjB,czCzCO;;EyC4CT;IACE,QzCwUiB;IyCvUjB,YzCjDO;IyCkDP,OzC3CO;IyC4CP,SzCyUkB;;EyCtUpB;IACE;IACA;IACA;IACA;;EAEA;InC9FF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E0ChGd;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAIF;IACE,Y1CFS;I0CGT,O1CGS;I0CFT,Q1CydgB;I0CxdhB,c1CydqB;I0CxdrB,S1CydiB;I0CxdjB,e1CoBa;;E0ClBb;AAAA;AAAA;AAAA;IAIE,kB1CqdiB;I0CpdjB,Q1CqdqB;I0CpdrB,O1CTO;I0CUP,W1C8GkB;I0C7GlB,Q1C6GkB;I0C5GlB,Q1CudqB;I0CtdrB,Y1CmBiB;I0ClBjB,e1Cod2B;;E0Cld3B;AAAA;AAAA;AAAA;IACE,Y1CrBK;I0CsBL,c1C8c6B;I0C7c7B,O1CjBK;;E0CqBT;IACE,wB1C0c2B;I0Czc3B,2B1Cyc2B;;E0Ctc7B;IACE,yB1Cqc2B;I0Cpc3B,4B1Coc2B;;E0Cjc7B;IACE,a1CCY;I0CAZ;IACA,Q1CoFkB;;E0ClFlB;IACE;;EAIJ;IACE,a1CTY;I0CUZ,c1CVY;;E0CYZ;IACE,W1CwEgB;;E0CpEpB;IACE,kB1CuaiB;I0CtajB,Q1CuaqB;I0CtarB,O1CvDO;I0CwDP,W1CgEkB;I0C/DlB,Q1C+DkB;I0C9DlB,Q1CyaqB;I0CxarB;;EAIA;IACE,kB1C4Ze;I0C3Zf,Q1C4ZmB;I0C3ZnB,O1ClEK;I0CmEL,W1CqDgB;I0CpDhB,Q1CoDgB;I0CnDhB,Q1C8ZmB;I0C7ZnB,Y1CtCe;I0CuCf,e1C2ZyB;;E0CzZzB;IACE,YvC7GM;IuC8GN,cvC9GM;IuC+GN,OvClHa;;EuCqHf;IACE,Y1CpFG;I0CqFH,c1C+Y2B;I0C9Y3B,O1ChFG;;E2ChDX;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;IAEE;;EAKA;IACE,S3C+XkB;;E2C7XlB;IACE,e3CyCU;;E2CrCd;IACE,Y3CLO;I2CMP,Q3CkXiB;I2CjXjB,e3CoBW;I2CnBX,Y3CsBF;I2CrBE;;EAEA;IrCjCF,SN2Ea;IM1Eb,gBN2EmB;IM1EnB,YN4EY;IM3EZ,cHpBa;;EwCuDb;IACE,O3CTO;I2CUP,S3C8ViB;I2C7VjB,a3C4VoB;;E2CzVtB;IACE,O3ChBO;I2CiBP,S3CsEe;I2CrEf;;EAEA;IACE,Y3C4Ve;;E2CzVjB;IACE,S3C+DiB;I2C9DjB,Q3CuEgB;I2CtEhB,Q3CoEgB;I2CnEhB,O3C5BK;I2C6BL,Y3C4DY;I2C3DZ,YACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE,Y3ChDG;I2CiDH,O3C5CG;;E2C8CH;IACE,O3C/CC;I2CgDD,Y3CrDC;;E2CyDL;IACE,O3CrDG;I2CsDH,Y3C3DG;;E2C8DL;IACE,OxCjGa;IwCkGb,YxC/FM;;EwCiGN;IACE,YxC5FS;;EwCoGb;IACE,Y3C4SgB;;E2C1ShB;IACE,Y3C/EC;;E4C1CX;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IAGE;;EAGF;IAGE;;EAGF;IAGE;;EAGF;IAGE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE,Q5CkewB;I4CjexB,e5Cge8B;I4C/d9B,O5C6duB;I4C5dvB,Q5C6dwB;I4C5dxB,kBzCrHe;;EyCwHjB;IACE,kB5CvFO;;E4C2FP;AAAA;IAEE,S5C+cgC;;E4C5clC;IACE,O5CkduB;;E4C7czB;AAAA;IAEE,S5CqckC;;E4ClcpC;IACE,Q5CucuB;;E6C9lB7B;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAIF;IACE,Q7C4UmB;I6C3UnB,Y7C7CS;I6C8CT,O7CvCS;I6CwCT,S7C6UoB;I6C5UpB,e7CrBa;;E6CwBX;IACE,S7CqfY;I6CpfZ;;EAEA;IvCtEJ,SNoEa;IMnEb,gBNoEmB;IMnEnB,YNsHyB;;E6C9CrB;IACE,e7CjCO;I6CkCP,Y7CvBa;I6CwBb,S7C4eiB;;E6C1ejB;IACE,c7CxBM;IM0Jd,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E6CaN;IACE,c7C7BM;I6C8BN,O7CjEC;;E6CoEH;IACE,c7ClCM;;E6CqCJ;IACE,O7CxEH;;E6C6EH;IACE,Y1ClHI;I0CmHJ,O1CtHW;;E0CwHX;AAAA;IAEE,O1C1HS;;E0C4HT;AAAA;IACE,O1C7HO;;E0CkIb;IACE,Y7CjGC;I6CkGD,O7C7FC;;E6CmGT;IACE,e7ClEY;;E6CoEZ;IACE;IACA;;EAGF;IACE;IACA,O7C9GK;;E6CkHT;IACE,S7CkbsB;;E6C/axB;IACE,W7CjFkB;;E6CmFlB;IACE,O7CpFgB;I6CqFhB,Q7CrFgB;;E8CpFtB;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;AAGF;EACA;IACE;;EAGF;AAAA;AAAA;IAGE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;;EAGF;IACE;;EAGF;AAAA;AAAA;IAGE;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;AAAA;AAAA;AAAA;AAAA;IAYE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAKA;IACE,c9CkZ2B;I8CjZ3B;;EAGF;IACE,c9C8Y8B;I8C7Y9B;;EAGF;IACE,Y9CpJO;I8CqJP,O9C9IO;I8C+IP,Q9CsVgB;I8CrVhB,c9CsVqB;I8CrVrB,S9CyViB;I8CxVjB,a9CuVoB;;E8CpVtB;IACE,Y9C7JO;I8C8JP,O9CvJO;I8CwJP,Q9CqXgB;I8CpXhB,c9CqXqB;I8CpXrB,S9CwXiB;I8CvXjB,a9CsXoB;;E8CnXtB;IACE,Y9CqXwB;I8CpXxB,S9C4UqB;I8C3UrB,Q9C+UoB;I8C9UpB,c9C+UyB;I8C9UzB,a9C4UwB;I8C3UxB,O9CpKO;I8CqKP,Y9C5KO;I8C6KP,Y9CxIiB;;E8C2InB;IACE,Y9C0WwB;I8CzWxB,S9C0VqB;I8CzVrB,Q9C6VoB;I8C5VpB,c9C6VyB;I8C5VzB,a9C0VwB;I8CzVxB,O9C/KO;I8CgLP,Y9CvLO;;E8C0LT;IACE,e3ClOgB;;E2CoOhB;IACE,O9CvLK;I8CwLL,a9CvJU;;E8C0JZ;IACE;IACA,Q9C6TyB;I8C5TzB,W9C4TyB;I8C3TzB,a9C2TyB;I8C1TzB,O3CxOe;I2CyOf,Y3CtOQ;I2CuOR,a9CjKU;;E8CoKZ;IACE,Y9C5MK;I8C6ML,O9CvMK;;E8CyML;IACE,O9C1MG;;E8C8MP;IACE,Y3CpPQ;I2CqPR,O3CxPe;;E2C0Pf;IACE,O3C3Pa;;E2CiQjB;IACE,Y9ClOK;I8CmOL,O9C5NK;I8C6NL,Y9C9Le;;E8CgMf;IACE,Y9CqToB;I8CpTpB,Q9CiSc;I8ChSd,c9CiSmB;I8ChSnB,S9CiSe;;E8C/Rf;IxCzCN,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;IwCoCQ,c9CrMM;;EMoKZ;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E8CwLJ;IACE,c9CxMI;;E8C2MF;IACE,O9C9OL;;E8CqPL;IACE;IACA;;EAGF;IACE,Y3C/RM;I2CgSN,O3CnSa;;E2CqSb;IACE,O3CtSW;;E2CwSX;IACE,O3CzSS;;E2CiTjB;IACE,Y9ChRK;I8CiRL,O9C5QK;;E8C8QL;IACE,O9C/QG;;E8CoRT;IACE,Y3CnUW;;E2CsUb;AAAA;IAEE,Y9ChSO;;E8CmST;IACE,W9CzPkB;;E8C2PlB;IACE,O9C5PgB;I8C6PhB,Q9C7PgB;;E8CkQlB;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAKE;IACE;;EAOF;IACE;;EAOF;IACE;;EAON;IxC5KF;;EwCgLE;IxChLF;;EwCoLE;IxCpLF;;EwCwLE;IxCxLF;;EwC4LE;IxC5LF;;EwCkME;IxClMF;;EwCsME;IxCtMF;;EwC0ME;IxC1MF;;EwC8ME;IxC9MF;;EwCkNE;IxClNF;;EyCpNF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAME;IACE,S/CmYe;I+ClYf,Q/C8Xc;I+C7Xd,O/CuBK;I+CtBL,Y/CiBK;I+ChBL,a/C8XkB;I+C7XlB,e/CyCS;I+CxCT,Y/CmDe;I+ClDf;;EAEA;IACE,c/CkDQ;;E+C5CR;IzCzBN,SNiFa;IMhFb;IACA;;EyC8BI;IACE,Y/CHG;I+CIH,c/CHG;I+CIH,O/CCG;;E+CIL;IACE,Y/CZG;I+CaH,c/CXG;I+CYH,O/CPG;I+CQH;IACA;;EAIA;IACE,c/CnBC;I+CoBD,Y/CrBC;I+CsBD,O/ChBC;;E+CsBT;IACE,S/C6VkB;I+C5VlB,Q/CwViB;I+CvVjB,Y/CjCO;I+CkCP,O/C3BO;I+C4BP;IACA;IACA;IACA,4B/CXW;I+CYX,2B/CZW;;E+Ceb;IACE,e/CyVe;;EgD7anB;IACE,YhDwCS;IgDvCT,OhD8CS;IgD7CT,YhDkfA;IgDjfA,ehDgEa;;EgD9Db;IACE,ShDsec;;EgDnehB;IACE,WhDmegB;IgDlehB,ahDmekB;IgDlelB,ehDqEY;;EgDlEd;IACE,ahD+dqB;IgD9drB,ehDgEY;IgD/DZ,OhD4BO;;EgDzBT;IACE,ShD2diB;;EgDxdnB;IACE,ShDwdgB;;EiDlfpB;AAAA;IAEE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAIF;IACE,QjD2YmB;IiD1YnB,YjDkBS;IiDjBT,OjDwBS;IiDvBT,ejD2Ca;;EiDzCb;IACE,SjD6XiB;IiD5XjB,QjDwXgB;IiDvXhB,OjDmBO;IiDlBP,YjDWO;IiDVP,ajDwXoB;IiDvXpB,ejDmCW;;EiD/BX;IACE;IACA,YjDqCJ;;EiDnCI;IACE,SjD+Wa;IiD9Wb,OjDMG;IiDLH,ejDwBO;IiDvBP,YjDkCa;IiDjCb;;EAEA;IACE,cjDiCM;;EiD9BR;I3C7CN,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EiDzCN;IACE,OjDRC;;EiDYL;IACE,YjDnBG;IiDoBH,cjDnBG;IiDoBH,OjDfG;;EiDoBT;IACE,SjD+VkB;;EkDpatB;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAIA;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAMF;IACE,kBlD1BO;;EkD6BT;IACE,QlD4vBsB;IkD3vBtB,SlD4vBuB;;EkD1vBvB;IACE;;EAGF;IACE;;EAIJ;IACE,QlDivBoB;IkDhvBpB,SlDivBqB;;EkD/uBrB;IACE;;EAGF;IACE;;EC3FN;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAKA;IACE,QnD6XgB;ImD5XhB,SnDgYiB;ImD/XjB,YnDgBO;ImDfP,OnDsBO;ImDrBP,yBnDwCW;ImDvCX,wBnDuCW;;EmDrCX;IACE,anDwXkB;;EmDrXpB;I7CyMF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EmDxDV;IACE,SnDgXyB;;EmD5W7B;IACE,SnDsXkB;ImDrXlB,QnDiXiB;ImDhXjB,YnDRO;ImDSP,OnDFO;ImDGP;;EAEA;IACE,4BnDcS;ImDbT,2BnDaS;;EmDTb;IACE,SnD8WiB;ImD7WjB,QnD0WgB;ImDzWhB,YnDrBO;ImDsBP,OnDfO;ImDgBP,4BnDIW;ImDHX,2BnDGW;ImDFX;;ECjEJ;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAKA;IACE,YpDlBO;IoDmBP,QpD4aqB;IoD3arB,YpDSF;IoDRE;;EAEA;I9C1DF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EqDhGd;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAIF;IACE,QrDkWmB;IqDjWnB,YrDvBS;IqDwBT,erDGa;IqDFb,OrDlBS;;EqDoBT;IACE,YrDOF;IqDNE,YrD5BO;;EqD8BP;IACE,YrD7BK;IqD8BL,YrDHJ;IqDII;;EAEA;I/CtEJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EqDdZ;IACE,YrDxCO;;EsDzCX;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAEA;IACE;;EAIJ;IACE;IACA;IACA;IACA;IACA;;EAEA;IhD7BA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EsDxDd;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAKA;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE,StDGY;;EsDDZ;IACE,YtDHe;IsDIf,etDfS;IsDgBT,YtD3CK;IsD4CL;;EAEA;IACE,OtDxCG;IsDyCH,QtD2lBU;IsD1lBV;IACA,YtDlDG;IsDmDH,WtD0lBe;IsDzlBf,QtD0lBgB;IsDzlBhB,atDylBgB;IsDxlBhB,WtDylBkB;IsDxlBlB,etD0lBsB;IsDzlBtB,YtDrBN;;EsDwBI;IACE,atDnBQ;IsDoBR,OtDvDG;IsDwDH,atDolBoB;IsDnlBpB,YtD5BN;;EsD+BI;IhDpGJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EsDgBR;IACE,YnDtGM;ImDuGN,OnD1Ga;;EmD6Gf;IACE,OtDvEG;;EsD2EP;IhDpHF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EsDgCN;IACE,kBnDhIK;;EmDsIb;IACE,YtDhGO;IsDiGP,StD2RkB;IsD1RlB,OtD3FO;;EsD8FT;IACE,kBtDnGO;IsDoGP;IACA;IACA;IACA,YtDpEiB;;EsDuEnB;IACE;IACA;;EAEA;IACE;IACA;IACA,YtDpHK;IsDqHL,OtD9GK;;EsDiHP;IACE;IACA;IACA;;EAEA;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAKE;IACE,kBnD3LG;;EmDiMP;IACE;;ECnMV;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE,YvDjCO;IuDkCP,QvD2Xe;IuD1Xf,cvD2XoB;;EuDzXpB;IACE,cvD2XiB;;EuDzXjB;IACE,QvDyXc;IuDxXd,cvDyXmB;IuDxXnB,cvDyXmB;IuDxXnB,YvD5CG;IuD6CH,OvDvCG;IuDwCH,SvDkUa;IuDjUb,avDgUgB;IuD/ThB,yBvDrBO;IuDsBP,wBvDtBO;IuDuBP,YvDZa;IuDab,QvDsXc;IuDrXd;;EAEA;IjDlFN,SNiFa;IMhFb;IACA;;EiDsFM;IACE,YvD7DC;IuD8DD,cvDzDC;IuD0DD,OvDzDC;;EuD8DH;IACE,YvDrEC;IuDsED,cpD7GK;IoD8GL,OpD9GK;;EoDoHb;IACE,YvD9EO;IuD+EP,OpDtHW;IoDuHX,OvD8CkB;IuD7ClB,YvDyDF;IuDxDE;IACA;;EAEA;IjDjHF,SNiFa;IMhFb;IACA;;EiDoHA;IACE,YvD3FO;IuD4FP,SvDgSkB;IuD/RlB,QvDsVmB;IuDrVnB,OvDvFO;IuDwFP,4BvDpEW;IuDqEX,2BvDrEW;;EwDnEf;IACE;IACA;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;IACA;;EAGF;AAAA;IAEE;IACA;;EAIF;IACE,YxDmBS;IwDlBT,QxD6XkB;IwD5XlB,SxDgYmB;IwD/XnB,exD0Ca;IwDzCb,KxDuDc;;EwDrDd;IACE;;EC7BJ;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;AAGF;EACA;IACE;IACA;;EAGF;IACE;;EAGF;IACE,YACE;;EAIJ;IACE;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAIF;IACE,YzDlCS;IyDmCT,OzD5BS;IyD6BT,QzD6kBqB;IyD5kBrB,ezDVa;IyDWb,YzD6kBuB;;EyD3kBvB;IACE,SzDmVkB;;EyDhVpB;IACE;IACA,SzDolBwB;;EyDllBxB;IACE;IACA;;EAEA;IACE;;EAKN;IACE;IACA;IACA,qBzD7DO;;EyDgET;IACE;IAME;IACA;;EAQF;IACE,kBzDjFK;;EyDoFP;IAII;;EAKN;IACE;;EAEA;IACE;IACA;;EAIJ;IACE;;EC/IJ;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;;AAGF;AACA;EACA;IACE;;EAEF;IACE;;EAEF;AAAA;IAEE;IACA;;AAGF;EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAQE;IACA;;EAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAgBE;;EAEF;AAAA;IAEE;;EAEF;AAAA;IAEE;;EAEF;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;EAEF;AAAA;AAAA;AAAA;AAAA;AAAA;IAME;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;;EAGF;IACE;IACA;;EAIF;IACE,e1DhEa;I0DiEb,Y1DuhBuB;I0DthBvB,Q1DohBqB;;E0DlhBrB;IACE,e1DuhBiB;I0DthBjB,Y1DjGO;I0DkGP,O1D1FO;I0D2FP,S1DwhBkB;I0DvhBlB,yB1DzEW;I0D0EX,wB1D1EW;;E0D4EX;IACE,a1DihBmB;I0DhhBnB,W1DihBiB;;E0D9gBnB;IpDuFF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;IoD5FI,c1DrEU;;EMoKZ;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E0DwDR;IACE;;EAKN;IACE,Y1DvHO;I0DwHP,O1DjHO;I0DkHP,S1DmgBmB;;E0DjgBnB;IACE,4B1DjGS;I0DkGT,2B1DlGS;;E0DsGb;IACE,Y1D2fiB;I0D1fjB,Y1DnIO;I0DoIP,O1D7HO;I0D8HP,S1DyfkB;I0DxflB;IACA;IACA,K1D/FY;I0DgGZ,4B1D9GW;I0D+GX,2B1D/GW;;E0DmHX;IACE;;EAGF;IACE;;ECzLN;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;;EAGF;IACE;;EAGF;IACE,YACE;;EAIJ;IACE;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;IACA;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,Y3DpCS;I2DqCT,O3D9BS;I2D+BT,Q3D2kBqB;I2D1kBrB,e3DZa;I2Dab,Y3D2kBuB;;E2DzkBvB;IACE,S3DiVkB;;E2D9UpB;IACE,YxDtFW;IwDuFX,OxD/Ee;IwDgFf,O3DUc;I2DTd,Q3DUe;I2DTf,Y3DhBF;I2DiBE,e3DeqB;I2DdrB;IACA;IACA;;EAEA;IACE,YxD3Fa;IwD4Fb,OxD1Fa;;EwD8FjB;IACE;IACA;IACA,qB3DlEO;;E2DqET;IACE;IAME;IACA;;EAQF;IACE,kB3DtFK;;E2DyFP;IAII;;ECrIR;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;AAGF;AACA;EACA;AAAA;IAEE;;EAEF;AAAA;IAEE;;EAEF;AAAA;IAEE;;EAEF;AAAA;IAEE;;EAEF;AAAA;IAEE;;EAEF;AAAA;IAEE;;AAGF;EACA;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;AAAA;AAAA;IAIE;IACA;;EAGF;IACE;AAAA;AAAA;AAAA;MAIE;;;EAKJ;IACE,Y5D/GS;I4DgHT,O5DzGS;I4D0GT,Q5DggBqB;I4D/frB,Y5DigBuB;;E4D/fvB;IACE,S5D2PiB;;E4DzPjB;IACE,a5DigBmB;I4DhgBnB,W5DigBiB;;E4D9fnB;AAAA;ItDuEF,ONxIgB;IMyIhB,QNxIiB;IMyIjB,ON/LS;IMgMT,QNxIiB;IMyIjB,YN1Ia;IM2Ib,eNrIuB;IMsIvB,YNtKA;IMuKA;;EAGE;AAAA;IAeF,ONpNS;IMqNT,cN5J2B;IM6J3B,YN5NS;;EMoNT;AAAA;IAxPA,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E4DyEV;IACE;;EAIJ;IACE,S5DqPkB;;E6DpatB;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAKA;IACE,Y7DXO;I6DYP,O7DnBO;I6DoBP,S7DkDW;I6DjDX,Y7D+FiB;I6D9FjB,e7DKW;;E6DDX;IACE,oB7DpBK;;E6DyBP;IACE,mB7D1BK;;E6D+BP;IACE,kB7DhCK;;E6DqCP;IACE,qB7DtCK;;E8D/CX;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE,Y9DNO;I8DOP,S9DwWiB;I8DvWjB,Q9DmWgB;I8DlWhB,O9DFO;I8DGP;IACA,yB9DeW;I8DdX,wB9DcW;I8DbX,K9D2BY;;E8DxBV;IxDnDJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E8DjCZ;IACE,Y9DxBO;I8DyBP,S9DiauB;I8DhavB,Q9D8ViB;I8D7VjB,O9DpBO;I8DqBP,4B9DDW;I8DEX,2B9DFW;;E8DIX;IACE,Q9D2ZyB;I8D1ZzB,kB3D9DQ;;E2DkEZ;IACE,S9DuZoB;I8DtZpB,Q9DqZmB;I8DpZnB,e9DbW;I8DcX;IACA,e9DDY;;E8DGZ;IACE;;EAIJ;IACE,e9DTY;;E8DYd;IACE,c9DbY;;E8DgBd;IACE,Q9D+X0B;;E8D3X1B;IACE,S9D4ciB;;E8DvcnB;IACE;;EAMJ;IACE,Y3D7Ge;I2D8Gf,O3D5Ge;I2D6Gf,c3D/Ge;;E2DkHjB;IACE,Y3DlHiB;I2DmHjB,O3DlHe;I2DmHf,c3DpHiB;;E4DRrB;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAIF;IACE,Y/DMS;I+DLT,Q/DyqBW;I+DxqBX,e/D+Ba;I+D9Bb,S/DosBkB;;E+DhsBd;IACE,Y/DoCa;I+DnCb,e/DwBO;I+DvBP;;EAEA;IzDxCN,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E+D9CN;IACE,O/DJC;;E+DOH;IACE,O/DTC;;E+DaL;IACE;IACA,O/DdG;;E+DkBH;IACE,O/DnBC;;E+DsBH;IACE,O/DxBC;;EgE9CX;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAIF;IACE,ShE0rBoB;IgEzrBpB,YhELS;IgEMT,OhECS;IgEAT,QhEqrBkB;IgEprBlB,YhEqrBkB;IgEprBlB,ehEkBa;IgEjBb,WhEwpBU;;EgEtpBV;IACE;;EAGF;IACE,ShE6qBkB;IgE5qBlB,YhElBO;IgEmBP,QhEyqBgB;IgExqBhB,YhEyqBgB;IgExqBhB,ehEMW;;EgEHb;I1D7BA,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EgEsBT;IACE,YhEWM;IgEVN,QhEiqBkB;;EgE9pBpB;IACE,WhEkpB0B;;EgEhpB1B;IACE,OhE+oBwB;IgE9oBxB,QhE8oBwB;;EiE5tB9B;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;IACE;IACA;;AAGF;AACA;EACA;IACE;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAKA;IACE,YjE2wBK;IiE1wBL,QjE2wBS;IiE1wBT,SjE2wBU;IiE1wBV,ejE2wBe;;EiEzwBf;IACE;;EAIJ;IACE,SjE2vBc;IiE1vBd,ejEtDW;;EiEwDX;I3DlGF,SNoEa;IMnEb,gBNoEmB;IMnEnB,YNsHyB;;EiEjBzB;IACE,OjEgvBc;IiE/uBd,QjEgvBe;;EiE3uBf;AAAA;AAAA;IAEE;;EAGF;AAAA;AAAA;IAEE;;EAGF;IACE;;EAMF;AAAA;AAAA;IAEE;;EAGF;AAAA;AAAA;IAEE;;EAGF;IACE;;EAOA;IACE;IACA;;EAEA;IACE;;EAOJ;IACE;IACA;;EAEA;IACE;;EAMJ;IACE;IACA;;ECnMR;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;AAGF;EACA;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;AAGF;EACA;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IAIE;IACA;;EAGF;IAME;;EAGF;IACE;;EAGF;AAAA;AAAA;AAAA;AAAA;IAKE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAIF;IACE,SlEukBsB;IkEtkBtB,YlEnIS;IkEoIT,OlE9HS;IkE+HT,QlE8hBW;IkE7hBX,elE5Ga;;EkE8Gb;IACE;;EAGF;I5DlJA,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EkE2IT;IACE,YlElJO;IkEmJP,OlE5IO;IkE6IP,QlEwiBgB;IkEviBhB,YlEwiBgB;IkEviBhB,elE3HW;;EkE8Hb;IACE,QlE2hBkB;IkE1hBlB,SlE2hBmB;IkE1hBnB,OlEpJO;IkEqJP,YlE7JO;IkE8JP,alE4hBsB;IkE3hBtB,yBlEpIW;IkEqIX,wBlErIW;;EkEwIb;IACE,SlE0hBkB;IkEzhBlB,WlE6fQ;;EkE3fR;IACE,YlEhII;IkEiIJ,QlEshBgB;;EkElhBpB;IACE,WlEofQ;IkEnfR,SlE+gBkB;;EMhlBpB;IACE,ONxGO;IMyGP,YN1EiB;IM2EjB,eNtFW;;EMwFX;IACE,SNkjBY;IMjjBZ;;EAEA;IACE,ONjHG;;EMoHL;IACE,ONtHG;IMuHH,cNpFQ;;EMuFV;IACE,ON3HG;IM4HH,aNzFQ;;EMgGV;IACE,ONnIG;IMoIH,YNzIG;;EM4ID;IACE,ONxID;;EM2ID;AAAA;IAEE,ON9ID;;EkEqLP;IACE;IACA,SlE6gBkB;;EkE1gBpB;IACE,OlEtIY;IkEuIZ,QlEtIa;IkEuIb,OlE7LK;IkE8LL,elEjImB;IkEkInB,YlElKJ;IkEmKI;;EAEA;IACE,OlEnMG;IkEoMH,YlExMG;;EkE2ML;I5D/OJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EkE0JV;IACE,SlE2egB;IkE1ehB,YlEpNK;IkEqNL,QlEuec;IkEted,YlEuec;;EkEred;IACE,YlEjLE;IkEkLF,QlEqec;;EkElehB;IACE,WlEsdsB;;EkEhdlB;IACE;IACA;;EAQA;IACE;;EAQR;IACE;IACA;;EAMI;IACE;;E5DzER;IACE;;E6DhOV;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAIF;IACE,SnEitBoB;ImEhtBpB,YnEkBS;ImEjBT,OnEwBS;ImEvBT,QnEorBW;ImEnrBX,enE0Ca;ImEzCb,WnEgrBU;;EmE9qBV;I7DOA,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EmEdT;IACE,YnEOO;ImENP,QnEksBgB;ImEjsBhB,YnEksBgB;;EmE/rBlB;IACE,QnEsrBkB;ImErrBlB,SnEsrBmB;ImErrBnB,OnEOO;ImENP,YnEFO;ImEGP,anEurBsB;ImEtrBtB,yBnEqrBwB;ImEprBxB,wBnEorBwB;;EmEjrB1B;IACE,YnE+BM;ImE9BN,QnEqrBkB;;EoEvuBtB;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IAME;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAIF;IACE,SpEioBsB;IoEhoBtB,YpEzES;IoE0ET,OpEpES;IoEqET,QpEwlBW;IoEvlBX,epElDa;;EoEoDb;IACE;;E9D8BF;IACE,ONxGO;IMyGP,YN1EiB;IM2EjB,eNtFW;;EMwFX;IACE,SNkjBY;IMjjBZ;;EAEA;IACE,ONjHG;;EMoHL;IACE,ONtHG;IMuHH,cNpFQ;;EMuFV;IACE,ON3HG;IM4HH,aNzFQ;;EMgGV;IACE,ONnIG;IMoIH,YNzIG;;EM4ID;IACE,ONxID;;EM2ID;AAAA;IAEE,ON9ID;;EoEiFT;I9D5FA,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EoEqFT;IACE,SpEkmBkB;IoEjmBlB,YpE7FO;IoE8FP,QpE8lBgB;IoE7lBhB,YpE8lBgB;IoE7lBhB,WpEkkBQ;IoEjkBR,epEtEW;;EoEwEX;IACE,YpE5DI;IoE6DJ,QpE0lBgB;;EoEvlBlB;IACE,WpE2kBwB;;EoEtkB1B;IACE,OpEpDY;IoEqDZ,QpEpDa;IoEqDb,OpE3GK;IoE4GL,epE/CmB;IoEgDnB,YpEhFJ;IoEiFI;;EAEA;IACE,OpEjHG;IoEkHH,YpEtHG;;EoEyHL;I9D7JJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EoEwEV;IACE,SpE6jBgB;IoE5jBhB,YpElIK;IoEmIL,QpEyjBc;IoExjBd,YpEyjBc;;EoEvjBd;IACE,YpE/FE;IoEgGF,QpEujBc;;EoEpjBhB;IACE,WpEwiBsB;;EoEliBlB;IACE;IACA;;EAQA;IACE;;EAQR;IACE;IACA;;EAMI;IACE;;E9DSR;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;E+DhOV;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAKA;IACE;;EAEA;IACE,QrE6Wc;IqE5Wd,OrEMK;IqELL;IACA,erEyBS;IqExBT,YrEmCe;IqElCf;;EAEA;IACE,OrEDG;IqEEH,SrEwWa;IqEvWb,arEsWgB;;EqEpWhB;IACE,crE6BM;;EqE1BR;IACE,crEyBM;;EqElBR;I/DnDN,SNiFa;IMhFb;IACA;;E+DwDI;IACE,YrE7BG;IqE8BH,crE7BG;IqE8BH,OrEzBG;;EqE8BL;IACE,YrEtCG;IqEuCH,crErCG;IqEsCH,OrEjCG;IqEkCH;IACA;IACA;;EAIA;IACE,crE9CC;IqE+CD,YrEhDC;IqEiDD,OrE3CC;;EqEiDT;IACE,SrEooBkB;IqEnoBlB,QrE6TiB;IqE5TjB,YrE5DO;IqE6DP,OrEtDO;IqEuDP;IACA;IACA;IACA,4BrEtCW;IqEuCX,2BrEvCW;;EqEyCX;IACE;;EAGF;I/D7EF,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EqEuED;IACE,crErCI;;EqE2CZ;IACE,YrE7CI;IqE8CJ,QrEymBgB;;EqEtmBlB;IACE,SrEidoB;;EqE7cxB;IACE,erEqSe;;EsE1anB;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAME;IACE;IACA,YtEkBe;IsEjBf,etEMS;IsELT,YtEtBK;IsEuBL;;EAEA;IACE,OtEnBG;IsEoBH,QtEgnBU;IsE/mBV,YtE5BG;IsE6BH,WtEgnBe;IsE/mBf,QtEgnBgB;IsE/mBhB,atE+mBgB;IsE9mBhB,WtE+mBkB;IsE9mBlB;IACA,etE+mBsB;;EsE5mBxB;IACE,YtEGQ;IsEFR,OtEjCG;;EsEoCL;IhE5EJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EsERR;IACE,YnE9EM;ImE+EN,OnElFa;;EmEqFf;IACE,atE4lBoB;IsE3lBpB,OtEhDG;;EsEoDP;IACE;IACA,YtErBI;IsEsBJ;IACA;IACA;IACA;IACA;IACA;;EC3GN;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAKA;IACE,YvEHO;IuEIP,QvEyZe;IuExZf,cvEyZoB;;EuEvZpB;IACE,cvEyZiB;;EuEvZjB;IACE,QvEuZc;IuEtZd,cvEuZmB;IuEtZnB,cvEuZmB;IuEtZnB,YvEdG;IuEeH,OvETG;IuEUH,SvEgWa;IuE/Vb,avE8VgB;IuE7VhB,yBvESO;IuERP,wBvEQO;IuEPP,YvEkBa;IuEjBb,QvEoZc;IuEnZd;;EAEA;IACE,cvEgBM;;EuEbR;IjExDN,SNiFa;IMhFb;IACA;;EiE4DM;IACE,YvEnCC;IuEoCD,cvE/BC;IuEgCD,OvE/BC;;EuEoCH;IACE,YvE3CC;IuE4CD,cpEnFK;IoEoFL,OpEpFK;;EqEDf;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;AAAA;IAEE;;EAGF;IACE;;EAIF;IACE,SxEmrBoB;IwElrBpB,YxEZS;IwEaT,OxENS;IwEOT,QxEspBW;IwErpBX,exEYa;IwEXb,WxEkpBU;;EwEhpBV;IACE,YxEnBO;IwEoBP,QxEwqBgB;IwEvqBhB,YxEwqBgB;;EwErqBlB;IACE;;EAGF;IACE,SxEiqBkB;IwEhqBlB,YxE9BO;IwE+BP,QxE6pBgB;IwE5pBhB,YxE6pBgB;IwE5pBhB,exENW;;EwESb;IlEzCA,QN6GoB;;EM3GpB;IACE;;EAGF;IACE;;EAGF;IACE,ONCO;IMAP,YN+BiB;IM9BjB,eN+pBmB;;EM7pBnB;IACE,ONJK;IMKL,SN0pBY;IMzpBZ;;EAEA;IACE,ONTG;;EMYL;IACE,ONdG;IMeH,cNoBQ;;EMjBV;IACE,ONnBG;;EMyBP;IACE,OHhEe;IGiEf,YH9DQ;;EGiEN;IACE,OHrEW;;EGwEb;AAAA;IAEE,OH1EW;;EGgFf;IACE,YHxEW;;EG+Eb;IACE,ONlDG;IMmDH,YNxDG;;EM2DD;IACE,ONvDD;;EM0DD;AAAA;IAEE,ON5DD;;EMgEH;IACE,ONjEC;IMkED,YNvEC;;EM0EC;IACE,ONtEH;;EMyEC;AAAA;IAEE,ON5EH;;EMoFL;IACE,ONpFG;IMqFH,YN1FG;;EM6FD;IACE,ONzFD;;EM4FD;AAAA;IAEE,ON/FD;;EwEkCT;IACE,YxEDM;IwEEN,QxEqpBkB;;EwElpBpB;IACE,WxEsoB0B;;EwEpoB1B;IACE,OxEmoBwB;IwEloBxB,QxEkoBwB;;EyE5tB9B;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAIF;IACE,SzEwFa;IyEvFb,QzEulBoB;IyEtlBpB,ezE2Ca;;EyEzCb;IACE,YzEomBY;IyEnmBZ,QzEomBgB;IyEnmBhB,czEolBuB;IyEnlBvB,OzEmmBmB;;EyEjmBnB;IACE,OzEimBiB;;EyE7lBrB;IACE,YzE6lBe;IyE5lBf,QzE6lBmB;IyE5lBnB,czEykBuB;IyExkBvB,OzE4lBsB;;EyE1lBtB;IACE,OzE0lBoB;;EyEtlBxB;IACE,YzEslBe;IyErlBf,QzEslBmB;IyErlBnB,czE8jBuB;IyE7jBvB,OzEqlBsB;;EyEnlBtB;IACE,OzEmlBoB;;EyE/kBxB;IACE,YzE+kBa;IyE9kBb,QzE+kBiB;IyE9kBjB,czEmjBuB;IyEljBvB,OzE8kBoB;;EyE5kBpB;IACE,OzE4kBkB;;EyEvkBpB;IACE,YzEsHc;IyErHd,QzEukBmB;IyEtkBnB,czEuiBqB;IyEtiBrB,OzEoHqB;;EyElHrB;IACE,OzEiHmB;;EyE3GvB;IACE,YzEpCK;IyEqCL,QzE8jBkB;IyE7jBlB,czE0hBqB;IyEzhBrB,OzE4KoB;;EyE1KpB;IACE,OzEyKkB;;EyEpKxB;IACE,WzE8gBwB;IyE7gBxB,czEjBY;;EyEoBd;IACE,WzE0gBwB;;EyEtgBxB;IACE;;EC3GN;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA,YACE;;EAKJ;IACE;;EAIF;IACE,Q1E+iBc;I0E9iBd,e1EYa;;E0EVb;IACE,S1E4iBa;;E0EziBf;IACE,O1EqCc;I0EpCd,Q1EqCe;I0EpCf,e1E2CqB;I0E1CrB;IACA,Y1ESF;I0ERE;;EAEA;IACE;;EAGF;IpEnEF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E0ElBZ;IACE,Y1EgjBY;I0E/iBZ,Q1EgjBgB;I0E/iBhB,c1EshBiB;I0ErhBjB,O1E+iBmB;;E0E7iBnB;IACE,O1E6iBiB;;E0E1iBnB;IACE,O1EyiBiB;;E0EriBrB;IACE,Y1EqiBe;I0EpiBf,Q1EqiBmB;I0EpiBnB,c1EugBiB;I0EtgBjB,O1EoiBsB;;E0EliBtB;IACE,O1EkiBoB;;E0E/hBtB;IACE,O1E8hBoB;;E0E1hBxB;IACE,Y1E0hBe;I0EzhBf,Q1E0hBmB;I0EzhBnB,c1EwfiB;I0EvfjB,O1EyhBsB;;E0EvhBtB;IACE,O1EuhBoB;;E0EphBtB;IACE,O1EmhBoB;;E0E/gBxB;IACE,Y1E+gBa;I0E9gBb,Q1E+gBiB;I0E9gBjB,c1EyeiB;I0ExejB,O1E8gBoB;;E0E5gBpB;IACE,O1E4gBkB;;E0EzgBpB;IACE,O1EwgBkB;;E0EngBpB;IACE,Y1EkDc;I0EjDd,Q1EmgBmB;I0ElgBnB,c1Eyde;I0Exdf,O1EgDqB;;E0E9CrB;IACE,O1E6CmB;;E0E1CrB;IACE,O1EyCmB;;E0EnCvB;IACE,Y1E5GK;I0E6GL,Q1EsfkB;I0ErflB,c1Ewce;I0Evcf,O1EoGoB;;E0ElGpB;IACE,O1EiGkB;;E0E9FpB;IACE,O1E6FkB;;E0ExFxB;IACE,W1E4bkB;I0E3blB,a1E4boB;;E0EzbtB;IACE,W1EsbkB;I0ErblB,c1ElGY;;E0EqGd;IACE,O1EibkB;I0EhblB,Q1EgbkB;;E2ExmBtB;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;AAGF;EACA;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IACE,oBACE;IAEF,YACE;;EAIJ;IACE,oBACE;IAGF,YACE;;EAMJ;IACE,S3EqiBa;;E2EniBb;IACE,Q3E8hBU;I2E7hBV,Y3EgiBU;I2E/hBV,e3EvBW;;E2EyBX;IACE,S3E0hBS;I2EzhBT,c3E0hBa;;E2ExhBb;IACE,Q3EohBiB;;E2EjhBnB;IACE,W3E+gBY;;E2E7gBZ;IACE,O3E4gBU;I2E3gBV,Q3E2gBU;;E2EvgBd;IACE,a3E6gBe;;E2E1gBjB;IACE,Q3E0gBY;;E2EtgBhB;IACE,O3E6fc;I2E5fd,Q3E4fc;I2E3fd,e3EdmB;I2EenB;IACA,Y3EhDJ;I2EiDI;;EAEA;IACE;;EAGF;IrE5HJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E2EuCV;IACE,Y3EufU;I2EtfV,Q3Eufc;I2Etfd,c3E6de;I2E5df,O3EsfiB;;E2EpfjB;AAAA;IAEE,O3Emfe;;E2E/enB;IACE,Y3E+ea;I2E9eb,Q3E+eiB;I2E9ejB,c3Eide;I2Ehdf,O3E8eoB;;E2E5epB;AAAA;IAEE,O3E2ekB;;E2EvetB;IACE,Y3Euea;I2Eteb,Q3EueiB;I2EtejB,c3Eqce;I2Epcf,O3EseoB;;E2EpepB;AAAA;IAEE,O3EmekB;;E2E/dtB;IACE,Y3E+dW;I2E9dX,Q3E+de;I2E9df,c3Eybe;I2Exbf,O3E8dkB;;E2E5dlB;AAAA;IAEE,O3E2dgB;;E2EtdlB;IACE,Y3EKY;I2EJZ,Q3EsdiB;I2ErdjB,c3E4aa;I2E3ab,O3EGmB;;E2EDnB;AAAA;IAEE,O3EDiB;;E2EOrB;IACE,Y3EtJG;I2EuJH,Q3E4cgB;I2E3chB,c3E8Za;I2E7Zb,O3E0DkB;;E2ExDlB;AAAA;IAEE,O3EsDgB;;E4EpQ1B;IACE;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IAGE;IACA;;EAGF;IAGE;;EAGF;IACE;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;AAGF;AACA;EACA;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;IACA;;EAGF;AAAA;IAEE;IACA;;AAGF;EACA;IACE;IACA;IACA;;EAGF;IACE;IACA;;EAGF;AAAA;IAEE;IACA;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;AAAA;IAEE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EAGF;IAEE;IACA;IACA;IACA;;EAGF;IAEE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;AAGF;EACA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;AAGF;EACA;IACE;;EAGF;IACE;;EAGF;AAAA;IAEE;IACA;;EAGF;IACE;;AAGF;EACA;IACE;;EAGF;IACE;;EAKA;IACE,Q5EgfsB;I4E/etB,Y5EifkB;I4EhflB,O5E9PO;I4E+PP,O5EmfqB;I4ElfrB,Q5EmfsB;I4ElftB,Y5E/NF;I4EgOE,e5Ekf4B;;E4Ehf5B;IACE,W5EwesB;;E4ErexB;IACE,O5EoesB;I4EnetB,Q5EmesB;;E4EhexB;IACE,Y5EkeqB;I4EjerB,O5E/QK;;E4EmRT;IACE,Y5EkesB;I4EjetB,O5ErRO;I4EsRP,O5EseyB;I4ErezB,Q5Ese0B;I4Ere1B,Y5EtPF;I4EuPE,e5E/PW;I4EgQX,Q5E8d0B;;E4E5d1B;AAAA;IAEE,W5E2d0B;;E4Exd5B;IACE,O5E2csB;I4E1ctB,Q5E0csB;;E4EtctB;IACE,Y5EkduB;I4EjdvB,O5EzSG;;E4E8ST;IACE,Y5EidgB;I4EhdhB,O5EhTO;I4EiTP,S5EidqB;;E4E9cvB;IACE,S5E+cwB;;E4E5ctB;IACE,kB5EtTG;I4EuTH,O5E8ciB;I4E7cjB,Q5E8ckB;I4E7clB,Y5E1RN;I4E2RM,e5E0cwB;;E4ExcxB;IACE,Y5E5TC;;E4EiUH;IACE,YzEpWI;IyEqWJ,OzExWW;;EyEgXjB;IACE,c5ExSU;;E4E8SZ;IACE,e5E/SU;;E4EoTZ;IACE,Y5E6auB;;E4E1arB;IACE,Y5E0akB;;E4ExalB;IACE,Y5EwaqB;;E4EnavB;IACE,YzExYE;IyEyYF,OzE5YS;;EyEmZnB;IACE,Y5E2Z2B;I4E1Z3B,S5E2ZgC;;E4EzZhC;AAAA;IAEE,Q5EhVU;I4EiVV,kB5EuZyB;I4EtZzB,O5E1XK;I4E2XL,O5E0Z4B;I4EzZ5B,Q5E0Z6B;I4EzZ7B,Y5E3VJ;I4E4VI,e5EsZmC;;E4EpZnC;AAAA;IACE,Y5EiZ4B;I4EhZ5B,O5ElYG;;E4EsYP;IACE;;EAEA;ItE5aJ,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;E4EyVd;IACE;;EC1bF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;;EAGF;IACE;;EAEF;IACE;;EAEF;AAAA;IAEE;IACA;;EAIF;IACE;;EAGF;IACE;IACA,O7EizB2B;I6EhzB3B,Y7ELA;;E6EOA;IACE,O7EqzB6B;I6EpzB7B,Q7EozB6B;;E6E9yB7B;IACE,kB7EsyBoB;;E6EjyB1B;IACE,S7E8xB2B;;E6E3xB7B;IACE,O7E8xB4B;I6E7xB5B,kB7E4xByB;I6E3xBzB,O7E+xB4B;I6E9xB5B,Q7E+xB6B;I6E9xB7B,e7EgyBmC;I6E/xBnC,Y7E/BA;I6EgCA,c7E1Bc;;E6E4Bd;IACE;;EAGF;IACE,O7EmxB+B;I6ElxB/B,kB7EixB4B;;E6E9wB9B;IACE,W7EixB6B;;E6E9wB/B;IACE,O7E6wB6B;I6E5wB7B,Q7E4wB6B;;E8Ex4BjC;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAIF;IACE,kB9EES;I8EDT,e9EyBa;;E8EvBb;IACE;IACA;IACA;;EAEA;IACE;;EAIJ;IACE;IACA;IACA;;EAEA;IACE;;EAMJ;IACE;;ECnEJ;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;;EAIF;IACE,Y5ElCa;I4EmCb,O5E3BiB;I4E4BjB,W/EkuBc;I+EjuBd,a/EguBgB;I+E/tBhB,W/E6tBc;I+E5tBd,Q/E6tBY;I+E5tBZ,a/E4tBY;;E+E1tBZ;IACE,kB/EkJgB;I+EjJhB,O/EkJuB;;E+E/IzB;IACE,kB/EmKc;I+ElKd,O/EmKqB;;E+EhKvB;IACE,kB/EmJW;I+ElJX,O/EmJkB;;E+EhJpB;IACE,kB/EuKc;I+EtKd,O/EuKqB;;E+EpKvB;IACE,kB/EwLa;I+EvLb,O/EwLoB;;E+EpLpB;IACE,kB/EwHc;I+EvHd,O/EwHqB;;E+ErHvB;IACE,kB/E1BK;I+E2BL,O/EwLoB;;E+EpLxB;IACE;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;;EC3FJ;IACE;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,ehFqDa;;EiFjEf;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAIF;IACE,kBjFiBS;IiFhBT,OjFoBS;IiFnBT,ejFozBiB;IiFnzBjB;;EAEA;IACE;IACA;IACA;;EAGF;IACE,cjF2CY;;EiFxCd;IACE;IACA;IACA;IACA,cjFoCY;;EiFjCd;IACE,ajFgCY;IiF/BZ,ejFiBW;IiFhBX,YjFwBF;IiFvBE;;EAEA;I3EhDF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EiFtCV;IACE;;EC3DN;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAKA;IACE,SlFyFW;IkFxFX,elF6CW;IkF5CX,YlF+CF;IkF9CE;;EAEA;IACE,YlFeK;IkFdL,OlFmBK;;EkFhBP;I5EzBF,SNuFa;IMtFb,gBNuFmB;IMtFnB,YNwFY;;EmF9Fd;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;;EAIF;IACE;;EAEA;IACE,YnFDO;ImFEP,enFsBW;;EmFnBb;IACE,QnF6oBgB;ImF5oBhB,YhFjDW;;EgFqDX;IACE,KnF0BU;;EmFvBZ;IACE,YhF1DS;IgF2DT;IACA;IACA;;EAGF;IACE;IACA;;EAGF;IACE,KnFUU;;EmFPZ;IACE;;EAIJ;IACE;;EAEA;IACE;;EAGF;IACE,wBnFpBS;ImFqBT,2BnFrBS;;EmFwBX;IACE,yBnFzBS;ImF0BT,4BnF1BS;;EmF8Bb;IACE;;EAEA;IACE;IACA;;EAGF;IACE,wBnFvCS;ImFwCT,yBnFxCS;;EmF2CX;IACE,2BnF5CS;ImF6CT,4BnF7CS;;EoFnEf;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;;EAIF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IAEA;IACA;;EAGF;IACE;MACE;MACA;;IAEF;MACE;MACA;;IAEF;MACE;MACA;;;EAGJ;IACE;MACE;MACA;;IAEF;MACE;MACA;;IAEF;MACE;MACA;;;EAIJ;IACE;MACE;MACA;;IAEF;MACE;MACA;;IAEF;MACE;MACA;;;EAGJ;IACE;MACE;MACA;;IAEF;MACE;MACA;;IAEF;MACE;MACA;;;EAKJ;IACE,QpF2kBkB;IoF1kBlB,QpFykBkB;IoFxkBlB,YpF1ES;IoF2ET,epFnDa;;EoFqDb;IACE;IACA;IACA,YjF1HW;;EiF6Hb;IACE,OjFtHe;IiFuHf,apF6jBgB;;EqF7rBpB;IACE;IACA;IACA;IACA;IACA;;EAGF;IACE;IACA;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAIF;IACE;;EAGF;IACE;IACA;IACA,QrF2mBsB;IqF1mBtB,WACE;IAEF;;EAGF;IACE;MACE;;;EAIJ;IACE;MACE;MACA;;IAEF;MACE;MACA;;IAEF;MACE;MACA;;;EAIJ;IACE;MAEE,QrF4kBoB;;IqF1kBtB;MACE,QrF6jBmB;;IqF3jBrB;MACE,QrF8jBsB;;IqF5jBxB;MAEE,QrF8jBsB;;;EsFzoB1B;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;MACE;MACA;;;ECzBJ;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIF;IACE,OvFozBe;IuFnzBf,QvFozBgB;IuFnzBhB,evFozBsB;IuFnzBtB,YvFsHmB;IuFrHnB,YvFoCA;;EuFlCA;IACE,YvF2yBU;;EuFzyBV;IACE,YvFyyBa;;EuFryBjB;IACE,WvFwyBgB;IuFvyBhB,OvFVO;;EuFYP;IACE,OvFoyBc;IuFnyBd,QvFmyBc;;EwF11BpB;IACE;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;MACE;;IAEF;MACE;;;EAKJ;IACE,kBxFQS;IwFPT,exF+Ba;;EwF7Bb;IACE;;ECrCJ;IACE;IACA;IACA;;EAGF;AAAA;AAAA;IAGE;;EAGF;IACE;;EAIF;IACE,YtFnBa;IsFoBb,OtFZiB;IsFajB,WzFivBc;IyFhvBd,azF+uBgB;IyF9uBhB,SzFivBW;IyFhvBX,ezF0Ca;;EyFxCb;IACE,kBzFwLc;IyFvLd,OzFwLqB;;EyFrLvB;IACE,kBzFwKW;IyFvKX,OzFwKkB;;EyFrKpB;IACE,kBzF4Lc;IyF3Ld,OzF4LqB;;EyFzLvB;IACE,kBzF6Ma;IyF5Mb,OzF6MoB;;EyFzMpB;IACE,kBzF6Ic;IyF5Id,OzF6IqB;;EyF1IvB;IACE,kBzFLK;IyFML,OzF6MoB;;EyFzMxB;IACE,WzF2sBY;;EyFzsBZ;IACE;;EAGF;IACE,OzFosBU;IyFnsBV,QzFmsBU;;E0FvwBhB;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;IACA;IACA;IACA;;EAGF;IACE;;EAIF;IACE,Y1FeS;I0FdT,O1FqBS;I0FpBT,Q1FqYmB;I0FpYnB,S1FwYoB;;E0FtYpB;IACE;IACA;IACA,W1F8EgB;;;A2FzGpB;EACE;IACE;;EAGF;AAAA;IAEE,YACE;;EAOA;IACE,YACE;;EAUF;IACE,YACE;;EAWJ;IACE,YACE;;EASR;IACE,kBxFzDS;;EwF8DX;IACE,kBxF/DS;;EwFoEX;IArEF,YACE;;EAwEA;IAzEF,YACE;;EA4EA;IA7EF,YACE;;EAgFA;IAjFF,YACE;;EAoFA;IArFF,YACE;;EAwFA;IAzFF,YACE;;EA4FA;IA7FF,YACE;;EAoGI;IACE;;EAGF;IACE;;EAON;IAjHF,YACE;;EAqHF;IACE;;EAGF;IACE;;EAGF;AAAA;IAEE,YACE;;EAUE;IACE,YxF3IK;IwF4IL,OxFpIS;;EwF6IX;IACE,YxFtJK;IwFuJL,OxF/IS;;;AAgBjB;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AAGF;AACE;AACA;EAEA;;AAGF;EACE,YAjCe,SAiCgB;EAC/B;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE,YAhDe,SAgDgB;;AAGjC;EACE;;AAGF;EACE;EACA;EACA,OA1De,SA0DW;;AAG5B;EACE,YA9De,SA8DgB;EAC/B;;AAGF;EACE,OAnEe,SAmEW;EAC1B;EACA;EACA;EACA,YACE;EAIF;EACA;EACA;;AAGF;EACE;EACA,OAnFe,SAmFW;EAC1B;;AAGF;EACE;EACA,OAzFe,SAyFW;EAC1B;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EAGE,YAhIe,SAgIgB;EAC/B;EACA;EACA,YACE;;AAMJ;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;AAAA;AAAA;EASE;EACA;EACA,OA7Je,SA6JW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA,OA3Ke,SA2KW;;AAG5B;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE,YA1Me,SA0MgB;EAC/B;EACA;;AAGF;EACE;EACA;;AAGF;EACE,YArNe,SAqNgB;;AAGjC;EACE;EACA;;AAGF;EACE;EACA;EACA,YAhOe,SAgOgB;EAC/B;;AAGF;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;;AAKJ;EAKE;;AAGF;EAKE;EACA;EACA;;AAGF;EAKE;EACA;EACA;;AAGF;EACE;EACA;EACA,YA3Re,SA2RgB;EAC/B;EACA;;AAGF;EACE,OAjSe,SAiSW;EAC1B;EACA;;AAGF;EAIE,OA1Se,SA0SW;;AAG5B;EAIE;EACA;;AAGF;EACE;EACA;;AAGF;EACE,YA3Te,SA2TgB;;AAGjC;EACE,OA/Te,SA+TW;EAC1B;EACA;EACA;EACA,YACE;EAIF;;AAGF;EACE;EACA,OA7Ue,SA6UW;EAC1B;;AAGF;EACE;EACA,OAnVe,SAmVW;EAC1B;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA,OA/Ve,SA+VW;EAC1B;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;AAAA;AAAA;EAGE,YAjYe,SAiYgB;EAC/B;EACA;EACA,YACE;;AAMJ;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;AAAA;AAAA;EASE;EACA;EACA,OA9Ze,SA8ZW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA,OA5ae,SA4aW;;AAG5B;AAAA;AAAA;EASE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA,oCAGG","file":"theme.css"} \ No newline at end of file diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 7db3e16..a12e86d 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -18,6 +18,7 @@ along with this program. If not, see . + + + + diff --git a/frontend/src/i18n/translations/de.json b/frontend/src/i18n/translations/de.json index dd3cd8a..b68a9fe 100644 --- a/frontend/src/i18n/translations/de.json +++ b/frontend/src/i18n/translations/de.json @@ -272,5 +272,17 @@ }, "notFound": "Nicht gefunden, wonach du suchst?", "contact": "Kontakt aufnehmen" + }, + "footer": { + "commitInfo": { + "tooltip": "Version", + "title": "Version", + "description": "Zeigt die Commit-ID der verwendeten Frontend-Version des HTWKalenders an. Für Debbugger und Entwickler.", + "hash": "Commit-Hash", + "component": "Komponente", + "components":{ + "frontend": "Frontend" + } + } } } diff --git a/frontend/src/i18n/translations/en.json b/frontend/src/i18n/translations/en.json index 3e528ce..3185e3d 100644 --- a/frontend/src/i18n/translations/en.json +++ b/frontend/src/i18n/translations/en.json @@ -272,5 +272,17 @@ }, "notFound": "Not finding what you're looking for?", "contact": "Get in touch" + }, + "footer": { + "commitInfo": { + "tooltip": "application version", + "title": "application version", + "description": "Shows the commit id of the deployed frontend version of the HTWKalender. For debuggers and developers.", + "hash": "commit hash", + "component": "component", + "components":{ + "frontend": "frontend" + } + } } } diff --git a/frontend/src/main.ts b/frontend/src/main.ts index e6f0b78..33f340b 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -54,6 +54,8 @@ import ProgressSpinner from "primevue/progressspinner"; import Checkbox from "primevue/checkbox"; import Skeleton from "primevue/skeleton"; import Calendar from "primevue/calendar"; +import OverlayPanel from "primevue/overlaypanel"; +import Tooltip from "primevue/tooltip"; import i18n from "./i18n"; import { VueQueryPlugin } from "@tanstack/vue-query"; import { Router } from "vue-router"; @@ -144,6 +146,8 @@ export const createApp = ViteSSG( app.component("Checkbox", Checkbox); app.component("Skeleton", Skeleton); app.component("Calendar", Calendar); + app.component("OverlayPanel", OverlayPanel); + app.directive("tooltip", Tooltip); }, ); diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts index 5d1acc1..6dd6d71 100644 --- a/frontend/src/vite-env.d.ts +++ b/frontend/src/vite-env.d.ts @@ -15,3 +15,6 @@ //along with this program. If not, see . /// + +// __COMMIT_HASH__ is replaced by the commit hash at build time +declare const __COMMIT_HASH__: string; diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 9400d7d..719f22f 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -23,9 +23,18 @@ import terser from "@rollup/plugin-terser"; import generateSitemap from "vite-ssg-sitemap"; import vueDevTools from "vite-plugin-vue-devtools"; import { ViteSSGOptions } from "vite-ssg"; +import fs from "fs"; const hostname = "https://cal.htwk-leipzig.de"; +// fallback +let commitHash = "unknown" +if (fs.existsSync('.env.commit')) { + const env = fs.readFileSync('.env.commit', 'utf-8') + const match = env.match(/COMMIT_HASH=(.+)/) + if (match) commitHash = match[1] +} + // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue(), resolve(), terser(), vueDevTools()], @@ -45,6 +54,9 @@ export default defineConfig({ ".scss", ], }, + define: { + __COMMIT_HASH__: JSON.stringify(commitHash), + }, ssgOptions: { script: "async", formatting: "minify", diff --git a/services/data-manager/migrations/1687801090_initial_superuser.go b/services/data-manager/migrations/1687801090_initial_superuser.go new file mode 100644 index 0000000..5f8541c --- /dev/null +++ b/services/data-manager/migrations/1687801090_initial_superuser.go @@ -0,0 +1,31 @@ +package migrations + +import ( + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + superusers, err := app.FindCollectionByNameOrId(core.CollectionNameSuperusers) + if err != nil { + return err + } + + record := core.NewRecord(superusers) + + // note: the values can be eventually loaded via os.Getenv(key) + // or from a special local config file + record.Set("email", "demo@htwkalender.de") + record.Set("password", "htwkalender-demo") + + return app.Save(record) + }, func(app core.App) error { // optional revert operation + record, _ := app.FindAuthRecordByEmail(core.CollectionNameSuperusers, "demo@htwkalender.de") + if record == nil { + return nil // probably already deleted + } + + return app.Delete(record) + }) +} diff --git a/services/data-manager/migrations/1695150679_collections_snapshot.go b/services/data-manager/migrations/1695150679_collections_snapshot.go deleted file mode 100644 index 4e2da1a..0000000 --- a/services/data-manager/migrations/1695150679_collections_snapshot.go +++ /dev/null @@ -1,399 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "_pb_users_auth_", - "created": "2023-09-19 17:30:50.598Z", - "updated": "2023-09-19 17:31:15.957Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "unique": false, - "options": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "requireEmail": false - } - }, - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-09-19 17:31:15.957Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-09-19 17:31:15.957Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "unique": false, - "options": {} - } - ], - "indexes": [], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-09-19 17:31:15.958Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "7vsr9h6p", - "name": "Start", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "wwpokofe", - "name": "End", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_orp1NWL` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Day` + "`" + `,\n ` + "`" + `Week` + "`" + `,\n ` + "`" + `Start` + "`" + `,\n ` + "`" + `End` + "`" + `,\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `Prof` + "`" + `,\n ` + "`" + `Rooms` + "`" + `,\n ` + "`" + `EventType` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - } - ]` - - var collections []*models.Collection - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1695151278_add_admin_account.go b/services/data-manager/migrations/1695151278_add_admin_account.go deleted file mode 100644 index f5cde04..0000000 --- a/services/data-manager/migrations/1695151278_add_admin_account.go +++ /dev/null @@ -1,50 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - admin := &models.Admin{} - admin.Email = "demo@htwkalender.de" - err := admin.SetPassword("htwkalender-demo") - if err != nil { - return err - } - - return dao.SaveAdmin(admin) - }, func(db dbx.Builder) error { // optional revert operation - - dao := daos.New(db) - - admin, _ := dao.FindAdminByEmail("test@example.com") - if admin != nil { - return dao.DeleteAdmin(admin) - } - - // already deleted - return nil - }) -} diff --git a/services/data-manager/migrations/1697532023_collections_snapshot.go b/services/data-manager/migrations/1697532023_collections_snapshot.go deleted file mode 100644 index de0e401..0000000 --- a/services/data-manager/migrations/1697532023_collections_snapshot.go +++ /dev/null @@ -1,400 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-09-19 17:31:15.957Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-17 08:37:17.943Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "unique": false, - "options": {} - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-09-19 17:31:15.958Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "7vsr9h6p", - "name": "Start", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "wwpokofe", - "name": "End", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_orp1NWL` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Day` + "`" + `,\n ` + "`" + `Week` + "`" + `,\n ` + "`" + `Start` + "`" + `,\n ` + "`" + `End` + "`" + `,\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `Prof` + "`" + `,\n ` + "`" + `Rooms` + "`" + `,\n ` + "`" + `EventType` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2023-10-08 16:32:34.131Z", - "updated": "2023-10-08 16:32:34.315Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "unique": false, - "options": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "requireEmail": false - } - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1697570688_collections_snapshot.go b/services/data-manager/migrations/1697570688_collections_snapshot.go deleted file mode 100644 index bc8621d..0000000 --- a/services/data-manager/migrations/1697570688_collections_snapshot.go +++ /dev/null @@ -1,400 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-17 10:50:08.270Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-10-17 18:47:10.221Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "unique": false, - "options": {} - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-10-17 10:50:08.270Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "7vsr9h6p", - "name": "Start", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "wwpokofe", - "name": "End", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_orp1NWL` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Day` + "`" + `,\n ` + "`" + `Week` + "`" + `,\n ` + "`" + `Start` + "`" + `,\n ` + "`" + `End` + "`" + `,\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `Prof` + "`" + `,\n ` + "`" + `Rooms` + "`" + `,\n ` + "`" + `EventType` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2023-09-22 09:31:11.498Z", - "updated": "2023-10-17 10:50:08.270Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "unique": false, - "options": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "requireEmail": false - } - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1698017941_updated_events.go b/services/data-manager/migrations/1698017941_updated_events.go deleted file mode 100644 index 6756ccc..0000000 --- a/services/data-manager/migrations/1698017941_updated_events.go +++ /dev/null @@ -1,68 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - // add - new_uuid := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }`), new_uuid) - collection.Schema.AddField(new_uuid) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - // remove - collection.Schema.RemoveField("0kahthzr") - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1698770845_updated_events.go b/services/data-manager/migrations/1698770845_updated_events.go deleted file mode 100644 index 2b8fde5..0000000 --- a/services/data-manager/migrations/1698770845_updated_events.go +++ /dev/null @@ -1,157 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[]`), &collection.Indexes) - - // remove - collection.Schema.RemoveField("7vsr9h6p") - - // remove - collection.Schema.RemoveField("wwpokofe") - - // add - new_start := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "6hkjwgb4", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }`), new_start) - collection.Schema.AddField(new_start) - - // add - new_end := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "szbefpjf", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }`), new_end) - collection.Schema.AddField(new_end) - - // add - new_Compulsory := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "nlnnxu7x", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }`), new_Compulsory) - collection.Schema.AddField(new_Compulsory) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[ - "CREATE UNIQUE INDEX `+"`"+`idx_orp1NWL`+"`"+` ON `+"`"+`events`+"`"+` (\n `+"`"+`Day`+"`"+`,\n `+"`"+`Week`+"`"+`,\n `+"`"+`Start`+"`"+`,\n `+"`"+`End`+"`"+`,\n `+"`"+`Name`+"`"+`,\n `+"`"+`course`+"`"+`,\n `+"`"+`Prof`+"`"+`,\n `+"`"+`Rooms`+"`"+`,\n `+"`"+`EventType`+"`"+`\n)" - ]`), &collection.Indexes) - - // add - del_Start := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "7vsr9h6p", - "name": "Start", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }`), del_Start) - collection.Schema.AddField(del_Start) - - // add - del_End := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "wwpokofe", - "name": "End", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }`), del_End) - collection.Schema.AddField(del_End) - - // remove - collection.Schema.RemoveField("6hkjwgb4") - - // remove - collection.Schema.RemoveField("szbefpjf") - - // remove - collection.Schema.RemoveField("nlnnxu7x") - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1698770863_updated_events.go b/services/data-manager/migrations/1698770863_updated_events.go deleted file mode 100644 index fd2f613..0000000 --- a/services/data-manager/migrations/1698770863_updated_events.go +++ /dev/null @@ -1,53 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[ - "CREATE INDEX `+"`"+`idx_4vOTAiC`+"`"+` ON `+"`"+`events`+"`"+` (\n `+"`"+`Name`+"`"+`,\n `+"`"+`course`+"`"+`,\n `+"`"+`start`+"`"+`,\n `+"`"+`end`+"`"+`,\n `+"`"+`semester`+"`"+`,\n `+"`"+`EventType`+"`"+`,\n `+"`"+`Compulsory`+"`"+`\n)" - ]`), &collection.Indexes) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("7her4515qsmrxe8") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[]`), &collection.Indexes) - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1698770891_collections_snapshot.go b/services/data-manager/migrations/1698770891_collections_snapshot.go deleted file mode 100644 index feb273a..0000000 --- a/services/data-manager/migrations/1698770891_collections_snapshot.go +++ /dev/null @@ -1,447 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "_pb_users_auth_", - "created": "2023-09-20 10:23:59.315Z", - "updated": "2023-10-17 22:18:39.192Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "presentable": false, - "unique": false, - "options": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "requireEmail": false - } - }, - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-21 16:53:51.811Z", - "updated": "2023-10-17 22:18:39.190Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-21 16:53:51.812Z", - "updated": "2023-10-17 22:18:39.191Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "presentable": false, - "unique": false, - "options": {} - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-28 12:07:17.340Z", - "updated": "2023-10-31 16:47:43.090Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "6hkjwgb4", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "szbefpjf", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "nlnnxu7x", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1700512738_updated_feeds.go b/services/data-manager/migrations/1700512738_updated_feeds.go deleted file mode 100644 index 0a1bc52..0000000 --- a/services/data-manager/migrations/1700512738_updated_feeds.go +++ /dev/null @@ -1,68 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("d65h4wh7zk13gxp") - if err != nil { - return err - } - - // add - new_retrieved := &schema.SchemaField{} - json.Unmarshal([]byte(`{ - "system": false, - "id": "wmmney8x", - "name": "retrieved", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }`), new_retrieved) - collection.Schema.AddField(new_retrieved) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("d65h4wh7zk13gxp") - if err != nil { - return err - } - - // remove - collection.Schema.RemoveField("wmmney8x") - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1700512916_collections_snapshot.go b/services/data-manager/migrations/1700512916_collections_snapshot.go deleted file mode 100644 index deb0aaa..0000000 --- a/services/data-manager/migrations/1700512916_collections_snapshot.go +++ /dev/null @@ -1,460 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-11-01 21:17:43.567Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2023-11-20 20:38:58.258Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "presentable": false, - "unique": false, - "options": {} - }, - { - "system": false, - "id": "wmmney8x", - "name": "retrieved", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2023-11-01 21:17:43.567Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "6hkjwgb4", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "szbefpjf", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "nlnnxu7x", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2023-11-01 21:17:43.390Z", - "updated": "2023-11-01 21:17:43.567Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "presentable": false, - "unique": false, - "options": { - "maxSelect": 1, - "maxSize": 5242880, - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "requireEmail": false - } - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1706827339_collections_snapshot.go b/services/data-manager/migrations/1706827339_collections_snapshot.go deleted file mode 100644 index 62b66f8..0000000 --- a/services/data-manager/migrations/1706827339_collections_snapshot.go +++ /dev/null @@ -1,477 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2024-02-01 22:35:50.512Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": true, - "presentable": false, - "unique": false, - "options": { - "min": 2, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "bdhcrksy", - "name": "semester", - "type": "text", - "required": true, - "presentable": false, - "unique": false, - "options": { - "min": 2, - "max": 2, - "pattern": "ws|ss" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (` + "`" + `course` + "`" + `)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2024-02-01 13:34:43.834Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "presentable": false, - "unique": false, - "options": { - "maxSize": 2000000 - } - }, - { - "system": false, - "id": "wmmney8x", - "name": "retrieved", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2024-02-01 13:34:43.833Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "6hkjwgb4", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "szbefpjf", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "nlnnxu7x", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2024-02-01 13:34:43.663Z", - "updated": "2024-02-01 13:34:43.833Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "presentable": false, - "unique": false, - "options": { - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "maxSelect": 1, - "maxSize": 5242880, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "onlyVerified": false, - "requireEmail": false - } - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1706827586_updated_groups.go b/services/data-manager/migrations/1706827586_updated_groups.go deleted file mode 100644 index 643ba94..0000000 --- a/services/data-manager/migrations/1706827586_updated_groups.go +++ /dev/null @@ -1,55 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("cfq9mqlmd97v8z5") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[ - "CREATE UNIQUE INDEX `+"`"+`idx_rcaN2Oq`+"`"+` ON `+"`"+`groups`+"`"+` (\n `+"`"+`course`+"`"+`,\n `+"`"+`semester`+"`"+`\n)" - ]`), &collection.Indexes) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("cfq9mqlmd97v8z5") - if err != nil { - return err - } - - json.Unmarshal([]byte(`[ - "CREATE UNIQUE INDEX `+"`"+`idx_rcaN2Oq`+"`"+` ON `+"`"+`groups`+"`"+` (`+"`"+`course`+"`"+`)" - ]`), &collection.Indexes) - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1720871249_collections_snapshot.go b/services/data-manager/migrations/1720871249_collections_snapshot.go deleted file mode 100644 index 4075f65..0000000 --- a/services/data-manager/migrations/1720871249_collections_snapshot.go +++ /dev/null @@ -1,461 +0,0 @@ -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models" -) - -func init() { - m.Register(func(db dbx.Builder) error { - jsonData := `[ - { - "id": "cfq9mqlmd97v8z5", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2024-07-13 11:37:49.151Z", - "name": "groups", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "85msl21p", - "name": "university", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "2sii4dtp", - "name": "shortcut", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "uiwgo28f", - "name": "groupId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "y0l1lrzs", - "name": "course", - "type": "text", - "required": true, - "presentable": false, - "unique": false, - "options": { - "min": 2, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "kr62mhbz", - "name": "faculty", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "ya6znpez", - "name": "facultyId", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "bdhcrksy", - "name": "semester", - "type": "text", - "required": true, - "presentable": false, - "unique": false, - "options": { - "min": 2, - "max": 2, - "pattern": "ws|ss" - } - } - ], - "indexes": [ - "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (\n ` + "`" + `course` + "`" + `,\n ` + "`" + `semester` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "d65h4wh7zk13gxp", - "created": "2023-09-19 17:31:15.957Z", - "updated": "2024-07-13 11:37:49.145Z", - "name": "feeds", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "cowxjfmc", - "name": "modules", - "type": "json", - "required": true, - "presentable": false, - "unique": false, - "options": { - "maxSize": 2000000 - } - }, - { - "system": false, - "id": "wmmney8x", - "name": "retrieved", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - } - ], - "indexes": [], - "listRule": null, - "viewRule": "", - "createRule": null, - "updateRule": "", - "deleteRule": null, - "options": {} - }, - { - "id": "7her4515qsmrxe8", - "created": "2023-09-19 17:31:15.958Z", - "updated": "2024-07-13 11:37:49.145Z", - "name": "events", - "type": "base", - "system": false, - "schema": [ - { - "system": false, - "id": "m8ne8e3m", - "name": "Day", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "xnsxqp7j", - "name": "Week", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "aeuskrjo", - "name": "Name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "klrzqyw0", - "name": "EventType", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "5zltexoy", - "name": "Prof", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "gy3nvfmx", - "name": "Rooms", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "hn7b8dfy", - "name": "Notes", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "axskpwm8", - "name": "BookedAt", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vyyefxp7", - "name": "course", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "vlbpm9fz", - "name": "semester", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "0kahthzr", - "name": "uuid", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "6hkjwgb4", - "name": "start", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "szbefpjf", - "name": "end", - "type": "date", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": "", - "max": "" - } - }, - { - "system": false, - "id": "nlnnxu7x", - "name": "Compulsory", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - } - ], - "indexes": [ - "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" - ], - "listRule": null, - "viewRule": null, - "createRule": null, - "updateRule": null, - "deleteRule": null, - "options": {} - }, - { - "id": "_pb_users_auth_", - "created": "2024-07-13 11:37:48.913Z", - "updated": "2024-07-13 11:37:49.145Z", - "name": "users", - "type": "auth", - "system": false, - "schema": [ - { - "system": false, - "id": "users_name", - "name": "name", - "type": "text", - "required": false, - "presentable": false, - "unique": false, - "options": { - "min": null, - "max": null, - "pattern": "" - } - }, - { - "system": false, - "id": "users_avatar", - "name": "avatar", - "type": "file", - "required": false, - "presentable": false, - "unique": false, - "options": { - "mimeTypes": [ - "image/jpeg", - "image/png", - "image/svg+xml", - "image/gif", - "image/webp" - ], - "thumbs": null, - "maxSelect": 1, - "maxSize": 5242880, - "protected": false - } - } - ], - "indexes": [], - "listRule": "id = @request.auth.id", - "viewRule": "id = @request.auth.id", - "createRule": "", - "updateRule": "id = @request.auth.id", - "deleteRule": "id = @request.auth.id", - "options": { - "allowEmailAuth": true, - "allowOAuth2Auth": true, - "allowUsernameAuth": true, - "exceptEmailDomains": null, - "manageRule": null, - "minPasswordLength": 8, - "onlyEmailDomains": null, - "onlyVerified": false, - "requireEmail": false - } - } - ]` - - collections := []*models.Collection{} - if err := json.Unmarshal([]byte(jsonData), &collections); err != nil { - return err - } - - return daos.New(db).ImportCollections(collections, true, nil) - }, func(db dbx.Builder) error { - return nil - }) -} diff --git a/services/data-manager/migrations/1720871405_updated_feeds.go b/services/data-manager/migrations/1720871405_updated_feeds.go deleted file mode 100644 index 1a9e561..0000000 --- a/services/data-manager/migrations/1720871405_updated_feeds.go +++ /dev/null @@ -1,51 +0,0 @@ -package migrations - -import ( - "encoding/json" - - "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase/daos" - m "github.com/pocketbase/pocketbase/migrations" - "github.com/pocketbase/pocketbase/models/schema" -) - -func init() { - m.Register(func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("d65h4wh7zk13gxp") - if err != nil { - return err - } - - // add - new_deleted := &schema.SchemaField{} - if err := json.Unmarshal([]byte(`{ - "system": false, - "id": "5d7vjjgo", - "name": "deleted", - "type": "bool", - "required": false, - "presentable": false, - "unique": false, - "options": {} - }`), new_deleted); err != nil { - return err - } - collection.Schema.AddField(new_deleted) - - return dao.SaveCollection(collection) - }, func(db dbx.Builder) error { - dao := daos.New(db) - - collection, err := dao.FindCollectionByNameOrId("d65h4wh7zk13gxp") - if err != nil { - return err - } - - // remove - collection.Schema.RemoveField("5d7vjjgo") - - return dao.SaveCollection(collection) - }) -} diff --git a/services/data-manager/migrations/1745249435_collections_snapshot.go b/services/data-manager/migrations/1745249435_collections_snapshot.go new file mode 100644 index 0000000..1b8214e --- /dev/null +++ b/services/data-manager/migrations/1745249435_collections_snapshot.go @@ -0,0 +1,1273 @@ +package migrations + +import ( + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +func init() { + m.Register(func(app core.App) error { + jsonData := `[ + { + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "85msl21p", + "max": 0, + "min": 0, + "name": "university", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "2sii4dtp", + "max": 0, + "min": 0, + "name": "shortcut", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "uiwgo28f", + "max": 0, + "min": 0, + "name": "groupId", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "y0l1lrzs", + "max": 0, + "min": 2, + "name": "course", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "kr62mhbz", + "max": 0, + "min": 0, + "name": "faculty", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "ya6znpez", + "max": 0, + "min": 0, + "name": "facultyId", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "bdhcrksy", + "max": 2, + "min": 2, + "name": "semester", + "pattern": "ws|ss", + "presentable": false, + "primaryKey": false, + "required": true, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "cfq9mqlmd97v8z5", + "indexes": [ + "CREATE UNIQUE INDEX ` + "`" + `idx_rcaN2Oq` + "`" + ` ON ` + "`" + `groups` + "`" + ` (\n ` + "`" + `course` + "`" + `,\n ` + "`" + `semester` + "`" + `\n)" + ], + "listRule": null, + "name": "groups", + "system": false, + "type": "base", + "updateRule": null, + "viewRule": null + }, + { + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "cowxjfmc", + "maxSize": 2000000, + "name": "modules", + "presentable": false, + "required": true, + "system": false, + "type": "json" + }, + { + "hidden": false, + "id": "wmmney8x", + "max": "", + "min": "", + "name": "retrieved", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "5d7vjjgo", + "name": "deleted", + "presentable": false, + "required": false, + "system": false, + "type": "bool" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "d65h4wh7zk13gxp", + "indexes": [], + "listRule": null, + "name": "feeds", + "system": false, + "type": "base", + "updateRule": "", + "viewRule": "" + }, + { + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "m8ne8e3m", + "max": 0, + "min": 0, + "name": "Day", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "xnsxqp7j", + "max": 0, + "min": 0, + "name": "Week", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "aeuskrjo", + "max": 0, + "min": 0, + "name": "Name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "klrzqyw0", + "max": 0, + "min": 0, + "name": "EventType", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "5zltexoy", + "max": 0, + "min": 0, + "name": "Prof", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "gy3nvfmx", + "max": 0, + "min": 0, + "name": "Rooms", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "hn7b8dfy", + "max": 0, + "min": 0, + "name": "Notes", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "axskpwm8", + "max": 0, + "min": 0, + "name": "BookedAt", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "vyyefxp7", + "max": 0, + "min": 0, + "name": "course", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "vlbpm9fz", + "max": 0, + "min": 0, + "name": "semester", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "0kahthzr", + "max": 0, + "min": 0, + "name": "uuid", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "6hkjwgb4", + "max": "", + "min": "", + "name": "start", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "hidden": false, + "id": "szbefpjf", + "max": "", + "min": "", + "name": "end", + "presentable": false, + "required": false, + "system": false, + "type": "date" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "nlnnxu7x", + "max": 0, + "min": 0, + "name": "Compulsory", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "id": "7her4515qsmrxe8", + "indexes": [ + "CREATE INDEX ` + "`" + `idx_4vOTAiC` + "`" + ` ON ` + "`" + `events` + "`" + ` (\n ` + "`" + `Name` + "`" + `,\n ` + "`" + `course` + "`" + `,\n ` + "`" + `start` + "`" + `,\n ` + "`" + `end` + "`" + `,\n ` + "`" + `semester` + "`" + `,\n ` + "`" + `EventType` + "`" + `,\n ` + "`" + `Compulsory` + "`" + `\n)" + ], + "listRule": null, + "name": "events", + "system": false, + "type": "base", + "updateRule": null, + "viewRule": null + }, + { + "authAlert": { + "emailTemplate": { + "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Login from a new location" + }, + "enabled": true + }, + "authRule": "", + "authToken": { + "duration": 1209600 + }, + "confirmEmailChangeTemplate": { + "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Confirm your {APP_NAME} new email address" + }, + "createRule": "", + "deleteRule": "id = @request.auth.id", + "emailChangeToken": { + "duration": 1800 + }, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 10, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 8, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "[a-zA-Z0-9_]{50}", + "hidden": true, + "id": "text2504183744", + "max": 60, + "min": 30, + "name": "tokenKey", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "exceptDomains": null, + "hidden": false, + "id": "email3885137012", + "name": "email", + "onlyDomains": null, + "presentable": false, + "required": false, + "system": true, + "type": "email" + }, + { + "hidden": false, + "id": "bool1547992806", + "name": "emailVisibility", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "hidden": false, + "id": "bool256245529", + "name": "verified", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "autogeneratePattern": "users[0-9]{6}", + "hidden": false, + "id": "text4166911607", + "max": 150, + "min": 3, + "name": "username", + "pattern": "^[\\w][\\w\\.\\-]*$", + "presentable": false, + "primaryKey": false, + "required": true, + "system": false, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "users_name", + "max": 0, + "min": 0, + "name": "name", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": false, + "type": "text" + }, + { + "hidden": false, + "id": "users_avatar", + "maxSelect": 1, + "maxSize": 5242880, + "mimeTypes": [ + "image/jpeg", + "image/png", + "image/svg+xml", + "image/gif", + "image/webp" + ], + "name": "avatar", + "presentable": false, + "protected": false, + "required": false, + "system": false, + "thumbs": null, + "type": "file" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": false, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": false, + "type": "autodate" + } + ], + "fileToken": { + "duration": 120 + }, + "id": "_pb_users_auth_", + "indexes": [ + "CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__username_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (username COLLATE NOCASE)", + "CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__email_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''", + "CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__tokenKey_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `tokenKey` + "`" + `)" + ], + "listRule": "id = @request.auth.id", + "manageRule": null, + "mfa": { + "duration": 1800, + "enabled": false, + "rule": "" + }, + "name": "users", + "oauth2": { + "enabled": false, + "mappedFields": { + "avatarURL": "", + "id": "", + "name": "", + "username": "username" + } + }, + "otp": { + "duration": 180, + "emailTemplate": { + "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "OTP for {APP_NAME}" + }, + "enabled": false, + "length": 8 + }, + "passwordAuth": { + "enabled": true, + "identityFields": [ + "email", + "username" + ] + }, + "passwordResetToken": { + "duration": 1800 + }, + "resetPasswordTemplate": { + "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Reset your {APP_NAME} password" + }, + "system": false, + "type": "auth", + "updateRule": "id = @request.auth.id", + "verificationTemplate": { + "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Verify your {APP_NAME} email" + }, + "verificationToken": { + "duration": 604800 + }, + "viewRule": "id = @request.auth.id" + }, + { + "authAlert": { + "emailTemplate": { + "body": "

Hello,

\n

We noticed a login to your {APP_NAME} account from a new location.

\n

If this was you, you may disregard this email.

\n

If this wasn't you, you should immediately change your {APP_NAME} account password to revoke access from all other locations.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Login from a new location" + }, + "enabled": true + }, + "authRule": "", + "authToken": { + "duration": 1209600 + }, + "confirmEmailChangeTemplate": { + "body": "

Hello,

\n

Click on the button below to confirm your new email address.

\n

\n Confirm new email\n

\n

If you didn't ask to change your email address, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Confirm your {APP_NAME} new email address" + }, + "createRule": null, + "deleteRule": null, + "emailChangeToken": { + "duration": 1800 + }, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 0, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 8, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "[a-zA-Z0-9]{50}", + "hidden": true, + "id": "text2504183744", + "max": 60, + "min": 30, + "name": "tokenKey", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "exceptDomains": null, + "hidden": false, + "id": "email3885137012", + "name": "email", + "onlyDomains": null, + "presentable": false, + "required": true, + "system": true, + "type": "email" + }, + { + "hidden": false, + "id": "bool1547992806", + "name": "emailVisibility", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "hidden": false, + "id": "bool256245529", + "name": "verified", + "presentable": false, + "required": false, + "system": true, + "type": "bool" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "fileToken": { + "duration": 120 + }, + "id": "pbc_3142635823", + "indexes": [ + "CREATE UNIQUE INDEX ` + "`" + `idx_tokenKey_pbc_3142635823` + "`" + ` ON ` + "`" + `_superusers` + "`" + ` (` + "`" + `tokenKey` + "`" + `)", + "CREATE UNIQUE INDEX ` + "`" + `idx_email_pbc_3142635823` + "`" + ` ON ` + "`" + `_superusers` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''" + ], + "listRule": null, + "manageRule": null, + "mfa": { + "duration": 1800, + "enabled": false, + "rule": "" + }, + "name": "_superusers", + "oauth2": { + "enabled": false, + "mappedFields": { + "avatarURL": "", + "id": "", + "name": "", + "username": "" + } + }, + "otp": { + "duration": 180, + "emailTemplate": { + "body": "

Hello,

\n

Your one-time password is: {OTP}

\n

If you didn't ask for the one-time password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "OTP for {APP_NAME}" + }, + "enabled": false, + "length": 8 + }, + "passwordAuth": { + "enabled": true, + "identityFields": [ + "email" + ] + }, + "passwordResetToken": { + "duration": 1800 + }, + "resetPasswordTemplate": { + "body": "

Hello,

\n

Click on the button below to reset your password.

\n

\n Reset password\n

\n

If you didn't ask to reset your password, you can ignore this email.

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Reset your {APP_NAME} password" + }, + "system": true, + "type": "auth", + "updateRule": null, + "verificationTemplate": { + "body": "

Hello,

\n

Thank you for joining us at {APP_NAME}.

\n

Click on the button below to verify your email address.

\n

\n Verify\n

\n

\n Thanks,
\n {APP_NAME} team\n

", + "subject": "Verify your {APP_NAME} email" + }, + "verificationToken": { + "duration": 259200 + }, + "viewRule": null + }, + { + "createRule": null, + "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text2462348188", + "max": 0, + "min": 0, + "name": "provider", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1044722854", + "max": 0, + "min": 0, + "name": "providerId", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "id": "pbc_2281828961", + "indexes": [ + "CREATE UNIQUE INDEX ` + "`" + `idx_externalAuths_record_provider` + "`" + ` ON ` + "`" + `_externalAuths` + "`" + ` (collectionRef, recordRef, provider)", + "CREATE UNIQUE INDEX ` + "`" + `idx_externalAuths_collection_provider` + "`" + ` ON ` + "`" + `_externalAuths` + "`" + ` (collectionRef, provider, providerId)" + ], + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_externalAuths", + "system": true, + "type": "base", + "updateRule": null, + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId" + }, + { + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text1582905952", + "max": 0, + "min": 0, + "name": "method", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "id": "pbc_2279338944", + "indexes": [ + "CREATE INDEX ` + "`" + `idx_mfas_collectionRef_recordRef` + "`" + ` ON ` + "`" + `_mfas` + "`" + ` (collectionRef,recordRef)" + ], + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_mfas", + "system": true, + "type": "base", + "updateRule": null, + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId" + }, + { + "createRule": null, + "deleteRule": null, + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "cost": 8, + "hidden": true, + "id": "password901924565", + "max": 0, + "min": 0, + "name": "password", + "pattern": "", + "presentable": false, + "required": true, + "system": true, + "type": "password" + }, + { + "autogeneratePattern": "", + "hidden": true, + "id": "text3866985172", + "max": 0, + "min": 0, + "name": "sentTo", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": false, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "id": "pbc_1638494021", + "indexes": [ + "CREATE INDEX ` + "`" + `idx_otps_collectionRef_recordRef` + "`" + ` ON ` + "`" + `_otps` + "`" + ` (collectionRef, recordRef)" + ], + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_otps", + "system": true, + "type": "base", + "updateRule": null, + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId" + }, + { + "createRule": null, + "deleteRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "fields": [ + { + "autogeneratePattern": "[a-z0-9]{15}", + "hidden": false, + "id": "text3208210256", + "max": 15, + "min": 15, + "name": "id", + "pattern": "^[a-z0-9]+$", + "presentable": false, + "primaryKey": true, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text455797646", + "max": 0, + "min": 0, + "name": "collectionRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text127846527", + "max": 0, + "min": 0, + "name": "recordRef", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "autogeneratePattern": "", + "hidden": false, + "id": "text4228609354", + "max": 0, + "min": 0, + "name": "fingerprint", + "pattern": "", + "presentable": false, + "primaryKey": false, + "required": true, + "system": true, + "type": "text" + }, + { + "hidden": false, + "id": "autodate2990389176", + "name": "created", + "onCreate": true, + "onUpdate": false, + "presentable": false, + "system": true, + "type": "autodate" + }, + { + "hidden": false, + "id": "autodate3332085495", + "name": "updated", + "onCreate": true, + "onUpdate": true, + "presentable": false, + "system": true, + "type": "autodate" + } + ], + "id": "pbc_4275539003", + "indexes": [ + "CREATE UNIQUE INDEX ` + "`" + `idx_authOrigins_unique_pairs` + "`" + ` ON ` + "`" + `_authOrigins` + "`" + ` (collectionRef, recordRef, fingerprint)" + ], + "listRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId", + "name": "_authOrigins", + "system": true, + "type": "base", + "updateRule": null, + "viewRule": "@request.auth.id != '' && recordRef = @request.auth.id && collectionRef = @request.auth.collectionId" + } + ]` + + return app.ImportCollectionsByMarshaledJSON([]byte(jsonData), false) + }, func(app core.App) error { + return nil + }) +} diff --git a/services/data-manager/model/eventModel.go b/services/data-manager/model/eventModel.go index 7b9bf1b..faa4e82 100644 --- a/services/data-manager/model/eventModel.go +++ b/services/data-manager/model/eventModel.go @@ -17,11 +17,10 @@ package model import ( + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/types" "slices" "strings" - - "github.com/pocketbase/pocketbase/models" - "github.com/pocketbase/pocketbase/tools/types" ) type Events []Event @@ -56,7 +55,7 @@ type Event struct { BookedAt string `db:"BookedAt" json:"bookedAt"` Course string `db:"course" json:"course"` Semester string `db:"semester" json:"semester"` - models.BaseModel + core.BaseModel } type EventType struct { diff --git a/services/data-manager/model/eventModel_test.go b/services/data-manager/model/eventModel_test.go index f1ca8d0..a5b4577 100644 --- a/services/data-manager/model/eventModel_test.go +++ b/services/data-manager/model/eventModel_test.go @@ -20,7 +20,7 @@ import ( "reflect" "testing" - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" "github.com/pocketbase/pocketbase/tools/types" ) @@ -87,7 +87,7 @@ func TestEventEquals(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { event Event @@ -164,7 +164,7 @@ func TestEventAnonymizeEvent(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string @@ -234,7 +234,7 @@ func TestEventGetName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string @@ -294,7 +294,7 @@ func TestEventSetCourse(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { course string @@ -354,7 +354,7 @@ func TestEventSetName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { name string @@ -414,7 +414,7 @@ func TestEventTableName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string diff --git a/services/data-manager/model/feedModel.go b/services/data-manager/model/feedModel.go index 106d38e..88d8979 100644 --- a/services/data-manager/model/feedModel.go +++ b/services/data-manager/model/feedModel.go @@ -17,15 +17,17 @@ package model import ( - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" "github.com/pocketbase/pocketbase/tools/types" ) type Feed struct { Modules string `db:"modules" json:"modules"` Retrieved types.DateTime `db:"retrieved" json:"retrieved"` + Created types.DateTime `db:"created" json:"created"` + Updated types.DateTime `db:"updated" json:"updated"` Deleted bool `db:"deleted" json:"deleted"` - models.BaseModel + core.BaseModel } func (f *Feed) TableName() string { diff --git a/services/data-manager/model/feedModel_test.go b/services/data-manager/model/feedModel_test.go index f2de61b..ed15be7 100644 --- a/services/data-manager/model/feedModel_test.go +++ b/services/data-manager/model/feedModel_test.go @@ -1,7 +1,7 @@ package model import ( - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" "github.com/pocketbase/pocketbase/tools/types" "testing" ) @@ -10,7 +10,7 @@ func TestFeedSetModules(t *testing.T) { type fields struct { Modules string Retrieved types.DateTime - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { modules string @@ -25,7 +25,7 @@ func TestFeedSetModules(t *testing.T) { fields: fields{ Modules: "", Retrieved: types.DateTime{}, - BaseModel: models.BaseModel{}, + BaseModel: core.BaseModel{}, }, args: args{ modules: "modules", diff --git a/services/data-manager/model/seminarGroup.go b/services/data-manager/model/seminarGroup.go index cff3235..5d514f3 100644 --- a/services/data-manager/model/seminarGroup.go +++ b/services/data-manager/model/seminarGroup.go @@ -26,3 +26,9 @@ type SeminarGroup struct { Semester string Events []Event } + +type SeminarGroups []SeminarGroup + +func (group *SeminarGroup) UniqueKey() string { + return group.Course + group.Semester +} diff --git a/services/data-manager/service/addCalDavRoutes.go b/services/data-manager/service/addCalDavRoutes.go index 18271f2..d14e42a 100644 --- a/services/data-manager/service/addCalDavRoutes.go +++ b/services/data-manager/service/addCalDavRoutes.go @@ -17,62 +17,39 @@ package service import ( - "github.com/labstack/echo/v5" "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" + "htwkalender/data-manager/model" "htwkalender/data-manager/service/feed" "htwkalender/data-manager/service/ical" - "io" "log/slog" "net/http" ) -func addFeedRoutes(app *pocketbase.PocketBase) { - app.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodPost, - Path: "/api/feed", - Handler: func(c echo.Context) error { - requestBody, _ := io.ReadAll(c.Request().Body) - result, err := ical.CreateIndividualFeed(requestBody, app) - if err != nil { - slog.Error("Failed to create individual feed", "error", err) - return c.JSON(http.StatusInternalServerError, "Failed to create individual feed") - } - return c.JSON(http.StatusOK, result) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(app), - }, - }) +func addFeedRoutes(se *core.ServeEvent, pb *pocketbase.PocketBase) { + se.Router.POST("/api/feed", func(e *core.RequestEvent) error { + var feedCollection []model.FeedCollection + err := e.BindBody(&feedCollection) if err != nil { - return err + slog.Error("Failed to bind request body", "error", err) + return e.JSON(http.StatusBadRequest, "Invalid request body") } - return nil + result, err := ical.CreateIndividualFeed(feedCollection, pb) + if err != nil { + slog.Error("Failed to create individual feed", "error", err) + return e.JSON(http.StatusInternalServerError, "Failed to create individual feed") + } + return e.JSON(http.StatusOK, result) }) - app.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodDelete, - Path: "/api/feed", - Handler: func(c echo.Context) error { - token := c.QueryParam("token") - err := feed.MarkFeedForDeletion(app.Dao(), token) - if err != nil { - return c.JSON(http.StatusNotFound, err) - } else { - return c.JSON(http.StatusOK, "Feed deleted") - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(app), - }, - }) + se.Router.DELETE("/api/feed", func(e *core.RequestEvent) error { + token := e.Request.URL.Query().Get("token") + err := feed.MarkFeedForDeletion(pb, token) if err != nil { - return err + return e.JSON(http.StatusNotFound, err) + } else { + return e.JSON(http.StatusOK, "Feed deleted") } - return nil }) } diff --git a/services/data-manager/service/addRoute.go b/services/data-manager/service/addRoute.go index 562b45d..898f712 100644 --- a/services/data-manager/service/addRoute.go +++ b/services/data-manager/service/addRoute.go @@ -27,442 +27,211 @@ import ( "log/slog" "net/http" - "github.com/labstack/echo/v5" "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" ) func AddRoutes(services serviceModel.Service) { - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/fetch/events", - Handler: func(c echo.Context) error { - savedEvents, err := v2.ParseEventsFromRemote(services.App) + services.App.OnServe().BindFunc(func(se *core.ServeEvent) error { + se.Router.GET("/api/fetch/events", func(e *core.RequestEvent) error { + savedEvents, err := v2.ParseEventsFromRemote(services.App) + if err != nil { + slog.Error("Failed to parse events from remote: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to parse events from remote") + } else { + return e.JSON(http.StatusOK, savedEvents) + } + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.GET("/api/fetch/daily/events", func(e *core.RequestEvent) error { + clock := time.RealClock{} + course.UpdateCourse(services, clock) + return e.JSON(http.StatusOK, "Daily events fetched") + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.GET("/api/fetch/group", func(e *core.RequestEvent) error { + seminarGroupString := e.Request.URL.Query().Get("seminarGroup") + + if seminarGroupString == "" { + return e.JSON(http.StatusBadRequest, "Seminar group could not be empty") + } else { + //find seminar group by name + seminarGroup, err := services.CourseService.FindCourseByCourseName(seminarGroupString) if err != nil { - slog.Error("Failed to parse events from remote: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to parse events from remote") - } else { - return c.JSON(http.StatusOK, savedEvents) - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, - }) - if err != nil { - return err - } - return nil - }) - - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/fetch/daily/events", - Handler: func(c echo.Context) error { - clock := time.RealClock{} - course.UpdateCourse(services, clock) - return c.JSON(http.StatusOK, "Daily events fetched") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, - }) - if err != nil { - return err - } - return nil - }) - - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/fetch/group", - Handler: func(c echo.Context) error { - - seminarGroupString := c.QueryParam("seminarGroup") - - if seminarGroupString == "" { - return c.JSON(http.StatusBadRequest, "Seminar group could not be empty") - } else { - //find seminar group by name - seminarGroup, err := services.CourseService.FindCourseByCourseName(seminarGroupString) - if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to find seminar group") - } - - events, err := services.EventService.UpdateModulesForCourse(seminarGroup) - if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to fetch seminar group") - } - return c.JSON(http.StatusOK, events) + return e.JSON(http.StatusBadRequest, "Failed to find seminar group") } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, - }) - if err != nil { - return err - } - return nil - }) - - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/fetch/groups", - Handler: func(c echo.Context) error { - groups, err := v1.FetchSeminarGroups(services.App) + events, err := services.EventService.UpdateModulesForCourse(seminarGroup) if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to fetch seminar groups") + return e.JSON(http.StatusBadRequest, "Failed to fetch seminar group") } - return c.JSON(http.StatusOK, groups) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, + return e.JSON(http.StatusOK, events) + } + + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.GET("/api/fetch/groups", func(e *core.RequestEvent) error { + groups, err := v1.FetchSeminarGroups(services.App) + if err != nil { + slog.Error("Failed to fetch seminar groups: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to fetch seminar groups") + } else { + return e.JSON(http.StatusOK, groups) + } + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.GET("/api/fetch/sports", func(e *core.RequestEvent) error { + sportEvents, err := sport.FetchAndUpdateSportEvents(services.App) + if err != nil { + slog.Error("Failed to fetch sport events: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to fetch sport events") + } else { + return e.JSON(http.StatusOK, sportEvents) + } + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.DELETE("/api/modules", func(e *core.RequestEvent) error { + err := services.EventService.DeleteAllEvents() + if err != nil { + return e.JSON(http.StatusBadRequest, "Failed to delete events") + } + return e.JSON(http.StatusOK, "Events deleted") + }).Bind(apis.RequireSuperuserAuth()) + + se.Router.GET("/api/rooms", func(e *core.RequestEvent) error { + rooms, err := room.GetRooms(services.App) + if err != nil { + return e.JSON(http.StatusBadRequest, "Failed to get rooms") + } + return e.JSON(http.StatusOK, rooms) }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/fetch/sports", - Handler: func(c echo.Context) error { - - sportEvents, err := sport.FetchAndUpdateSportEvents(services.App) - if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to fetch sport events") - } - return c.JSON(http.StatusOK, sportEvents) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, + se.Router.GET("/api/schedule/day", func(e *core.RequestEvent) error { + roomParam := e.Request.URL.Query().Get("room") + date := e.Request.URL.Query().Get("date") + roomSchedule, err := room.GetRoomScheduleForDay(services.App, roomParam, date) + if err != nil { + slog.Error("Failed to get room schedule for day: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get room schedule for day") + } + return e.JSON(http.StatusOK, roomSchedule) }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodDelete, - Path: "/api/modules", - Handler: func(c echo.Context) error { - err := services.EventService.DeleteAllEvents() - if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to delete events") - } - return c.JSON(http.StatusOK, "Events deleted") - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, + se.Router.GET("/api/schedule", func(e *core.RequestEvent) error { + roomParam := e.Request.URL.Query().Get("room") + to := e.Request.URL.Query().Get("to") + from := e.Request.URL.Query().Get("from") + mapped := e.Request.URL.Query().Get("mapped") + roomSchedule, err := room.GetRoomSchedule(services.App, roomParam, from, to, mapped) + if err != nil { + slog.Error("Failed to get room schedule: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get room schedule") + } + return e.JSON(http.StatusOK, roomSchedule) }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/rooms", - Handler: func(c echo.Context) error { - rooms, err := room.GetRooms(services.App) - if err != nil { - return c.JSON(http.StatusBadRequest, "Failed to get rooms") - } - return c.JSON(http.StatusOK, rooms) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/rooms/free", func(e *core.RequestEvent) error { + from, err := time.ParseTime(e.Request.URL.Query().Get("from")) + if err != nil { + slog.Error("Failed to parse time: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to parse time") + } + to, err := time.ParseTime(e.Request.URL.Query().Get("to")) + if err != nil { + slog.Error("Failed to parse time: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to parse time") + } + rooms, err := room.GetFreeRooms(services.App, from, to) + if err != nil { + slog.Error("Failed to get free rooms: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get free rooms") + } + return e.JSON(http.StatusOK, rooms) }) - if err != nil { - return err - } - return nil - }) - // API Endpoint to get all events for a specific room on a specific day - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/schedule/day", - Handler: func(c echo.Context) error { - roomParam := c.QueryParam("room") - date := c.QueryParam("date") - roomSchedule, err := room.GetRoomScheduleForDay(services.App, roomParam, date) - if err != nil { - slog.Error("Failed to get room schedule for day: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get room schedule for day") - } - return c.JSON(http.StatusOK, roomSchedule) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/course/modules", func(e *core.RequestEvent) error { + modules, err := services.EventService.GetModulesForCourseDistinct( + e.Request.URL.Query().Get("course"), + e.Request.URL.Query().Get("semester"), + ) + if err != nil { + slog.Error("Failed to get modules for course and semester: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get modules for course and semester") + } + return e.JSON(http.StatusOK, modules) }) - if err != nil { - return err - } - return nil - }) - // API Endpoint to create a new iCal feed - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/schedule", - Handler: func(c echo.Context) error { - roomParam := c.QueryParam("room") - to := c.QueryParam("to") - from := c.QueryParam("from") - mapped := c.QueryParam("mapped") - roomSchedule, err := room.GetRoomSchedule(services.App, roomParam, from, to, mapped) - if err != nil { - slog.Error("Failed to get room schedule:", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get room schedule") - } - return c.JSON(http.StatusOK, roomSchedule) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/modules", func(e *core.RequestEvent) error { + modules, err := services.EventService.GetAllModulesDistinct() + if err != nil { + slog.Error("Failed to get modules: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get modules") + } + return e.JSON(http.StatusOK, modules) }) - if err != nil { - return err - } - return nil - }) - // API Endpoint to get all rooms that have no events in a specific time frame - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/rooms/free", - Handler: func(c echo.Context) error { - from, err := time.ParseTime(c.QueryParam("from")) - if err != nil { - slog.Error("Failed to parse time: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to parse time") - } - to, err := time.ParseTime(c.QueryParam("to")) - if err != nil { - slog.Error("Failed to parse time: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to parse time") - } - rooms, err := room.GetFreeRooms(services.App, from, to) - if err != nil { - slog.Error("Failed to get free rooms: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get free rooms") - } - return c.JSON(http.StatusOK, rooms) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/module", func(e *core.RequestEvent) error { + requestModule := e.Request.URL.Query().Get("uuid") + module, err := services.EventService.GetModuleByUUID(requestModule) + if err != nil { + slog.Error("Failed to get module: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get module") + } + return e.JSON(http.StatusOK, module) }) - if err != nil { - return err - } - return nil - }) - addFeedRoutes(services.App) - - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/course/modules", - Handler: func(c echo.Context) error { - modules, err := services.EventService.GetModulesForCourseDistinct( - c.QueryParam("course"), - c.QueryParam("semester"), - ) - - if err != nil { - slog.Error("Failed to get modules for course and semester: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get modules for course and semester") - } else { - return c.JSON(http.StatusOK, modules) + se.Router.GET("/api/courses", func(e *core.RequestEvent) error { + semester := e.Request.URL.Query().Get("semester") + if semester == "" { + courses := services.CourseService.GetAllCourses() + return e.JSON(200, courses) + } else { + seminarGroups := services.CourseService.GetAllCoursesForSemester(semester) + courseStringList := make([]string, 0) + for _, seminarGroup := range seminarGroups { + courseStringList = append(courseStringList, seminarGroup.Course) } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + return e.JSON(200, courseStringList) + } }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/modules", - Handler: func(c echo.Context) error { - modules, err := services.EventService.GetAllModulesDistinct() - if err != nil { - slog.Error("Failed to get modules: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get modules") - } - return c.JSON(http.StatusOK, modules) - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/courses/events", func(e *core.RequestEvent) error { + semester := e.Request.URL.Query().Get("semester") + courses, err := services.CourseService.GetAllCoursesForSemesterWithEvents(semester) + if err != nil { + slog.Error("Failed to get courses for semester with events: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get courses for semester with events") + } else { + return e.JSON(http.StatusOK, courses) + } }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/module", - Handler: func(c echo.Context) error { - requestModule := c.QueryParam("uuid") - module, err := services.EventService.GetModuleByUUID(requestModule) - if err != nil { - slog.Error("Failed to get module: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get module") - } else { - return c.JSON(http.StatusOK, module) - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, + se.Router.GET("/api/events/types", func(e *core.RequestEvent) error { + eventTypes, err := services.EventService.GetEventTypes() + if err != nil { + slog.Error("Failed to get event types", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to get event types") + } else { + return e.JSON(http.StatusOK, eventTypes) + } }) - if err != nil { - return err - } - return nil - }) - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/courses", - Handler: func(c echo.Context) error { - semester := c.QueryParam("semester") - if semester == "" { - courses := services.CourseService.GetAllCourses() - return c.JSON(200, courses) - } else { - seminarGroups := services.CourseService.GetAllCoursesForSemester(semester) - courseStringList := make([]string, 0) - for _, seminarGroup := range seminarGroups { - courseStringList = append(courseStringList, seminarGroup.Course) - } - return c.JSON(200, courseStringList) - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, - }) - if err != nil { - return err - } - return nil - }) + se.Router.DELETE("/api/events", func(e *core.RequestEvent) error { + err := services.EventService.DeleteAllEventsByCourseAndSemester( + e.Request.URL.Query().Get("course"), + e.Request.URL.Query().Get("semester"), + ) + if err != nil { + slog.Error("Failed to delete events: ", "error", err) + return e.JSON(http.StatusBadRequest, "Failed to delete events") + } else { + return e.JSON(http.StatusOK, "Events deleted") + } + }).Bind(apis.RequireSuperuserAuth()) - // api end point to get all courses for a specific semester with courses that have events - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/courses/events", - Handler: func(c echo.Context) error { - semester := c.QueryParam("semester") - courses, err := services.CourseService.GetAllCoursesForSemesterWithEvents(semester) - if err != nil { - slog.Error("Failed to get courses for semester with events: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get courses for semester with events") - } else { - return c.JSON(http.StatusOK, courses) - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, - }) - if err != nil { - return err - } - return nil - }) + addFeedRoutes(se, services.App) - // API Endpoint to get all eventTypes from the database distinct - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodGet, - Path: "/api/events/types", - Handler: func(c echo.Context) error { - eventTypes, err := services.EventService.GetEventTypes() - if err != nil { - slog.Error("Failed to get event types", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to get event types") - } else { - return c.JSON(http.StatusOK, eventTypes) - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - }, - }) - if err != nil { - return err - } - return nil - }) - - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - _, err := e.Router.AddRoute(echo.Route{ - Method: http.MethodDelete, - Path: "/api/events", - Handler: func(c echo.Context) error { - err := services.EventService.DeleteAllEventsByCourseAndSemester( - c.QueryParam("course"), - c.QueryParam("semester"), - ) - if err != nil { - slog.Error("Failed to delete events: ", "error", err) - return c.JSON(http.StatusBadRequest, "Failed to delete events") - } else { - return c.JSON(http.StatusOK, "Events deleted") - } - }, - Middlewares: []echo.MiddlewareFunc{ - apis.ActivityLogger(services.App), - apis.RequireAdminAuth(), - }, - }) - if err != nil { - return err - } - return nil + return se.Next() }) } diff --git a/services/data-manager/service/addSchedule.go b/services/data-manager/service/addSchedule.go index 97f1ecf..72ee63c 100644 --- a/services/data-manager/service/addSchedule.go +++ b/services/data-manager/service/addSchedule.go @@ -17,8 +17,6 @@ package service import ( - "github.com/pocketbase/pocketbase/core" - "github.com/pocketbase/pocketbase/tools/cron" "htwkalender/data-manager/model/serviceModel" "htwkalender/data-manager/service/course" "htwkalender/data-manager/service/feed" @@ -32,56 +30,47 @@ import ( func AddSchedules(services serviceModel.Service) { - services.App.OnBeforeServe().Add(func(e *core.ServeEvent) error { - scheduler := cron.New() + services.App.Cron().MustAdd("updateCourses", "0 22 * * 0", func() { + slog.Info("Started updating courses schedule") + groups, err := v1.FetchSeminarGroups(services.App) + if err != nil { + slog.Warn("Failed to fetch seminar groups: ", "error", err) + } + slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(groups)), 10) + " seminar groups") + }) - // !! IMPORTANT !! CRON is based on UTC time zone so in Germany it is UTC+2 in summer and UTC+1 in winter + // Every day at 5am and 5pm update all courses (5 segments - minute, hour, day, month, weekday) "0 5,17 * * *" + // In Germany it is 7am and 7pm, syllabus gets updated twice a day at German 5:00 Uhr and 17:00 Uhr + services.App.Cron().MustAdd("updateEventsByCourse", "0 5,17 * * *", func() { + slog.Info("Started updating courses schedule") + clock := time.RealClock{} + course.UpdateCourse(services, clock) + }) - // Every sunday at 10pm update all courses (5 segments - minute, hour, day, month, weekday) "0 22 * * 0" - scheduler.MustAdd("updateCourses", "0 22 * * 0", func() { - slog.Info("Started updating courses schedule") - groups, err := v1.FetchSeminarGroups(services.App) - if err != nil { - slog.Warn("Failed to fetch seminar groups: ", "error", err) - } - slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(groups)), 10) + " seminar groups") - }) + // Every sunday at 1am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0" + services.App.Cron().MustAdd("cleanFeeds", "0 1 * * 0", func() { + // clean feeds older than 6 months + slog.Info("Started cleaning feeds schedule") + feed.ClearFeeds(services.App, 6, time.RealClock{}) + }) - // Every day at 5am and 5pm update all courses (5 segments - minute, hour, day, month, weekday) "0 5,17 * * *" - // In Germany it is 7am and 7pm, syllabus gets updated twice a day at German 5:00 Uhr and 17:00 Uhr - scheduler.MustAdd("updateEventsByCourse", "0 5,17 * * *", func() { - slog.Info("Started updating courses schedule") - clock := time.RealClock{} - course.UpdateCourse(services, clock) - }) + // Every sunday at 3am fetch all sport events (5 segments - minute, hour, day, month, weekday) "0 2 * * 0" + services.App.Cron().MustAdd("fetchSportEvents", "0 3 * * 0", func() { + slog.Info("Started fetching sport events schedule") + sportEvents, err := sport.FetchAndUpdateSportEvents(services.App) + if err != nil { + slog.Error("Failed to fetch and save sport events:", "error", err) + } + slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(sportEvents)), 10) + " sport events") + }) - // Every sunday at 1am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0" - scheduler.MustAdd("cleanFeeds", "0 1 * * 0", func() { - // clean feeds older than 6 months - slog.Info("Started cleaning feeds schedule") - feed.ClearFeeds(services.App.Dao(), 6, time.RealClock{}) - }) - - // Every sunday at 3am fetch all sport events (5 segments - minute, hour, day, month, weekday) "0 2 * * 0" - scheduler.MustAdd("fetchSportEvents", "0 3 * * 0", func() { - slog.Info("Started fetching sport events schedule") - sportEvents, err := sport.FetchAndUpdateSportEvents(services.App) - if err != nil { - slog.Error("Failed to fetch and save sport events:", "error", err) - } - slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(sportEvents)), 10) + " sport events") - }) - - //fetch all events for semester and delete from remote this should be done every sunday at 2am - scheduler.MustAdd("fetchEvents", "0 22 * * 6", func() { - savedEvents, err := v2.FetchAllEventsAndSave(services.App, time.RealClock{}) - if err != nil { - slog.Error("Failed to fetch and save events: ", "error", err) - } else { - slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(savedEvents)), 10) + " events") - } - }) - scheduler.Start() - return nil + //fetch all events for semester and delete from remote this should be done every sunday at 2am + services.App.Cron().MustAdd("fetchEvents", "0 22 * * 6", func() { + savedEvents, err := v2.FetchAllEventsAndSave(services.App, time.RealClock{}) + if err != nil { + slog.Error("Failed to fetch and save events: ", "error", err) + } else { + slog.Info("Successfully fetched " + strconv.FormatInt(int64(len(savedEvents)), 10) + " events") + } }) } diff --git a/services/data-manager/service/db/dbEvents.go b/services/data-manager/service/db/dbEvents.go index 95b5698..4d43826 100644 --- a/services/data-manager/service/db/dbEvents.go +++ b/services/data-manager/service/db/dbEvents.go @@ -19,7 +19,7 @@ package db import ( "fmt" "github.com/google/uuid" - "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase/core" "github.com/pocketbase/pocketbase/tools/types" "htwkalender/data-manager/model" "log/slog" @@ -29,47 +29,212 @@ import ( "github.com/pocketbase/pocketbase" ) -func SaveSeminarGroupEvents(seminarGroup model.SeminarGroup, app *pocketbase.PocketBase) ([]model.Event, error) { - var toBeSavedEvents model.Events - var savedRecords model.Events +var _ core.RecordProxy = (*Event)(nil) - // check if event is already in database and add to toBeSavedEvents if not - for _, event := range seminarGroup.Events { - event = event.SetCourse(seminarGroup.Course) - existsInDatabase, err := findEventByDayWeekStartEndNameCourse(event, seminarGroup.Course, app.Dao()) - alreadyAddedToSave := toBeSavedEvents.Contains(event) - - if err != nil { - return nil, err - } - - if !existsInDatabase && !alreadyAddedToSave { - toBeSavedEvents = append(toBeSavedEvents, event) - } - } - - // create record for each event that's not already in the database - for _, event := range toBeSavedEvents { - event.MarkAsNew() - // auto mapping for event fields to record fields - err := app.Dao().Save(&event) - if err != nil { - return nil, err - } else { - savedRecords = append(savedRecords, event) - } - } - - return savedRecords, nil +type Event struct { + core.BaseRecordProxy } -func SaveEvents(events []model.Event, txDao *daos.Dao) ([]model.Event, error) { +type Events []*Event + +func (event *Event) GetDay() string { + return event.GetString("Day") +} + +func (event *Event) SetDay(day string) { + event.Set("Day", day) +} + +func (event *Event) GetWeek() string { + return event.GetString("Week") +} + +func (event *Event) SetWeek(week string) { + event.Set("Week", week) +} + +func (event *Event) GetName() string { + return event.GetString("Name") +} + +func (event *Event) SetName(name string) { + event.Set("Name", name) +} + +func (event *Event) GetEventType() string { + return event.GetString("EventType") +} + +func (event *Event) SetEventType(eventType string) { + event.Set("EventType", eventType) +} + +func (event *Event) GetProf() string { + return event.GetString("Prof") +} + +func (event *Event) SetProf(prof string) { + event.Set("Prof", prof) +} + +func (event *Event) GetRooms() string { + return event.GetString("Rooms") +} + +func (event *Event) SetRooms(rooms string) { + event.Set("Rooms", rooms) +} + +func (event *Event) GetNotes() string { + return event.GetString("Notes") +} + +func (event *Event) SetNotes(notes string) { + event.Set("Notes", notes) +} + +func (event *Event) GetBookedAt() string { + return event.GetString("BookedAt") +} + +func (event *Event) SetBookedAt(bookedAt string) { + event.Set("BookedAt", bookedAt) +} + +func (event *Event) GetCourse() string { + return event.GetString("course") +} + +func (event *Event) SetCourse(course string) { + event.Set("course", course) +} + +func (event *Event) GetSemester() string { + return event.GetString("semester") +} + +func (event *Event) SetSemester(semester string) { + event.Set("semester", semester) +} + +func (event *Event) GetUUID() string { + return event.GetString("uuid") +} + +func (event *Event) SetUUID(uuid string) { + event.Set("uuid", uuid) +} + +func (event *Event) GetStart() types.DateTime { + return event.GetDateTime("start") +} + +func (event *Event) SetStart(start types.DateTime) { + event.Set("start", start) +} + +func (event *Event) GetEnd() types.DateTime { + return event.GetDateTime("end") +} + +func (event *Event) SetEnd(end types.DateTime) { + event.Set("end", end) +} + +func (event *Event) GetCompulsory() string { + return event.GetString("Compulsory") +} + +func (event *Event) SetCompulsory(compulsory string) { + event.Set("Compulsory", compulsory) +} + +func (event *Event) GetCreated() types.DateTime { + return event.GetDateTime("created") +} + +func (event *Event) SetCreated(created types.DateTime) { + event.Set("created", created) +} + +func (event *Event) GetUpdated() types.DateTime { + return event.GetDateTime("updated") +} + +func (event *Event) SetUpdated(updated types.DateTime) { + event.Set("updated", updated) +} + +func newEvent(record *core.Record) *Event { + return &Event{ + BaseRecordProxy: core.BaseRecordProxy{Record: record}, + } +} + +func NewEvent(collection *core.Collection, event model.Event) (*Event, error) { + // Create a new Event instance + if collection.Name != "events" { + return nil, core.ErrInvalidFieldValue + } + + record := core.NewRecord(collection) + record.Set("id:autogenerate", "") + + ev := newEvent(record) + // Set the fields from the model + ev.SetDay(event.Day) + ev.SetWeek(event.Week) + ev.SetStart(event.Start) + ev.SetEnd(event.End) + ev.SetName(event.Name) + ev.SetEventType(event.EventType) + ev.SetProf(event.Prof) + ev.SetRooms(event.Rooms) + ev.SetNotes(event.Notes) + ev.SetBookedAt(event.BookedAt) + ev.SetCourse(event.Course) + ev.SetSemester(event.Semester) + ev.SetUUID(uuid.NewString()) + return ev, nil +} + +func (event *Event) ToModel() model.Event { + return model.Event{ + Day: event.GetDay(), + Week: event.GetWeek(), + Start: event.GetStart(), + End: event.GetEnd(), + Name: event.GetName(), + EventType: event.GetEventType(), + Prof: event.GetProf(), + Rooms: event.GetRooms(), + Notes: event.GetNotes(), + BookedAt: event.GetBookedAt(), + Course: event.GetCourse(), + Semester: event.GetSemester(), + UUID: event.GetUUID(), + } +} + +func (events *Events) ToEvents() model.Events { + var result model.Events + for _, event := range *events { + result = append(result, event.ToModel()) + } + return result +} + +func SaveSeminarGroupEvents(seminarGroup model.SeminarGroup, base *pocketbase.PocketBase) (model.Events, error) { + return SaveEvents(seminarGroup.Events, base.App) +} + +func SaveEvents(events []model.Event, app core.App) (model.Events, error) { var toBeSavedEvents model.Events var savedRecords model.Events // check if event is already in database and add to toBeSavedEvents if not for _, event := range events { - existsInDatabase, err := findEventByDayWeekStartEndNameCourse(event, event.Course, txDao) + existsInDatabase, err := findEventByDayWeekStartEndNameCourse(event, event.Course, app) alreadyAddedToSave := toBeSavedEvents.Contains(event) if err != nil { @@ -80,26 +245,45 @@ func SaveEvents(events []model.Event, txDao *daos.Dao) ([]model.Event, error) { toBeSavedEvents = append(toBeSavedEvents, event) } } + + collection, err := app.FindCollectionByNameOrId("events") + if err != nil { + return nil, err + } + // create record for each event that's not already in the database for _, event := range toBeSavedEvents { - event.MarkAsNew() // auto mapping for event fields to record fields - err := txDao.Save(&event) - if err != nil { - return nil, err + savedEvent, saveErr := saveEvent(collection, event, app) + if saveErr != nil { + return nil, saveErr } else { - savedRecords = append(savedRecords, event) + savedRecords = append(savedRecords, savedEvent.ToModel()) } } return savedRecords, nil } +func saveEvent(collection *core.Collection, event model.Event, app core.App) (*Event, error) { + dbEvent, recordErr := NewEvent(collection, event) + if recordErr != nil { + return nil, recordErr + } + // auto mapping for event fields to record fields + dbErr := app.Save(dbEvent) + if dbErr != nil { + return nil, dbErr + } + + return dbEvent, nil +} + // check if event is already in database and return true if it is and false if it's not -func findEventByDayWeekStartEndNameCourse(event model.Event, course string, dao *daos.Dao) (bool, error) { +func findEventByDayWeekStartEndNameCourse(event model.Event, course string, app core.App) (bool, error) { var dbEvent model.Event - err := dao.DB().Select("*").From("events"). + err := app.DB().Select("*").From("events"). Where(dbx.NewExp( "Day = {:day} AND "+ "Week = {:week} AND "+ @@ -191,7 +375,7 @@ func GetPlanForModules(app *pocketbase.PocketBase, modules []string) (model.Even var selectedModulesQuery = buildIcalQueryForModules(moduleBatch) // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events").Where(selectedModulesQuery).OrderBy("start").All(&events) + err := app.DB().Select("*").From("events").Where(selectedModulesQuery).OrderBy("start").All(&events) if err != nil { return nil, err } @@ -204,20 +388,7 @@ func GetAllEventsForCourse(app *pocketbase.PocketBase, course string) (model.Eve var events model.Events // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("course = {:course}", dbx.Params{"course": course})).All(&events) - if err != nil { - slog.Error("Error while getting events from database: ", "error", err) - return nil, fmt.Errorf("error while getting events from database for course %s", course) - } - - return events, nil -} - -func GetAllEventsForCourseAndSemester(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) { - var events model.Events - - // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("course = {:course}", dbx.Params{"course": course})).All(&events) if err != nil { slog.Error("Error while getting events from database: ", "error", err) return nil, fmt.Errorf("error while getting events from database for course %s", course) @@ -230,7 +401,7 @@ func GetAllModulesForCourse(app *pocketbase.PocketBase, course string, semester var events model.Events // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).GroupBy("Name").Distinct(true).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).GroupBy("Name").Distinct(true).All(&events) if err != nil { slog.Error("Error while getting events from database: ", "error", err) return nil, fmt.Errorf("error while getting events from database for course %s and semester %s", course, semester) @@ -242,7 +413,7 @@ func GetAllModulesForCourse(app *pocketbase.PocketBase, course string, semester func GetAllModulesDistinctByNameAndCourse(app *pocketbase.PocketBase) ([]model.ModuleDTO, error) { var modules []model.ModuleDTO - err := app.Dao().DB().Select("Name", "EventType", "Prof", "course", "semester", "uuid").From("events").GroupBy("Name", "Course").Distinct(true).All(&modules) + err := app.DB().Select("Name", "EventType", "Prof", "course", "semester", "uuid").From("events").GroupBy("Name", "Course").Distinct(true).All(&modules) if err != nil { slog.Error("Error while getting events from database: ", "error", err) return nil, fmt.Errorf("error while getting events distinct by name and course from data") @@ -251,8 +422,8 @@ func GetAllModulesDistinctByNameAndCourse(app *pocketbase.PocketBase) ([]model.M return modules, nil } -func DeleteAllEventsByCourse(dao *daos.Dao, course string, semester string) error { - _, err := dao.DB().Delete("events", dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).Execute() +func DeleteAllEventsByCourse(base *pocketbase.PocketBase, course string, semester string) error { + _, err := base.DB().Delete("events", dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).Execute() if err != nil { return err @@ -260,8 +431,8 @@ func DeleteAllEventsByCourse(dao *daos.Dao, course string, semester string) erro return nil } -func DeleteAllEventsRatherThenCourse(dao *daos.Dao, course string, semester string) error { - _, err := dao.DB().Delete("events", dbx.NewExp("course != {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).Execute() +func DeleteAllEventsRatherThenCourse(app core.App, course string, semester string) error { + _, err := app.DB().Delete("events", dbx.NewExp("course != {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).Execute() if err != nil { return err @@ -269,9 +440,9 @@ func DeleteAllEventsRatherThenCourse(dao *daos.Dao, course string, semester stri return nil } -func DeleteAllEvents(app *pocketbase.PocketBase) error { +func DeleteAllEvents(app core.App) error { - _, err := app.Dao().DB().Delete("events", dbx.NewExp("1=1")).Execute() + _, err := app.DB().Delete("events", dbx.NewExp("1=1")).Execute() if err != nil { return err @@ -283,7 +454,7 @@ func DeleteAllEvents(app *pocketbase.PocketBase) error { func FindModuleByUUID(app *pocketbase.PocketBase, uuid string) (model.Module, error) { var module model.Module - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("uuid = {:uuid}", dbx.Params{"uuid": uuid})).One(&module) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("uuid = {:uuid}", dbx.Params{"uuid": uuid})).One(&module) if err != nil { return model.Module{}, err } @@ -294,7 +465,7 @@ func FindModuleByUUID(app *pocketbase.PocketBase, uuid string) (model.Module, er func FindAllEventsByModule(app *pocketbase.PocketBase, module model.Module) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Name = {:moduleName} AND course = {:course}", dbx.Params{"moduleName": module.Name, "course": module.Course})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Name = {:moduleName} AND course = {:course}", dbx.Params{"moduleName": module.Name, "course": module.Course})).All(&events) if err != nil { return nil, err } @@ -305,7 +476,7 @@ func FindAllEventsByModule(app *pocketbase.PocketBase, module model.Module) (mod func GetAllModulesByNameAndDateRange(app *pocketbase.PocketBase, name string, startDate time.Time, endDate time.Time) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Name = {:name} AND Start >= {:startDate} AND End <= {:endDate}", dbx.Params{"name": name, "startDate": startDate, "endDate": endDate})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Name = {:name} AND Start >= {:startDate} AND End <= {:endDate}", dbx.Params{"name": name, "startDate": startDate, "endDate": endDate})).All(&events) if err != nil { return nil, err } @@ -355,7 +526,7 @@ func GetEventsThatCollideWithTimeRange(app *pocketbase.PocketBase, from time.Tim func GetEventsThatStartBeforeAndEndAfter(app *pocketbase.PocketBase, from types.DateTime, to types.DateTime) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Start <= {:startDate} AND End >= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).Distinct(true).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Start <= {:startDate} AND End >= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).Distinct(true).All(&events) if err != nil { return nil, err @@ -367,7 +538,7 @@ func GetEventsThatStartBeforeAndEndAfter(app *pocketbase.PocketBase, from types. func GetEventsThatStartAfterAndEndBefore(app *pocketbase.PocketBase, from types.DateTime, to types.DateTime) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Start >= {:startDate} AND End <= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Start >= {:startDate} AND End <= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) if err != nil { return nil, err @@ -379,7 +550,7 @@ func GetEventsThatStartAfterAndEndBefore(app *pocketbase.PocketBase, from types. func GetEventsThatStartBeforeAndEndBefore(app *pocketbase.PocketBase, from types.DateTime, to types.DateTime) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Start <= {:startDate} AND End <= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Start <= {:startDate} AND End <= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) if err != nil { return nil, err @@ -391,7 +562,7 @@ func GetEventsThatStartBeforeAndEndBefore(app *pocketbase.PocketBase, from types func GetAllEventTypes(app *pocketbase.PocketBase) ([]model.EventType, error) { var eventTypes []model.EventType - err := app.Dao().DB().Select("EventType").From("events").GroupBy("EventType").Distinct(true).All(&eventTypes) + err := app.DB().Select("EventType").From("events").GroupBy("EventType").Distinct(true).All(&eventTypes) if err != nil { return nil, err } @@ -401,7 +572,7 @@ func GetAllEventTypes(app *pocketbase.PocketBase) ([]model.EventType, error) { func GetEventsThatStartAfterAndEndAfter(app *pocketbase.PocketBase, from types.DateTime, to types.DateTime) (model.Events, error) { var events model.Events - err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("Start >= {:startDate} AND End >= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) + err := app.DB().Select("*").From("events").Where(dbx.NewExp("Start >= {:startDate} AND End >= {:endDate} AND Start <= {:endDate} AND End >= {:startDate}", dbx.Params{"startDate": from, "endDate": to})).All(&events) if err != nil { return nil, err @@ -412,7 +583,7 @@ func GetEventsThatStartAfterAndEndAfter(app *pocketbase.PocketBase, from types.D func DeleteEvents(list model.Events, app *pocketbase.PocketBase) error { for _, event := range list { - err := app.Dao().Delete(&event) + err := app.Delete(&event) if err != nil { return err } diff --git a/services/data-manager/service/db/dbFeeds.go b/services/data-manager/service/db/dbFeeds.go index 3def9b0..483833b 100644 --- a/services/data-manager/service/db/dbFeeds.go +++ b/services/data-manager/service/db/dbFeeds.go @@ -20,26 +20,120 @@ import ( "errors" "github.com/pocketbase/dbx" "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/daos" - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/types" "htwkalender/data-manager/model" "time" ) -func SaveFeed(feed model.Feed, collection *models.Collection, app *pocketbase.PocketBase) (*models.Record, error) { - record := models.NewRecord(collection) - record.Set("modules", feed.Modules) - err := app.Dao().SaveRecord(record) +var _ core.RecordProxy = (*Feed)(nil) - if err != nil { - return nil, err +type Feed struct { + core.BaseRecordProxy +} + +type Feeds []*Feed + +// Getter and Setter for the Feed struct + +func (f *Feed) GetModules() string { + return f.GetString("modules") +} + +func (f *Feed) SetModules(modules string) { + f.Set("modules", modules) +} + +func (f *Feed) GetRetrieved() types.DateTime { + return f.GetDateTime("retrieved") +} + +func (f *Feed) SetRetrieved(retrieved types.DateTime) { + f.Set("retrieved", retrieved) +} + +func (f *Feed) GetDeleted() bool { + return f.GetBool("deleted") +} + +func (f *Feed) SetDeleted(deleted bool) { + f.Set("deleted", deleted) +} + +func (f *Feed) GetId() string { + return f.GetString("id") +} + +func (f *Feed) SetId(id string) { + f.Set("id", id) +} + +func (f *Feed) GetCreated() types.DateTime { + return f.GetDateTime("created") +} + +func (f *Feed) SetCreated(created time.Time) { + f.Set("created", created) +} + +func (f *Feed) GetUpdated() types.DateTime { + return f.GetDateTime("updated") +} + +func newFeed(record *core.Record) *Feed { + return &Feed{ + BaseRecordProxy: core.BaseRecordProxy{Record: record}, } - return record, nil +} + +func NewFeed(collection *core.Collection, feed model.Feed) (*Feed, error) { + // Create a new Feed instance + if collection.Name != "feeds" { + return nil, core.ErrInvalidFieldValue + } + + record := core.NewRecord(collection) + record.Set("id:autogenerate", "") + + dbFeed := newFeed(record) + dbFeed.SetModules(feed.Modules) + dbFeed.SetRetrieved(feed.Retrieved) + dbFeed.SetDeleted(feed.Deleted) + + return dbFeed, nil +} + +func (f *Feed) ToModel() model.Feed { + return model.Feed{ + Modules: f.GetModules(), + Retrieved: f.GetRetrieved(), + Created: f.GetCreated(), + Updated: f.GetUpdated(), + Deleted: f.GetDeleted(), + BaseModel: core.BaseModel{ + Id: f.GetId(), + }, + } +} + +func SaveFeed(feed model.Feed, collection *core.Collection, app *pocketbase.PocketBase) (model.Feed, error) { + dbFeed, recordErr := NewFeed(collection, feed) + if recordErr != nil { + return model.Feed{}, recordErr + } + + // Save the record to the database + saveErr := app.Save(dbFeed) + if saveErr != nil { + return model.Feed{}, saveErr + } + + return dbFeed.ToModel(), nil } func FindFeedByToken(app *pocketbase.PocketBase, token string) (*model.Feed, error) { - record, err := app.Dao().FindRecordById("feeds", token) + record, err := app.FindRecordById("feeds", token) if err != nil { return nil, err @@ -53,15 +147,15 @@ func FindFeedByToken(app *pocketbase.PocketBase, token string) (*model.Feed, err //update retrieved time if the is not marked as deleted if !record.GetBool("deleted") { record.Set("retrieved", time.Now()) - err = app.Dao().SaveRecord(record) + err = app.Save(record) } return &feed, err } -func DeleteFeed(db *daos.Dao, feedId string) error { +func DeleteFeed(base *pocketbase.PocketBase, feedId string) error { - sqlResult, err := db.DB().Delete("feeds", dbx.NewExp("id = {:id}", dbx.Params{"id": feedId})).Execute() + sqlResult, err := base.DB().Delete("feeds", dbx.NewExp("id = {:id}", dbx.Params{"id": feedId})).Execute() var deletedRows int64 if sqlResult != nil { deletedRows, _ = sqlResult.RowsAffected() @@ -78,19 +172,19 @@ func DeleteFeed(db *daos.Dao, feedId string) error { } } -func GetAllFeeds(db *daos.Dao) ([]model.Feed, error) { +func GetAllFeeds(base *pocketbase.PocketBase) ([]model.Feed, error) { var feeds []model.Feed - err := db.DB().Select("*").From("feeds").All(&feeds) + err := base.DB().Select("*").From("feeds").All(&feeds) if err != nil { return nil, err } return feeds, nil } -func MarkForDelete(db *daos.Dao, token string) error { +func MarkForDelete(base *pocketbase.PocketBase, token string) error { // get record from db feed := model.Feed{} - err := db.DB().Select("*").From("feeds").Where(dbx.NewExp("id = {:id}", dbx.Params{"id": token})).One(&feed) + err := base.DB().Select("*").From("feeds").Where(dbx.NewExp("id = {:id}", dbx.Params{"id": token})).One(&feed) if err != nil { return err } @@ -99,7 +193,7 @@ func MarkForDelete(db *daos.Dao, token string) error { feed.Modules = "[\n {\n \"uuid\": \"\",\n \"name\": \"Deleted\",\n \"course\": \"\",\n \"userDefinedName\": \"Deleted\",\n \"reminder\": false\n }\n]" // save record - err = db.Save(&feed) + err = base.Save(&feed) if err != nil { return err } diff --git a/services/data-manager/service/db/dbFunctions.go b/services/data-manager/service/db/dbFunctions.go deleted file mode 100644 index 05cd48b..0000000 --- a/services/data-manager/service/db/dbFunctions.go +++ /dev/null @@ -1,27 +0,0 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - -package db - -import ( - "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/models" -) - -func FindCollection(app *pocketbase.PocketBase, collectionName string) (*models.Collection, error) { - collection, dbError := app.Dao().FindCollectionByNameOrId(collectionName) - return collection, dbError -} diff --git a/services/data-manager/service/db/dbGroups.go b/services/data-manager/service/db/dbGroups.go index eef2641..fb2e32d 100644 --- a/services/data-manager/service/db/dbGroups.go +++ b/services/data-manager/service/db/dbGroups.go @@ -1,162 +1,252 @@ -//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format. -//Copyright (C) 2024 HTWKalender support@htwkalender.de - -//This program is free software: you can redistribute it and/or modify -//it under the terms of the GNU Affero General Public License as published by -//the Free Software Foundation, either version 3 of the License, or -//(at your option) any later version. - -//This program is distributed in the hope that it will be useful, -//but WITHOUT ANY WARRANTY; without even the implied warranty of -//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//GNU Affero General Public License for more details. - -//You should have received a copy of the GNU Affero General Public License -//along with this program. If not, see . - package db import ( "github.com/pocketbase/dbx" - "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/types" "htwkalender/data-manager/model" "log/slog" ) -type SeminarGroup struct { - University string `db:"university" json:"university"` - GroupShortcut string `db:"shortcut" json:"shortcut"` - GroupId string `db:"groupId" json:"groupId"` - Course string `db:"course" json:"course"` - Faculty string `db:"faculty" json:"faculty"` - FacultyId string `db:"facultyId" json:"facultyId"` - Semester string `db:"semester" json:"semester"` - models.BaseModel -} - -func (s *SeminarGroup) TableName() string { - return "groups" -} - -// UniqueKey Should be same as unique constraint in the database -func (s *SeminarGroup) UniqueKey() string { - return s.Course + s.Semester -} - -func (s *SeminarGroup) toSeminarGroupModel() model.SeminarGroup { - return model.SeminarGroup{ - University: s.University, - GroupShortcut: s.GroupShortcut, - GroupId: s.GroupId, - Course: s.Course, - Faculty: s.Faculty, - FacultyId: s.FacultyId, - Semester: s.Semester, - } -} - -func (s *SeminarGroups) toSeminarGroupModels() []model.SeminarGroup { - var seminarGroups []model.SeminarGroup - for _, group := range *s { - seminarGroups = append(seminarGroups, group.toSeminarGroupModel()) - } - return seminarGroups -} +// Ensure SeminarGroup satisfies RecordProxy +var _ core.RecordProxy = (*SeminarGroup)(nil) type SeminarGroups []*SeminarGroup -func SaveGroups(seminarGroups SeminarGroups, app *pocketbase.PocketBase) (SeminarGroups, error) { - - // delete all groups from the database - execute, err := app.Dao().DB().Delete("groups", dbx.NewExp("1 = 1")).Execute() - if err != nil { - return nil, err - } - rowCount, _ := execute.RowsAffected() - - savedGroups := SeminarGroups{} - for _, group := range seminarGroups { - saveErr := app.Dao().Save(group) - if saveErr != nil { - return nil, saveErr - } - savedGroups = append(savedGroups, group) - } - slog.Info("Saved all groups to the database", "insert", len(savedGroups), "deleted", rowCount) - - return savedGroups, nil +type SeminarGroup struct { + core.BaseRecordProxy } -func GetAllCourses(app *pocketbase.PocketBase) []string { +// Getter and Setter methods - var courses []struct { - CourseShortcut string `db:"course" json:"course"` - } - - // get all rooms from event records in the events collection - err := app.Dao().DB().Select("course").From("groups").All(&courses) - if err != nil { - slog.Error("Error while getting groups from database: ", "error", err) - return []string{} - } - - var courseArray []string - - for _, course := range courses { - courseArray = append(courseArray, course.CourseShortcut) - } - - return courseArray +func (s *SeminarGroup) University() string { + return s.GetString("university") +} +func (s *SeminarGroup) SetUniversity(val string) { + s.Set("university", val) } -func GetAllCoursesForSemester(app *pocketbase.PocketBase, semester string) []model.SeminarGroup { - - var courses SeminarGroups - - // get all courses for a specific semester - err := app.Dao().DB().Select("*").From("groups").Where(dbx.NewExp("semester = {:semester}", dbx.Params{"semester": semester})).All(&courses) - if err != nil { - slog.Error("Error while getting groups from database: ", "error", err) - return nil - } - - return courses.toSeminarGroupModels() - +func (s *SeminarGroup) GroupShortcut() string { + return s.GetString("shortcut") +} +func (s *SeminarGroup) SetGroupShortcut(val string) { + s.Set("shortcut", val) } -func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester string) ([]string, error) { +func (s *SeminarGroup) GroupId() string { + return s.GetString("groupId") +} +func (s *SeminarGroup) SetGroupId(val string) { + s.Set("groupId", val) +} - var courses []struct { - CourseShortcut string `db:"course" json:"course"` +func (s *SeminarGroup) Course() string { + return s.GetString("course") +} +func (s *SeminarGroup) SetCourse(val string) { + s.Set("course", val) +} + +func (s *SeminarGroup) Faculty() string { + return s.GetString("faculty") +} +func (s *SeminarGroup) SetFaculty(val string) { + s.Set("faculty", val) +} + +func (s *SeminarGroup) FacultyId() string { + return s.GetString("facultyId") +} +func (s *SeminarGroup) SetFacultyId(val string) { + s.Set("facultyId", val) +} + +func (s *SeminarGroup) Semester() string { + return s.GetString("semester") +} +func (s *SeminarGroup) SetSemester(val string) { + s.Set("semester", val) +} + +func (s *SeminarGroup) Created() types.DateTime { + return s.GetDateTime("created") +} + +func (s *SeminarGroup) Updated() types.DateTime { + return s.GetDateTime("updated") +} + +func (s *SeminarGroup) UniqueKey() string { + return s.Course() + s.Semester() +} + +func NewSeminarGroup(collection *core.Collection, group model.SeminarGroup) (*SeminarGroup, error) { + // Create a new SeminarGroup instance + if collection.Name != "groups" { + return nil, core.ErrInvalidFieldValue } - // get all courses from events distinct for a specific semester - err := app.Dao().DB().Select("course").From("events").Where(dbx.NewExp("semester = {:semester}", dbx.Params{"semester": semester})).Distinct(true).All(&courses) + record := core.NewRecord(collection) + record.Set("id:autogenerate", "") + + sg := newSeminarGroup(record) + // Set the fields from the model + sg.SetUniversity(group.University) + sg.SetGroupShortcut(group.GroupShortcut) + sg.SetGroupId(group.GroupId) + sg.SetCourse(group.Course) + sg.SetFaculty(group.Faculty) + sg.SetFacultyId(group.FacultyId) + sg.SetSemester(group.Semester) + + return sg, nil +} + +func newSeminarGroup(record *core.Record) *SeminarGroup { + sg := &SeminarGroup{} + sg.SetProxyRecord(record) + return sg +} + +// ToModel Model conversion +func (s *SeminarGroup) ToModel() model.SeminarGroup { + return model.SeminarGroup{ + University: s.University(), + GroupShortcut: s.GroupShortcut(), + GroupId: s.GroupId(), + Course: s.Course(), + Faculty: s.Faculty(), + FacultyId: s.FacultyId(), + Semester: s.Semester(), + } +} + +func (s *SeminarGroups) ToModelArray() []model.SeminarGroup { + models := make([]model.SeminarGroup, len(*s)) + for i, group := range *s { + models[i] = group.ToModel() + } + return models +} + +func (s *SeminarGroup) FromModel(m model.SeminarGroup) { + s.SetUniversity(m.University) + s.SetGroupShortcut(m.GroupShortcut) + s.SetGroupId(m.GroupId) + s.SetCourse(m.Course) + s.SetFaculty(m.Faculty) + s.SetFacultyId(m.FacultyId) + s.SetSemester(m.Semester) +} + +func (s *SeminarGroups) FromModelArray(m model.SeminarGroups) SeminarGroups { + groups := make(SeminarGroups, len(m)) + for i, group := range m { + groups[i] = &SeminarGroup{} + groups[i].FromModel(group) + } + return groups +} + +func FindCourseByCourseName(app core.App, courseName string) (model.SeminarGroup, error) { + group := &SeminarGroup{} + err := app.RecordQuery("groups"). + AndWhere(dbx.NewExp("course = {:course}", dbx.Params{"course": courseName})). + Limit(1). + One(group) + + if err != nil { + return model.SeminarGroup{}, err + } + + return group.ToModel(), nil +} + +func GetAllCourses(app core.App) ([]string, error) { + var groups []*SeminarGroup + err := app.RecordQuery("groups").All(&groups) if err != nil { - slog.Error("Error while getting groups from database: ", "error", err) return nil, err } var courseArray []string - - for _, course := range courses { - courseArray = append(courseArray, course.CourseShortcut) + for _, g := range groups { + courseArray = append(courseArray, g.Course()) } return courseArray, nil } -func FindCourseByCourseName(app *pocketbase.PocketBase, courseName string) (model.SeminarGroup, error) { +func GetAllCoursesForSemester(app core.App, semester string) ([]model.SeminarGroup, error) { + var groups []*SeminarGroup + err := app.RecordQuery("groups"). + AndWhere(dbx.NewExp("semester = {:semester}", dbx.Params{"semester": semester})). + All(&groups) - var course SeminarGroup - - // get the course by its name - err := app.Dao().DB().Select("*").From("groups").Where(dbx.NewExp("course = {:course}", dbx.Params{"course": courseName})).One(&course) if err != nil { - slog.Error("Error while getting group from database: ", "error", err) - return model.SeminarGroup{}, err + return nil, err } - return course.toSeminarGroupModel(), nil + var models []model.SeminarGroup + for _, g := range groups { + models = append(models, g.ToModel()) + } + return models, nil +} + +func GetAllCoursesForSemesterWithEvents(app core.App, semester string) ([]string, error) { + var results []struct { + Course string `db:"course"` + } + + err := app.DB().NewQuery(` + SELECT DISTINCT course FROM events WHERE semester = {:semester} + `).Bind(dbx.Params{"semester": semester}).All(&results) + + if err != nil { + return nil, err + } + + var courses []string + for _, r := range results { + courses = append(courses, r.Course) + } + + return courses, nil +} + +func SaveGroups(app core.App, seminarGroups []model.SeminarGroup) (model.SeminarGroups, error) { + // Delete all existing + execute, err := app.DB().Delete("groups", dbx.NewExp("1 = 1")).Execute() + if err != nil { + return nil, err + } + // Check if to delete was successful + rowCount, _ := execute.RowsAffected() + + // Gruppen-Collection abrufen + collection, err := app.FindCollectionByNameOrId("groups") + if err != nil { + return nil, err + } + + // Seminargruppen in die Datenbank speichern + savedGroups := SeminarGroups{} + for _, group := range seminarGroups { + + dbSeminarGroup, recordErr := NewSeminarGroup(collection, group) + if recordErr != nil { + return nil, err + } + + saveErr := app.Save(dbSeminarGroup) + if saveErr != nil { + return nil, saveErr + } + savedGroups = append(savedGroups, dbSeminarGroup) + } + slog.Info("Saved all groups to the database", "insert", len(savedGroups), "deleted", rowCount) + + return savedGroups.ToModelArray(), nil + } diff --git a/services/data-manager/service/db/dbRooms.go b/services/data-manager/service/db/dbRooms.go index db97e57..dc1e9fd 100644 --- a/services/data-manager/service/db/dbRooms.go +++ b/services/data-manager/service/db/dbRooms.go @@ -34,7 +34,7 @@ func GetRooms(app *pocketbase.PocketBase) ([]string, error) { } // get all rooms from event records in the events collection - err := app.Dao().DB().Select("Rooms", "course").From("events").Distinct(true).All(&events) + err := app.DB().Select("Rooms", "course").From("events").Distinct(true).All(&events) if err != nil { return nil, err } @@ -83,7 +83,7 @@ func GetRoomScheduleForDay(app *pocketbase.PocketBase, room string, date string) var events []model.Event // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events"). + err := app.DB().Select("*").From("events"). Where(dbx.Like("Rooms", room).Escape("_", "_")). AndWhere(dbx.Like("Start", date)). GroupBy("Week", "Start", "End", "Rooms"). @@ -94,6 +94,21 @@ func GetRoomScheduleForDay(app *pocketbase.PocketBase, room string, date string) return events, nil } +func GetRoomSchedule(app *pocketbase.PocketBase, room string) ([]model.Event, error) { + var events []model.Event + + // get all events from event records in the events collection + err := app.DB().Select("*").From("events"). + Where(dbx.Like("Rooms", room).Escape("_", "_")). + GroupBy("Week", "Start", "End", "Rooms"). + All(&events) + if err != nil { + return nil, err + } + return events, nil + +} + func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from string, to string) ([]model.Event, error) { var events []model.Event @@ -107,7 +122,7 @@ func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from str } // get all events from event records in the events collection - err = app.Dao().DB().Select("*").From("events"). + err = app.DB().Select("*").From("events"). Where(dbx.Like("Rooms", room).Escape("_", "_")). AndWhere(dbx.Between("Start", fromDate, toDate)). GroupBy("Week", "Start", "End", "Rooms"). @@ -118,17 +133,3 @@ func GetRoomScheduleInTimeSpan(app *pocketbase.PocketBase, room string, from str } return events, nil } - -func GetRoomSchedule(app *pocketbase.PocketBase, room string) ([]model.Event, error) { - var events []model.Event - - // get all events from event records in the events collection - err := app.Dao().DB().Select("*").From("events"). - Where(dbx.Like("Rooms", room).Escape("_", "_")). - GroupBy("Week", "Start", "End", "Rooms"). - All(&events) - if err != nil { - return nil, err - } - return events, nil -} diff --git a/services/data-manager/service/db/dbFeeds_test.go b/services/data-manager/service/db/test/dbFeeds_test.go similarity index 56% rename from services/data-manager/service/db/dbFeeds_test.go rename to services/data-manager/service/db/test/dbFeeds_test.go index c7e29fc..bbd6d3f 100644 --- a/services/data-manager/service/db/dbFeeds_test.go +++ b/services/data-manager/service/db/test/dbFeeds_test.go @@ -14,58 +14,48 @@ //You should have received a copy of the GNU Affero General Public License //along with this program. If not, see . -package db +package test import ( - "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/tests" + "htwkalender/data-manager/model/serviceModel" + "htwkalender/data-manager/service" + "net/http" "testing" ) -const testDataDir = "./mockData" +const testDataDir = "../mockData" func TestDeleteFeed(t *testing.T) { - setupTestApp := func(t *testing.T) *daos.Dao { + setupTestApp := func(t testing.TB) *tests.TestApp { testApp, err := tests.NewTestApp(testDataDir) if err != nil { t.Fatal(err) } - dao := daos.New(testApp.Dao().DB()) - return dao + + base := &pocketbase.PocketBase{App: testApp} + + services := serviceModel.Service{App: base} + + service.AddRoutes(services) + + return testApp } - type args struct { - db *daos.Dao - feedId string - } - testsCases := []struct { - name string - args args - wantErr bool - }{ + scenarios := []tests.ApiScenario{ { - name: "TestDeleteFeed", - args: args{ - db: setupTestApp(t), - feedId: "fkoqti06ohlnsb8", - }, - wantErr: false, - }, - { - name: "TestDeleteFeedNotExisting", - args: args{ - db: setupTestApp(t), - feedId: "test324", - }, - wantErr: true, + Name: "TestDeleteFeed", + Method: "DELETE", + URL: "/api/v1/feeds/fkoqti06ohlnsb8", + ExpectedStatus: http.StatusNotFound, + ExpectedContent: []string{"\"data\":{},\"message\":\"The requested resource wasn't found.\",\"status\":404"}, + TestAppFactory: setupTestApp, }, } - for _, tt := range testsCases { - t.Run(tt.name, func(t *testing.T) { - if err := DeleteFeed(tt.args.db, tt.args.feedId); (err != nil) != tt.wantErr { - t.Errorf("DeleteFeed() error = %v, wantErr %v", err, tt.wantErr) - } - }) + + for _, scenario := range scenarios { + scenario.Test(t) } } diff --git a/services/data-manager/service/events/courseService.go b/services/data-manager/service/events/courseService.go index 3bf460e..2b81a0c 100644 --- a/services/data-manager/service/events/courseService.go +++ b/services/data-manager/service/events/courseService.go @@ -21,6 +21,7 @@ import ( "htwkalender/data-manager/model" "htwkalender/data-manager/service/db" "htwkalender/data-manager/service/functions" + "log/slog" ) // CourseService defines the methods to be implemented @@ -43,12 +44,23 @@ func NewPocketBaseCourseService(app *pocketbase.PocketBase) *PocketBaseCourseSer // GetAllCourses returns all courses func (s *PocketBaseCourseService) GetAllCourses() []string { - return db.GetAllCourses(s.app) + courseList, err := db.GetAllCourses(s.app) + if err != nil { + slog.Error("Could not get all courses", "error", err) + return nil + } + + return courseList } // GetAllCoursesForSemester returns all courses for a specific semester func (s *PocketBaseCourseService) GetAllCoursesForSemester(semester string) []model.SeminarGroup { - return db.GetAllCoursesForSemester(s.app, semester) + seminarGroups, err := db.GetAllCoursesForSemester(s.app, semester) + if err != nil { + slog.Error("Could not get all courses for semester", "error", err) + return nil + } + return seminarGroups } // GetAllCoursesForSemesterWithEvents returns all courses for a specific semester with events diff --git a/services/data-manager/service/events/eventService.go b/services/data-manager/service/events/eventService.go index 2a3c756..12d4338 100644 --- a/services/data-manager/service/events/eventService.go +++ b/services/data-manager/service/events/eventService.go @@ -112,7 +112,7 @@ func (s *PocketBaseEventService) GetModuleByUUID(uuid string) (model.Module, err // If the deletion was successful, nil is returned // If the deletion was not successful, an error is returned func (s *PocketBaseEventService) DeleteAllEventsByCourseAndSemester(course string, semester string) error { - err := db.DeleteAllEventsByCourse(s.app.Dao(), course, semester) + err := db.DeleteAllEventsByCourse(s.app, course, semester) if err != nil { return err } else { @@ -151,7 +151,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin //if there are no events in the database, save the new events //get all events for the course and the semester - dbEvents, err := db.GetAllEventsForCourseAndSemester(s.app, seminarGroup.Course, seminarGroup.Semester) + dbEvents, err := db.GetAllEventsForCourse(s.app, seminarGroup.Course) if err != nil { return nil, err } @@ -191,13 +191,13 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin } // save all events that are in the insertList - savedEvents, err := db.SaveEvents(insertList, s.app.Dao()) + savedEvents, err := db.SaveEvents(insertList, s.app) if err != nil { slog.Error("Failed to save events: ", "error", err) return nil, err } - slog.Info("Course: " + seminarGroup.Course + " [" + seminarGroup.Semester + "] - Events: " + strconv.FormatInt(int64(len(savedEvents)), 10) + " new, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted" + ", " + strconv.FormatInt(int64(len(dbEvents)-len(deleteList)+len(savedEvents)), 10) + " total") + slog.Info("Course: " + seminarGroup.Course + " - Event changes: " + strconv.FormatInt(int64(len(insertList)), 10) + " new events, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted events") return savedEvents, nil } diff --git a/services/data-manager/service/feed/feedFunctions.go b/services/data-manager/service/feed/feedFunctions.go index 6c16c7e..a891d0a 100644 --- a/services/data-manager/service/feed/feedFunctions.go +++ b/services/data-manager/service/feed/feedFunctions.go @@ -17,7 +17,7 @@ package feed import ( - "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase" "htwkalender/data-manager/model" database "htwkalender/data-manager/service/db" localTime "htwkalender/data-manager/service/functions/time" @@ -25,8 +25,8 @@ import ( "strings" ) -func ClearFeeds(db *daos.Dao, months int, clock localTime.Clock) { - feeds, err := database.GetAllFeeds(db) +func ClearFeeds(base *pocketbase.PocketBase, months int, clock localTime.Clock) { + feeds, err := database.GetAllFeeds(base) if err != nil { slog.Error("CleanFeeds: failed to get all feeds", "error", err) return @@ -39,9 +39,9 @@ func ClearFeeds(db *daos.Dao, months int, clock localTime.Clock) { if feedRetrievedTime.Before(timeShift) { // delete feed - feedErr := database.DeleteFeed(db, feed.GetId()) + feedErr := database.DeleteFeed(base, feed.Id) if feedErr != nil { - slog.Error("CleanFeeds: failed to delete feed: "+feed.GetId(), "error", feedErr) + slog.Error("CleanFeeds: failed to delete feed: "+feed.Id, "error", feedErr) } } } @@ -119,6 +119,6 @@ func combineRooms(events model.Events, index1 int, combinedEvents model.Events, return combinedEvents[index2].Rooms } -func MarkFeedForDeletion(db *daos.Dao, feedId string) error { - return database.MarkForDelete(db, feedId) +func MarkFeedForDeletion(base *pocketbase.PocketBase, feedId string) error { + return database.MarkForDelete(base, feedId) } diff --git a/services/data-manager/service/feed/feedFunctions_test.go b/services/data-manager/service/feed/test/feedFunctions_test.go similarity index 84% rename from services/data-manager/service/feed/feedFunctions_test.go rename to services/data-manager/service/feed/test/feedFunctions_test.go index 53286ba..240d264 100644 --- a/services/data-manager/service/feed/feedFunctions_test.go +++ b/services/data-manager/service/feed/test/feedFunctions_test.go @@ -14,45 +14,43 @@ //You should have received a copy of the GNU Affero General Public License //along with this program. If not, see . -package feed +package test import ( - "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/tests" "htwkalender/data-manager/model" + "htwkalender/data-manager/service/feed" mockTime "htwkalender/data-manager/service/functions/time" "reflect" "testing" "time" ) -const testDataDir = "./mockData" +const testDataDir = "../mockData" + +func setupTestApp(t testing.TB) *tests.TestApp { + testApp, err := tests.NewTestApp(testDataDir) + if err != nil { + t.Fatal(err) + } + return testApp +} func TestClearFeeds(t *testing.T) { - - setupTestApp := func(t *testing.T) *daos.Dao { - testApp, err := tests.NewTestApp(testDataDir) - if err != nil { - t.Fatal(err) - } - dao := daos.New(testApp.Dao().DB()) - return dao - } - type args struct { - db *daos.Dao months int mockClock mockTime.MockClock } + testCases := []struct { name string args args want int }{ { - name: "TestClearFeeds", + name: "Clear feeds older than 6 months", args: args{ - db: setupTestApp(t), months: 6, mockClock: mockTime.MockClock{ NowTime: time.Date(2023, 12, 1, 0, 0, 0, 0, time.UTC), @@ -61,9 +59,8 @@ func TestClearFeeds(t *testing.T) { want: 1, }, { - name: "TestClearAllFeeds", + name: "Clear all feeds - recent clock", args: args{ - db: setupTestApp(t), months: 1, mockClock: mockTime.MockClock{ NowTime: time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC), @@ -72,9 +69,8 @@ func TestClearFeeds(t *testing.T) { want: 0, }, { - name: "TestClearFeedsClearBeforeRetrievedTime", + name: "No clearing - very old clock", args: args{ - db: setupTestApp(t), months: 1, mockClock: mockTime.MockClock{ NowTime: time.Date(2010, 1, 1, 0, 0, 0, 0, time.UTC), @@ -83,15 +79,20 @@ func TestClearFeeds(t *testing.T) { want: 3, }, } + for _, tt := range testCases { t.Run(tt.name, func(t *testing.T) { - ClearFeeds(tt.args.db, tt.args.months, tt.args.mockClock) - // count all feeds in db + app := setupTestApp(t) + base := &pocketbase.PocketBase{App: app} + + feed.ClearFeeds(base, tt.args.months, tt.args.mockClock) + var feeds []*model.Feed - err := tt.args.db.DB().Select("id").From("feeds").All(&feeds) + err := app.DB().Select("id").From("feeds").All(&feeds) if err != nil { t.Fatal(err) } + if got := len(feeds); got != tt.want { t.Errorf("ClearFeeds() = %v, want %v", got, tt.want) } @@ -109,7 +110,7 @@ func TestCombineEventsInFeed(t *testing.T) { want model.Events }{ { - name: "TestCombineEventsInFeed", + name: "Combine duplicate events with different rooms and notes", args: args{ events: model.Events{ { @@ -142,7 +143,7 @@ func TestCombineEventsInFeed(t *testing.T) { }, }, { - name: "CannotCombineEventsInFeed", + name: "Do not combine different events", args: args{ events: model.Events{ { @@ -183,16 +184,17 @@ func TestCombineEventsInFeed(t *testing.T) { }, }, { - name: "NoEventsInFeed", + name: "Empty events input", args: args{ events: model.Events{}, }, want: model.Events{}, }, } + for _, tt := range testCases { t.Run(tt.name, func(t *testing.T) { - if got := CombineEventsInFeed(tt.args.events); !reflect.DeepEqual(got, tt.want) { + if got := feed.CombineEventsInFeed(tt.args.events); !reflect.DeepEqual(got, tt.want) { t.Errorf("CombineEventsInFeed() = %v, want %v", got, tt.want) } }) diff --git a/services/data-manager/service/fetch/sport/sportFetcher.go b/services/data-manager/service/fetch/sport/sportFetcher.go index 93ecdfc..4e29ea0 100644 --- a/services/data-manager/service/fetch/sport/sportFetcher.go +++ b/services/data-manager/service/fetch/sport/sportFetcher.go @@ -82,13 +82,13 @@ func FetchAndUpdateSportEvents(app *pocketbase.PocketBase) ([]model.Event, error } // @TODO: delete and save events in one transaction and it only should delete events that are not in the new events list and save events that are not in the database - err = db.DeleteAllEventsByCourse(app.Dao(), "Sport", functions.GetCurrentSemesterString(clock.RealClock{})) + err = db.DeleteAllEventsByCourse(app, "Sport", functions.GetCurrentSemesterString(clock.RealClock{})) if err != nil { return nil, err } // save events to database - savedEvents, err := db.SaveEvents(events, app.Dao()) + savedEvents, err := db.SaveEvents(events, app) if err != nil { return nil, err diff --git a/services/data-manager/service/fetch/v1/fetchSeminarGroupService.go b/services/data-manager/service/fetch/v1/fetchSeminarGroupService.go index 692847c..8672a61 100644 --- a/services/data-manager/service/fetch/v1/fetchSeminarGroupService.go +++ b/services/data-manager/service/fetch/v1/fetchSeminarGroupService.go @@ -57,8 +57,8 @@ func getSeminarHTML(semester string) (string, error) { } -func FetchSeminarGroups(app *pocketbase.PocketBase) (db.SeminarGroups, error) { - var groups db.SeminarGroups +func FetchSeminarGroups(base *pocketbase.PocketBase) (model.SeminarGroups, error) { + var groups model.SeminarGroups semesterString := functions.CalculateSemesterList(time.RealClock{}) var results [2]string @@ -76,7 +76,7 @@ func FetchSeminarGroups(app *pocketbase.PocketBase) (db.SeminarGroups, error) { // filter duplicates groups = removeDuplicates(groups) - insertedGroups, dbError := db.SaveGroups(groups, app) + insertedGroups, dbError := db.SaveGroups(base.App, groups) if dbError != nil { slog.Error("FetchSeminarGroups", "error", dbError) return nil, err @@ -85,8 +85,8 @@ func FetchSeminarGroups(app *pocketbase.PocketBase) (db.SeminarGroups, error) { return insertedGroups, nil } -func removeDuplicates(groups db.SeminarGroups) db.SeminarGroups { - uniqueGroups := make(db.SeminarGroups, 0, len(groups)) +func removeDuplicates(groups model.SeminarGroups) model.SeminarGroups { + uniqueGroups := make(model.SeminarGroups, 0, len(groups)) seen := make(map[string]struct{}) // Use an empty struct to minimize memory usage // unique Identifier is the course and semester @@ -109,7 +109,7 @@ func contains(groups []model.SeminarGroup, group model.SeminarGroup) bool { return false } -func parseSeminarGroups(result string, semester string) db.SeminarGroups { +func parseSeminarGroups(result string, semester string) model.SeminarGroups { var studium model.Studium err := xml.Unmarshal([]byte(result), &studium) @@ -117,11 +117,11 @@ func parseSeminarGroups(result string, semester string) db.SeminarGroups { return nil } - var seminarGroups db.SeminarGroups + var seminarGroups model.SeminarGroups for _, faculty := range studium.Faculty { for _, Studiengang := range faculty.Studiengang { for _, Studienrichtung := range Studiengang.Semgrp { - seminarGroup := db.SeminarGroup{ + seminarGroup := model.SeminarGroup{ University: "HTWK-Leipzig", GroupShortcut: Studiengang.Name, GroupId: Studiengang.ID, @@ -130,7 +130,7 @@ func parseSeminarGroups(result string, semester string) db.SeminarGroups { FacultyId: faculty.ID, Semester: semester, } - seminarGroups = append(seminarGroups, &seminarGroup) + seminarGroups = append(seminarGroups, seminarGroup) } } } diff --git a/services/data-manager/service/fetch/v2/fetcher.go b/services/data-manager/service/fetch/v2/fetcher.go index ed1e77a..877d963 100644 --- a/services/data-manager/service/fetch/v2/fetcher.go +++ b/services/data-manager/service/fetch/v2/fetcher.go @@ -20,7 +20,7 @@ import ( "fmt" "github.com/google/uuid" "github.com/pocketbase/pocketbase" - "github.com/pocketbase/pocketbase/daos" + "github.com/pocketbase/pocketbase/core" "golang.org/x/net/html" "htwkalender/data-manager/model" "htwkalender/data-manager/service/db" @@ -100,19 +100,19 @@ func fetchAndSaveAllEventsForSemester( return savedRecords, err } -func updateDatabase(app *pocketbase.PocketBase, eventsToBeAdded []model.Event, course string, semester string) error { +func updateDatabase(base *pocketbase.PocketBase, eventsToBeAdded []model.Event, course string, semester string) error { var addedEvents []model.Event var err error // to in transaction the events will be added and deleted - err = app.Dao().RunInTransaction(func(txDao *daos.Dao) error { - err = db.DeleteAllEventsRatherThenCourse(txDao, course, semester) + err = base.RunInTransaction(func(app core.App) error { + err = db.DeleteAllEventsRatherThenCourse(app, course, semester) if err != nil { return err } - addedEvents, err = db.SaveEvents(eventsToBeAdded, txDao) + addedEvents, err = db.SaveEvents(eventsToBeAdded, app) if err != nil { return err } diff --git a/services/data-manager/service/ical/ical.go b/services/data-manager/service/ical/ical.go index 9711f11..d99e66b 100644 --- a/services/data-manager/service/ical/ical.go +++ b/services/data-manager/service/ical/ical.go @@ -24,24 +24,17 @@ import ( "htwkalender/data-manager/service/db" ) -func CreateIndividualFeed(requestBody []byte, app *pocketbase.PocketBase) (string, error) { - var modules []model.FeedCollection - - err := json.Unmarshal(requestBody, &modules) - if err != nil { - return "", apis.NewNotFoundError("Could not parse request body", err) - } - +func CreateIndividualFeed(modules []model.FeedCollection, pb *pocketbase.PocketBase) (string, error) { var icalFeed model.Feed jsonModules, _ := json.Marshal(modules) icalFeed.Modules = string(jsonModules) - collection, dbError := db.FindCollection(app, "feeds") + collection, dbError := pb.FindCollectionByNameOrId("feeds") if dbError != nil { return "", apis.NewNotFoundError("Collection could not be found", dbError) } - record, err := db.SaveFeed(icalFeed, collection, app) + record, err := db.SaveFeed(icalFeed, collection, pb) if err != nil { return "", apis.NewNotFoundError("Could not save feed", err) } diff --git a/services/go.mod b/services/go.mod index 1ed6d25..c8ed356 100644 --- a/services/go.mod +++ b/services/go.mod @@ -14,9 +14,9 @@ require ( github.com/jordic/goics v0.0.0-20210404174824-5a0337b716a0 github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61 github.com/pocketbase/dbx v1.11.0 - github.com/pocketbase/pocketbase v0.22.29 + github.com/pocketbase/pocketbase v0.27.1 github.com/stretchr/testify v1.10.0 - golang.org/x/net v0.37.0 + golang.org/x/net v0.39.0 google.golang.org/grpc v1.71.0 google.golang.org/protobuf v1.36.5 ) @@ -47,17 +47,25 @@ require ( github.com/aws/smithy-go v1.22.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/disintegration/imaging v1.6.3-0.20201218193011-d40f48ce0f09 // indirect + github.com/dlclark/regexp2 v1.11.5 // indirect github.com/domodwyer/mailyak/v3 v3.6.2 // indirect + github.com/dop251/base64dec v0.0.0-20231022112746-c6c9f9a96217 // indirect + github.com/dop251/goja v0.0.0-20250309171923-bcd7cc6bf64c // indirect + github.com/dop251/goja_nodejs v0.0.0-20250314160716-c55ecee183c0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/fatih/color v1.18.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect - github.com/ganigeorgiev/fexpr v0.4.1 // indirect + github.com/ganigeorgiev/fexpr v0.5.0 // indirect github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect + github.com/go-sourcemap/sourcemap v2.1.4+incompatible // indirect github.com/gofiber/schema v1.3.0 // indirect github.com/gofiber/utils/v2 v2.0.0-beta.7 // indirect github.com/golang-jwt/jwt/v4 v4.5.1 // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e // indirect github.com/googleapis/gax-go/v2 v2.14.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect @@ -69,34 +77,36 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pocketbase/tygoja v0.0.0-20250103200817-ca580d8c5119 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/spf13/cast v1.7.1 // indirect - github.com/spf13/cobra v1.8.1 // indirect - github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/cobra v1.9.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/tinylib/msgp v1.2.5 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasthttp v1.59.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/valyala/tcplisten v1.0.0 // indirect github.com/x448/float16 v0.8.4 // indirect go.opencensus.io v0.24.0 // indirect gocloud.dev v0.40.0 // indirect - golang.org/x/crypto v0.36.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/image v0.23.0 // indirect - golang.org/x/oauth2 v0.28.0 // indirect - golang.org/x/sync v0.12.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect + golang.org/x/crypto v0.37.0 // indirect + golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect + golang.org/x/image v0.26.0 // indirect + golang.org/x/mod v0.24.0 // indirect + golang.org/x/oauth2 v0.29.0 // indirect + golang.org/x/sync v0.13.0 // indirect + golang.org/x/sys v0.32.0 // indirect + golang.org/x/term v0.31.0 // indirect + golang.org/x/text v0.24.0 // indirect golang.org/x/time v0.11.0 // indirect + golang.org/x/tools v0.32.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/api v0.225.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250311190419-81fb87f6b8bf // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/libc v1.61.13 // indirect + modernc.org/libc v1.62.1 // indirect modernc.org/mathutil v1.7.1 // indirect - modernc.org/memory v1.8.2 // indirect - modernc.org/sqlite v1.36.0 // indirect + modernc.org/memory v1.9.1 // indirect + modernc.org/sqlite v1.37.0 // indirect ) diff --git a/services/go.sum b/services/go.sum index ddf28ed..d9be54e 100644 --- a/services/go.sum +++ b/services/go.sum @@ -3,8 +3,6 @@ cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU= -cloud.google.com/go/auth v0.14.0 h1:A5C4dKV/Spdvxcl0ggWwWEzzP7AZMJSEIgrkngwhGYM= -cloud.google.com/go/auth v0.14.0/go.mod h1:CYsoRL1PdiDuqeQpZE0bP2pnPrGqFcOkI0nldEQis+A= cloud.google.com/go/auth v0.15.0 h1:Ly0u4aA5vG/fsSsxu98qCQBemXtAtJf+95z9HK+cxps= cloud.google.com/go/auth v0.15.0/go.mod h1:WJDGqZ1o9E9wKIL+IwStfyn/+s59zl4Bi+1KQNVXLZ8= cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M= @@ -69,18 +67,16 @@ github.com/GoogleCloudPlatform/cloudsql-proxy v1.36.0 h1:kAtNAWwvTt5+iew6baV0kbO github.com/GoogleCloudPlatform/cloudsql-proxy v1.36.0/go.mod h1:VRKXU8C7Y/aUKjRBTGfw0Ndv4YqNxlB8zAPJJDxbASE= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= -github.com/PuerkitoBio/goquery v1.10.1 h1:Y8JGYUkXWTGRB6Ars3+j3kN0xg1YqqlwvdTV8WTFQcU= -github.com/PuerkitoBio/goquery v1.10.1/go.mod h1:IYiHrOMps66ag56LEH7QYDDupKXyo5A8qrjIx3ZtujY= github.com/PuerkitoBio/goquery v1.10.2 h1:7fh2BdHcG6VFZsK7toXBT/Bh1z5Wmy8Q9MV9HqT2AM8= github.com/PuerkitoBio/goquery v1.10.2/go.mod h1:0guWGjcLu9AYC7C1GHnpysHy056u9aEkUHwhdnePMCU= github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM= github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA= -github.com/arran4/golang-ical v0.3.2-0.20241015053101-5bb438cf85f5 h1:aIT5x2Cjcg/bioaV8mc1jpDOiousU0alvWTNIcX+F5E= -github.com/arran4/golang-ical v0.3.2-0.20241015053101-5bb438cf85f5/go.mod h1:xblDGxxIUMWwFZk9dlECUlc1iXNV65LJZOTHLVwu8bo= github.com/arran4/golang-ical v0.3.2 h1:MGNjcXJFSuCXmYX/RpZhR2HDCYoFuK8vTPFLEdFC3JY= github.com/arran4/golang-ical v0.3.2/go.mod h1:xblDGxxIUMWwFZk9dlECUlc1iXNV65LJZOTHLVwu8bo= github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -141,14 +137,17 @@ github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMr github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f h1:WBZRG4aNOuI15bLRrCgN8fCq8E5Xuty6jGbmSNEvSsU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3 h1:boJj011Hh+874zpIySeApCX4GeOjPl9qhRF3QuIZq+Q= github.com/cncf/xds/go v0.0.0-20241223141626-cff3c89139a3/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -156,14 +155,16 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/disintegration/imaging v1.6.3-0.20201218193011-d40f48ce0f09 h1:MJFqtdxTq94XqUgg7DcGCaOIXrDTJE/tPHK66Jshguc= github.com/disintegration/imaging v1.6.3-0.20201218193011-d40f48ce0f09/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= -github.com/dlclark/regexp2 v1.11.4 h1:rPYF9/LECdNymJufQKmri9gV604RvvABwgOA8un7yAo= -github.com/dlclark/regexp2 v1.11.4/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCOBXMn8= github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c= -github.com/dop251/goja v0.0.0-20241009100908-5f46f2705ca3 h1:MXsAuToxwsTn5BEEYm2DheqIiC4jWGmkEJ1uy+KFhvQ= -github.com/dop251/goja v0.0.0-20241009100908-5f46f2705ca3/go.mod h1:MxLav0peU43GgvwVgNbLAj1s/bSGboKkhuULvq/7hx4= -github.com/dop251/goja_nodejs v0.0.0-20240728170619-29b559befffc h1:MKYt39yZJi0Z9xEeRmDX2L4ocE0ETKcHKw6MVL3R+co= -github.com/dop251/goja_nodejs v0.0.0-20240728170619-29b559befffc/go.mod h1:VULptt4Q/fNzQUJlqY/GP3qHyU7ZH46mFkBZe0ZTokU= +github.com/dop251/base64dec v0.0.0-20231022112746-c6c9f9a96217 h1:16iT9CBDOniJwFGPI41MbUDfEk74hFaKTqudrX8kenY= +github.com/dop251/base64dec v0.0.0-20231022112746-c6c9f9a96217/go.mod h1:eIb+f24U+eWQCIsj9D/ah+MD9UP+wdxuqzsdLD+mhGM= +github.com/dop251/goja v0.0.0-20250309171923-bcd7cc6bf64c h1:mxWGS0YyquJ/ikZOjSrRjjFIbUqIP9ojyYQ+QZTU3Rg= +github.com/dop251/goja v0.0.0-20250309171923-bcd7cc6bf64c/go.mod h1:MxLav0peU43GgvwVgNbLAj1s/bSGboKkhuULvq/7hx4= +github.com/dop251/goja_nodejs v0.0.0-20250314160716-c55ecee183c0 h1:jTwdYTGERaZ/3+glBUVQZV2NwGodd9HlkXJbTBUPLLo= +github.com/dop251/goja_nodejs v0.0.0-20250314160716-c55ecee183c0/go.mod h1:Tb7Xxye4LX7cT3i8YLvmPMGCV92IOi4CDZvm/V8ylc0= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -192,6 +193,8 @@ github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3G github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k= github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= +github.com/ganigeorgiev/fexpr v0.5.0 h1:XA9JxtTE/Xm+g/JFI6RfZEHSiQlk+1glLvRK1Lpv/Tk= +github.com/ganigeorgiev/fexpr v0.5.0/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= @@ -204,22 +207,18 @@ github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= -github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gofiber/fiber/v3 v3.0.0-beta.4 h1:KzDSavvhG7m81NIsmnu5l3ZDbVS4feCidl4xlIfu6V0= github.com/gofiber/fiber/v3 v3.0.0-beta.4/go.mod h1:/WFUoHRkZEsGHyy2+fYcdqi109IVOFbVwxv1n1RU+kk= -github.com/gofiber/schema v1.2.0 h1:j+ZRrNnUa/0ZuWrn/6kAtAufEr4jCJ+JuTURAMxNSZg= -github.com/gofiber/schema v1.2.0/go.mod h1:YYwj01w3hVfaNjhtJzaqetymL56VW642YS3qZPhuE6c= github.com/gofiber/schema v1.3.0 h1:K3F3wYzAY+aivfCCEHPufCthu5/13r/lzp1nuk6mr3Q= github.com/gofiber/schema v1.3.0/go.mod h1:YYwj01w3hVfaNjhtJzaqetymL56VW642YS3qZPhuE6c= github.com/gofiber/utils/v2 v2.0.0-beta.7 h1:NnHFrRHvhrufPABdWajcKZejz9HnCWmT/asoxRsiEbQ= github.com/gofiber/utils/v2 v2.0.0-beta.7/go.mod h1:J/M03s+HMdZdvhAeyh76xT72IfVqBzuz/OJkrMa7cwU= github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc= github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= @@ -246,7 +245,6 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= @@ -258,6 +256,8 @@ github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9 github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -265,18 +265,16 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= -github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= -github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/enterprise-certificate-proxy v0.3.5 h1:VgzTY2jogw3xt39CusEnFJWm7rlsq5yL5q9XdLOuP5g= github.com/googleapis/enterprise-certificate-proxy v0.3.5/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465 h1:KwWnWVWCNtNq/ewIX7HIKnELmEx2nDP42yskD/pi7QE= +github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= @@ -289,8 +287,6 @@ github.com/jordic/goics v0.0.0-20210404174824-5a0337b716a0 h1:p+k2RozdR141dIkAbO github.com/jordic/goics v0.0.0-20210404174824-5a0337b716a0/go.mod h1:YHaw6sOIeFRob8Y9q/blEAMfVcLpeE9+vdhrwyEMxoI= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= -github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -334,8 +330,10 @@ github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= github.com/pocketbase/pocketbase v0.22.29 h1:ii3+dfrKpmmybtr8hpRgjnQPiEnpBf7H5xW+4ygj4O4= github.com/pocketbase/pocketbase v0.22.29/go.mod h1:GxrFIFusnUSkKPi4KoLz2jHkmMYhbfFqMyDlaqbAZ+U= -github.com/pocketbase/tygoja v0.0.0-20241015175937-d6ff411a0f75 h1:XSbmekxgmbI2uPrre/nkCz7y8VsV652TPb3hAYzPb74= -github.com/pocketbase/tygoja v0.0.0-20241015175937-d6ff411a0f75/go.mod h1:hKJWPGFqavk3cdTa47Qvs8g37lnfI57OYdVVbIqW5aE= +github.com/pocketbase/pocketbase v0.27.1 h1:KGCsS8idUVTC5QHxTj91qHDhIXOb5Yb50wwHhNvJRTQ= +github.com/pocketbase/pocketbase v0.27.1/go.mod h1:aTpwwloVJzeJ7MlwTRrbI/x62QNR2/kkCrovmyrXpqs= +github.com/pocketbase/tygoja v0.0.0-20250103200817-ca580d8c5119 h1:TjQtEReJDTpvlNFTRjuHvPQpJHAeJdcQF130eCAAT/o= +github.com/pocketbase/tygoja v0.0.0-20250103200817-ca580d8c5119/go.mod h1:hKJWPGFqavk3cdTa47Qvs8g37lnfI57OYdVVbIqW5aE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/prometheus v0.54.0 h1:6+VmEkohHcofl3W5LyRlhw1Lfm575w/aX6ZFyVAmzM0= @@ -350,8 +348,12 @@ github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -368,8 +370,6 @@ github.com/tinylib/msgp v1.2.5 h1:WeQg1whrXRFiZusidTQqzETkRpGjFjcIhW6uqWH09po= github.com/tinylib/msgp v1.2.5/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.58.0 h1:GGB2dWxSbEprU9j0iMJHgdKYJVDyjrOwF9RE59PbRuE= -github.com/valyala/fasthttp v1.58.0/go.mod h1:SYXvHHaFp7QZHGKSHmoMipInhrI5StHrhDTYVEjK/Kw= github.com/valyala/fasthttp v1.59.0 h1:Qu0qYHfXvPk1mSLNqcFtEk6DpxgA26hy6bmydotDpRI= github.com/valyala/fasthttp v1.59.0/go.mod h1:GTxNb9Bc6r2a9D0TWNSPwDz78UxnTGBViY3xZNEqyYU= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= @@ -388,34 +388,22 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/detectors/gcp v1.34.0 h1:JRxssobiPg23otYU5SbWtQC//snGVIM3Tx6QRzlQBao= go.opentelemetry.io/contrib/detectors/gcp v1.34.0/go.mod h1:cV4BMFcscUR/ckqLkbfQmF0PRsq8w/lMGzdbCSveBHo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 h1:rgMkmiGfix9vFJDcDi1PK8WEQP4FLQwLDfhp5ZLpFeE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0/go.mod h1:ijPqXp5P6IRRByFVVg9DY8P5HkxkHE5ARIa+86aXPf4= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I= -go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY= -go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= -go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE= -go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= -go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= -go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= -go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys= -go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= @@ -429,16 +417,20 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= -golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= +golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY= +golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= @@ -450,6 +442,8 @@ golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -466,15 +460,15 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= -golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= -golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/oauth2 v0.28.0 h1:CrgCKl8PPAVtLnU3c+EDw6x11699EWlsDeWNWKdIOkc= golang.org/x/oauth2 v0.28.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= +golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -483,10 +477,11 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= +golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -503,12 +498,13 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= -golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2 h1:IRJeR9r1pYWsHKTRe/IInb7lYvbBVIqOgsX/u0mbOWY= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= +golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk= +golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -517,10 +513,10 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= -golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= +golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= +golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -531,12 +527,11 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= -golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= +golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -551,12 +546,12 @@ golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58 golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= +golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY= golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/api v0.217.0 h1:GYrUtD289o4zl1AhiTZL0jvQGa2RDLyC+kX1N/lfGOU= -google.golang.org/api v0.217.0/go.mod h1:qMc2E8cBAbQlRypBTBWHklNJlaZZJBwDv81B1Iu8oSI= google.golang.org/api v0.225.0 h1:+4/IVqBQm0MV5S+JW3kdEGC1WtOmM2mXN1LKH1LdNlw= google.golang.org/api v0.225.0/go.mod h1:WP/0Xm4LVvMOCldfvOISnWquSRWbG2kArDZcg+W2DbY= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -568,16 +563,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988 h1:CT2Thj5AuPV9phrYMtzX11k+XkzMGfRAet42PmoTATM= google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988/go.mod h1:7uvplUBj4RjHAxIZ//98LzOvrQ04JBkaixRmCMI29hc= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= -google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20250303144028-a0af3efb3deb h1:kw/Q892zrnljh8PXAIHmsCXgpxtSyWL4oV1eRnFtdeg= google.golang.org/genproto/googleapis/bytestream v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:35wIojE/F1ptq1nfNDNjtowabHoMSA2qQs7+smpCO5s= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= google.golang.org/genproto/googleapis/rpc v0.0.0-20250311190419-81fb87f6b8bf h1:dHDlF3CWxQkefK9IJx+O8ldY0gLygvrlYRBNbPqDWuY= google.golang.org/genproto/googleapis/rpc v0.0.0-20250311190419-81fb87f6b8bf/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -585,8 +574,6 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= -google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -598,54 +585,52 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU= -google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc h1:/hemPrYIhOhy8zYrNj+069zDB68us2sMGsfkFJO0iZs= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI= -lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.41.0 h1:QoR1Sn3YWlmA1T4vLaKZfawdVtSiGx8H+cEojbC7v1Q= -modernc.org/cc/v3 v3.41.0/go.mod h1:Ni4zjJYJ04CDOhG7dn640WGfwBzfE0ecX8TyMB0Fv0Y= modernc.org/cc/v4 v4.24.4 h1:TFkx1s6dCkQpd6dKurBNmpo+G8Zl4Sq/ztJ+2+DEsh0= modernc.org/cc/v4 v4.24.4/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= -modernc.org/ccgo/v3 v3.17.0 h1:o3OmOqx4/OFnl4Vm3G8Bgmqxnvxnh0nbxeT5p/dWChA= -modernc.org/ccgo/v3 v3.17.0/go.mod h1:Sg3fwVpmLvCUTaqEUjiBDAvshIaKDB0RXaf+zgqFu8I= -modernc.org/ccgo/v4 v4.23.12 h1:UF08a38c4B+K3VoGipBrVWLFUCHd8+X20QZtFAIlQNk= -modernc.org/ccgo/v4 v4.23.12/go.mod h1:vdN4h2WR5aEoNondUx26K7G8X+nuBscYnAEWSRmN2/0= +modernc.org/cc/v4 v4.25.2 h1:T2oH7sZdGvTaie0BRNFbIYsabzCxUQg8nLqCdQ2i0ic= +modernc.org/cc/v4 v4.25.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= modernc.org/ccgo/v4 v4.23.16 h1:Z2N+kk38b7SfySC1ZkpGLN2vthNJP1+ZzGZIlH7uBxo= +modernc.org/ccgo/v4 v4.23.16/go.mod h1:nNma8goMTY7aQZQNTyN9AIoJfxav4nvTnvKThAeMDdo= +modernc.org/ccgo/v4 v4.25.1 h1:TFSzPrAGmDsdnhT9X2UrcPMI3N/mJ9/X9ykKXwLhDsU= +modernc.org/ccgo/v4 v4.25.1/go.mod h1:njjuAYiPflywOOrm3B7kCB444ONP5pAVr8PIEoE0uDw= modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= -modernc.org/gc/v2 v2.6.1 h1:+Qf6xdG8l7B27TQ8D8lw/iFMUj1RXRBOuMUWziJOsk8= -modernc.org/gc/v2 v2.6.1/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= -modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9 h1:ovz6yUKX71igz2yvk4NpiCL5fvdjZAI+DhuDEGx1xyU= -modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= -modernc.org/libc v1.61.8 h1:50KrjlFFoKq9ABh+bNVUf5SfVfQ4NY7CEyFBh65qc60= -modernc.org/libc v1.61.8/go.mod h1:XloulGc0yIRM+91kbwrp7jNi/mfYPAvDOD2qwzWEij0= +modernc.org/gc/v2 v2.6.3 h1:aJVhcqAte49LF+mGveZ5KPlsp4tdGdAOT4sipJXADjw= +modernc.org/gc/v2 v2.6.3/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= modernc.org/libc v1.61.13 h1:3LRd6ZO1ezsFiX1y+bHd1ipyEHIJKvuprv0sLTBwLW8= modernc.org/libc v1.61.13/go.mod h1:8F/uJWL/3nNil0Lgt1Dpz+GgkApWh04N3el3hxJcA6E= +modernc.org/libc v1.62.1 h1:s0+fv5E3FymN8eJVmnk0llBe6rOxCu/DEU+XygRbS8s= +modernc.org/libc v1.62.1/go.mod h1:iXhATfJQLjG3NWy56a6WVU73lWOcdYVxsvwCgoPljuo= modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= modernc.org/memory v1.8.2 h1:cL9L4bcoAObu4NkxOlKWBWtNHIsnnACGF/TbqQ6sbcI= modernc.org/memory v1.8.2/go.mod h1:ZbjSvMO5NQ1A2i3bWeDiVMxIorXwdClKE/0SZ+BMotU= +modernc.org/memory v1.9.1 h1:V/Z1solwAVmMW1yttq3nDdZPJqV1rM05Ccq6KMSZ34g= +modernc.org/memory v1.9.1/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= -modernc.org/sqlite v1.34.5 h1:Bb6SR13/fjp15jt70CL4f18JIN7p7dnMExd+UFnF15g= -modernc.org/sqlite v1.34.5/go.mod h1:YLuNmX9NKs8wRNK2ko1LW1NGYcc9FkBO69JOt1AR9JE= modernc.org/sqlite v1.36.0 h1:EQXNRn4nIS+gfsKeUTymHIz1waxuv5BzU7558dHSfH8= modernc.org/sqlite v1.36.0/go.mod h1:7MPwH7Z6bREicF9ZVUR78P1IKuxfZ8mRIDHD0iD+8TU= +modernc.org/sqlite v1.37.0 h1:s1TMe7T3Q3ovQiK2Ouz4Jwh7dw4ZDqbebSDTlSJdfjI= +modernc.org/sqlite v1.37.0/go.mod h1:5YiWv+YviqGMuGw4V+PNplcyaJ5v+vQd7TQOgkACoJM= modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= diff --git a/services/ical/model/eventModel.go b/services/ical/model/eventModel.go index 511ad22..cb5443a 100644 --- a/services/ical/model/eventModel.go +++ b/services/ical/model/eventModel.go @@ -17,7 +17,7 @@ package model import ( - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" "slices" "sort" "strings" @@ -69,7 +69,7 @@ type Event struct { BookedAt string `db:"BookedAt" json:"bookedAt"` Course string `db:"course" json:"course"` Semester string `db:"semester" json:"semester"` - models.BaseModel + core.BaseModel } type EventType struct { diff --git a/services/ical/model/eventModel_test.go b/services/ical/model/eventModel_test.go index bee7eb5..1122d1a 100644 --- a/services/ical/model/eventModel_test.go +++ b/services/ical/model/eventModel_test.go @@ -17,7 +17,7 @@ package model import ( - "github.com/pocketbase/pocketbase/models" + "github.com/pocketbase/pocketbase/core" "reflect" "testing" "time" @@ -90,7 +90,7 @@ func TestEvent_Equals(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { event Event @@ -167,7 +167,7 @@ func TestEvent_AnonymizeEvent(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string @@ -237,7 +237,7 @@ func TestEvent_GetName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string @@ -297,7 +297,7 @@ func TestEvent_SetCourse(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { course string @@ -357,7 +357,7 @@ func TestEvent_SetName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } type args struct { name string @@ -417,7 +417,7 @@ func TestEvent_TableName(t *testing.T) { BookedAt string Course string Semester string - BaseModel models.BaseModel + BaseModel core.BaseModel } tests := []struct { name string diff --git a/services/ical/service/ical/ical.go b/services/ical/service/ical/ical.go index dd8b8b2..17045b2 100644 --- a/services/ical/service/ical/ical.go +++ b/services/ical/service/ical/ical.go @@ -28,7 +28,7 @@ import ( const expirationTime = 5 * time.Minute -var FeedDeletedError = fmt.Errorf("feed deleted") +var ErrFeedDeleted = fmt.Errorf("feed deleted") func Feed(app model.AppType, token string, userAgent string) (string, string, error) { @@ -50,7 +50,7 @@ func Feed(app model.AppType, token string, userAgent string) (string, string, er } if feed.Deleted { - return "", "", FeedDeletedError + return "", "", ErrFeedDeleted } // Get all events for modules diff --git a/services/ical/service/routes.go b/services/ical/service/routes.go index 18c35bf..0b14b2d 100644 --- a/services/ical/service/routes.go +++ b/services/ical/service/routes.go @@ -41,7 +41,7 @@ func AddFeedRoutes(app model.AppType) { results, eTag, err := ical.Feed(app, token, userAgent) - if errors.Is(err, ical.FeedDeletedError) { + if errors.Is(err, ical.ErrFeedDeleted) { return c.SendStatus(fiber.StatusGone) }